+++ /dev/null
-# -*- coding: utf-8 -*-
-
-import os
-from timeside.core import *
-from timeside.api import *
-from timeside.decoder import *
-from timeside.grapher import *
-
-sample_dir = '../samples'
-img_dir = '../results/img'
-if not os.path.exists(img_dir):
- os.mkdir(img_dir)
-
-test_dict = {'sweep.wav': 'spec_wav.png',
- 'sweep.flac': 'spec_flac.png',
- 'sweep.ogg': 'spec_ogg.png',
- 'sweep.mp3': 'spec_mp3.png',
- }
-
-for source, image in test_dict.iteritems():
- audio = os.path.join(os.path.dirname(__file__), sample_dir + os.sep + source)
- image = img_dir + os.sep + image
- print 'Test : decoder(%s) | waveform (%s)' % (source, image)
- decoder = FileDecoder(audio)
- spectrogram = Spectrogram()
- (decoder | spectrogram).run()
- print 'frames per pixel = ', spectrogram.samples_per_pixel
- print "render spectrogram to: %s" % image
- spectrogram.render(image)
-
-
-
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-import os
-from timeside.core import *
-from timeside.api import *
-from timeside.decoder import *
-from timeside.grapher import *
-
-sample_dir = '../samples'
-img_dir = '../results/img'
-if not os.path.exists(img_dir):
- os.makedirs(img_dir)
-
-test_dict = {'sweep.wav': 'waveform_wav.png',
- 'sweep.flac': 'waveform_flac.png',
- 'sweep.ogg': 'waveform_ogg.png',
- 'sweep.mp3': 'waveform_mp3.png',
- }
-
-for source, image in test_dict.iteritems():
- audio = os.path.join(os.path.dirname(__file__), sample_dir + os.sep + source)
- image = img_dir + os.sep + image
- print 'Test : decoder(%s) | waveform (%s)' % (source, image)
- decoder = FileDecoder(audio)
- waveform = Waveform(width=1024, height=256, bg_color=(255,255,255), color_scheme='default')
- (decoder | waveform).run()
- print 'frames per pixel = ', waveform.samples_per_pixel
- print "render waveform to: %s" % image
- waveform.render(image)
--- /dev/null
+# -*- coding: utf-8 -*-
+
+import os
+from timeside.core import *
+from timeside.api import *
+from timeside.decoder import *
+from timeside.grapher import *
+
+sample_dir = '../samples'
+img_dir = '../results/img'
+if not os.path.exists(img_dir):
+ os.mkdir(img_dir)
+
+test_dict = {'sweep.wav': 'spec_wav.png',
+ 'sweep.flac': 'spec_flac.png',
+ 'sweep.ogg': 'spec_ogg.png',
+ 'sweep.mp3': 'spec_mp3.png',
+ }
+
+for source, image in test_dict.iteritems():
+ audio = os.path.join(os.path.dirname(__file__), sample_dir + os.sep + source)
+ image = img_dir + os.sep + image
+ print 'Test : decoder(%s) | waveform (%s)' % (source, image)
+ decoder = FileDecoder(audio)
+ spectrogram = Spectrogram()
+ (decoder | spectrogram).run()
+ print 'frames per pixel = ', spectrogram.samples_per_pixel
+ print "render spectrogram to: %s" % image
+ spectrogram.render(image)
+
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+
+import os
+from timeside.core import *
+from timeside.api import *
+from timeside.decoder import *
+from timeside.grapher import *
+
+sample_dir = '../samples'
+img_dir = '../results/img'
+if not os.path.exists(img_dir):
+ os.makedirs(img_dir)
+
+test_dict = {'sweep.wav': 'waveform_wav.png',
+ 'sweep.flac': 'waveform_flac.png',
+ 'sweep.ogg': 'waveform_ogg.png',
+ 'sweep.mp3': 'waveform_mp3.png',
+ }
+
+for source, image in test_dict.iteritems():
+ audio = os.path.join(os.path.dirname(__file__), sample_dir + os.sep + source)
+ image = img_dir + os.sep + image
+ print 'Test : decoder(%s) | waveform (%s)' % (source, image)
+ decoder = FileDecoder(audio)
+ waveform = Waveform(width=1024, height=256, bg_color=(255,255,255), color_scheme='default')
+ (decoder | waveform).run()
+ print 'frames per pixel = ', waveform.samples_per_pixel
+ print "render waveform to: %s" % image
+ waveform.render(image)
--- /dev/null
+import numpy
+
+
+class Noise(object):
+ """A class that mimics audiolab.sndfile but generates noise instead of reading
+ a wave file. Additionally it can be told to have a "broken" header and thus crashing
+ in the middle of the file. Also useful for testing ultra-short files of 20 samples."""
+
+ def __init__(self, num_frames, has_broken_header=False):
+ self.seekpoint = 0
+ self.num_frames = num_frames
+ self.has_broken_header = has_broken_header
+
+ def seek(self, seekpoint):
+ self.seekpoint = seekpoint
+
+ def get_nframes(self):
+ return self.num_frames
+
+ def get_samplerate(self):
+ return 44100
+
+ def get_channels(self):
+ return 1
+
+ def read_frames(self, frames_to_read):
+ if self.has_broken_header and self.seekpoint + frames_to_read > self.num_frames / 2:
+ raise IOError()
+
+ num_frames_left = self.num_frames - self.seekpoint
+ if num_frames_left < frames_to_read:
+ will_read = num_frames_left
+ else:
+ will_read = frames_to_read
+ self.seekpoint += will_read
+ return numpy.random.random(will_read)*2 - 1
+