Once more, I would appreciate some hint and ideas from you.
One of my current projects is in a stage of defining its structure and interfaces. Now, that audio processing is completely new to me, I find it pretty difficult to define my interfaces right and efficient. The web gives plenty of information on digital audio processing in general, but aside from the stk-tutorial, nothing really seemed to help me. The huge number of JUCE classes related to audio processing is really overwhelming and I find it hard to find an entry into this world of audio programming. That’s why I ask here.
What I am trying to create is a structure of independent modules, each receiving and producing audio and midi data. Much like in a modular synthesizer, I’d like to create connections between those modules so the output (audio as well as midi) of one can be fed into the input(s) of other modules. The problems begin with the form of processing. From what I read so far, two concepts are available, both having their pro’s and con’s:
[list=1]Sample-based processing. This is generally slower due to higher overhead. Also, not all kinds of algorithms can be implemented this way (e.g. FFT). This can only be transformed into Frame-based-processing by introducing additional delay.[/]
Frame-based processing. Faster due to less overhead. Frame-based processing can easily be disassembled into sample-based processing using a simple loop - without introducing delay. [/][/list]
Now, when I think at my connections between my modules, I understand, how this could be implemented using the sample-based approach. Every output just calls all the connected inputs. Feedback-loops could be resolved by introducing a one-sample delay. Even mixing audio together seems easy.
However, I have no idea, how to realize those connections with the frame-based approach.
So this would be my first question to you: What is the way to go for me?
As a second question I’d like to ask you: Where do I start understanding the JUCE audio classes? Most likely there is a common logic that can be found in any of those classes, but I haven’t had much success finding it.
Thank you for your answers,
PS: If you know a link to good example codes (preferably juce-based) or tutorials: Please post them, too!