From c018b94c7e713bc3fe6f5127d1cf3d909ca9d6fd Mon Sep 17 00:00:00 2001 From: Holger Wirtz Date: Mon, 22 Nov 2021 16:59:50 +0100 Subject: [PATCH] Again: Fixes. --- MicroDexed.ino | 4 +-- UI.hpp | 68 +++++++++++++++++++++++++------------------------- UI_FX_T4.h | 20 +++++++-------- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/MicroDexed.ino b/MicroDexed.ino index 10e656c..1fe8ff9 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -1056,7 +1056,7 @@ void handleNoteOn(byte inChannel, byte inNumber, byte inVelocity) { if (inNumber >= configuration.epiano.lowest_note && inNumber <= configuration.epiano.highest_note) { - ep.noteOn(inNumber - 12 + configuration.epiano.transpose, inVelocity); + ep.noteOn(inNumber + configuration.epiano.transpose, inVelocity); #ifdef DEBUG char note_name[4]; getNoteName(note_name, inNumber); @@ -1141,7 +1141,7 @@ void handleNoteOff(byte inChannel, byte inNumber, byte inVelocity) { if (inNumber >= configuration.epiano.lowest_note && inNumber <= configuration.epiano.highest_note) { - ep.noteOff(inNumber - 12 + configuration.epiano.transpose); + ep.noteOff(inNumber + configuration.epiano.transpose); #ifdef DEBUG char note_name[4]; getNoteName(note_name, inNumber); diff --git a/UI.hpp b/UI.hpp index f0425ce..9944d78 100644 --- a/UI.hpp +++ b/UI.hpp @@ -2418,7 +2418,7 @@ void UI_func_epiano_sound_intensity(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Level", configuration.epiano.sound_intensity, 1.0, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX, 3, false, false, true); + lcd_display_bar_int("EP Level", configuration.epiano.sound_intensity, 1.0, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2439,7 +2439,7 @@ void UI_func_epiano_sound_intensity(uint8_t param) } } - lcd_display_bar_int("Voice Level", configuration.epiano.sound_intensity, 1.0, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX, 3, false, false, false); + lcd_display_bar_int("EP Level", configuration.epiano.sound_intensity, 1.0, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX, 3, false, false, false); ep.setVolume(mapfloat(configuration.epiano.sound_intensity, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX, 0, 1.0)); } @@ -2503,7 +2503,7 @@ void UI_func_epiano_decay(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Decay", configuration.epiano.decay, 1.0, EP_DECAY_MIN, EP_DECAY_MAX, 3, false, false, true); + lcd_display_bar_int("EP Decay", configuration.epiano.decay, 1.0, EP_DECAY_MIN, EP_DECAY_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2522,7 +2522,7 @@ void UI_func_epiano_decay(uint8_t param) } } - lcd_display_bar_int("EPiano Decay", configuration.epiano.decay, 1.0, EP_DECAY_MIN, EP_DECAY_MAX, 3, false, false, false); + lcd_display_bar_int("EP Decay", configuration.epiano.decay, 1.0, EP_DECAY_MIN, EP_DECAY_MAX, 3, false, false, false); ep.setDecay(mapfloat(configuration.epiano.decay, EP_DECAY_MIN, EP_DECAY_MAX, 0, 1.0)); } @@ -2540,7 +2540,7 @@ void UI_func_epiano_release(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Release", configuration.epiano.release, 1.0, EP_RELEASE_MIN, EP_RELEASE_MAX, 3, false, false, true); + lcd_display_bar_int("EP Release", configuration.epiano.release, 1.0, EP_RELEASE_MIN, EP_RELEASE_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2559,7 +2559,7 @@ void UI_func_epiano_release(uint8_t param) } } - lcd_display_bar_int("EPiano Release", configuration.epiano.release, 1.0, EP_RELEASE_MIN, EP_RELEASE_MAX, 3, false, false, false); + lcd_display_bar_int("EP Release", configuration.epiano.release, 1.0, EP_RELEASE_MIN, EP_RELEASE_MAX, 3, false, false, false); ep.setRelease(mapfloat(configuration.epiano.release, EP_RELEASE_MIN, EP_RELEASE_MAX, 0, 1.0)); } @@ -2577,7 +2577,7 @@ void UI_func_epiano_hardness(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Hardness", configuration.epiano.hardness, 1.0, EP_HARDNESS_MIN, EP_HARDNESS_MAX, 3, false, false, true); + lcd_display_bar_int("EP Hardness", configuration.epiano.hardness, 1.0, EP_HARDNESS_MIN, EP_HARDNESS_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2596,7 +2596,7 @@ void UI_func_epiano_hardness(uint8_t param) } } - lcd_display_bar_int("EPiano Hardness", configuration.epiano.hardness, 1.0, EP_HARDNESS_MIN, EP_HARDNESS_MAX, 3, false, false, false); + lcd_display_bar_int("EP Hardness", configuration.epiano.hardness, 1.0, EP_HARDNESS_MIN, EP_HARDNESS_MAX, 3, false, false, false); ep.setHardness(mapfloat(configuration.epiano.hardness, EP_HARDNESS_MIN, EP_HARDNESS_MAX, 0, 1.0)); } @@ -2614,7 +2614,7 @@ void UI_func_epiano_treble(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Treble", configuration.epiano.treble, 1.0, EP_TREBLE_MIN, EP_TREBLE_MAX, 3, false, false, true); + lcd_display_bar_int("EP Treble", configuration.epiano.treble, 1.0, EP_TREBLE_MIN, EP_TREBLE_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2633,7 +2633,7 @@ void UI_func_epiano_treble(uint8_t param) } } - lcd_display_bar_int("EPiano Treble", configuration.epiano.treble, 1.0, EP_TREBLE_MIN, EP_TREBLE_MAX, 3, false, false, false); + lcd_display_bar_int("EP Treble", configuration.epiano.treble, 1.0, EP_TREBLE_MIN, EP_TREBLE_MAX, 3, false, false, false); ep.setTreble(mapfloat(configuration.epiano.treble, EP_TREBLE_MIN, EP_TREBLE_MAX, 0, 1.0)); } @@ -2651,7 +2651,7 @@ void UI_func_epiano_stereo(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Stereo", configuration.epiano.stereo, 1.0, EP_STEREO_MIN, EP_STEREO_MAX, 3, false, false, true); + lcd_display_bar_int("EP Stereo", configuration.epiano.stereo, 1.0, EP_STEREO_MIN, EP_STEREO_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2670,7 +2670,7 @@ void UI_func_epiano_stereo(uint8_t param) } } - lcd_display_bar_int("EPiano Stereo", configuration.epiano.stereo, 1.0, EP_STEREO_MIN, EP_STEREO_MAX, 3, false, false, false); + lcd_display_bar_int("EP Stereo", configuration.epiano.stereo, 1.0, EP_STEREO_MIN, EP_STEREO_MAX, 3, false, false, false); ep.setStereo(mapfloat(configuration.epiano.stereo, EP_STEREO_MIN, EP_STEREO_MAX, 0, 1.0)); } @@ -2688,7 +2688,7 @@ void UI_func_epiano_tune(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(METERBAR); - lcd_display_meter_int("EPiano Tune", configuration.epiano.tune, 1.0, -100.0, EP_TUNE_MIN, EP_TUNE_MAX, 3, false, true, true); + lcd_display_meter_int("EP Tune", configuration.epiano.tune, 1.0, -100.0, EP_TUNE_MIN, EP_TUNE_MAX, 3, false, true, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2707,7 +2707,7 @@ void UI_func_epiano_tune(uint8_t param) } } - lcd_display_meter_int("EPiano Tune", configuration.epiano.tune, 1.0, -100.0, EP_TUNE_MIN, EP_TUNE_MAX, 3, false, true, false); + lcd_display_meter_int("EP Tune", configuration.epiano.tune, 1.0, -100.0, EP_TUNE_MIN, EP_TUNE_MAX, 3, false, true, false); ep.setTune((configuration.epiano.tune - 100) / 100.0); } @@ -2726,7 +2726,7 @@ void UI_func_epiano_detune(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Detune", configuration.epiano.detune, 1.0, EP_DETUNE_MIN, EP_DETUNE_MAX, 3, false, false, true); + lcd_display_bar_int("EP Detune", configuration.epiano.detune, 1.0, EP_DETUNE_MIN, EP_DETUNE_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2745,7 +2745,7 @@ void UI_func_epiano_detune(uint8_t param) } } - lcd_display_bar_int("EPiano Detune", configuration.epiano.detune, 1.0, EP_DETUNE_MIN, EP_DETUNE_MAX, 3, false, false, false); + lcd_display_bar_int("EP Detune", configuration.epiano.detune, 1.0, EP_DETUNE_MIN, EP_DETUNE_MAX, 3, false, false, false); ep.setDetune(mapfloat(configuration.epiano.detune, EP_DETUNE_MIN, EP_DETUNE_MAX, 0, 1.0)); } @@ -2763,12 +2763,12 @@ void UI_func_epiano_pan_tremolo(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano PanTrem", configuration.epiano.pan_tremolo, 1.0, EP_PAN_TREMOLO_MIN, EP_PAN_TREMOLO_MAX, 3, false, false, true); + lcd_display_bar_int("EP Trem. Width", configuration.epiano.pan_tremolo, 1.0, EP_PAN_TREMOLO_MIN, EP_PAN_TREMOLO_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) { encoderDir[ENC_R].reset(); @@ -2782,7 +2782,7 @@ void UI_func_epiano_pan_tremolo(uint8_t param) } } - lcd_display_bar_int("EPiano PanTrem", configuration.epiano.pan_tremolo, 1.0, EP_PAN_TREMOLO_MIN, EP_PAN_TREMOLO_MAX, 3, false, false, false); + lcd_display_bar_int("EP Trem. Width", configuration.epiano.pan_tremolo, 1.0, EP_PAN_TREMOLO_MIN, EP_PAN_TREMOLO_MAX, 3, false, false, false); ep.setPanTremolo(mapfloat(configuration.epiano.pan_tremolo, EP_PAN_TREMOLO_MIN, EP_PAN_TREMOLO_MAX, 0, 1.0)); } @@ -2800,12 +2800,12 @@ void UI_func_epiano_pan_lfo(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano PanLFO", configuration.epiano.pan_lfo, 1.0, EP_PAN_LFO_MIN, EP_PAN_LFO_MAX, 3, false, false, true); + lcd_display_bar_int("EP LFO", configuration.epiano.pan_lfo, 1.0, EP_PAN_LFO_MIN, EP_PAN_LFO_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) { encoderDir[ENC_R].reset(); @@ -2819,7 +2819,7 @@ void UI_func_epiano_pan_lfo(uint8_t param) } } - lcd_display_bar_int("EPiano PanLFO", configuration.epiano.pan_lfo, 1.0, EP_PAN_LFO_MIN, EP_PAN_LFO_MAX, 3, false, false, false); + lcd_display_bar_int("EP LFO", configuration.epiano.pan_lfo, 1.0, EP_PAN_LFO_MIN, EP_PAN_LFO_MAX, 3, false, false, false); ep.setPanLFO(mapfloat(configuration.epiano.pan_lfo, EP_PAN_LFO_MIN, EP_PAN_LFO_MAX, 0, 1.0)); } @@ -2837,12 +2837,12 @@ void UI_func_epiano_overdrive(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano Overdrive", configuration.epiano.overdrive, 1.0, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX, 3, false, false, true); + lcd_display_bar_int("EP Overdrive", configuration.epiano.overdrive, 1.0, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) { encoderDir[ENC_R].reset(); @@ -2856,7 +2856,7 @@ void UI_func_epiano_overdrive(uint8_t param) } } - lcd_display_bar_int("EPiano Overdrive", configuration.epiano.overdrive, 1.0, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX, 3, false, false, false); + lcd_display_bar_int("EP Overdrive", configuration.epiano.overdrive, 1.0, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX, 3, false, false, false); ep.setOverdrive(mapfloat(configuration.epiano.overdrive, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX, 0, 1.0)); } @@ -2874,7 +2874,7 @@ void UI_func_epiano_transpose(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(METERBAR); - lcd_display_meter_int("EP Transpose", configuration.epiano.transpose, 1.0, 0.0, EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX, 2, false, true, true); + lcd_display_meter_int("EP Transpose", configuration.epiano.transpose, 1.0, -24.0, EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX, 2, false, true, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2887,7 +2887,7 @@ void UI_func_epiano_transpose(uint8_t param) configuration.epiano.transpose = constrain(configuration.epiano.transpose - ENCODER[ENC_R].speed(), EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX); } - lcd_display_meter_int("EP Transpose", configuration.dexed[selected_instance_id].transpose, 1.0, 0.0, EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX, 2, false, true, true); + lcd_display_meter_int("EP Transpose", configuration.epiano.transpose, 1.0, -24.0, EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX, 2, false, true, true); } if (LCDML.FUNC_close()) // ****** STABLE END ********* @@ -2944,7 +2944,7 @@ void UI_func_epiano_velocity_sense(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EPiano VelSense", configuration.epiano.velocity_sense, 1.0, EP_VELOCITY_SENSE_MIN, EP_VELOCITY_SENSE_MAX, 3, false, false, true); + lcd_display_bar_int("EP Vel. Sense", configuration.epiano.velocity_sense, 1.0, EP_VELOCITY_SENSE_MIN, EP_VELOCITY_SENSE_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -2963,7 +2963,7 @@ void UI_func_epiano_velocity_sense(uint8_t param) } } - lcd_display_bar_int("EPiano VelSense", configuration.epiano.velocity_sense, 1.0, EP_VELOCITY_SENSE_MIN, EP_VELOCITY_SENSE_MAX, 3, false, false, false); + lcd_display_bar_int("EP Vel. Sense", configuration.epiano.velocity_sense, 1.0, EP_VELOCITY_SENSE_MIN, EP_VELOCITY_SENSE_MAX, 3, false, false, false); ep.setVelocitySense(mapfloat(configuration.epiano.velocity_sense, EP_VELOCITY_SENSE_MIN, EP_VELOCITY_SENSE_MAX, 0, 1.0)); } @@ -3051,7 +3051,7 @@ void UI_func_epiano_chorus_waveform(uint8_t param) encoderDir[ENC_R].reset(); lcd.setCursor(0, 0); - lcd.print(F("EP Chorus Wavefrm")); + lcd.print(F("EP Ch. Wavefrm")); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -3093,7 +3093,7 @@ void UI_func_epiano_chorus_depth(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("EP Chorus Dpt.", configuration.fx.ep_chorus_depth, 1.0, EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX, 3, false, false, true); + lcd_display_bar_int("EP Ch. Depth", configuration.fx.ep_chorus_depth, 1.0, EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -3106,7 +3106,7 @@ void UI_func_epiano_chorus_depth(uint8_t param) configuration.fx.ep_chorus_depth = constrain(configuration.fx.ep_chorus_depth - ENCODER[ENC_R].speed(), EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX); } - lcd_display_bar_int("Chorus Dpt.", configuration.fx.ep_chorus_depth, 1.0, EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX, 3, false, false, false); + lcd_display_bar_int("EP Ch. Depth", configuration.fx.ep_chorus_depth, 1.0, EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX, 3, false, false, false); ep_chorus_modulator.amplitude(configuration.fx.ep_chorus_depth / 100.0); } @@ -3125,7 +3125,7 @@ void UI_func_epiano_chorus_level(uint8_t param) encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - lcd_display_bar_int("Chorus Lvl.", configuration.fx.ep_chorus_level, 1.0, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 3, false, false, true); + lcd_display_bar_int("EP Ch. Level", configuration.fx.ep_chorus_level, 1.0, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* @@ -3144,7 +3144,7 @@ void UI_func_epiano_chorus_level(uint8_t param) } } - lcd_display_bar_int("Chorus Lvl.", configuration.fx.ep_chorus_level, 1.0, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 3, false, false, false); + lcd_display_bar_int("EP Ch. Level", configuration.fx.ep_chorus_level, 1.0, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 3, false, false, false); ep_chorus_mixer_r.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5)); ep_chorus_mixer_l.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5)); } diff --git a/UI_FX_T4.h b/UI_FX_T4.h index 3dd1482..eb91ae0 100644 --- a/UI_FX_T4.h +++ b/UI_FX_T4.h @@ -124,16 +124,16 @@ LCDML_add(90, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t ster LCDML_add(91, LCDML_0_3_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune; LCDML_add(92, LCDML_0_3_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune; LCDML_add(93, LCDML_0_3, 4, "Effects", NULL); -LCDML_add(94, LCDML_0_3_4, 3, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive; -LCDML_add(95, LCDML_0_3_4, 4, "Tremolo", NULL); -LCDML_add(96, LCDML_0_3_4_4, 1, "Tremolo Panorama", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo; -LCDML_add(97, LCDML_0_3_4_4, 2, "Tremolo LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo; -LCDML_add(98, LCDML_0_3_4, 5, "Chorus", NULL); -LCDML_add(99, LCDML_0_3_4_5, 1, "Frequency", UI_func_epiano_chorus_frequency); -LCDML_add(100, LCDML_0_3_4_5, 2, "Waveform", UI_func_epiano_chorus_waveform); -LCDML_add(101, LCDML_0_3_4_5, 3, "Depth", UI_func_epiano_chorus_depth); -LCDML_add(102, LCDML_0_3_4_5, 4, "Level", UI_func_epiano_chorus_level); -LCDML_add(103, LCDML_0_3_4, 6, "Reverb Send", UI_func_epiano_reverb_send); +LCDML_add(94, LCDML_0_3_4, 1, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive; +LCDML_add(95, LCDML_0_3_4, 2, "Tremolo", NULL); +LCDML_add(96, LCDML_0_3_4_2, 1, "Width", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo; +LCDML_add(97, LCDML_0_3_4_2, 2, "LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo; +LCDML_add(98, LCDML_0_3_4, 3, "Chorus", NULL); +LCDML_add(99, LCDML_0_3_4_3, 1, "Frequency", UI_func_epiano_chorus_frequency); +LCDML_add(100, LCDML_0_3_4_3, 2, "Waveform", UI_func_epiano_chorus_waveform); +LCDML_add(101, LCDML_0_3_4_3, 3, "Depth", UI_func_epiano_chorus_depth); +LCDML_add(102, LCDML_0_3_4_3, 4, "Level", UI_func_epiano_chorus_level); +LCDML_add(103, LCDML_0_3_4, 4, "Reverb Send", UI_func_epiano_reverb_send); LCDML_add(104, LCDML_0_3, 6, "MIDI", NULL); LCDML_add(105, LCDML_0_3_6, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel; LCDML_add(106, LCDML_0_3_6, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note;