feat: song: bass reg beat detector in slices

This commit is contained in:
2026-05-17 12:32:39 +02:00
parent ee5a1376ee
commit 71f1975a97
4 changed files with 175 additions and 6 deletions

View File

@@ -131,19 +131,21 @@ class BassAnalyzer(Analyzer):
Wp_force = None
I_force = None
def __init__(self, fs, sig, Wp_force=None):
def __init__(self, fs, sig, Wp_force=None, I_force=None):
"""
:param fs: sampling rate
:param sig: audio signal normalized to [-1,1]
"""
super(BassAnalyzer, self).__init__()
self.D = int(self.shift_sec * fs) #: spectrogram step
if self.Wp_force:
self.Wp = self.Wp_force
elif Wp_force:
if Wp_force:
self.Wp = Wp_force
elif self.Wp_force:
self.Wp = self.Wp_force
else:
self.Wp = int(np.round(self.wavelet_win_sec * fs / self.W) * self.W) # wavelet window - make it an integer multiple of FFT window
if I_force:
self.I_force = I_force
self.U = self.Wp // self.W # ratio
self.f = np.pad(sig, (self.W//2, self.W//2-1)) #: signal padded (W-FFT to determine scalogram parameters)