feat: add split L/R playback mode for audio sync comparison
This commit is contained in:
1 parent
bc5bbb5e23
commit
de00a23f47
1 file changed
+8
-2
+8
-2
@@ -269,6 +269,7 @@ 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:"))
|
||||
@@ -281,10 +282,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_stop]:
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_play_split, 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_stop]:
|
||||
for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_play_split, self.btn_stop]:
|
||||
b.setEnabled(False)
|
||||
b.setToolTip("sounddevice not installed — run make install (optional)")
|
||||
ctr2.addWidget(QtWidgets.QLabel("(sounddevice missing — playback disabled)"))
|
||||
@@ -307,6 +308,7 @@ 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()
|
||||
@@ -513,6 +515,10 @@ class SyncWindow(QtWidgets.QMainWindow):
|
||||
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])
|
||||
sd.play(stereo, samplerate=sr)
|
||||
except Exception as e:
|
||||
print(f"playback failed {e}", file=sys.stderr)
|
||||
|
||||
|
||||
Reference in new issue
Block a user