What about readanysf~? You can send it [seek $1( and you can also get the file length in seconds out with [route length]
Quoth Roman Haefeli, on 06/12/09 23:57:
Hi all
Yeah, it's never too late for basic questions. Basically i would like to create file player patch, that let's you pick a soundfile (be it a wav) of any number of channels and a bit depth currently supported by [readsf~] and it should be able to play from any position between the start and the end of the file.
Usually i used a kludge by using [soundfiler] in order to get the number of sample frames of the file and then i calculated the number of bytes to be skipped in order to be able to let [readsf~] play the file from a random position. However, this only works when the actual header size of the file is constant (i.e. known and the same for every file; ok, when the header sizes would be known, they wouldn't need to be the same for all files, but you get the point) and when you know beforehand the bit depth of the file(s), since [readsf~] reads it correctly, but doesn't tell you about it.
Now, i would like to be able to play wav files correctly with arbitrary (unkown) bit depths and arbitrary (unkown) number of channels. Also, i am looking for a way to be able to load both, simple RIFF WAV and so called 'Broadcast WAV' files (the ones with a 'bext' header signature).
I also tried [wavinfo] from ext13. However, this seems to work only with the former (simple) format, but not with broadcast wav-files. Funny enough, [readsf~] seems to have everything needed built-in, since it reads both formats correctly, it just does not expose those functions to the pd patch (as this unfortunately is often the problem with many object classes).
Any idea or pointers to other externals welcome!
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list