Things we can reuse from other projects (and depend on)
RGC
- GLib 2
-
The object system which GTK+ 2 is based on. Every FreeMix application depends on it heavily.
+ we can find it everywhere GTK+ 2 is installed
- Python
-
Client-side bindings. They can simplify a lot the development of simple applications.
+ Python is everywhere
- liblo
-
OSC server-side support.
+ used by a lot of other audio projects
+ interoperability with sequencers, synths, ...
- a little "static" for our needs
fm_server
- JACK
-
low latency audio server
+ low-latency audio I/O
+ audio routing between applications
+ tempo-based syncronization between applications
+ multiplatform (Linux, BSDs, OS X)
- GStreamer
-
multimedia framework
+ support for a lot of audio formats
+ does sample format conversion for us
- API not completely stable (0.12 will break the current 0.10 API)
- our input plugin has threading nightmares (but works now)
- ALSA
-
PCM output
+ allows the average Linux user to start playing with FreeMix without messing with JACK
+ simple API
- we need a nonblocking callback-based implementation (or use SGIO?) (update: done, we spawn a thread and block)
- only works on Linux
- ALSA sequencer
-
MIDI I/O
- LADSPA
-
common effect plugin API
- libsamplerate
-
sample rate conversion
- SoundTouch?
-
sample rate and pitch conversion
- liboil
-
multimedia operations optimization
fm_gui
- GTK+ 2.0
-
widget toolkit
- libphat
-
audio-oriented GTK+ widgets
- terminatorX
-
some audio-specific widgets
Download in other formats: