|
|
@ -1,10 +1,12 @@ |
|
|
|
#include "instr_fm.hh" |
|
|
|
#include "daisysp.h" |
|
|
|
#include "utils.hh" |
|
|
|
|
|
|
|
namespace Heck { |
|
|
|
namespace Instrument { |
|
|
|
|
|
|
|
FM::FM(){ |
|
|
|
FM::FM() |
|
|
|
{ |
|
|
|
init(); |
|
|
|
} |
|
|
|
|
|
|
@ -30,8 +32,6 @@ namespace Heck { |
|
|
|
|
|
|
|
void FM::ctl(unsigned int ctl_nr, float val) |
|
|
|
{ |
|
|
|
float width = 0.1; |
|
|
|
|
|
|
|
switch (ctl_nr) { |
|
|
|
case 0: |
|
|
|
osc.SetFrequency(31 + (val * 320.)); |
|
|
@ -39,9 +39,10 @@ namespace Heck { |
|
|
|
case 1: |
|
|
|
volEnv.SetTime(dsp::ADENV_SEG_DECAY, val * 2.); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
osc.SetRatio(1 - (width / 2.) + val * width); |
|
|
|
break; |
|
|
|
case 2: { |
|
|
|
float ratio_val = scalen_min_max(val, 1., 3.); |
|
|
|
osc.SetRatio(ratio_val); |
|
|
|
} break; |
|
|
|
case 3: |
|
|
|
osc.SetIndex(val * 0.1); |
|
|
|
break; |
|
|
|