From bbcb4b6eddc0dfe1ae9b8abb6ac920b61b05f269 Mon Sep 17 00:00:00 2001 From: MrDham Date: Sun, 19 Dec 2021 14:34:46 +0100 Subject: [PATCH 1/3] Update application.cpp --- Open_Theremin_V3/application.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Open_Theremin_V3/application.cpp b/Open_Theremin_V3/application.cpp index cd2b837..aa32814 100644 --- a/Open_Theremin_V3/application.cpp +++ b/Open_Theremin_V3/application.cpp @@ -57,6 +57,8 @@ static uint8_t flag_pitch_bend_on = 1; static uint8_t loop_midi_cc = 7; static uint8_t rod_midi_cc = 255; static uint8_t rod_midi_cc_lo = 255; +static double rod_cc_scale = 1; + // tweakable paramameters #define VELOCITY_SENS 9 // How easy it is to reach highest velocity (127). Something betwen 5 and 12. @@ -578,7 +580,7 @@ void Application::midi_application () } // Calculate rod antena cc value for midi - new_midi_rod_cc_val = round (double_log_freq * 128); // 14 bit value ! + new_midi_rod_cc_val = round (min(((double_log_freq * 128) * rod_cc_scale), 16383); // 14 bit value ! // State machine for MIDI switch (_midistate) @@ -916,34 +918,42 @@ void Application::set_parameters () case 0: rod_midi_cc = 255; // Nothing rod_midi_cc_lo = 255; // Nothing + rod_cc_scale = 1; break; case 1: rod_midi_cc = 8; // Balance rod_midi_cc_lo = 255; // No least significant bits - break; + rod_cc_scale = 1.74; + break; case 2: rod_midi_cc = 10; // Pan rod_midi_cc_lo = 255; // No least significant bits + rod_cc_scale = 1.74; break; case 3: rod_midi_cc = 16; // General Purpose 1 (14 Bits) rod_midi_cc_lo = 48; // General Purpose 1 least significant bits + rod_cc_scale = 1; break; case 4: rod_midi_cc = 17; // General Purpose 2 (14 Bits) rod_midi_cc_lo = 49; // General Purpose 2 least significant bits + rod_cc_scale = 1.74; break; case 5: rod_midi_cc = 18; // General Purpose 3 (7 Bits) rod_midi_cc_lo = 255; // No least significant bits + rod_cc_scale = 1; break; case 6: rod_midi_cc = 19; // General Purpose 4 (7 Bits) rod_midi_cc_lo = 255; // No least significant bits + rod_cc_scale = 1.74; break; default: rod_midi_cc = 74; // Cutoff (exists of both loop and rod) rod_midi_cc_lo = 255; // No least significant bits + rod_cc_scale = 1.74; break; } break; From 6f2d30298c6c34c8a810dfdcee160ccab80ad8cd Mon Sep 17 00:00:00 2001 From: MrDham Date: Sun, 19 Dec 2021 18:36:40 +0100 Subject: [PATCH 2/3] Update application.cpp --- Open_Theremin_V3/application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Open_Theremin_V3/application.cpp b/Open_Theremin_V3/application.cpp index aa32814..4914d5e 100644 --- a/Open_Theremin_V3/application.cpp +++ b/Open_Theremin_V3/application.cpp @@ -580,7 +580,7 @@ void Application::midi_application () } // Calculate rod antena cc value for midi - new_midi_rod_cc_val = round (min(((double_log_freq * 128) * rod_cc_scale), 16383); // 14 bit value ! + new_midi_rod_cc_val = round (min(((double_log_freq * 128) * rod_cc_scale), 16383)); // 14 bit value ! // State machine for MIDI switch (_midistate) From 9341f8033dea5341451206993186843201dcd047 Mon Sep 17 00:00:00 2001 From: MrDham Date: Sun, 19 Dec 2021 20:24:13 +0100 Subject: [PATCH 3/3] Update application.cpp --- Open_Theremin_V3/application.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Open_Theremin_V3/application.cpp b/Open_Theremin_V3/application.cpp index 4914d5e..c65bdf3 100644 --- a/Open_Theremin_V3/application.cpp +++ b/Open_Theremin_V3/application.cpp @@ -918,42 +918,42 @@ void Application::set_parameters () case 0: rod_midi_cc = 255; // Nothing rod_midi_cc_lo = 255; // Nothing - rod_cc_scale = 1; + rod_cc_scale = 1.0; break; case 1: rod_midi_cc = 8; // Balance rod_midi_cc_lo = 255; // No least significant bits - rod_cc_scale = 1.74; + rod_cc_scale = 1.0; break; case 2: rod_midi_cc = 10; // Pan rod_midi_cc_lo = 255; // No least significant bits - rod_cc_scale = 1.74; + rod_cc_scale = 1.0; break; case 3: rod_midi_cc = 16; // General Purpose 1 (14 Bits) rod_midi_cc_lo = 48; // General Purpose 1 least significant bits - rod_cc_scale = 1; + rod_cc_scale = 1.0; break; case 4: rod_midi_cc = 17; // General Purpose 2 (14 Bits) rod_midi_cc_lo = 49; // General Purpose 2 least significant bits - rod_cc_scale = 1.74; + rod_cc_scale = 1.0; break; case 5: rod_midi_cc = 18; // General Purpose 3 (7 Bits) rod_midi_cc_lo = 255; // No least significant bits - rod_cc_scale = 1; + rod_cc_scale = 1.0; break; case 6: rod_midi_cc = 19; // General Purpose 4 (7 Bits) rod_midi_cc_lo = 255; // No least significant bits - rod_cc_scale = 1.74; + rod_cc_scale = 1.0; break; default: rod_midi_cc = 74; // Cutoff (exists of both loop and rod) rod_midi_cc_lo = 255; // No least significant bits - rod_cc_scale = 1.74; + rod_cc_scale = 1.0; break; } break;