From 7b601dc00b452fe76ffd7f5073ed728622e7b5f2 Mon Sep 17 00:00:00 2001 From: Holger Wirtz Date: Wed, 22 Mar 2023 09:49:39 +0100 Subject: [PATCH] Added engine selection. --- MicroDexed.ino | 2 +- UI.hpp | 7 ++++--- addon/SD/PERFORMANCE/0/voice1.json | 3 ++- addon/SD/PERFORMANCE/0/voice2.json | 3 ++- config.h | 2 +- dexed_sd.cpp | 2 ++ 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/MicroDexed.ino b/MicroDexed.ino index 43b0894..026bced 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -2129,7 +2129,7 @@ void set_voiceconfig_params(uint8_t instance_id) { MicroDexed[instance_id]->doRefreshVoice(); MicroDexed[instance_id]->setMonoMode(configuration.dexed[instance_id].monopoly); MicroDexed[instance_id]->setNoteRefreshMode(configuration.dexed[instance_id].note_refresh); - MicroDexed[instance_id]->setEngineType(MKI); + MicroDexed[instance_id]->setEngineType(configuration.dexed[instance_id].engine); // Dexed output level MicroDexed[instance_id]->setGain(midi_volume_transform(map(configuration.dexed[instance_id].sound_intensity, SOUND_INTENSITY_MIN, SOUND_INTENSITY_MAX, 0, 127))); diff --git a/UI.hpp b/UI.hpp index 3033e56..e6015ab 100644 --- a/UI.hpp +++ b/UI.hpp @@ -4865,15 +4865,16 @@ void UI_func_engine(uint8_t param) { display.clear(); display.show(0, 0, 16, "Engine"); + display.show(1, 0, 16, "[ ]"); switch (configuration.dexed[selected_instance_id].engine) { case 0: - display.show(1, 0, 16, "[Modern]"); + display.show(1, 1, 6, "Modern"); break; case 1: - display.show(1, 0, 16, "[Mark I]"); + display.show(1, 1, 6, "Mark I"); break; case 2: - display.show(1, 0, 16, "[OPL]"); + display.show(1, 1, 6, "OPL"); break; } diff --git a/addon/SD/PERFORMANCE/0/voice1.json b/addon/SD/PERFORMANCE/0/voice1.json index eefab85..d740933 100644 --- a/addon/SD/PERFORMANCE/0/voice1.json +++ b/addon/SD/PERFORMANCE/0/voice1.json @@ -29,5 +29,6 @@ "portamento_glissando": 0, "portamento_time": 0, "op_enabled": 63, - "midi_channel": 2 + "midi_channel": 2, + "engine": 1 } diff --git a/addon/SD/PERFORMANCE/0/voice2.json b/addon/SD/PERFORMANCE/0/voice2.json index 38d834c..f648a2c 100644 --- a/addon/SD/PERFORMANCE/0/voice2.json +++ b/addon/SD/PERFORMANCE/0/voice2.json @@ -29,5 +29,6 @@ "portamento_glissando": 0, "portamento_time": 0, "op_enabled": 63, - "midi_channel": 3 + "midi_channel": 3, + "engine": 1 } diff --git a/config.h b/config.h index 4f26754..306a334 100644 --- a/config.h +++ b/config.h @@ -525,7 +525,7 @@ #define ENGINE_MIN 0 #define ENGINE_MAX 2 -#define ENGINE_DEFAULT 0 +#define ENGINE_DEFAULT 1 // 0=Modern, 1=MkI, 2=OPL #define PERFORMANCE_NUM_MIN 0 #define PERFORMANCE_NUM_MAX 99 diff --git a/dexed_sd.cpp b/dexed_sd.cpp index 035655e..40613da 100644 --- a/dexed_sd.cpp +++ b/dexed_sd.cpp @@ -614,6 +614,7 @@ bool load_sd_voiceconfig_json(uint8_t vc, uint8_t instance_id) { configuration.dexed[instance_id].portamento_time = data_json["portamento_time"]; configuration.dexed[instance_id].op_enabled = data_json["op_enabled"]; configuration.dexed[instance_id].midi_channel = data_json["midi_channel"]; + configuration.dexed[instance_id].engine = data_json["engine"]; check_configuration_dexed(instance_id); set_voiceconfig_params(instance_id); @@ -695,6 +696,7 @@ bool save_sd_voiceconfig_json(uint8_t vc, uint8_t instance_id) { data_json["portamento_time"] = configuration.dexed[instance_id].portamento_time; data_json["op_enabled"] = configuration.dexed[instance_id].op_enabled; data_json["midi_channel"] = configuration.dexed[instance_id].midi_channel; + data_json["engine"] = configuration.dexed[instance_id].engine; #if defined(DEBUG) && defined(DEBUG_SHOW_JSON) Serial.println(F("Write JSON data:"));