I'm considering RTAudio + RTMidi and PortAudio + PortMidi for a new project that requires realtime audio and midi procesing. Can anyone with experience using both libraries recommend one over the other? why?
I prefer a C++ API over a C API but this is not enough for me to make a decision.
I have been locking for the perfect match with that need for a quite long time.
For now I prefer
-
port audio:
- (+) on Windows, supports asio, DirectSound, MME, WASAPI (with header headaches)
- (+) on Linux, supports ALSA, OSS, Pulse, JACK
- (+) on Mac, supports Core Audio
- (+) very active project,and some good gurus are developing it).
- (+) used by many very successful apps + the C++ is not native but there is a binding that is integrated to the main branch (since last year i think)
- (+) It's really reliable with libsdnfile (which is great)
- (-) It's not native c++
- (-) the projects, configure, integration is pretty annoying
- (-) working well for multiple platforms (debian, osx, seven : my own experience)
- (-) much of the documentation sucks and is mostly outdated and contradictory when googling for answers
-
rt audio
- (+) on Windows, supports asio, DirectSound, WASAPI (as of 10-04-2014)
- (+) on Linux, supports ALSA, OSS, Pulse, JACK
- (+) on Mac, supports Core Audio
- (+) native c++,
- (+) really easy to get into it
- (-) not so much active
- (-) much of the documentation sucks and is mostly outdated and contradictory
when googling for answers
other solutions :
-
Qt :
- (-) heavy, not exactly what i'm looking for
- (-) real time audio support is recent and not stable
- (+) easy to use if you use QtCreator (and less if using QtAddon with visual, and less with xcode)
- (+) midi integrated
-
Juce:
- java like design
- heavy, not exactly what i'm looking for
- simple, and working pretty well (used professional audio)
- midi integrated, file reading of aiff and wave, and flac