if init_bytes is not None:
init_bytes = self.pad_out(init_bytes)
self.samples = numpy.array([x[0] for x in struct.iter_unpack('<h', init_bytes)])
+ self.samples = self.samples.astype('float32')
+ self.samples /= 32768.0
elif init_samples is not None:
self.samples = init_samples
#log.debug('init by samples')
if len(self.samples) < MAX_SAMPLES*2:
samples_to_add = int(MAX_SAMPLES*2 - len(self.samples))
#log.debug('samples to add: {}'.format(samples_to_add))
- self.samples = numpy.concatenate((self.samples, numpy.array([0]*samples_to_add)))
+ self.samples = numpy.concatenate((self.samples, numpy.array([0.0]*samples_to_add)))
@property
def sample_buffer(self):
#log.debug(self.samples)
#log.debug(len(self.samples))
#log.debug(list(self.samples))
- return struct.pack('<'+'h'*self.samples.size, *list(self.samples))
+ next_samples = 32768.0 * self.samples
+ next_bytes = next_samples.astype('int16')
+ return struct.pack('<'+'h'*self.samples.size, next_bytes)
@property
def length(self):
#else:
next_samples = numpy.repeat(next_samples, 2)
# for the downcast to int16
- next_samples *= 32768.0
- next_bytes = next_samples.astype('int16')
- chunk = AudioChunk(init_samples=next_bytes)
+ #next_samples *= 32768.0
+ #next_bytes = next_samples.astype('int16')
+ chunk = AudioChunk(init_samples=next_samples)
#log.debug(chunk, chunk.samples)
chunks_to_append.append(chunk)
# get next chunk