atom feed13 messages in at.iem.pd-listRe: [PD] readanysf~ almost beta
FromSent OnAttachments
augustApr 14, 2003 8:16 am 
Frank BarknechtApr 14, 2003 9:54 am 
Thomas GrillApr 14, 2003 10:10 am 
augustApr 14, 2003 10:20 am 
augustApr 14, 2003 10:26 am 
Thomas GrillApr 14, 2003 10:34 am 
augustApr 14, 2003 10:38 am 
Frank BarknechtApr 14, 2003 10:41 am 
Thomas GrillApr 14, 2003 11:04 am 
augustApr 14, 2003 11:11 am 
Mathieu BouchardApr 14, 2003 11:52 am 
Maurizio Umberto PuxedduApr 20, 2003 8:58 am 
Maurizio Umberto PuxedduApr 22, 2003 3:07 pm 
Subject:Re: [PD] readanysf~ almost beta
From:Thomas Grill (t.gr@gmx.net)
Date:Apr 14, 2003 10:10:02 am
List:at.iem.pd-list

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....

Have a look at:

-------------------

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" <aug@alien.mur.at> To: <pd-l@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.