From 8ba24a97e204228023e5380f6e7d0aa22382f277 Mon Sep 17 00:00:00 2001 From: Honney OC Date: Tue, 15 Sep 2026 19:07:57 +0000 Subject: [PATCH] refactor: remove Play L/R button, route A/B to stereo channels --- sync_audio_test.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/sync_audio_test.py b/sync_audio_test.py index 3733f70..3ca33c7 100644 --- a/sync_audio_test.py +++ b/sync_audio_test.py @@ -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)