|
|
@ -762,8 +762,8 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) |
|
|
|
break; |
|
|
|
break; |
|
|
|
#if defined(USE_FX) |
|
|
|
#if defined(USE_FX) |
|
|
|
case 103: // CC 103: filter resonance
|
|
|
|
case 103: // CC 103: filter resonance
|
|
|
|
configuration.dexed[instance_id].filter_resonance = map(inValue, 0, 0x7f, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX); |
|
|
|
configuration.fx.filter_resonance[instance_id] = map(inValue, 0, 0x7f, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX); |
|
|
|
MicroDexed[instance_id]->fx.Reso = mapfloat(configuration.dexed[instance_id].filter_resonance, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->fx.Reso = mapfloat(configuration.fx.filter_resonance[instance_id], FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 1.0, 0.0); |
|
|
|
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_filter_resonance)) |
|
|
|
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_filter_resonance)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
LCDML.OTHER_updateFunc(); |
|
|
|
LCDML.OTHER_updateFunc(); |
|
|
@ -771,8 +771,8 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 104: // CC 104: filter cutoff
|
|
|
|
case 104: // CC 104: filter cutoff
|
|
|
|
configuration.dexed[instance_id].filter_cutoff = map(inValue, 0, 0x7f, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX); |
|
|
|
configuration.fx.filter_cutoff[instance_id] = map(inValue, 0, 0x7f, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX); |
|
|
|
MicroDexed[instance_id]->fx.Cutoff = mapfloat(configuration.dexed[instance_id].filter_cutoff, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->fx.Cutoff = mapfloat(configuration.fx.filter_cutoff[instance_id], FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 1.0, 0.0); |
|
|
|
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_filter_cutoff)) |
|
|
|
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_filter_cutoff)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
LCDML.OTHER_updateFunc(); |
|
|
|
LCDML.OTHER_updateFunc(); |
|
|
@ -1503,8 +1503,6 @@ void check_configuration(void) |
|
|
|
configuration.dexed[instance_id].midi_channel = constrain(configuration.dexed[instance_id].midi_channel, MIDI_CHANNEL_MIN, MIDI_CHANNEL_MAX); |
|
|
|
configuration.dexed[instance_id].midi_channel = constrain(configuration.dexed[instance_id].midi_channel, MIDI_CHANNEL_MIN, MIDI_CHANNEL_MAX); |
|
|
|
configuration.dexed[instance_id].lowest_note = constrain(configuration.dexed[instance_id].lowest_note, INSTANCE_LOWEST_NOTE_MIN, INSTANCE_LOWEST_NOTE_MAX); |
|
|
|
configuration.dexed[instance_id].lowest_note = constrain(configuration.dexed[instance_id].lowest_note, INSTANCE_LOWEST_NOTE_MIN, INSTANCE_LOWEST_NOTE_MAX); |
|
|
|
configuration.dexed[instance_id].highest_note = constrain(configuration.dexed[instance_id].highest_note, INSTANCE_HIGHEST_NOTE_MIN, INSTANCE_HIGHEST_NOTE_MAX); |
|
|
|
configuration.dexed[instance_id].highest_note = constrain(configuration.dexed[instance_id].highest_note, INSTANCE_HIGHEST_NOTE_MIN, INSTANCE_HIGHEST_NOTE_MAX); |
|
|
|
configuration.dexed[instance_id].filter_cutoff = constrain(configuration.dexed[instance_id].filter_cutoff, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX); |
|
|
|
|
|
|
|
configuration.dexed[instance_id].filter_resonance = constrain(configuration.dexed[instance_id].filter_resonance, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX); |
|
|
|
|
|
|
|
configuration.dexed[instance_id].sound_intensity = constrain(configuration.dexed[instance_id].sound_intensity, SOUND_INTENSITY_MIN, SOUND_INTENSITY_MAX); |
|
|
|
configuration.dexed[instance_id].sound_intensity = constrain(configuration.dexed[instance_id].sound_intensity, SOUND_INTENSITY_MIN, SOUND_INTENSITY_MAX); |
|
|
|
configuration.dexed[instance_id].pan = constrain(configuration.dexed[instance_id].pan, PANORAMA_MIN, PANORAMA_MAX); |
|
|
|
configuration.dexed[instance_id].pan = constrain(configuration.dexed[instance_id].pan, PANORAMA_MIN, PANORAMA_MAX); |
|
|
|
configuration.dexed[instance_id].transpose = constrain(configuration.dexed[instance_id].transpose, TRANSPOSE_MIN, TRANSPOSE_MAX); |
|
|
|
configuration.dexed[instance_id].transpose = constrain(configuration.dexed[instance_id].transpose, TRANSPOSE_MIN, TRANSPOSE_MAX); |
|
|
@ -1533,6 +1531,8 @@ void check_configuration(void) |
|
|
|
configuration.dexed[instance_id].portamento_time = constrain(configuration.dexed[instance_id].portamento_time, PORTAMENTO_TIME_MIN, PORTAMENTO_TIME_MAX); |
|
|
|
configuration.dexed[instance_id].portamento_time = constrain(configuration.dexed[instance_id].portamento_time, PORTAMENTO_TIME_MIN, PORTAMENTO_TIME_MAX); |
|
|
|
configuration.dexed[instance_id].op_enabled = constrain(configuration.dexed[instance_id].op_enabled, OP_ENABLED_MIN, OP_ENABLED_MAX); |
|
|
|
configuration.dexed[instance_id].op_enabled = constrain(configuration.dexed[instance_id].op_enabled, OP_ENABLED_MIN, OP_ENABLED_MAX); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configuration.fx.filter_cutoff[instance_id] = constrain(configuration.fx.filter_cutoff[instance_id], FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX); |
|
|
|
|
|
|
|
configuration.fx.filter_resonance[instance_id] = constrain(configuration.fx.filter_resonance[instance_id], FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX); |
|
|
|
configuration.fx.chorus_frequency[instance_id] = constrain(configuration.fx.chorus_frequency[instance_id], CHORUS_FREQUENCY_MIN, CHORUS_FREQUENCY_MAX); |
|
|
|
configuration.fx.chorus_frequency[instance_id] = constrain(configuration.fx.chorus_frequency[instance_id], CHORUS_FREQUENCY_MIN, CHORUS_FREQUENCY_MAX); |
|
|
|
configuration.fx.chorus_waveform[instance_id] = constrain(configuration.fx.chorus_waveform[instance_id], CHORUS_WAVEFORM_MIN, CHORUS_WAVEFORM_MAX); |
|
|
|
configuration.fx.chorus_waveform[instance_id] = constrain(configuration.fx.chorus_waveform[instance_id], CHORUS_WAVEFORM_MIN, CHORUS_WAVEFORM_MAX); |
|
|
|
configuration.fx.chorus_depth[instance_id] = constrain(configuration.fx.chorus_depth[instance_id], CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX); |
|
|
|
configuration.fx.chorus_depth[instance_id] = constrain(configuration.fx.chorus_depth[instance_id], CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX); |
|
|
@ -1571,8 +1571,6 @@ void init_configuration(void) |
|
|
|
configuration.dexed[instance_id].midi_channel = DEFAULT_MIDI_CHANNEL; |
|
|
|
configuration.dexed[instance_id].midi_channel = DEFAULT_MIDI_CHANNEL; |
|
|
|
configuration.dexed[instance_id].lowest_note = INSTANCE_LOWEST_NOTE_MIN; |
|
|
|
configuration.dexed[instance_id].lowest_note = INSTANCE_LOWEST_NOTE_MIN; |
|
|
|
configuration.dexed[instance_id].highest_note = INSTANCE_HIGHEST_NOTE_MAX; |
|
|
|
configuration.dexed[instance_id].highest_note = INSTANCE_HIGHEST_NOTE_MAX; |
|
|
|
configuration.dexed[instance_id].filter_cutoff = FILTER_CUTOFF_DEFAULT; |
|
|
|
|
|
|
|
configuration.dexed[instance_id].filter_resonance = FILTER_RESONANCE_DEFAULT; |
|
|
|
|
|
|
|
configuration.dexed[instance_id].sound_intensity = SOUND_INTENSITY_DEFAULT; |
|
|
|
configuration.dexed[instance_id].sound_intensity = SOUND_INTENSITY_DEFAULT; |
|
|
|
configuration.dexed[instance_id].pan = PANORAMA_DEFAULT; |
|
|
|
configuration.dexed[instance_id].pan = PANORAMA_DEFAULT; |
|
|
|
configuration.dexed[instance_id].transpose = TRANSPOSE_DEFAULT; |
|
|
|
configuration.dexed[instance_id].transpose = TRANSPOSE_DEFAULT; |
|
|
@ -1601,6 +1599,8 @@ void init_configuration(void) |
|
|
|
configuration.dexed[instance_id].portamento_time = PORTAMENTO_TIME_DEFAULT; |
|
|
|
configuration.dexed[instance_id].portamento_time = PORTAMENTO_TIME_DEFAULT; |
|
|
|
configuration.dexed[instance_id].op_enabled = OP_ENABLED_DEFAULT; |
|
|
|
configuration.dexed[instance_id].op_enabled = OP_ENABLED_DEFAULT; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configuration.fx.filter_cutoff[instance_id] = FILTER_CUTOFF_DEFAULT; |
|
|
|
|
|
|
|
configuration.fx.filter_resonance[instance_id] = FILTER_RESONANCE_DEFAULT; |
|
|
|
configuration.fx.chorus_frequency[instance_id] = CHORUS_FREQUENCY_DEFAULT; |
|
|
|
configuration.fx.chorus_frequency[instance_id] = CHORUS_FREQUENCY_DEFAULT; |
|
|
|
configuration.fx.chorus_waveform[instance_id] = CHORUS_WAVEFORM_DEFAULT; |
|
|
|
configuration.fx.chorus_waveform[instance_id] = CHORUS_WAVEFORM_DEFAULT; |
|
|
|
configuration.fx.chorus_depth[instance_id] = CHORUS_DEPTH_DEFAULT; |
|
|
|
configuration.fx.chorus_depth[instance_id] = CHORUS_DEPTH_DEFAULT; |
|
|
@ -1785,8 +1785,8 @@ void set_fx_params(void) |
|
|
|
reverb_mixer_l.gain(instance_id, pseudo_log_curve(mapfloat(configuration.fx.reverb_send[instance_id], REVERB_SEND_MIN, REVERB_SEND_MAX, 0.0, 1.0))); |
|
|
|
reverb_mixer_l.gain(instance_id, pseudo_log_curve(mapfloat(configuration.fx.reverb_send[instance_id], REVERB_SEND_MIN, REVERB_SEND_MAX, 0.0, 1.0))); |
|
|
|
|
|
|
|
|
|
|
|
// DEXED FILTER
|
|
|
|
// DEXED FILTER
|
|
|
|
MicroDexed[instance_id]->fx.Reso = mapfloat(configuration.dexed[instance_id].filter_resonance, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->fx.Reso = mapfloat(configuration.fx.filter_resonance[instance_id], FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->fx.Cutoff = mapfloat(configuration.dexed[instance_id].filter_cutoff, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->fx.Cutoff = mapfloat(configuration.fx.filter_cutoff[instance_id], FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 1.0, 0.0); |
|
|
|
MicroDexed[instance_id]->doRefreshVoice(); |
|
|
|
MicroDexed[instance_id]->doRefreshVoice(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|