From b58a5b323560008c6e42f337659142bf318c3b35 Mon Sep 17 00:00:00 2001 From: yomguy Date: Wed, 3 Mar 2010 12:29:10 +0000 Subject: [PATCH] - fix waveform peaks and centroid - remove unnecessary adapters - tested WAV, FLAC, OGG and MP3, mono and stereo. decoder OK - TODO : breaks spectrogram linearity --- tests/api/examples.py | 16 ++++++---------- tests/api/test_pipe_spectrogram.py | 12 +++++++++++- tests/api/test_pipe_waveform.py | 12 +++++++++++- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/tests/api/examples.py b/tests/api/examples.py index 3a9f582..475c650 100644 --- a/tests/api/examples.py +++ b/tests/api/examples.py @@ -210,7 +210,7 @@ class WavEncoder(Processor): class Waveform(Processor): implements(IGrapher) - BUFFER_SIZE = 1024 + FFT_SIZE = 0x400 @interfacedoc def __init__(self, width=None, height=None, output=None, bg_color=None, color_scheme=None): @@ -247,14 +247,12 @@ class Waveform(Processor): super(Waveform, self).setup(channels, samplerate, nframes) if self.graph: self.graph = None - self.adapter = FixedSizeInputAdapter(self.BUFFER_SIZE, channels, pad=True) - self.graph = WaveformImage(self.width, self.height, self.nframes(), self.samplerate(), self.BUFFER_SIZE, + self.graph = WaveformImage(self.width, self.height, self.nframes(), self.samplerate(), self.FFT_SIZE, bg_color=self.bg_color, color_scheme=self.color_scheme, filename=self.filename) @interfacedoc def process(self, frames, eod=False): - for buffer, end in self.adapter.process(frames, eod): - self.graph.process(buffer, end) + self.graph.process(frames, eod) return frames, eod @interfacedoc @@ -267,7 +265,7 @@ class Waveform(Processor): class Spectrogram(Processor): implements(IGrapher) - BUFFER_SIZE = 512 + FFT_SIZE = 0x1000 @interfacedoc def __init__(self, width=None, height=None, output=None, bg_color=None, color_scheme=None): @@ -304,14 +302,12 @@ class Spectrogram(Processor): super(Spectrogram, self).setup(channels, samplerate, nframes) if self.graph: self.graph = None - self.adapter = FixedSizeInputAdapter(self.BUFFER_SIZE, channels, pad=True) - self.graph = SpectrogramImage(self.width, self.height, self.nframes(), self.samplerate(), self.BUFFER_SIZE, + self.graph = SpectrogramImage(self.width, self.height, self.nframes(), self.samplerate(), self.FFT_SIZE, bg_color=self.bg_color, color_scheme=self.color_scheme, filename=self.filename) @interfacedoc def process(self, frames, eod=False): - for buffer, end in self.adapter.process(frames, eod): - self.graph.process(buffer, end) + self.graph.process(frames, eod) return frames, eod @interfacedoc diff --git a/tests/api/test_pipe_spectrogram.py b/tests/api/test_pipe_spectrogram.py index 742e4c1..ec06865 100644 --- a/tests/api/test_pipe_spectrogram.py +++ b/tests/api/test_pipe_spectrogram.py @@ -11,7 +11,17 @@ else: from timeside.tests.api.examples import FileDecoder, WavEncoder image_file = './spectrogram.png' -source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3") + +# mono +#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/guitar.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3") + +# stereo +source = os.path.join(os.path.dirname(__file__), "../samples/sweep.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/guitar_stereo.wav") +#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/16 - Isabelle Aboulker - 16 instru.flac") +#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/ogg/Emilie_Jolie/01 - Henri Salvador - Prologue.ogg") decoder = FileDecoder(source) spectrogram = examples.Spectrogram(width=1024, height=256, output=image_file, bg_color=(0,0,0), color_scheme='default') diff --git a/tests/api/test_pipe_waveform.py b/tests/api/test_pipe_waveform.py index 24b5242..82ba4a9 100644 --- a/tests/api/test_pipe_waveform.py +++ b/tests/api/test_pipe_waveform.py @@ -11,7 +11,17 @@ else: from timeside.tests.api.examples import FileDecoder, WavEncoder image_file = './waveform.png' -source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3") + +# mono +#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/guitar.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/sweep_source.mp3") + +# stereo +source = os.path.join(os.path.dirname(__file__), "../samples/sweep.wav") +#source = os.path.join(os.path.dirname(__file__), "../samples/guitar_stereo.wav") +#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/flac/Isabelle Aboulker/Mon imagier des instruments/16 - Isabelle Aboulker - 16 instru.flac") +#source = os.path.join(os.path.dirname(__file__), "/home/momo/music/ogg/Emilie_Jolie/01 - Henri Salvador - Prologue.ogg") decoder = FileDecoder(source) waveform = examples.Waveform(width=1024, height=256, output=image_file, bg_color=(0,0,0), color_scheme='default') -- 2.39.5