From 73c5c69f750bb25692d1e6f36a39cc9aacc19065 Mon Sep 17 00:00:00 2001 From: yomguy <> Date: Thu, 21 Aug 2008 15:14:07 +0000 Subject: [PATCH] Add some visualizers --- telemeta/visualization/spectrogram4.py | 45 +++++++++++++++++++++++++ telemeta/visualization/waveform4.py | 46 ++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 telemeta/visualization/spectrogram4.py create mode 100644 telemeta/visualization/waveform4.py diff --git a/telemeta/visualization/spectrogram4.py b/telemeta/visualization/spectrogram4.py new file mode 100644 index 00000000..f92cd338 --- /dev/null +++ b/telemeta/visualization/spectrogram4.py @@ -0,0 +1,45 @@ +# Copyright (C) 2008 Parisson SARL +# All rights reserved. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at http://svn.parisson.org/telemeta/TelemetaLicense. +# +# Author: Guillaume Pellerin + +from telemeta.core import * +from telemeta.visualization.api import IMediaItemVisualizer +from django.conf import settings +from tempfile import NamedTemporaryFile +from telemeta.visualization.wav2png import * + +class SpectrogramVisualizer3(Component): + """Spectrogram visualization driver (python style)""" + + implements(IMediaItemVisualizer) + + def get_id(self): + return "spectrogram4" + + def get_name(self): + return "Spectrogram (audiolab large)" + + def render(self, media_item, options=None): + """Generator that streams the spectrogram as a PNG image with a python method""" + + wav_file = settings.MEDIA_ROOT + '/' + media_item.file + pngFile_w = NamedTemporaryFile(suffix='.png') + pngFile_s = NamedTemporaryFile(suffix='.png') + image_width = 1800 + image_height = 300 + fft_size = 2048 + args = (wav_file, pngFile_w.name, pngFile_s.name, image_width, image_height, fft_size) + create_png(*args) + + buffer = pngFile_s.read(0xFFFF) + while buffer: + yield buffer + buffer = pngFile_s.read(0xFFFF) + + pngFile_w.close() + pngFile_s.close() diff --git a/telemeta/visualization/waveform4.py b/telemeta/visualization/waveform4.py new file mode 100644 index 00000000..07ff6dea --- /dev/null +++ b/telemeta/visualization/waveform4.py @@ -0,0 +1,46 @@ +# Copyright (C) 2008 Parisson SARL +# All rights reserved. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at http://svn.parisson.org/telemeta/TelemetaLicense. +# +# Author: Guillaume Pellerin + +from telemeta.core import * +from telemeta.visualization.api import IMediaItemVisualizer +from django.conf import settings +from tempfile import NamedTemporaryFile +from telemeta.visualization.wav2png import * + +class WaveFormVisualizer(Component): + """WaveForm visualization driver (python style)""" + + implements(IMediaItemVisualizer) + + def get_id(self): + return "waveform4" + + def get_name(self): + return "Waveform (audiolab large)" + + def render(self, media_item, options=None): + """Generator that streams the waveform as a PNG image with a python method""" + + wav_file = settings.MEDIA_ROOT + '/' + media_item.file + pngFile_w = NamedTemporaryFile(suffix='.png') + pngFile_s = NamedTemporaryFile(suffix='.png') + image_width = 1800 + image_height = 300 + fft_size = 2048 + args = (wav_file, pngFile_w.name, pngFile_s.name, image_width, image_height, fft_size) + create_png(*args) + + buffer = pngFile_w.read(0xFFFF) + while buffer: + yield buffer + buffer = pngFile_w.read(0xFFFF) + + pngFile_w.close() + pngFile_s.close() + -- 2.39.5