Rolfdegen
Well-known member
Hello friends
I cannot start the LFO phase with Midi NoteOn at zero degrees. The phases are synchronous but continue to run. What am I doing wrong.
Thanks for help. Greetings Rolf
I cannot start the LFO phase with Midi NoteOn at zero degrees. The phases are synchronous but continue to run. What am I doing wrong.
Code:
//*************************************************************************
// set Voice on
//*************************************************************************
void set_Voice_on(uint8_t note)
{
float freq = NoteFreq[note];
float value = (note * DIV127 * keytrackingAmount); // E3
AudioNoInterrupts();
LFO1_1.begin(0.5f,0.2f,1); // LFO Saw
LFO1_2.begin(0.5f,0.2f,1);
LFO1_3.begin(0.5f,0.2f,1);
LFO1_4.begin(0.5f,0.2f,1);
LFO1_5.begin(0.5f,0.2f,1);
LFO1_6.begin(0.5f,0.2f,1);
LFO1_1.phase(0.0f);
LFO1_2.phase(0.0f);
LFO1_3.phase(0.0f);
LFO1_4.phase(0.0f);
LFO1_5.phase(0.0f);
LFO1_6.phase(0.0f);
switch(getVoiceNo(-1))
{
case 1:
KeyTrak1.amplitude(value);
waveform1.frequency(freq * BendFactor);
//LFO1_1.frequency((freq / 8) * BendFactor);
envelope1_0.noteOn();
envelope1_1.noteOn();
voices[0].note = note;
voices[0].timeOn = millis();
voices[0].voiceOn = true;
disp.fillRect(133, 3, 7, 4, ST7735_RED); // Lamp1 on
break;
case 2:
KeyTrak2.amplitude(value);
waveform2.frequency(freq * BendFactor);
//LFO1_2.frequency((freq / 8) * BendFactor);
envelope2_0.noteOn();
envelope2_1.noteOn();
voices[1].note = note;
voices[1].timeOn = millis();
voices[1].voiceOn = true;
disp.fillRect(133+10, 3, 7, 4, ST7735_RED); // Lamp2 on
break;
case 3:
KeyTrak3.amplitude(value);
waveform3.frequency(freq * BendFactor);
//LFO1_3.frequency((freq / 8) * BendFactor);
envelope3_0.noteOn();
envelope3_1.noteOn();
voices[2].note = note;
voices[2].timeOn = millis();
voices[2].voiceOn = true;
disp.fillRect(133+20, 3, 7, 4, ST7735_RED); // Lamp3 on
break;
case 4:
KeyTrak4.amplitude(value);
waveform4.frequency(freq * BendFactor);
//LFO1_4.frequency((freq / 8) * BendFactor);
envelope4_0.noteOn();
envelope4_1.noteOn();
voices[3].note = note;
voices[3].timeOn = millis();
voices[3].voiceOn = true;
disp.fillRect(133, 11, 7, 4, ST7735_RED); // Lamp4 on
break;
case 5:
KeyTrak5.amplitude(value);
waveform5.frequency(freq * BendFactor);
//LFO1_5.frequency((freq / 8) * BendFactor);
envelope5_0.noteOn();
envelope5_1.noteOn();
voices[4].note = note;
voices[4].timeOn = millis();
voices[4].voiceOn = true;
disp.fillRect(133+10, 11, 7, 4, ST7735_RED); // Lamp5 on
break;
case 6:
KeyTrak6.amplitude(value);
waveform6.frequency(freq * BendFactor);
//LFO1_6.frequency((freq / 8) * BendFactor);
envelope6_0.noteOn();
envelope6_1.noteOn();
voices[5].note = note;
voices[5].timeOn = millis();
voices[5].voiceOn = true;
disp.fillRect(133+20, 11, 7, 4, ST7735_RED); // Lamp6 on
break;
}
AudioInterrupts();
}
Thanks for help. Greetings Rolf