|
|
@ -120,7 +120,7 @@ void Dexed::getSamples(uint16_t n_samples, int16_t* buffer) |
|
|
|
for (i = 0; i < max_notes; i++) |
|
|
|
for (i = 0; i < max_notes; i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if ( voices[i].live ) |
|
|
|
if ( voices[i].live ) |
|
|
|
voices[i].dx7_note->update(data, voices[i].midi_note, voices[i].velocity, voices[i].porta); |
|
|
|
voices[i].dx7_note->update(data, voices[i].midi_note, voices[i].velocity, voices[i].porta, &controllers); |
|
|
|
} |
|
|
|
} |
|
|
|
lfo.reset(data + 137); |
|
|
|
lfo.reset(data + 137); |
|
|
|
refreshVoice = false; |
|
|
|
refreshVoice = false; |
|
|
@ -193,7 +193,7 @@ void Dexed::keydown(int16_t pitch, uint8_t velo) { |
|
|
|
voices[i].keydown = true; |
|
|
|
voices[i].keydown = true; |
|
|
|
voices[i].sustained = sustain; |
|
|
|
voices[i].sustained = sustain; |
|
|
|
voices[i].live = true; |
|
|
|
voices[i].live = true; |
|
|
|
voices[i].dx7_note->init(data, pitch, velo, pitch, porta); |
|
|
|
voices[i].dx7_note->init(data, pitch, velo, pitch, porta, &controllers); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -209,7 +209,7 @@ void Dexed::keydown(int16_t pitch, uint8_t velo) { |
|
|
|
voices[note].sustained = sustain; |
|
|
|
voices[note].sustained = sustain; |
|
|
|
voices[note].keydown = true; |
|
|
|
voices[note].keydown = true; |
|
|
|
int srcnote = (previousKeyDown >= 0) ? previousKeyDown : pitch; |
|
|
|
int srcnote = (previousKeyDown >= 0) ? previousKeyDown : pitch; |
|
|
|
voices[note].dx7_note->init(data, pitch, velo, srcnote, porta); |
|
|
|
voices[note].dx7_note->init(data, pitch, velo, srcnote, porta, &controllers); |
|
|
|
if ( data[136] ) |
|
|
|
if ( data[136] ) |
|
|
|
voices[note].dx7_note->oscSync(); |
|
|
|
voices[note].dx7_note->oscSync(); |
|
|
|
break; |
|
|
|
break; |
|
|
@ -383,6 +383,8 @@ void Dexed::resetControllers(void) |
|
|
|
controllers.values_[kControllerPitch] = 0x2000; |
|
|
|
controllers.values_[kControllerPitch] = 0x2000; |
|
|
|
controllers.values_[kControllerPitchRange] = 0; |
|
|
|
controllers.values_[kControllerPitchRange] = 0; |
|
|
|
controllers.values_[kControllerPitchStep] = 0; |
|
|
|
controllers.values_[kControllerPitchStep] = 0; |
|
|
|
|
|
|
|
controllers.values_[kControllerPortamentoGlissando] = 0; |
|
|
|
|
|
|
|
|
|
|
|
controllers.modwheel_cc = 0; |
|
|
|
controllers.modwheel_cc = 0; |
|
|
|
controllers.foot_cc = 0; |
|
|
|
controllers.foot_cc = 0; |
|
|
|
controllers.breath_cc = 0; |
|
|
|
controllers.breath_cc = 0; |
|
|
@ -774,5 +776,7 @@ void Dexed::setPortamentoMode(uint8_t portamento_mode, uint8_t portamento_glissa |
|
|
|
else |
|
|
|
else |
|
|
|
controllers.portamento_enable_cc = false; |
|
|
|
controllers.portamento_enable_cc = false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers.values_[kControllerPortamentoGlissando] = portamento_glissando; |
|
|
|
|
|
|
|
|
|
|
|
controllers.refresh(); |
|
|
|
controllers.refresh(); |
|
|
|
} |
|
|
|
} |
|
|
|