From 233d85d833e080d4c6b435433bc1ebdec2d9d06c Mon Sep 17 00:00:00 2001 From: heck Date: Thu, 12 Sep 2024 05:26:37 +0200 Subject: [PATCH] NICE Tuning of instr FM --- src/instr_fm.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/instr_fm.cc b/src/instr_fm.cc index fdaeaa7..7d5c443 100644 --- a/src/instr_fm.cc +++ b/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; } }