Hi August, i don't know what your specific problem is with flext threading, so i tried to compile your package. It's a but difficult for me since it's apparently linux only, but i'll give it a try nonetheless.
However, there's one interesting thing and i'm really surprised that it works for you at all....
void readanysf::m_signal(int n, float *const *in, float *const *out) { float *outs1 = out[0]; float *outs2 = out[1];
mutex.Lock(); if (state == STATE_STREAM) {
float buf[n*2]; // always multiply by the number of audio signal outlets
n is not constant since it's a function argument, and you try to reserve an array of float with that. Amazing that your compiler digests that (mine doesn't) ... it's definitely not C++ as i know it. It may be better (or more portable at least) to use the flext m_dsp virtual function which is called on every dsp on/off to reserve your buffer with new.
Please note that you can use flext without its threading functionality and build your own stuff with pthreads as usual. Anyway, i'll have a look at it.
greetings, Thomas
----- Original Message ----- From: "august" august@alien.mur.at To: pd-list@iem.kug.ac.at Sent: Monday, April 14, 2003 5:17 PM Subject: [PD] readanysf~ almost beta
'ncase anyone is interested. ongoing work with this external. basically, I use pd for various things and need a similar interface to different filetypes.
an almost beta version is at:
http://aug.ment.org/software/readanysf~0.05.tar.gz
the only known bug at the moment is that if you try and remove one of the readanysf~ objects from the canvas, something is likely to explode.
this has something to do with how flext handles threading, i think, but am not sure.
is there something like a pthreads_join in flext? i think that would help.
ShouldExit() and StopThreads() simply doesnt do it for me.
features:
pcm and time seeking looping (internally and should be sample accurate) plays aiff, wav, nextstep (same code as readsf~ with 16,24 and 32bit float support) plus vorbis and mp3 (using madlib)
near future: add flac support (anyone have a good simple flac code?) conifigure and make scripts
distant future: http streaming (perhaps) convert to pure c++ without flext if i cant get flext to work with the threading. would be a shame.
any suggestions? -tsugua.
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list