Simple Python struct issue

Simon Forman sajmikins at gmail.com
Fri Oct 2 12:15:54 EDT 2009


On Fri, Oct 2, 2009 at 12:07 PM, Carlo DiCelico
<carlo.dicelico at gmail.com> wrote:
> I saw an article on O'Reilly about using NumPy and Dislin to analyze
> and visualize WAV files. It's a really fantastic article but was a
> little out of date. I updated the script to work with the newer
> modules &etc but am still having trouble getting it working.
>
> The line
>
> temp[i,:] = array(struct.unpack("%dB"%(fft_length), tempb),Float) -
> 128.0
>
> always returns the same error: "Traceback (most recent call last):
>  File "pysono.py", line 31, in <module>
>   temp[i,:] = array(struct.unpack("%dB"%(fft_length),tempb),float) -
> 128.0
> struct.error: unpack requires a string argument of length 256" when I
> do python pysono.py test.wav 256
>
> I'm sure it's probably something simple but I just can't see what it
> is!
>
> Here's the original code: http://onlamp.com/python/2001/01/31/graphics/pysono.py
>
> Thanks!

In:

struct.unpack("%dB" % (fft_length), tempb)

tempb is not length 256.

Also, note that (foo) is the same as just foo.  To create a tuple of
length 1 you must say (foo,)

HTH,
~Simon



More information about the Python-list mailing list