From 3a3c2936ff3aa02f68a00bae0babadecd857a74c Mon Sep 17 00:00:00 2001 From: Honney OC Date: Sun, 13 Sep 2026 22:00:36 +0000 Subject: [PATCH] feat: add adjustable playback duration for A/B samples --- sync_audio_test.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/sync_audio_test.py b/sync_audio_test.py index 4623b0b..7ec44e5 100644 --- a/sync_audio_test.py +++ b/sync_audio_test.py @@ -249,10 +249,21 @@ class SyncWindow(QtWidgets.QMainWindow): self.vol_label = QtWidgets.QLabel("70%") ctr2.addWidget(self.vol_label) - self.btn_play_a = QtWidgets.QPushButton("Play A (2s)") - self.btn_play_b = QtWidgets.QPushButton("Play B+lag (2s)") + 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_stop = QtWidgets.QPushButton("Stop") + + ctr2.addWidget(QtWidgets.QLabel("Duration:")) + self.play_dur = QtWidgets.QDoubleSpinBox() + self.play_dur.setRange(0.1, 30.0) + self.play_dur.setDecimals(1) + self.play_dur.setSingleStep(0.5) + self.play_dur.setValue(2.0) + self.play_dur.setSuffix("s") + 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]: ctr2.addWidget(b) if not HAS_SD: @@ -398,9 +409,8 @@ class SyncWindow(QtWidgets.QMainWindow): return vol = self.vol.value()/100.0 sr = self.sr - # play 2 seconds from 10s mark to hear sync + dur_samp = int(self.play_dur.value() * sr) start_samp = int(10 * sr) - dur_samp = int(2 * sr) if start_samp + dur_samp > len(self.a_orig): start_samp = 0 a_seg = self.a_orig[start_samp:start_samp+dur_samp] * vol