hey everybody.
I finally did it. Using flext, I've written an external that (at the moment) can play wav, ogg vorbis and mp3 data.
mp3's are decoded with madlib. the whole thing is based on readsf~ and is threaded. it can read mono or stereo, but there's no resampling.
you can download the first alpha (for testing purposes) version here:
http://aug.ment.org/software/readanysf~0.1.tar.gz
I could really use some help from more experience programmers. this is my first threaded app and I admit I don't know too much, just what I've gathered from online tutorials.
some questions:
a) is there any good way to tell if a file is an mp3 or not other
than to check the file ending for ".mp3" ? I can check if it has an "ID3" tag at the header, but most mp3's dont seem to have this.
b.) I sometimes get this error when using the open browser of pd
'invalid command name "0.c"'
c.) sometimes I get some clicking in the file and i dont know if
has to do with where I am placing my mutex.Lock()'s
d.) how do I properly terminate a thread in flext? at the moment
the object hangs pd when you try to delete it. anybody?
TODO:
1. other formats: aiff, nextstep, flac, speex
2. seeking [pcm and time]
3. resampling - up and downscaling
4. speed??
-august.