Experimenting with waveformsΒΆ

[31]:
from modusa.generators import AudioWaveformGenerator
[32]:
signal1 = AudioWaveformGenerator.generate_sawtooth(f=15, sr=1000, duration=4)
signal2 = AudioWaveformGenerator.generate_triangle(f=50, sr=1000, duration=4, A=2)
signal = signal1 | signal2
[38]:
signal.print_info()
--------------------------------------------------
Title               : Sawtooth (15.0 Hz) | Triangle (50.0 Hz)
Type                : Audio Signal
Duration            : 8.00 sec
Sampling Rate       : 1000 Hz
Sampling Period     : 1.0000 ms
--------------------------------------------------
[33]:
spec = signal.to_spectrogram(n_fft=128, hop_length=64).magnitude
[34]:
focus_region = [(3.5, 4.5)]
[39]:
display(signal.plot(highlight=focus_region, legend_loc="upper right"))
display(spec.magnitude.plot(highlight=focus_region))
../_images/examples_ex4_6_0.png
../_images/examples_ex4_6_1.png
[36]:
display(spec.magnitude.mean(axis=0).plot(highlight=[(3.5, 4.5)]))
display(spec.magnitude.mean(axis=-1).plot(vlines=[15, 50], label=None))
../_images/examples_ex4_7_0.png
../_images/examples_ex4_7_1.png
[37]:
(spec[:,1:] - spec[:,:-1]).plot(title="Sample Derivate of the spectrogram")
[37]:
../_images/examples_ex4_8_0.png
[ ]: