This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author drj
Recipients drj, gpolo
Date 2009-02-12.09:00:09
SpamBayes Score 4.9043485e-09
Marked as misclassified No
Message-id <1234429211.16.0.456760009707.issue5202@psf.upfronthosting.co.za>
In-reply-to
Content
The following program does a very basic do-i-get-back-what-i-wrote test.  
sunau can't cope; I am investigating.

#!/usr/bin/env python
# $Id$
# Audio File Tests

import aifc
import sunau
import wave

import struct
import sys
from StringIO import StringIO

frames = struct.pack('256B', *range(256))
log = sys.stderr

# Basic test of reproducability.
# We test that a set of frames (an entirely artifical set, see `frames`, 
# above) can be written to an audio file and read back again to get the 
# same set of frames.
# We test mono/stereo, 8-bit/16-bit, and a few framerates.    
# As of 2009-02-12 sunau does not pass these tests, so I recommend that 
# you remove it.
for af in (aifc, sunau, wave):
  for nchannels in (1, 2):
    for sampwidth in (1, 2):
      for framerate in (11000, 44100, 96000):
        print >> log, "%s %d/%d/%d" % (af.__name__,
          nchannels, sampwidth, framerate)
        f = StringIO()
        w = af.open(f, 'w')
        w.setnchannels(nchannels)
        w.setsampwidth(sampwidth)
        w.setframerate(framerate)
        w.writeframesraw(frames)
        w.close()
        s = f.getvalue()
        f = StringIO(s)
        w = af.open(f)
        assert w.getnchannels() == nchannels
        assert w.getsampwidth() == sampwidth
        assert w.getframerate() == framerate
        assert w.readframes(len(frames)//nchannels//sampwidth) == frames
        assert w.readframes(1) == ''
History
Date User Action Args
2009-02-12 09:00:11drjsetrecipients: + drj, gpolo
2009-02-12 09:00:11drjsetmessageid: <1234429211.16.0.456760009707.issue5202@psf.upfronthosting.co.za>
2009-02-12 09:00:10drjlinkissue5202 messages
2009-02-12 09:00:09drjcreate