* Adjustment setting for thumb lever (for optimizing thumb portamento control). By setting THR (level of push force to activate) and MAX (level of push force to achieve maximum set portamento) values close to eachother at the desired point of activation, the new glide limit setting to desired rate will create a switching type set rate controller (similar to Crumar EVI glide key). With THR and MAX setup with separation to taste, a continous control up to level set by glide limit is achieved.
* Glide setting SWO, SWitching Only, sending only Glide on/off (CC#65) for use with synths where glide rate CC#5 is used in non standard ways, for example some DSI/Sequential synths like the Prophet REV2 or Prophet 12 where glide rates are set individually for each oscillator. * Glide limit setting for portamento. Doubles as setting for portamento level sent using pinky key/mod key in GLD mode. (Can be changed both in menu and in GLD mode.) * Setting of level for LVL, LVP and GLD now reqires touching both pinky/mod and third trill/RHp3 for setting mode activation, this to avoid accidental change of setting when pinky/mod key is touched. * Rate of setting movement up and down for LVL, LVP and GLD has been adjusted. Became very much too fast after the timing issues were solved in 1.5b1 * A short delay before note offs in legato transitions is added to make playback of recorded midi behave correctly (keeping note on and note off from being registered on the same timestamp).
This commit is contained in:
parent
51f5ab54f6
commit
ee438c200d
9 changed files with 10909 additions and 39 deletions
|
@ -413,7 +413,7 @@ static void mainTitleGetStr(char* out) {
|
|||
case 2:
|
||||
vLowLimit = LIP_BAT_LOW;
|
||||
}
|
||||
if (vMeterReading < vLowLimit) { //2300 alkaline, 2250 lipo, 2200 nimh
|
||||
if (vMeterReading <= vLowLimit) { //2300 alkaline, 2250 lipo, 2200 nimh
|
||||
memcpy(splice2, "LOW ", 4);
|
||||
} else {
|
||||
int voltage = map(vMeterReading,2200,3060,36,50);
|
||||
|
@ -1269,15 +1269,27 @@ const MenuPage breathMenuPage = {
|
|||
//***********************************************************
|
||||
// Control menu
|
||||
const MenuEntrySub portMenu = {
|
||||
MenuType::ESub, "PORT/GLD", "PORT/GLD", &portamento, 0, 4, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "GLIDE CTL", "PORT/GLD", &portamento, 0, 5, MenuEntryFlags::EMenuEntryWrap,
|
||||
[](SubMenuRef __unused,char* out, const char ** __unused unit) {
|
||||
const char* labs[] = { "OFF", "ON", "SW", "SEL", "SEE" };
|
||||
const char* labs[] = { "OFF", "ON", "SW", "SEL", "SEE", "SWO" };
|
||||
strncpy(out, labs[portamento], 4);
|
||||
},
|
||||
[](SubMenuRef __unused sub) { writeSetting(PORTAM_ADDR,portamento); }
|
||||
, nullptr
|
||||
};
|
||||
|
||||
|
||||
const MenuEntrySub portLimitMenu = {
|
||||
MenuType::ESub, "GLIDE LMT", "MAX LEVEL", &portLimit, 1, 127, MenuEntryFlags::EMenuEntryWrap,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(portLimit, out);
|
||||
},
|
||||
[](const SubMenuRef & __unused sub) { writeSetting(PORTLIMIT_ADDR,portLimit); }
|
||||
, nullptr
|
||||
};
|
||||
|
||||
|
||||
|
||||
const MenuEntrySub pitchBendMenu = {
|
||||
MenuType::ESub, "PITCHBEND", "PITCHBEND", &PBdepth, 0, 12, MenuEntryFlags::ENone,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
|
@ -1429,6 +1441,7 @@ const MenuEntrySub lpinky3Menu = {
|
|||
#if defined(NURAD)
|
||||
const MenuEntry* controlMenuEntries[] = {
|
||||
(MenuEntry*)&portMenu,
|
||||
(MenuEntry*)&portLimitMenu,
|
||||
(MenuEntry*)&extraMenu,
|
||||
(MenuEntry*)&extraCC2Menu,
|
||||
(MenuEntry*)&harmonicsMenu,
|
||||
|
@ -1444,6 +1457,7 @@ const MenuEntry* controlMenuEntries[] = {
|
|||
#else
|
||||
const MenuEntry* controlMenuEntries[] = {
|
||||
(MenuEntry*)&portMenu,
|
||||
(MenuEntry*)&portLimitMenu,
|
||||
(MenuEntry*)&extraMenu,
|
||||
(MenuEntry*)&extraCC2Menu,
|
||||
(MenuEntry*)&harmonicsMenu,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue