refactor: remove Play L/R button, route A/B to stereo channels
This commit is contained in:
1 parent
9c00d2e781
commit
1ca71c16fc
1 file changed
+11
-11
+11
-11
@@ -269,7 +269,6 @@ class SyncWindow(QtWidgets.QMainWindow):
|
||||
self.btn_play_a = QtWidgets.QPushButton("Play A")
|
||||
self.btn_play_b = QtWidgets.QPushButton("Play B+lag")
|
||||
self.btn_play_mix = QtWidgets.QPushButton("Play Mix")
|
||||
self.btn_play_split = QtWidgets.QPushButton("Play L/R")
|
||||
self.btn_stop = QtWidgets.QPushButton("Stop")
|
||||
|
||||
ctr2.addWidget(QtWidgets.QLabel("Duration:"))
|
||||
@@ -282,10 +281,10 @@ class SyncWindow(QtWidgets.QMainWindow):
|
||||
self.play_dur.setMaximumWidth(80)
|
||||
ctr2.addWidget(self.play_dur)
|
||||
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_play_split, self.btn_stop]:
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_stop]:
|
||||
ctr2.addWidget(b)
|
||||
if not HAS_SD:
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_play_split, self.btn_stop]:
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_stop]:
|
||||
b.setEnabled(False)
|
||||
b.setToolTip("sounddevice not installed — run make install (optional)")
|
||||
ctr2.addWidget(QtWidgets.QLabel("(sounddevice missing — playback disabled)"))
|
||||
@@ -308,7 +307,6 @@ class SyncWindow(QtWidgets.QMainWindow):
|
||||
self.btn_play_a.clicked.connect(lambda: self.play("a"))
|
||||
self.btn_play_b.clicked.connect(lambda: self.play("b"))
|
||||
self.btn_play_mix.clicked.connect(lambda: self.play("mix"))
|
||||
self.btn_play_split.clicked.connect(lambda: self.play("split"))
|
||||
self.btn_stop.clicked.connect(self.stop_play)
|
||||
|
||||
self.update_labels()
|
||||
@@ -509,15 +507,17 @@ class SyncWindow(QtWidgets.QMainWindow):
|
||||
try:
|
||||
sd.stop()
|
||||
if which == "a":
|
||||
sd.play(a_seg, samplerate=sr)
|
||||
# A on left, silence on right
|
||||
stereo = np.column_stack([a_seg, np.zeros_like(a_seg)])
|
||||
sd.play(stereo, samplerate=sr)
|
||||
elif which == "b":
|
||||
sd.play(b_seg, samplerate=sr)
|
||||
# Silence on left, B on right
|
||||
stereo = np.column_stack([np.zeros_like(b_seg), b_seg])
|
||||
sd.play(stereo, samplerate=sr)
|
||||
elif which == "mix":
|
||||
mix = (a_seg + b_seg) / 2.0
|
||||
sd.play(mix, samplerate=sr)
|
||||
elif which == "split":
|
||||
# A on left, B on right
|
||||
stereo = np.column_stack([a_seg, b_seg])
|
||||
# A on left, B on right (stereo split)
|
||||
ml = min(len(a_seg), len(b_seg))
|
||||
stereo = np.column_stack([a_seg[:ml], b_seg[:ml]])
|
||||
sd.play(stereo, samplerate=sr)
|
||||
except Exception as e:
|
||||
print(f"playback failed {e}", file=sys.stderr)
|
||||
|
||||
Reference in new issue
Block a user