From 3e9f9b12fc7104cde2ba141c95ae9eaa99614330 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Thu, 22 Oct 2026 22:34:17 +0200 Subject: Multitrack support in the library --- solo-tool-project/src/solo_tool/solo_tool.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'solo-tool-project/src/solo_tool/solo_tool.py') diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py index c4acaf8..5ac7140 100644 --- a/solo-tool-project/src/solo_tool/solo_tool.py +++ b/solo-tool-project/src/solo_tool/solo_tool.py @@ -14,6 +14,29 @@ class SoloTool: self._volumes = [] self._adHoc = False + tracks = [ + ("vocalTrackEnabled", Player.VOCAL_TRACK), + ("guitarTrackEnabled", Player.GUITAR_TRACK), + ("bassTrackEnabled", Player.BASS_TRACK), + ("pianoTrackEnabled", Player.PIANO_TRACK), + ("drumTrackEnabled", Player.DRUM_TRACK), + ("otherTrackEnabled", Player.OTHER_TRACK) + ] + for trackName, trackId in tracks: + if not hasattr(type(self), trackName): + setattr(type(self), trackName, self._makeTrackProperty(trackId)) + + @staticmethod + def _makeTrackProperty(trackId: int) -> property: + def getter(self) -> bool: + return self._player.trackEnabled(trackId) + + def setter(self, new: bool) -> None: + if new is not None and new != self._player.trackEnabled(trackId): + self._player.setTrackEnabled(trackId, new) + + return property(getter, setter) + def __del__(self): del self._player @@ -165,3 +188,7 @@ class SoloTool: def playingAdHoc(self) -> bool: return self._adHoc + @property + def tracksSupported(self) -> bool: + return self._player.tracksSupported() + -- cgit v1.2.3