SynthMaker

Alias-Free-Osc [Blip,Blep,MiniBlep,Feedback Delay Loop]

Archive · 2012 11 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

DigitalWhiteByte ·

I would like to propose this project to all, for anyone who wants to share his experience with these types of algorithms or any contributions you want to give, and make the project an active study of the synthesis.

I enclose a bit useful reading for the project:

http://webfea-lb.fea.aub.edu.lb/dsaf/Pu ... ons/12.pdf http://lib.tkk.fi/Dipl/2010/urn100219.pdf http://dafx09.como.polimi.it/proceeding ... per_72.pdf http://www.cs.cmu.edu/~eli/papers/icmc01-hardsync.pdf http://scp.web.elte.hu/papers/synthesis1.pdf http://www.acoustics.hut.fi/~jpekonen/t ... ekonen.pdf http://www.experimentalscene.com/articles/minbleps.php http://www.cs.washington.edu/education/ ... tion_1.pdf http://calypso.inesc-id.pt/FCUL/psm/pra ... ser-v1.pdf

http://www.discodsp.net/VAFilterDesign.pdf http://141.105.33.55/~lomov/%D0%B1%D0%B ... ials_(2003)(en)(335s).pdf https://ccrma.stanford.edu/~jos/Interpo ... on_4up.pdf http://www.acoustics.hut.fi/~vpv/public ... llpass.pdf http://www.acoustics.hut.fi/~vpv/public ... t1_fir.pdf

DigitalWhiteByte ·

Reserved For File Release

stw ·

Here's a SM version of the third one (Quasi bandlimited OSC through FM by Peter Schoffhauzer) Nice... 😀

DigitalWhiteByte ·

Thanks stw, good implementation, I dive into the code 🙂

Buritsé ·

martinvicanek wrote: Buritsé, I had the idea that your single-table BLEP approach would work better with a window function to ensure a seamless transition of consecutive BLEPs. BTW, your BLEP table is sufficiently oversampled (100x) so linear interpolation is accurate. Here is the result, it is excellent up to 1/20 Ny and reasonable up to 1/5 Ny. To improve on highest frequencies you could oversample the entire oscillator like you did in your post. Another idea would be to combine 2 oscillators at half the frequency with a half cycle phase offset (that works for sawtooth). Or even more oscillators.

Hi Martin!

I forgot about this as I have another things going on. 😊

Anyway, that's really neat, I remember adding a window function before but results were worst than without! I suspect the problem was the sin function but maybe I'm wrong as I don't have all the iterations saved. I also tried linear interpolation but didn't fulfil my expectations.

So... your windowing seems to be the key here... or I did something wrong then! Will try to add it and see how it works with my last iteration. Looks promising. 🙂

For the time being I'm attaching my last iteration just to show you where I left it ( and buying some time to refresh my head about this stuff )...

...oh, and give you all some goodies! 😉

MegaHurtz ·

Intuetively I kind of like the first and second versions, especially the first. Too bad the resonant frequency will always be purposely annoying in dsp, but I really digg the scanning noise it makes 🙂 Would be cool to have an iir bandlimit.

Buritsé ·

MegaHurtz wrote: Intuetively I kind of like the first and second versions, especially the first.

Hahaha... MegaHurtz, you remind me a friend of mine, he always likes the artefacts. 😀

Too bad the resonant frequency will always be purposely annoying in dsp, but I really digg the scanning noise it makes 🙂 Would be cool to have an iir bandlimit.

Well, while technically incorrect, I do recognize I like it too. I remember there was a vsti that used aliasing as the body sound but never tried it.

One idea I had time ago was a kind of pitch-dependant resampling for a synth. The concept was: if we make the oscillator work at a pitch-multiple sampling rates, then we could make aliasing to fall harmonically, in strange patterns, or masked by the exisiting harmonics... we could even use it to create weird modulations as the "scanning noise".

It'd be just another option to play with.

Maybe is this what you meant with the IIR bandlimit? A real-time control of nyquist?

MegaHurtz ·

To make the aliassing harmonic is cool indeed, that way it wouldn't matter. In theory you can do similar stuff using a combfilter, only in reality it's practical application of combfiltering just makes the sound louder. 🙁

On a drift I was thinking it may be possible do an interpolation based on each top sample being represented as a sinewave, and interpolated at the niquist frequency. Where each pitch at these frequencys yields a float coordinate in respect to an integer pitch value (or at least the distance between the last few steps). So it generates an estimate sample amplitude based on a mix of sinewaves which are represented way outside the audible domain. And are mixed together to form a single sample again.

But here I am posting on the Synthmaker forum while I got a business plan to write.. So it may take a while to get back on this. 🙂

Buritsé ·

MegaHurtz wrote: But here I am posting on the Synthmaker forum while I got a business plan to write.. So it may take a while to get back on this. 🙂

Don't worry... if I could write down in code the mechanism that drives my brain I'd have the best reverberation ever.

😀

Buritsé ·

OK, first impressions after checking & mixing Martin's code with mine.

If I use the window with my versions the improvement is only fractions of a db, so it seems the difference it's not there but in the index calculations.

That's funny as I had the feeling something was wrong there.

Obviously it's stupid to keep trying to mix Martin's version with mine, from now on I'll just add the stereo table trick and oversample to see how good it can get with just one table. Then we'll see if it's necessary to add more tables.

Nice work, Martin! 🙂

MegaHurtz ·

Cant really knock some off, it already uses the tricks in my book 🙂 But it looks excellent.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.