From 97e1a7919a0a979f2a7ce4c0fa308e9d31677df6 Mon Sep 17 00:00:00 2001 From: Justin Mammarella Date: Tue, 25 Jun 2019 19:13:27 +1000 Subject: [PATCH] TrigGroup==CurrentTrack could cause DSP error --- avr/cores/megacommand/MCL/MCLActions.cpp | 5 ++--- avr/cores/megacommand/MCL/MDTrack.cpp | 7 +++++-- avr/cores/megacommand/mcl_setup.cpp | 3 +++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/avr/cores/megacommand/MCL/MCLActions.cpp b/avr/cores/megacommand/MCL/MCLActions.cpp index 6af0d3964..107b75cbe 100644 --- a/avr/cores/megacommand/MCL/MCLActions.cpp +++ b/avr/cores/megacommand/MCL/MCLActions.cpp @@ -677,15 +677,14 @@ void MCLActions::md_set_machine(uint8_t track, MDMachine *machine, MDKit *kit_, } if ((kit_->trigGroups[track] != machine->trigGroup)) { - if (machine->trigGroup == 255) { + if ((machine->trigGroup > 15) || (kit_->trigGroups[track] == track)) { MD.setTrigGroup(track, 127); } else { MD.setTrigGroup(track, machine->trigGroup); } } if ((kit_->muteGroups[track] != machine->muteGroup)) { - if (machine->muteGroup == 255) { - + if ((machine->muteGroup > 15) || (kit_->muteGroups[track] == track)) { MD.setMuteGroup(track, 127); } else { MD.setMuteGroup(track, machine->muteGroup); diff --git a/avr/cores/megacommand/MCL/MDTrack.cpp b/avr/cores/megacommand/MCL/MDTrack.cpp index 1ec3a84c3..ec5d0e9ce 100644 --- a/avr/cores/megacommand/MCL/MDTrack.cpp +++ b/avr/cores/megacommand/MCL/MDTrack.cpp @@ -113,8 +113,11 @@ void MDTrack::place_track_in_kit(int tracknumber, uint8_t column, MDKit *kit, memcpy(&(kit->lfos[tracknumber]), &machine.lfo, sizeof(machine.lfo)); - kit->trigGroups[tracknumber] = machine.trigGroup; - kit->muteGroups[tracknumber] = machine.muteGroup; + if ((machine.trigGroup < 16) && (machine.trigGroup != column)) { kit->trigGroups[tracknumber] = machine.trigGroup; } + else { kit->trigGroups[tracknumber] = 255; } + + if ((machine.muteGroup < 16) && (machine.muteGroup != column)) { kit->muteGroups[tracknumber] = machine.muteGroup; } + else { kit->muteGroups[tracknumber] = 255; } } void MDTrack::init() { diff --git a/avr/cores/megacommand/mcl_setup.cpp b/avr/cores/megacommand/mcl_setup.cpp index f328fb6df..8542108f9 100644 --- a/avr/cores/megacommand/mcl_setup.cpp +++ b/avr/cores/megacommand/mcl_setup.cpp @@ -1,3 +1,5 @@ +#ifdef MCL + #include "MCL.h" void setup() { @@ -8,3 +10,4 @@ void setup() { void loop() { // put your main code here, to run repeatedly: } +#endif