This was an attempt to build a C++ multitrack audioeditor using the Qt4 GUI toolkit.
The audio system is already working, but the GUI is not yet really usable.
The audio IO is callback based: a callback will be called by the PortAudio engine whenever it needs more audio data for output/input. The callback function operates under an interrupt or background thread. This leaves the foreground application free to do other things while the audio just runs in the background.
Each track, effect, etc. has to register a REALTIME-SAFE process method the AudioCtl class and this method will be called each audio block.
This class manages also all the play/pause/stop/seek and other control methods and synchronizes all different tracks and effects.
A more detailed (doxygen) documentation can be found in the source tarball below.