diff --git a/UI.hpp b/UI.hpp index bfab856..85fb5dc 100644 --- a/UI.hpp +++ b/UI.hpp @@ -350,12 +350,17 @@ void UI_func_epiano_detune(uint8_t param); void UI_func_epiano_pan_tremolo(uint8_t param); void UI_func_epiano_pan_lfo(uint8_t param); void UI_func_epiano_overdrive(uint8_t param); +void UI_func_epiano_reverb_send(uint8_t param); void UI_func_epiano_midi_channel(uint8_t param); void UI_func_epiano_lowest_note(uint8_t param); void UI_func_epiano_highest_note(uint8_t param); void UI_func_epiano_transpose(uint8_t param); void UI_func_epiano_polyphony(uint8_t param); void UI_func_epiano_velocity_sense(uint8_t param); +void UI_func_epiano_chorus_frequency(uint8_t param); +void UI_func_epiano_chorus_waveform(uint8_t param); +void UI_func_epiano_chorus_depth(uint8_t param); +void UI_func_epiano_chorus_level(uint8_t param); void UI_update_instance_icons(); bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool init); uint8_t search_accepted_char(uint8_t c); @@ -2468,7 +2473,7 @@ void UI_func_epiano_panorama(uint8_t param) { if (LCDML.BT_checkDown() && encoderDir[ENC_R].Down() && configuration.sys.mono == 0) { - configuration.dexed[selected_instance_id].pan = constrain(configuration.epiano.pan + ENCODER[ENC_R].speed(), EP_PANORAMA_MIN, EP_PANORAMA_MAX); + configuration.epiano.pan = constrain(configuration.epiano.pan + ENCODER[ENC_R].speed(), EP_PANORAMA_MIN, EP_PANORAMA_MAX); MD_sendControlChange(configuration.epiano.midi_channel, 10, map(configuration.epiano.pan, EP_PANORAMA_MIN, EP_PANORAMA_MAX, 0, 127)); } else if (LCDML.BT_checkUp() && encoderDir[ENC_R].Up() && configuration.sys.mono == 0) @@ -2969,6 +2974,188 @@ void UI_func_epiano_velocity_sense(uint8_t param) } } +void UI_func_epiano_reverb_send(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + encoderDir[ENC_R].reset(); + + lcd_special_chars(BLOCKBAR); + lcd_display_bar_int("EP Reverb Send", configuration.fx.ep_reverb_send, 1.0, EP_REVERB_SEND_MIN, EP_REVERB_SEND_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()) + { + configuration.fx.ep_reverb_send = constrain(configuration.fx.ep_reverb_send + ENCODER[ENC_R].speed(), EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX); + MD_sendControlChange(configuration.epiano.midi_channel, 91, configuration.fx.ep_reverb_send); + } + else if (LCDML.BT_checkUp()) + { + configuration.fx.ep_reverb_send = constrain(configuration.fx.ep_reverb_send - ENCODER[ENC_R].speed(), EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX); + MD_sendControlChange(configuration.epiano.midi_channel, 91, configuration.fx.ep_reverb_send); + } + } + + lcd_display_bar_int("EP Reverb Send", configuration.fx.ep_reverb_send, 1.0, EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX, 3, false, false, false); + + reverb_mixer_r.gain(REVERB_MIX_CH_EPIANO, volume_transform(mapfloat(configuration.fx.ep_reverb_send, EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX, 0.0, VOL_MAX_FLOAT))); + reverb_mixer_l.gain(REVERB_MIX_CH_EPIANO, volume_transform(mapfloat(configuration.fx.ep_reverb_send, EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX, 0.0, VOL_MAX_FLOAT))); + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + lcd_special_chars(SCROLLBAR); + encoderDir[ENC_R].reset(); + } +} + +void UI_func_epiano_chorus_frequency(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + encoderDir[ENC_R].reset(); + + lcd_special_chars(BLOCKBAR); + lcd_display_bar_float("EP Chorus Frq.", configuration.fx.ep_chorus_frequency, 0.1, EP_CHORUS_FREQUENCY_MIN, EP_CHORUS_FREQUENCY_MAX, 2, 1, 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()) + configuration.fx.ep_chorus_frequency = constrain(configuration.fx.ep_chorus_frequency + ENCODER[ENC_R].speed(), EP_CHORUS_FREQUENCY_MIN, EP_CHORUS_FREQUENCY_MAX); + else if (LCDML.BT_checkUp()) + configuration.fx.ep_chorus_frequency = constrain(configuration.fx.ep_chorus_frequency - ENCODER[ENC_R].speed(), EP_CHORUS_FREQUENCY_MIN, EP_CHORUS_FREQUENCY_MAX); + } + lcd_display_bar_float("EP Chorus Frq.", configuration.fx.ep_chorus_frequency, 0.1, EP_CHORUS_FREQUENCY_MIN, EP_CHORUS_FREQUENCY_MAX, 2, 1, false, false, false); + + ep_chorus_modulator.frequency(configuration.fx.ep_chorus_frequency / 10.0); + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + lcd_special_chars(SCROLLBAR); + encoderDir[ENC_R].reset(); + } +} + +void UI_func_epiano_chorus_waveform(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + encoderDir[ENC_R].reset(); + + lcd.setCursor(0, 0); + lcd.print(F("EP Chorus Wavefrm")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) + configuration.fx.ep_chorus_waveform = constrain(configuration.fx.ep_chorus_waveform + 1, EP_CHORUS_WAVEFORM_MIN, EP_CHORUS_WAVEFORM_MAX); + else if (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) + configuration.fx.ep_chorus_waveform = constrain(configuration.fx.ep_chorus_waveform - 1, EP_CHORUS_WAVEFORM_MIN, EP_CHORUS_WAVEFORM_MAX); + + lcd.setCursor(0, 1); + switch (configuration.fx.ep_chorus_waveform) + { + case 0: + ep_chorus_modulator.begin(WAVEFORM_TRIANGLE); + lcd.print(F("[TRIANGLE]")); + break; + case 1: + ep_chorus_modulator.begin(WAVEFORM_SINE); + lcd.print(F("[SINE ]")); + break; + default: + ep_chorus_modulator.begin(WAVEFORM_TRIANGLE); + lcd.print(F("[TRIANGLE]")); + break; + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + lcd_special_chars(SCROLLBAR); + encoderDir[ENC_R].reset(); + } +} + +void UI_func_epiano_chorus_depth(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + 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); + } + + 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()) + configuration.fx.ep_chorus_depth = constrain(configuration.fx.ep_chorus_depth + ENCODER[ENC_R].speed(), EP_CHORUS_DEPTH_MIN, EP_CHORUS_DEPTH_MAX); + else if (LCDML.BT_checkUp()) + 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); + + ep_chorus_modulator.amplitude(configuration.fx.ep_chorus_depth / 100.0); + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + lcd_special_chars(SCROLLBAR); + encoderDir[ENC_R].reset(); + } +} + +void UI_func_epiano_chorus_level(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + 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); + } + + 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()) + { + configuration.fx.ep_chorus_level = constrain(configuration.fx.ep_chorus_level + ENCODER[ENC_R].speed(), EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX); + MD_sendControlChange(configuration.epiano.midi_channel, 93, configuration.fx.ep_chorus_level); + } + else if (LCDML.BT_checkUp()) + { + configuration.fx.ep_chorus_level = constrain(configuration.fx.ep_chorus_level - ENCODER[ENC_R].speed(), EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX); + MD_sendControlChange(configuration.epiano.midi_channel, 93, configuration.fx.ep_chorus_level); + } + } + + 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); + 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)); + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + lcd_special_chars(SCROLLBAR); + encoderDir[ENC_R].reset(); + } +} + void UI_func_stereo_mono(uint8_t param) { static uint8_t old_mono; diff --git a/UI_FX_T4.h b/UI_FX_T4.h index 87f501f..3dd1482 100644 --- a/UI_FX_T4.h +++ b/UI_FX_T4.h @@ -103,68 +103,75 @@ LCDML_add(69, LCDML_0_1_6, 1, "Note Refresh", UI_func_note_refresh); LCDML_add(70, LCDML_0_1_6, 2, "Velocity Lvl", UI_func_velocity_level); LCDML_add(71, LCDML_0_1, 7, "Operator", UI_handle_OP); LCDML_add(72, LCDML_0_1, 8, "Save Voice", UI_func_save_voice); -LCDML_add(73, LCDML_0, 2, "Load/Save", NULL); -LCDML_add(74, LCDML_0_2, 1, "Load Perf.", UI_func_load_performance); -LCDML_add(75, LCDML_0_2, 2, "Save Perf.", UI_func_save_performance); -LCDML_add(76, LCDML_0_2, 3, "Name Perf.", UI_func_set_performance_name); -LCDML_add(77, LCDML_0_2, 4, "MIDI", NULL); -LCDML_add(78, LCDML_0_2_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); -LCDML_add(79, LCDML_0_2_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); -LCDML_add(80, LCDML_0_2_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); -LCDML_add(81, LCDML_0, 3, "Drums", NULL); -LCDML_add(82, LCDML_0_3, 1, "Drums Main Vol", UI_func_drums_main_volume); -LCDML_add(83, LCDML_0_3, 2, "Drum Volumes", UI_func_drum_volume); -LCDML_add(84, LCDML_0_3, 3, "Drum Pan", UI_func_drum_pan); -LCDML_add(85, LCDML_0_3, 4, "Drum Rev.Send", UI_func_drum_reverb_send); -LCDML_add(86, LCDML_0_3, 5, "Drum Pitch", UI_func_drum_pitch); -LCDML_add(87, LCDML_0_3, 6, "Drum Tune", UI_func_drum_tune_offset); -LCDML_add(88, LCDML_0_3, 7, "MIDI Channel", UI_func_drum_midi_channel); -LCDML_add(89, LCDML_0_3, 8, "Smart Filter", UI_func_smart_filter); -LCDML_add(90, LCDML_0, 4, "E-Piano", NULL); -LCDML_add(91, LCDML_0_4, 1, "Voice Level", UI_func_epiano_sound_intensity); -LCDML_add(92, LCDML_0_4, 2, "Panorama", UI_func_epiano_panorama); -LCDML_add(93, LCDML_0_4, 3, "Audio", NULL); -LCDML_add(94, LCDML_0_4_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay; -LCDML_add(95, LCDML_0_4_3, 2, "Release", UI_func_epiano_release); // uint8_t release; -LCDML_add(96, LCDML_0_4_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness; -LCDML_add(97, LCDML_0_4_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble; -LCDML_add(98, LCDML_0_4_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo; -LCDML_add(99, LCDML_0_4_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune; -LCDML_add(100, LCDML_0_4_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune; -LCDML_add(101, LCDML_0_4, 4, "Effects", NULL); -LCDML_add(102, LCDML_0_4_4, 1, "Pan Tremolo", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo; -LCDML_add(103, LCDML_0_4_4, 2, "Pan LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo; -LCDML_add(104, LCDML_0_4_4, 3, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive; -LCDML_add(105, LCDML_0_4, 5, "MIDI", NULL); -LCDML_add(106, LCDML_0_4_5, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel; -LCDML_add(107, LCDML_0_4_5, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note; -LCDML_add(108, LCDML_0_4_5, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note; -LCDML_add(109, LCDML_0_4, 6, "Setup", NULL); -LCDML_add(110, LCDML_0_4_6, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose; -LCDML_add(111, LCDML_0_4_6, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony; -LCDML_add(112, LCDML_0_4_6, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense; -LCDML_add(113, LCDML_0, 5, "Sequencer", NULL); -LCDML_add(114, LCDML_0_5, 1, "Pattern Editor", UI_func_seq_pattern_editor); -LCDML_add(115, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor); -LCDML_add(116, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); -LCDML_add(117, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio); -LCDML_add(118, LCDML_0_5, 5, "Mute Matrix", UI_func_seq_mute_matrix); -LCDML_add(119, LCDML_0_5, 6, "Seq. Settings", NULL); -LCDML_add(120, LCDML_0_5_6, 1, "Tempo", UI_func_seq_tempo); -LCDML_add(121, LCDML_0_5_6, 2, "Seq. Length", UI_func_seq_lenght); -LCDML_add(122, LCDML_0_5_6, 3, "Track Setup", UI_func_seq_track_setup); -LCDML_add(123, LCDML_0_5_6, 4, "Seq.Disp.Style", UI_func_seq_display_style); -LCDML_add(124, LCDML_0_5_6, 5, "Dexed Assign", UI_func_dexed_assign); -LCDML_add(125, LCDML_0_5_6, 6, "Shift&Transp.", UI_func_arp_shift); -LCDML_add(126, LCDML_0_5_6, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct); -LCDML_add(127, LCDML_0_5_6, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount); -LCDML_add(128, LCDML_0_5_6, 9, "Smart Filter", UI_func_smart_filter); -LCDML_add(129, LCDML_0, 6, "System", NULL); -LCDML_add(130, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(131, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); -LCDML_add(132, LCDML_0_6, 3, "Favorites", UI_func_favorites); -LCDML_add(133, LCDML_0_6, 4, "Startup", UI_func_startup); -LCDML_add(134, LCDML_0, 7, "Info", UI_func_information); -LCDML_addAdvanced(135, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); -#define _LCDML_DISP_cnt 135 +LCDML_add(73, LCDML_0, 2, "Drums", NULL); +LCDML_add(74, LCDML_0_2, 1, "Drums Main Vol", UI_func_drums_main_volume); +LCDML_add(75, LCDML_0_2, 2, "Drum Volumes", UI_func_drum_volume); +LCDML_add(76, LCDML_0_2, 3, "Drum Pan", UI_func_drum_pan); +LCDML_add(77, LCDML_0_2, 4, "Drum Rev.Send", UI_func_drum_reverb_send); +LCDML_add(78, LCDML_0_2, 5, "Drum Pitch", UI_func_drum_pitch); +LCDML_add(79, LCDML_0_2, 6, "Drum Tune", UI_func_drum_tune_offset); +LCDML_add(80, LCDML_0_2, 7, "MIDI Channel", UI_func_drum_midi_channel); +LCDML_add(81, LCDML_0_2, 8, "Smart Filter", UI_func_smart_filter); +LCDML_add(82, LCDML_0, 3, "E-Piano", NULL); +LCDML_add(83, LCDML_0_3, 1, "Voice Level", UI_func_epiano_sound_intensity); +LCDML_add(84, LCDML_0_3, 2, "Panorama", UI_func_epiano_panorama); +LCDML_add(85, LCDML_0_3, 3, "Audio", NULL); +LCDML_add(86, LCDML_0_3_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay; +LCDML_add(87, LCDML_0_3_3, 2, "Release", UI_func_epiano_release); // uint8_t release; +LCDML_add(88, LCDML_0_3_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness; +LCDML_add(89, LCDML_0_3_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble; +LCDML_add(90, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo; +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(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; +LCDML_add(107, LCDML_0_3_6, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note; +LCDML_add(108, LCDML_0_3, 7, "Setup", NULL); +LCDML_add(109, LCDML_0_3_7, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose; +LCDML_add(110, LCDML_0_3_7, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony; +LCDML_add(111, LCDML_0_3_7, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense; +LCDML_add(112, LCDML_0, 4, "Sequencer", NULL); +LCDML_add(113, LCDML_0_4, 1, "Pattern Editor", UI_func_seq_pattern_editor); +LCDML_add(114, LCDML_0_4, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor); +LCDML_add(115, LCDML_0_4, 3, "Pattern Chain", UI_func_seq_pat_chain); +LCDML_add(116, LCDML_0_4, 4, "Arpeggio", UI_func_arpeggio); +LCDML_add(117, LCDML_0_4, 5, "Mute Matrix", UI_func_seq_mute_matrix); +LCDML_add(118, LCDML_0_4, 6, "Seq. Settings", NULL); +LCDML_add(119, LCDML_0_4_6, 1, "Tempo", UI_func_seq_tempo); +LCDML_add(120, LCDML_0_4_6, 2, "Seq. Length", UI_func_seq_lenght); +LCDML_add(121, LCDML_0_4_6, 3, "Track Setup", UI_func_seq_track_setup); +LCDML_add(122, LCDML_0_4_6, 4, "Seq.Disp.Style", UI_func_seq_display_style); +LCDML_add(123, LCDML_0_4_6, 5, "Dexed Assign", UI_func_dexed_assign); +LCDML_add(124, LCDML_0_4_6, 6, "Shift&Transp.", UI_func_arp_shift); +LCDML_add(125, LCDML_0_4_6, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct); +LCDML_add(126, LCDML_0_4_6, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount); +LCDML_add(127, LCDML_0_4_6, 9, "Smart Filter", UI_func_smart_filter); +LCDML_add(128, LCDML_0, 5, "Load/Save", NULL); +LCDML_add(129, LCDML_0_5, 1, "Load Perf.", UI_func_load_performance); +LCDML_add(130, LCDML_0_5, 2, "Save Perf.", UI_func_save_performance); +LCDML_add(131, LCDML_0_5, 3, "Name Perf.", UI_func_set_performance_name); +LCDML_add(132, LCDML_0_5, 4, "MIDI", NULL); +LCDML_add(133, LCDML_0_5_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); +LCDML_add(134, LCDML_0_5_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); +LCDML_add(135, LCDML_0_5_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); +LCDML_add(136, LCDML_0, 6, "System", NULL); +LCDML_add(137, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); +LCDML_add(138, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(139, LCDML_0_6, 3, "Favorites", UI_func_favorites); +LCDML_add(140, LCDML_0_6, 4, "Startup", UI_func_startup); +LCDML_add(141, LCDML_0, 7, "Info", UI_func_information); +LCDML_addAdvanced(142, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); +#define _LCDML_DISP_cnt 142 #endif diff --git a/config.h b/config.h index 9bded5c..a9ed60c 100644 --- a/config.h +++ b/config.h @@ -761,6 +761,10 @@ #define EP_OVERDRIVE_MAX 100 #define EP_OVERDRIVE_DEFAULT 0 +#define EP_REVERB_SEND_MIN 0 +#define EP_REVERB_SEND_MAX 100 +#define EP_REVERB_SEND_DEFAULT 0 + #define EP_LOWEST_NOTE_MIN 21 #define EP_LOWEST_NOTE_MAX 108 #define EP_LOWEST_NOTE_DEFAULT EP_LOWEST_NOTE_MIN