class SampleArray(object):
"""Base Class for generating a data sample array"""
- def __init__(self, duration=10, samplerate=44100, gain=0.97):
+ def __init__(self, duration=10, samplerate=44100):
self.samplerate = int(samplerate)
self.num_samples = int(numpy.ceil(duration * self.samplerate))
self.array = NotImplemented
- self.gain = gain
@property
def time_samples(self):
class SineArray(SampleArray):
"""Class for generating a Sine array"""
def __init__(self, frequency=440, duration=10, samplerate=44100,
- channels=1):
+ channels=1, gain=0.97):
super(SineArray, self).__init__(duration=duration,
samplerate=samplerate)
self.frequency = frequency
- self.array = numpy.sin((2 * numpy.pi * self.frequency *
+ self.array = gain*numpy.sin((2 * numpy.pi * self.frequency *
self.time_samples / self.samplerate))
self.array.resize(self.num_samples, 1)
class SweepArray(SampleArray):
"""Class for generating a Sweep array"""
def __init__(self, f0=20, f1=None, duration=10, samplerate=44100,
- method='logarithmic'):
+ method='logarithmic', gain=0.97):
super(SweepArray, self).__init__(duration=duration,
samplerate=samplerate)
else:
self.f1 = f1 / samplerate
self.method = method
- self.array = scipy.signal.waveforms.chirp(t=self.time_samples,
+ self.array = gain*scipy.signal.waveforms.chirp(t=self.time_samples,
f0=self.f0,
t1=self.time_samples[-1],
f1=self.f1,
def get(self, request, *args, **kwargs):
result = Result.objects.get(pk=kwargs['pk'])
- return HttpResponse(stream_from_file(result.file.path),
+ return StreamingHttpResponse(stream_from_file(result.file.path),
content_type=result.mime_type)