diff --git a/src/components/Dialogs/SceneDialogs/EditSceneDialog.tsx b/src/components/Dialogs/SceneDialogs/EditSceneDialog.tsx index 10174202..3363d012 100644 --- a/src/components/Dialogs/SceneDialogs/EditSceneDialog.tsx +++ b/src/components/Dialogs/SceneDialogs/EditSceneDialog.tsx @@ -990,7 +990,9 @@ const EditSceneDialog = () => { newMapping[0][item] = { buttonNumber: currentBtnNumber }; console.log('mapping after', newMapping); setMidiMapping(newMapping); - initMidi(); + setTimeout(() => { + initMidi(); + }, 100); } } diff --git a/src/components/Midi/MidiListener.tsx b/src/components/Midi/MidiListener.tsx index c7da349f..696cdb23 100644 --- a/src/components/Midi/MidiListener.tsx +++ b/src/components/Midi/MidiListener.tsx @@ -33,6 +33,7 @@ const MIDIListener = () => { const setMidiOutputs = useStore((state) => state.setMidiOutputs) const setMidiInput = useStore((state) => state.setMidiInput) const setMidiOutput = useStore((state) => state.setMidiOutput) + const recentScenes = useStore((state) => state.recentScenes) const midiInput = useStore((state) => state.midiInput) const midiOutput = useStore((state) => state.midiOutput) const midiMapping = useStore((state) => state.midiMapping) @@ -105,7 +106,7 @@ const MIDIListener = () => { } else if (value.command === 'scene') { if (output && buttonNumber !== -1) { try { - output.send([parseInt(`0x${value.typeSceneInactive}`) || 0x90, buttonNumber, parseInt(value.colorSceneInactive || midiSceneInactiveColor, 16) || 60]) + output.send([parseInt(`0x${value.typeSceneInactive}`) || 0x90, buttonNumber, parseInt(value.payload?.scene === recentScenes[0] ? (value.colorSceneActive || midiSceneActiveColor) : (value.colorSceneInactive || midiSceneInactiveColor), 16) || 60]) } catch (error) { console.error('Error sending MIDI message:', error) }