Closed mike811 closed 1 year ago
I'm not familiar with Faust. Can it generate Rust code for processing samples? If yes then it could be used to implement new filters or new processors, by copying the generated code into the camilladsp sources. How would you use plugins? Camilladsp doesn't support any processing plugins at the moment and it's not something I'm planning on implementing. I considered things like vst and lv2 but decided against for several reasons.
I'm not familiar with Faust either but according to their description Rust code generation is possible. Copying this to camilladsp sources sounds great but wouldn’t this only be possible for programmers with deeper knowledge in Rust etc? Some kind of plugin framework would solve this. I'm personally interested in processing stuff like Trifield LR→LRC decoders. This foobar2000 extension (with its source under GPL) offers this. See: https://foobar.hyv.fi/2.0/?view=foo_dsp_trifield My investigations for these decoders lead me to this trifield code and Faust being used there. Not sure if my C programming knowledge will be enough to combine this with camilladsp though…
That trifield decoder seems to use a few filters and do some mixing. That's already possible to do in camilladsp. You can do a lot by using several mixers with some filters in between. This works fine for example for ambisonics and headphone crossfeed.
My knowledge regarding these advanced audio stuff is limited. According to this thread two matrix conversions are needed for a Gerzon decoder: https://www.audiosciencereview.com/forum/index.php?threads/gerzons-trifield.30102/ In this paper are also some other matrixes described: http://elias.altervista.org/html/3_speaker_matrix.html Are these simple scalar multiplications and summations (for the matrix part) of LR channel signals (audio samples stream coming in with e.g. 48kHz -> time-domain)? Or is FFT/IFFT or some Hilbert magic needed for the matrix stuff(frequency-domain)? Of course the later high and low pass filter part could be performed via FIR to obtain better phase coherence.
The matrix multiplications are nothing complicated. It's just a way to describe how much of each input signal (and with which sign) should be added to each output signal. You don't need any FFT or anything like that. A camilladsp mixer does just what you need here.
Ok thanks, will try that.
Hello,
first: Thanks for this great SW! What about interfacing with Faust? https://faust.grame.fr/ Any ideas how to use its capabilities for audio processing together with camilladsp?
Have some sort of plugin handling in mind where it would be possible to route certain channels at some point through it. Or would it be already possible using Jack?
Regards Michael