Check twice. It is likely that the JACK message is not fatal. It should fall back to portaudio afterwards. Anyway if you are reporting a crash, please provide the literal messages, platform! and circumstances so that it could be useful. It is ok to discuss about it being a bug (quite likely if it is a crash), either here or even in the user list. Once you ensure it is a bug, a nice place to keep track for it is here: http://clam-project.org/bugs/
We forced at least an AudioSink or an AudioSource to be in the network to be able to play it with realtime backends (portaudio, jack, ladspa, vst...) so that clam has a clock to sink to. If not the whole processing is being done in real-time with freewheel and takes the whole CPU. Xavier's thesis talks about pull and push flow controls (let me call them schedulers). While implementing them we found that they didn't work for our case as is (combining controls, multi-rate ports...) so we implemented NaiveFlowControl that despite the name it just works and it is the one CLAM is currently using. http://clam- project.org/clam/trunk/CLAM/src/core/schedulers/NaiveFlowControl.hxx http://clam-project.org/doc/CLAM-doxygen/classCLAM_1_1NaiveFlowControl.html After that, Pau started to think in static schedulers which is explained on his phd Thesis. http://parumi.org/thesis/ Although some people has already used them, Pau had no time to incorporate them into clam yet. Regarding multithreading, as you say CLAM use multithreading but not multithreaded processing. That is, we separate processing (real-time) thread from other threads (gui, file access...) so that the realtime thread is not interrupted. Some backends (jack?) are able to use multithread processing by splitting the different jack clients but clam is still a single jack client. You could implement a backend that does the processing distribution. But looks like a complex task. If you dare to embrace the task you are very welcome. About your current problem with the fft, let me guess. Instead of the FFT as is we use SpectralAnalysis which includes FFT, zero padding and windowing. A common source of problems are the window sizes not being well defined. If you are planning building your own processing dealing FFT then i suggest not to relay in old CLAM::Spectrum and CLAM::FFT, but to build onto the simpler ComplexSpectrum and MyFFT within the spatialization plugin. Lots of network examples there. David. On Tuesday 30 October 2012 13:35:08 Ewa Kowalczuk wrote: > Hi, > > I have a question regarding CLAM processing architecture. I installed it > from Debian package and created a simple network: > > MonoAudioFileReader -> FFT -> SpectrumView > > and run it. This caused NetworkEditor to shutdown. I checked in program > output that there was problem with JACK server not being present. I managed > to install it and program stopped shutting down, but nothing happened (I > couldn't see any activity in SpectrumView) till I used AudioSink in my > network. > > What I'm really trying to do is to understand CLAM architecture and compare > it with my ideas for DataFlow network. I read Xavier Amatriain's PhD > Dissertation about CLAM, but it did not contain many technical details (not > that I expect it from such document). This example above made me wonder how > is data routing organised in CLAM. Are data "pulled" or "pushed"? If they > are pushed, why didn't FFT get data in first setup? > If they are pulled, why didn't FFT pull them? Does only AudioSink has right > to pull and as a side effect FFT got the data? Also, why is audio backend > needed to read a wav file? > > I was also wondering if CLAM used multithreading for processing network (I > only found you can get separate threads for GUI and the network)? I posted > this question (about multithreading) on clam-users list, but maybe it isn't > right place for it so now I'm asking on developers list. > > I will be very grateful for any remarks on this issues. > Regards, > Ewa. _______________________________________________ clam-devel mailing list clam-devel@lists.clam-project.org http://lists.clam-project.org/listinfo.cgi/clam-devel-clam-project.org