From 7eccf7eeecbefaf8cc1eefa37a26c945877fb8d7 Mon Sep 17 00:00:00 2001 From: Johan Berglund Date: Mon, 24 Feb 2020 18:27:06 +0100 Subject: [PATCH] New settings for better portamento performance on Roland SE-02. SEL for switching between OFF and LIN, SEE for switching between OFF and EXP. --- NuEVI/NuEVI.ino | 8 ++++++++ NuEVI/config.h | 1 + NuEVI/menu.cpp | 4 ++-- NuEVI/settings.cpp | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/NuEVI/NuEVI.ino b/NuEVI/NuEVI.ino index 1d53d0d..6d80d85 100644 --- a/NuEVI/NuEVI.ino +++ b/NuEVI/NuEVI.ino @@ -1332,6 +1332,10 @@ void portamento_() { void portOn() { if (portamento == 2) { // if portamento midi switching is enabled midiSendControlChange(CCN_PortOnOff, 127); + } else if (portamento == 3) { // if portamento midi switching is enabled - SE02 OFF/LIN + midiSendControlChange(CCN_PortSE02, 64); + } else if (portamento == 4) { // if portamento midi switching is enabled - SE02 OFF/EXP + midiSendControlChange(CCN_PortSE02, 127); } portIsOn = 1; } @@ -1360,6 +1364,10 @@ void portOff() { } if (portamento == 2) { // if portamento midi switching is enabled midiSendControlChange(CCN_PortOnOff, 0); + } else if (portamento == 3) { // if portamento midi switching is enabled - SE02 OFF/LIN + midiSendControlChange(CCN_PortSE02, 0); + } else if (portamento == 4) { // if portamento midi switching is enabled - SE02 OFF/EXP + midiSendControlChange(CCN_PortSE02, 0); } portIsOn = 0; oldport = 0; diff --git a/NuEVI/config.h b/NuEVI/config.h index 69607b9..a84f894 100644 --- a/NuEVI/config.h +++ b/NuEVI/config.h @@ -10,6 +10,7 @@ #define ON_Delay 20 // Set Delay after ON threshold before velocity is checked (wait for tounging peak) #define CCN_Port 5 // Controller number for portamento level #define CCN_PortOnOff 65// Controller number for portamento on/off +#define CCN_PortSE02 9 // Controller number for portamento type on Roland SE-02 // Send breath CC data no more than every CC_BREATH_INTERVAL // milliseconds (due to timing errors, the value should be about half the actual wanted value) diff --git a/NuEVI/menu.cpp b/NuEVI/menu.cpp index 31686d1..4535af7 100644 --- a/NuEVI/menu.cpp +++ b/NuEVI/menu.cpp @@ -891,9 +891,9 @@ const MenuPage breathMenuPage = { //*********************************************************** // Control menu const MenuEntrySub portMenu = { - MenuType::ESub, "PORT/GLD", "PORT/GLD", &portamento, 0, 2, MenuEntryFlags::EMenuEntryWrap, + MenuType::ESub, "PORT/GLD", "PORT/GLD", &portamento, 0, 4, MenuEntryFlags::EMenuEntryWrap, [](SubMenuRef __unused,char* out, const char ** __unused unit) { - const char* labs[] = { "OFF", "ON", "SW" }; + const char* labs[] = { "OFF", "ON", "SW", "SEL", "SEE" }; strncpy(out, labs[portamento], 4); }, [](SubMenuRef __unused sub) { writeSetting(PORTAM_ADDR,portamento); } diff --git a/NuEVI/settings.cpp b/NuEVI/settings.cpp index 9e2b0d9..8f2fb4c 100644 --- a/NuEVI/settings.cpp +++ b/NuEVI/settings.cpp @@ -125,7 +125,7 @@ void readEEPROM(const bool factoryReset) { breathCC = readSettingBounded(BREATH_CC_ADDR, 0, 10, BREATH_CC_FACTORY); breathAT = readSettingBounded(BREATH_AT_ADDR, 0, 1, BREATH_AT_FACTORY); velocity = readSettingBounded(VELOCITY_ADDR, 0, 127, VELOCITY_FACTORY); - portamento = readSettingBounded(PORTAM_ADDR, 0, 2, PORTAM_FACTORY); + portamento = readSettingBounded(PORTAM_ADDR, 0, 4, PORTAM_FACTORY); PBdepth = readSettingBounded(PB_ADDR, 0, 12, PB_FACTORY); extraCT = readSettingBounded(EXTRA_ADDR, 0, 4, EXTRA_FACTORY); vibrato = readSettingBounded(VIBRATO_ADDR, 0, 9, VIBRATO_FACTORY);