Skip to content

Commit 8d20628

Browse files
committed
Controller: Allow track selection on S-Series keyboards using the white buttons
1 parent 9188891 commit 8d20628

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

controller_definition.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MIT License
22

3-
# Copyright (c) 2021 Pablo Peral
3+
# Copyright (c) 2024 Pablo Peral
44

55
# Permission is hereby granted, free of charge, to any person obtaining a copy
66
# of this software and associated documentation files (the "Software"), to deal
@@ -585,12 +585,17 @@ def OnMidiMsgAdd(self, event):
585585
# Mute button - S-Series
586586
if event.data1 == nihia.buttons.button_list.get("MUTE"):
587587
event.handled = True
588-
self.mixerMuteSoloHandler("MUTE", event.data2, mixer.trackNumber())
588+
self.mixerCommandHandler("MUTE", event.data2, mixer.trackNumber())
589589

590590
# Solo button - S-Series
591591
elif event.data1 == nihia.buttons.button_list.get("SOLO"):
592592
event.handled = True
593-
self.mixerMuteSoloHandler("SOLO", event.data2, mixer.trackNumber())
593+
self.mixerCommandHandler("SOLO", event.data2, mixer.trackNumber())
594+
595+
# Track selection (top white buttons) - S-Series
596+
elif event.data1 == nihia.buttons.button_list.get("TRACK_SELECT"):
597+
event.handled = True
598+
self.mixerCommandHandler("TRACK_SELECTION", event.data2, mixer.trackNumber())
594599

595600
# 4D Encoder up
596601
elif event.data1 == nihia.buttons.button_list.get("ENCODER_Y_S") and event.data2 == nihia.buttons.button_list.get("UP"):
@@ -631,11 +636,11 @@ def OnMidiMsgAdd(self, event):
631636
def OnUpdateMeters(self):
632637
self.mixer.sendPeakInfo()
633638

634-
def mixerMuteSoloHandler(self, action: str, targetTrack: int, selectedTrack: int):
635-
""" Handles the way mixer and solo commands are sent from S-Series keyboards.
639+
def mixerCommandHandler(self, action: str, targetTrack: int, selectedTrack: int):
640+
""" Handles the way mute, solo and track selection commands are sent from S-Series keyboards.
636641
### Parameters
637642
638-
- action: MUTE or SOLO.
643+
- action: MUTE, SOLO or TRACK_SELECTION.
639644
- targetTrack: From 0 to 7, the track that the user is trying to mute or solo from the ones showing on the device's mixer.
640645
- selectedTrack: The currently selected track that is used to calculate the track group.
641646
"""
@@ -651,3 +656,6 @@ def mixerMuteSoloHandler(self, action: str, targetTrack: int, selectedTrack: int
651656

652657
elif action == "SOLO":
653658
mixer.soloTrack(trackFirst + targetTrack)
659+
660+
elif action == "TRACK_SELECTION":
661+
mixer.selectTrack(trackFirst + targetTrack)

0 commit comments

Comments
 (0)