From e9564631f5a841d5e6ebacd1217b0f80096677ef Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Wed, 24 May 2023 09:11:46 +0200 Subject: [PATCH 1/2] New wide modes optional, fixed issue with preset scrolling appeared since previous PR --- include/megafm.h | 1 + src/ISR.cpp | 1 + src/MEGAfm.cpp | 18 +++++++++++------- src/buttons.cpp | 7 ++++++- src/midi.cpp | 8 ++++---- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/include/megafm.h b/include/megafm.h index aa68102..09effd9 100644 --- a/include/megafm.h +++ b/include/megafm.h @@ -17,6 +17,7 @@ #define YM_WR 11 #define YM_IC 30 extern byte presetChordNumber; +extern bool newWide; // enable new wide modes extern bool chord; extern bool noRecAction; extern bool recHeld; diff --git a/src/ISR.cpp b/src/ISR.cpp index 84d220d..e061b15 100644 --- a/src/ISR.cpp +++ b/src/ISR.cpp @@ -108,6 +108,7 @@ void isr() { preset = 99; } } + timeToShowPresetNumber = true; } } diff --git a/src/MEGAfm.cpp b/src/MEGAfm.cpp index cb223da..4368b4c 100644 --- a/src/MEGAfm.cpp +++ b/src/MEGAfm.cpp @@ -17,6 +17,7 @@ cd /Users/a/Documents/bootloaderT cd /Users/a/Documents/bootloaderT&&cp -f /priv #include "preset.h" // check that we didn't do a rec+voicing before latching arp rec mode +bool newWide; // enable new wide modes bool noRecAction; bool recHeld; bool chordNotes[128]; @@ -317,19 +318,20 @@ void setup() { // 3953 bit6 = new fat tuning // 3954 = pickup mode (0=on) - // 3958 =bendDown - // 3959 =bendUp - // 3960 =mpe mode - // 3961 =vel >lfo1 depth - // 3962 =mod >lfo2 depth - // 3963 =at >lfo3 depth + // 3958 = bendDown + // 3959 = bendUp + // 3960 = mpe mode + // 3961 = vel >lfo1 depth + // 3962 = mod >lfo2 depth + // 3963 = at >lfo3 depth // 3964 lastbank // 3965 brightness. // 3966 = bit 0 stereoCh3 // 3967 = note priority 0=low 1=high 2=last // 3968 = bit 0 fatSpreadMode - // 3969= magic value 82 says we are already on FW 3.0 + // 3969 = magic value 82 says we are already on FW 3.0 + // 3970 = enable new wide modes // otherwise set all SSEG to off byte input = EEPROM.read(3968); fatSpreadMode = bitRead(input, 0); @@ -341,6 +343,8 @@ void setup() { input = EEPROM.read(3966); stereoCh3 = bitRead(input, 0); + newWide = EEPROM.read(3970); + input = EEPROM.read(3950); noiseTableLength[0] = 0; bitWrite(noiseTableLength[0], 0, bitRead(input, 2)); diff --git a/src/buttons.cpp b/src/buttons.cpp index 0866345..a89a795 100644 --- a/src/buttons.cpp +++ b/src/buttons.cpp @@ -656,13 +656,18 @@ void buttChanged(Button number, bool value) { if (!mpe) { // Poly12 Wide6 dualCh3 unison // Wide4 Wide3 + VoiceMode nextVoiceMode[6] = {kVoicingWide6, kVoicingWide4, kVoicingUnison, kVoicingPoly12, kVoicingWide3, kVoicingDualCh3}; + if (voiceMode < kVoiceModeCount) { voiceMode = nextVoiceMode[voiceMode]; } else { voiceMode = kVoicingPoly12; } + if (!newWide && (voiceMode == kVoicingWide4 || voiceMode == kVoicingWide3)) { + voiceMode = kVoicingDualCh3; + } showVoiceMode(voiceMode); sendCC(51, voiceMode); @@ -878,7 +883,7 @@ void buttChanged(Button number, bool value) { voiceMode = kVoicingUnison; showVoiceMode(voiceMode); } - seqRec = true; + seqRec = true;displayFreeze=0; arpMode = 6; ledSet(23, 1); digit(0, 5); diff --git a/src/midi.cpp b/src/midi.cpp index 2cd8a62..d7b7985 100644 --- a/src/midi.cpp +++ b/src/midi.cpp @@ -790,9 +790,9 @@ void HandleControlChange(byte channel, byte number, byte val) { EEPROM.update(3958, bendDown); break; - case 18: - mydisplay.setIntensity(0, constrain(val, 1, 15)); - EEPROM.update(3965, constrain(val, 0, 15)); + case 20: + newWide = constrain(val, 0, 1); + EEPROM.update(3970, constrain(val, 0, 1)); break; } } @@ -825,7 +825,7 @@ void HandleControlChange(byte channel, byte number, byte val) { sendTool(17, bendDown); sendTool(18, EEPROM.read(3965)); sendTool(19, fatMode); - + sendTool(20, newWide); toolMode = true; // MEGAfm is listening to new settings (CC on CH16) } // did we receive 1982 twice on channel 16? From 0537d277269347c31df714ae5031e99ea00afba8 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Wed, 24 May 2023 09:16:59 +0200 Subject: [PATCH 2/2] fixed brightness setting --- src/buttons.cpp | 3 ++- src/midi.cpp | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/buttons.cpp b/src/buttons.cpp index a89a795..e295418 100644 --- a/src/buttons.cpp +++ b/src/buttons.cpp @@ -883,7 +883,8 @@ void buttChanged(Button number, bool value) { voiceMode = kVoicingUnison; showVoiceMode(voiceMode); } - seqRec = true;displayFreeze=0; + seqRec = true; + displayFreeze = 0; arpMode = 6; ledSet(23, 1); digit(0, 5); diff --git a/src/midi.cpp b/src/midi.cpp index d7b7985..7307868 100644 --- a/src/midi.cpp +++ b/src/midi.cpp @@ -703,6 +703,10 @@ void HandleControlChange(byte channel, byte number, byte val) { bitWrite(temp, 4, arpClockEnable); EEPROM.update(3953, temp); break; + case 18: + mydisplay.setIntensity(0, constrain(val, 1, 15)); + EEPROM.update(3965, constrain(val, 0, 15)); + break; case 19: if (val) {