Hello all,
I've hardly started writing a code using audio spatialization techniques (mainly wave field synthesis and binaural rendering), that in a nutshell will have to be able to:
1. Control individually each audio output channel (they will reach a number of 128 or even 256 outputs); by control I mean simple weighting (gain) and delay, and I may have to apply dsp filters on all channels.
2. have a gui, which from within will control the output channels, according to the spatialization technique.
3. the code would better be cross platform, to be easier to handle future changes.
I have to say that I'm quite new in C++ (I'm a bit experienced in creative coding, and creating trivial programs, I've been through a lot of tutorials for the language itself, but I'm note experienced in more complex projects), so sorry if this post may have inaccuracies. Being said that, I'll try to form some questions:
1. For audio I/O I found PortAudio library. I also found fmod, rtaudio, openal, but it seem that port audio will fit better as it integrates with the WASAPI and CoreAudio. There is also Audio Processing Framework (
https://dev.qu.tu-berlin.de/embedded/apf/index.html ) that is intended to be used in applications like this but I'm not sure how to use it. Is it sane to use any of these libraries for this goal or is there a better way? Another important thing is I don't even know how I should do this. I was told to better use circular/ring bufferring on each channel, which I know as a concept, but I don't even know where to begin from. It would be really helpful if you'd point me some examples or hints, as a starting point.
2. For the gui, in order to has a more native feel in each platform, I was thinking, writing each one in its own OS. Is this a good idea, or should I better use an API like Qt or wxWidgets? And also, should I begin with coding the gui, the way the program will handle audio (numbered as "1" here), or should it be done in parallel (for example should I first write the C++ code and then link it with the objective-c and cocoa in XCode)?
This may sound trivial, but after much time of searching I got "lost", as I don't know where I should focus more or less.
Thanks for any of your help!