On 08/22/2014 09:17 AM, Ian Sannar wrote:
> I have this idea for a Dubstep Growl Synth.
> I've made the basic wavetable generator in C#.
> I moved it over to ruby and made it a VSTi in FlowStone.

What is the purpose of the wavetable generator? We already have a
wavetable generator which generates mipmaps for bandlimited waveforms.
Although we don't generate them live anymore, and instead provide the
wavetables as pre-generated binary files.

> It's a basic FM synth. Two waveforms. One waveform is the basic
> multi-osc, like from TripleOscillator. The second osc is a wavetable.
> Osc 2 is a frequency modulation oscillator, and oscillates Osc 1.

Seems quite specific and limited for a whole synth... But if you want to
code it, go right ahead. It's pretty easy to write synths for LMMS.

> Osc 2 is generated dynamically. A knob controls the wavetable position.
>
> This psuedo-code generates Osc 2.
>
> float[] GenerateOsc2(int wavetableQuality, int sampleRate, float mouth)
> {
>      step = 1.0 / sampleRate;
>      wavetable = new float[wavetableQuality];
>      for (int i = 0; i < 1; i += step)
>      {
>           position = 1 - i;
>           ampEnv = (float)(1 / Math.Pow(position, 2));
>           wavetable[i * SampleRate] = -(float)Math.Sin((position *
> Math.PI * (2 * mouth))) / ampEnv;
>      }
>      return wavetable;
> }

If this is only called once when the synth is initialized, then it's
probably fine. Otherwise there will be problems...

> The FM Modulation is your average Frequency Out = Frequency In + (Mod
> Osc * FM Gain) function.

Not a good idea. While writing Monstro, I learned that you won't get a
"proper" FM sound (or what you probably would recognize as "FM sound")
by doing actual FM.

Doing actual FM will cause pitch drift, which makes the whole synth
sound out of tune. What you want to do is use phase modulation to
approximate FM, this gives the recognizable FM sound and keeps the pitch
constant.

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
LMMS-devel mailing list
LMMS-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to