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

Reply via email to