<br><br><div class="gmail_quote">On Fri, Aug 10, 2012 at 9:51 PM, Matthew Brett <span dir="ltr">&lt;<a href="mailto:matthew.brett@gmail.com" target="_blank">matthew.brett@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<div><div class="h5"><br>
On Thu, Aug 9, 2012 at 8:08 AM, Brian Hone &lt;<a href="mailto:brianhone@gmail.com">brianhone@gmail.com</a>&gt; wrote:<br>
&gt; Hi folks,<br>
&gt;<br>
&gt; I&#39;m running into a wavfile read error which appears to be caused by<br>
&gt; slight problems in wavfile meta-data.  (Specifically, the meta-data<br>
&gt; mis-reports the number of frames).  Unfortunately, 2/3 of the wav files<br>
&gt; I&#39;ve randomly sampled have this problem, and most audio packages just<br>
&gt; deal with it.<br>
&gt;<br>
&gt; I notice from a search that a lot of people have this problem with<br>
&gt; io.wavfile.read:<br>
&gt;<br>
&gt; /usr/lib/python2.7/site-packages/scipy/io/wavfile.pyc in read(file)<br>
&gt;      125             else:<br>
&gt;      126                 fmt = &#39;&lt;i&#39;<br>
&gt; --&gt; 127             size = struct.unpack(fmt, data)[0]<br>
&gt;      128             fid.seek(size, 1)<br>
&gt;      129     fid.close()<br>
&gt;<br>
&gt;<br>
&gt; Here&#39;s a fix - just calculate the actual file length and use the minimum<br>
&gt; or the file length and the meta-data reported length.<br>
&gt;<br>
&gt; 113,121c113<br>
&gt; &lt;<br>
&gt; &lt;     ## Calculate the actual file length in case meta-data is incorrect<br>
&gt; &lt;     current_pos = fid.tell()<br>
&gt; &lt;     fid.seek(0,2)<br>
&gt; &lt;     actual_file_length = fid.tell()<br>
&gt; &lt;     fid.seek( current_pos )<br>
&gt; &lt;     total_length = min( fsize, actual_file_length )<br>
&gt; &lt;<br>
&gt; &lt;     while (fid.tell() &lt; total_length):<br>
&gt; ---<br>
&gt;  &gt;     while (fid.tell() &lt; fsize):<br>
<br>
</div></div>Thanks for posting.  I see we don&#39;t have a nominated maintainer for<br>
io.wavfile - Ralf - is that right?<br></blockquote><div><br>Yes, unfortunately. I count 7 open tickets for wavfile, some of which are quite old. Wavfile is &lt;200 lines of Python code, so fixing most of these probably won&#39;t be very difficult. If there&#39;s someone who is interested in this code and would be willing to put in some time, that would be great.<br>
<br>Ralf<br>  <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<a href="https://github.com/scipy/scipy/blob/master/doc/MAINTAINERS.rst.txt" target="_blank">https://github.com/scipy/scipy/blob/master/doc/MAINTAINERS.rst.txt</a><br>
<br>
Does anyone who uses wav files feel able to comment here?<br>
<br>
Brian - please consider a test and a pull request?  Please do email<br>
again if that&#39;s hard to do.  Do you think we should omit a warning or<br>
make this fix optional, perhaps with the fix set as the default<br>
behavior?<br>
<br>
Thanks again,<br>
<br>
Matthew<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
SciPy-Dev mailing list<br>
<a href="mailto:SciPy-Dev@scipy.org">SciPy-Dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-dev</a><br>
</div></div></blockquote></div><br>