diff --git a/changelog.txt b/changelog.txt index 6bcd03bc..b98fe068 100644 --- a/changelog.txt +++ b/changelog.txt @@ -9,6 +9,7 @@ v1.0.5 * Fix for foot switch assignments being reversed * Fix for low-row bend not properly supporting multiple fingers for pitch-bend jumps anymore * Fix for played cell lights sticking if identical notes are played on both splits + * Fix to reset operation so that calibration data is not lost v1.0.4 diff --git a/linnstrument-firmware.ino b/linnstrument-firmware.ino index f58fcfd5..64748c0c 100644 --- a/linnstrument-firmware.ino +++ b/linnstrument-firmware.ino @@ -698,6 +698,9 @@ void setup() { reset(); + // initialize the calibration data for it to be a no-op, unless it's loaded from a previous calibration sample result + initializeCalibrationData(); + // setup system timers for interval between LED column refreshes and foot switch reads prevLedTimerCount = prevFootSwitchTimerCount = prevGlobalSettingsDisplayTimerCount = micros(); diff --git a/ls_midi.ino b/ls_midi.ino index 5e7b84d4..c19f3ee6 100644 --- a/ls_midi.ino +++ b/ls_midi.ino @@ -592,6 +592,30 @@ void receivedNrpn(int parameter, int value) { fxd4CurrentTempo = FXD4_FROM_INT(value); } break; + // Global Switch 1 Both Splits + case 239: + if (inRange(value, 0, 1)) { + Global.switchBothSplits[3] = value; + } + break; + // Global Switch 2 Both Splits + case 240: + if (inRange(value, 0, 1)) { + Global.switchBothSplits[2] = value; + } + break; + // Global Foot Left Both Splits + case 241: + if (inRange(value, 0, 1)) { + Global.switchBothSplits[0] = value; + } + break; + // Global Foot Right Both Splits + case 242: + if (inRange(value, 0, 1)) { + Global.switchBothSplits[1] = value; + } + break; } updateDisplay(); diff --git a/ls_settings.ino b/ls_settings.ino index 9291d585..943639cf 100644 --- a/ls_settings.ino +++ b/ls_settings.ino @@ -210,9 +210,6 @@ void initializeGlobalSettings() { Global.arpOctave = 0; initializeGlobalSensorSettings(); - - // initialize the calibration data for it to be a no-op, unless it's loaded from a previous calibration sample result - initializeCalibrationData(); } void initializeGlobalSensorSettings() { diff --git a/midi.txt b/midi.txt index b32f3904..b62a69ba 100644 --- a/midi.txt +++ b/midi.txt @@ -173,6 +173,10 @@ NRPN Value Description 236 1-7 Global Arp Tempo Note Value (1: 8, 2: 8 Tri, 3: 16, 4: 16 Swing, 5: 16 Tri, 6: 32, 7: 32 Tri) 237 0-2 Global Arp Octave Extension (0: None, 1: +1, 2: +2) 238 1-360 Global Clock BPM (applies when receiving no MIDI clock) +239 0-1 Global Switch 1 Both Splits (0: Off, 1: On) +240 0-1 Global Switch 2 Both Splits (0: Off, 1: On) +241 0-1 Global Foot Left Both Splits (0: Off, 1: On) +242 0-1 Global Foot Right Both Splits (0: Off, 1: On) Color Values ============