feat: add adjustable playback duration for A/B samples

This commit is contained in:
Honney OC committed 2026-09-13 22:00:36 +00:00
1 parent f0c7f6d03e
commit 917771547a
1 file changed
+14 -4
+14 -4
View File
@@ -249,10 +249,21 @@ class SyncWindow(QtWidgets.QMainWindow):
self.vol_label = QtWidgets.QLabel("70%") self.vol_label = QtWidgets.QLabel("70%")
ctr2.addWidget(self.vol_label) ctr2.addWidget(self.vol_label)
self.btn_play_a = QtWidgets.QPushButton("Play A (2s)") self.btn_play_a = QtWidgets.QPushButton("Play A")
self.btn_play_b = QtWidgets.QPushButton("Play B+lag (2s)") self.btn_play_b = QtWidgets.QPushButton("Play B+lag")
self.btn_play_mix = QtWidgets.QPushButton("Play Mix") self.btn_play_mix = QtWidgets.QPushButton("Play Mix")
self.btn_stop = QtWidgets.QPushButton("Stop") 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]: for b in [self.btn_play_a, self.btn_play_b, self.btn_play_mix, self.btn_stop]:
ctr2.addWidget(b) ctr2.addWidget(b)
if not HAS_SD: if not HAS_SD:
@@ -398,9 +409,8 @@ class SyncWindow(QtWidgets.QMainWindow):
return return
vol = self.vol.value()/100.0 vol = self.vol.value()/100.0
sr = self.sr 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) start_samp = int(10 * sr)
dur_samp = int(2 * sr)
if start_samp + dur_samp > len(self.a_orig): if start_samp + dur_samp > len(self.a_orig):
start_samp = 0 start_samp = 0
a_seg = self.a_orig[start_samp:start_samp+dur_samp] * vol a_seg = self.a_orig[start_samp:start_samp+dur_samp] * vol