cournape / audiolab

A python package for reading/writing audio files from numpy array
http://cournape.github.com/audiolab
GNU Lesser General Public License v2.1
141 stars 46 forks source link

basic_reader: argument 'first' ignored when 'last' is specified #27

Open VinodKandasamy opened 9 years ago

VinodKandasamy commented 9 years ago

File: scikits.audiolab.pysndfile.matapi.py Function: basic_reader(filename, last = None, first = 0) Outer Function: _reader_factory(name, filetype, descr)

When using functions like scikits.audiolab.wavread, the argument first is ignored, when last is specified. wavread(filename, first=0, last=48) returns the first 48 frames (frame 0 through frame 47). wavread(filename, first=48, last=96) returns the first 96 frames. It should return frames 48 through 95, instead.

Code snippet in scikits.audiolab (0.11.0) scikits.audiolab.pysndfile.matapi.basic_reader :

    if last is None:
        nframes = hdl.nframes - first
        data    = hdl.read_frames(nframes)
    else:
        data    = hdl.read_frames(last)

Proposed solution:

    if last is None:
        last = hdl.nframes
    data = hdl.read_frames(last-first)