Browse Source

NICE Tuning of instr FM

main
heck 7 months ago
parent
commit
233d85d833
  1. 17
      src/instr_fm.cc

17
src/instr_fm.cc

@ -7,13 +7,13 @@ namespace Heck {
void FM::init()
{
osc.Init(samplerate);
osc.SetFrequency(100);
osc.SetFrequency(40);
osc.SetRatio(0.);
osc.SetIndex(0.);
volEnv.Init(samplerate);
volEnv.SetTime(dsp::ADENV_SEG_ATTACK, .0001);
volEnv.SetTime(dsp::ADENV_SEG_DECAY, 1.);
volEnv.SetTime(dsp::ADENV_SEG_DECAY, 0.7);
volEnv.SetMax(1);
volEnv.SetMin(0);
}
@ -21,26 +21,25 @@ namespace Heck {
void FM::trigger()
{
volEnv.Trigger();
osc.Reset();
}
void FM::ctl(unsigned int ctl_nr, float val)
{
float width = 0.1;
switch (ctl_nr) {
case 0:
osc.SetFrequency(val * 200.);
osc.SetFrequency(31 + (val * 320.));
break;
case 1:
volEnv.SetTime(dsp::ADENV_SEG_DECAY, val * 2.);
break;
case 2:
osc.SetRatio(val * 1.);
osc.SetRatio(1 - (width / 2.) + val * width);
break;
case 3:
osc.SetIndex(val * 1.);
break;
case 4:
break;
case 5:
osc.SetIndex(val * 0.1);
break;
}
}

Loading…
Cancel
Save