[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Why does pygame.sndarray.make_sound seemingly quadruple the sound duration?
a = a.astype(numpy.float16)
should convert the array over for you.
Note: float16 did not exist prior to numpy1.6. The default version of
numpy that I got from the ubuntu repo was only version 1.5.1.
On Mon, May 21, 2012 at 1:29 PM, Mike Lawrence <mike.lwrnc@xxxxxxxxx> wrote:
> Thanks for your response. Support for your suggestion comes from
> observation that changing the size from -16 to -8 yields an octupling
> of the duration. So it seems that pygame.sndarray.make_sound isn't
> properly accounting for the bit depth of the numpy array.
>
> On Mon, May 21, 2012 at 3:03 PM, Nicholas Seward
> <nicholas.seward@xxxxxxxxx> wrote:
>> Could it be that a is an array of 64bit floats and each array element
>> becomes 4 16-bit samples?
>>
>> On Mon, May 21, 2012 at 12:54 PM, Mike Lawrence <mike.lwrnc@xxxxxxxxx> wrote:
>>> The following code:
>>>
>>> import pygame, numpy
>>> pygame.mixer.pre_init(frequency=96000,size=-16,channels=1)
>>> pygame.init()
>>> a = numpy.random.randn(96000)
>>> sound = pygame.sndarray.make_sound(a)
>>> print sound.get_length()
>>>
>>> yields a print-out of 4.0, suggesting that the specified duration of
>>> 96000 samples at a 96000kHz sampling rate was somehow quadrupled
>>> somewhere along the way. Any idea what I'm missing here? Or is this a
>>> bug?