Hi all, for all who need it, i throw it into the arena. Maybe some of you want to try it out and comment on it - i currently don't have time to work more on it.
I have a video/audio installation (together with Martin Pi, see http://freebitflows.t0.or.at/f/exhibition/corrosion) running right now, which suffers from the fact that i could not get one of the PD sound file players to work reliably, so i wrote one from scratch.
Attached is a flext-based sketch for a player with the following characteristics: - uses libsndfile (http://www.mega-nerd.com/libsndfile/) and flext 0.4.6 (http://grrrr.org/ext/flext ) - should read _MANY_ file formats - safe loading/starting (no garbage output) - optimized design for many parallel players - on the fly tuneable buffer settings - double buffering for glitch-free seek and file change - currently no varispeed capabilities - currently lacking diagnosis capabilities
It is called sfplay~, a naming which should probably change because it clashes with cyclone.... For the future, either i'm going to modify one of the existing implementations (probably reasdsf~) or (with many more features) incorporate it into the xsample package.
best greetings, Thomas
Thomas,
I'm a little disappointed to hear you have done this.
ever hear of readanysf~ made with flext? :)
I'm guessing you tried it and it didn't work out for you? Was there something missing from it that you really needed?
or, if you were only using .wav or .aiff files (libsndfile can't do much more than that), why not just use the built-in readsf~ ?
-august.
Hi all, for all who need it, i throw it into the arena. Maybe some of you want to try it out and comment on it - i currently don't have time to work more on it.
...
Attached is a flext-based sketch for a player with the following characteristics:
- uses libsndfile (http://www.mega-nerd.com/libsndfile/) and flext 0.4.6
- should read _MANY_ file formats
...
Hi August, there were several reasons for this:
1) i have a Windows setup there and was unable to get readanysf~ running. It simply stopped after some short time - it's also the same with the associated help file. I tried to debug it, but gave up after some time. The other thing is that readanysf~ is using two threads that are passing the data but i wanted really low latency. 2) the built-in readsf~ is really trashy, sorry. I can't understand how a soundfile player can be part of the main distribution, that spits out noise when the file isn't fully preloaded. With many parallel players and heavy system load the preload time is impossible to anticipate for an autonomous patch. 3) i was in a real hurry and it needed only three hours to code one from scratch for my needs that was working safe and well. The time for looking into the other players and understanding how they work is comparable to that.
I'm sorry for disregarding readanysf~ for this special application - I think it's a very valuable tool for many situations. It's clear for me that it's useless to have just another file player, that's why i didn't publish it in the usual way. On the other hand the sketch that i posted has some new characteristics. Therefore i'd like to incorporate them into one of the exisiting ones, or integrate a file playing object into xsample which has all the special features of that package. Above all i think the built-in readsf~ should be improved.
best greetings, Thomas
PS. libsndfile can do many formats: http://www.mega-nerd.com/libsndfile/
----- Original Message ----- From: "august" august@alien.mur.at To: "Thomas Grill" gr@grrrr.org Cc: "pd-dev" pd-dev@iem.kug.ac.at Sent: Wednesday, June 16, 2004 3:56 PM Subject: Re: [PD-dev] redundancy - just another sound file player
Thomas,
I'm a little disappointed to hear you have done this.
ever hear of readanysf~ made with flext? :)
I'm guessing you tried it and it didn't work out for you? Was there something missing from it that you really needed?
or, if you were only using .wav or .aiff files (libsndfile can't do much more than that), why not just use the built-in readsf~ ?
-august.
Hi all, for all who need it, i throw it into the arena. Maybe some of you want to try it out and comment on it - i currently
don't
have time to work more on it.
...
Attached is a flext-based sketch for a player with the following characteristics:
- uses libsndfile (http://www.mega-nerd.com/libsndfile/) and flext 0.4.6
- should read _MANY_ file formats
...
PD-dev mailing list PD-dev@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-dev
- i have a Windows setup there and was unable to get readanysf~ running.
yeah, it still doesn't run under windows...although it is just a matter of time. Compiling and debugging will, however, take more than 3 hours. :(
It
simply stopped after some short time - it's also the same with the associated help file. I tried to debug it, but gave up after some time.
what do you mean about the help file? you mean readanysf.pd? the help file needs to be debugged?
The
other thing is that readanysf~ is using two threads that are passing the data but i wanted really low latency.
hmm, it should only be using one thread. I think flext starts the second thread as a helper ?
I do have a large buffer (which should be changeable like readsf~)...but that shouldn't affect latency. All other operations, like play, stop, rewind, etc happen with a latency of the PD buffersize (default 64 samples)
- the built-in readsf~ is really trashy, sorry. I can't understand how a
soundfile player can be part of the main distribution, that spits out noise when the file isn't fully preloaded. With many parallel players and heavy system load the preload time is impossible to anticipate for an autonomous patch.
I think this might have to do with the windows implementation. AFAIK, the windows version still isn't threaded. Can that be?
I'm sorry for disregarding readanysf~ for this special application - I think it's a very valuable tool for many situations.
danke fuer die blumen....and don't sweat it. I hope the installation is going well.
PS. libsndfile can do many formats: http://www.mega-nerd.com/libsndfile/
I have a early version of readanysf~ that uses libsndfile....but it just doesn't support any formats that people actually use for playing audio files (like mp3 or ogg). I also have an early version with ffmpeg. But that got to be too hairy.
ok, gotta run. best -august.
simply stopped after some short time - it's also the same with the associated help file. I tried to debug it, but gave up after some time.
what do you mean about the help file? you mean readanysf.pd? the help file needs to be debugged?
Nono, what i wanted to say is that the readanysf~ stop bug appears when using the help file.
The
other thing is that readanysf~ is using two threads that are passing the data but i wanted really low latency.
hmm, it should only be using one thread. I think flext starts the second thread as a helper ?
Sorry, you are right - only one thread in your code. I don't know why i thought something else. The flext helper thread is just there in the background to silently start new threads with low initial priority.
- the built-in readsf~ is really trashy, sorry. I can't understand how
a
soundfile player can be part of the main distribution, that spits out
noise
when the file isn't fully preloaded. With many parallel players and
heavy
system load the preload time is impossible to anticipate for an
autonomous
patch.
I think this might have to do with the windows implementation. AFAIK, the windows version still isn't threaded. Can that be?
Actually it's the same code for Windows and linux, which is threaded. I had an installation running linux not too long ago that also had the readsf~ noise problem.
best greetings, Thomas
Hallo,
old reply... ;)
Thomas Grill hat gesagt: // Thomas Grill wrote:
Attached is a flext-based sketch for a player with the following characteristics:
- uses libsndfile (http://www.mega-nerd.com/libsndfile/) and flext 0.4.6
...
I now tried to build this with a flext from today, but I ran into a problem. I renamed sfplay~ to soundplay~ to avoid nameclashes, then compiled. I get this error on load:
/home/freak/big/audio/pd/dl/grill/pd-linux/soundplay~.pd_linux: /home/freak/big/audio/pd/dl/grill/pd-linux/soundplay~.pd_linux: undefined symbol: _ZN16flext_root_multinwEj soundplay~ 2 ... couldn't create
$ c++filt _ZN16flext_root_multinwEj flext_root_multi::operator new(unsigned int)
I cannot find anything related to root_multi in the flext sources with grep'ing. Where can I get it or how could I work around this?
Ciao
Hi Frank, i can't test this under linux right now, but i *believe* that you are linking with an older flext version. Here, with OSX, there is no problem.
best greetings, Thomas
Am 22.09.2004 um 11:27 schrieb Frank Barknecht:
Hallo,
old reply... ;)
Thomas Grill hat gesagt: // Thomas Grill wrote:
Attached is a flext-based sketch for a player with the following characteristics:
- uses libsndfile (http://www.mega-nerd.com/libsndfile/) and flext
0.4.6 (http://grrrr.org/ext/flext )
...
I now tried to build this with a flext from today, but I ran into a problem. I renamed sfplay~ to soundplay~ to avoid nameclashes, then compiled. I get this error on load:
/home/freak/big/audio/pd/dl/grill/pd-linux/soundplay~.pd_linux: /home/freak/big/audio/pd/dl/grill/pd-linux/soundplay~.pd_linux: undefined symbol: _ZN16flext_root_multinwEj soundplay~ 2 ... couldn't create
$ c++filt _ZN16flext_root_multinwEj flext_root_multi::operator new(unsigned int)
I cannot find anything related to root_multi in the flext sources with grep'ing. Where can I get it or how could I work around this?
Ciao
Frank Barknecht _ ______footils.org__
PD-dev mailing list PD-dev@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-dev
Hallo, Thomas Grill hat gesagt: // Thomas Grill wrote:
i can't test this under linux right now, but i *believe* that you are linking with an older flext version. Here, with OSX, there is no problem.
No, but this let me to the real error: I was linking with libflext.a instead of the threaded libflext_t.a. Now that I also added libsndfile to my makefile, it loads - at least through a ssh-connection with "pd -nogui", I'm not at home currently ;)
Ciao