aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-02-23 21:52:32 +0100
committerEddy Pedroni <epedroni@pm.me>2025-02-23 21:52:32 +0100
commitbfad56faaa936cb80ab51fed10e9b89b5df11471 (patch)
tree116f7eb15f2be335b3cbaadcf4a8420415331bf1 /solo-tool-project/src/solo_tool
parent93ffa46e65433ea4e1ab12d9ef44e3c0d655dc6d (diff)
Most web UI features implemented, layout still messyHEADmaster
Diffstat (limited to 'solo-tool-project/src/solo_tool')
-rw-r--r--solo-tool-project/src/solo_tool/handlers.py13
-rw-r--r--solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py2
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py5
3 files changed, 16 insertions, 4 deletions
diff --git a/solo-tool-project/src/solo_tool/handlers.py b/solo-tool-project/src/solo_tool/handlers.py
index 040928c..1e0e22c 100644
--- a/solo-tool-project/src/solo_tool/handlers.py
+++ b/solo-tool-project/src/solo_tool/handlers.py
@@ -4,7 +4,7 @@ from solo_tool.solo_tool import SoloTool
def playPause(st: SoloTool) -> Callable[[], None]:
def f():
- if st.isPlaying():
+ if st.playing:
st.pause()
else:
st.play()
@@ -28,6 +28,11 @@ def positionToKeyPoint(st: SoloTool) -> Callable[[], None]:
st.keyPoint = st.position
return f
+def setKeyPoint(st: SoloTool, kp: float) -> Callable[[], None]:
+ def f():
+ st.keyPoint = kp
+ return f
+
def changeKeyPoint(st: SoloTool, delta: int) -> Callable[[], None]:
from bisect import bisect_right, bisect_left
def f():
@@ -46,7 +51,13 @@ def rateAbsolute(st: SoloTool, value: float) -> Callable[[], None]:
st.rate = value
return f
+def rateRelative(st: SoloTool, delta: float) -> Callable[[], None]:
+ def f():
+ st.rate += delta
+ return f
+
def volumeAbsolute(st: SoloTool, value: float) -> Callable[[], None]:
def f():
st.volume = value
return f
+
diff --git a/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py b/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
index 9582a88..38b7cce 100644
--- a/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
+++ b/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
@@ -113,7 +113,7 @@ class MidiController:
# playback control
self._setButtonLED(6, 0, MidiController.LED_RED)
- self._updatePlayPauseButton(self._soloTool.isPlaying())
+ self._updatePlayPauseButton(self._soloTool.playing)
# Key point control
self._setButtonLED(7, 2, MidiController.LED_YELLOW)
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 13e3c03..0f47aef 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -29,7 +29,7 @@ class SoloTool:
def addSong(self, path: str) -> None:
if not os.path.isfile(path):
- raise FileNotFoundError()
+ raise FileNotFoundError(path)
self._songs.append(path)
self._keyPoints.append([])
@@ -76,7 +76,8 @@ class SoloTool:
def stop(self):
self._player.stop()
- def isPlaying(self):
+ @property
+ def playing(self) -> bool:
return self._player.isPlaying()
def jump(self):