====== Tools ======
A comparative study of several sound processing tools done at [[http://lac.linuxaudio.org/2010/index.php?page=program&details=1&mode=list&page=program&pdb_filterday=2&pdb_filterlocation=6&pdb_filtertype=o|LAC2010 tools round-table]]. The table should represent what the tools are meant for. This way the table can guide a new user to the right tool for their job.
WORK IN PROGRES\\
Discuss on the [[http://lists.linuxaudio.org/listinfo/linux-audio-dev|linux-audio-dev]] list.\\
[[http://linuxaudio.org/mailarchive/lad/2010/5/15/168869|Email archive]]
===== Legend and Keys =====
^ use-case | see legend below|
^ dev/user |Taget audience: Users or Developers|
^ cross-platf. |also runs on platforms other than GNU/Linux|
^ video |app offers support for video processing/generation|
^ batch | the tool itself offers batch processing: it supports offline (audio) rendering |
^ scoring |app offers native support for scored pieces or interprets musical scores.|
^ livecoding |can be used for livecoding|
^ embed. |embeddable (ie. app is available in the form of a library) |
^ GUI |graphical user interface|
^ txt-UI |textual interface|
^ sync. | supports synchronous (sample-based) processing at fixed samplerate(s) (typically audio and video).|
^ async. | asynchronous (event-based) processing (typically MIDI, OSC and the like) |
^ multirate | can process synchronous streams of (audio) data at different samplerates. |
^ 1-sample |can process 1 sample at a time|
^ functional | functional programming paradigm (stateless)|
^ exec |code is //interpreted// or requires //compilation//|
\\
* **P**: scored Piece
* **D**: pure DSP
* **I**: interactive
* **A**:analysis
===== Comparison Table =====
^ Tool ^ use\\ case ^ dev/\\ user ^ cross-\\ platf. ^ video ^ batch ^ scoring ^ live\\ coding ^ embed. ^ GUI ^ txt\\ UI ^ sync. ^ async. ^ multi\\ rate ^ 1-\\ sample ^ func-\\ tional ^ RT ^ GC ^ exec ^!--
NOTE: THIS TABLE IS BEST EDITED WITH A MONOSPACE FONT.
name usecase X vid bat sco lvc emb GUI txt snc asy mult 1s fun rt gc exec
--!
|[[apps:all:clam|CLAM]] | DAI |dev |(y)|(n)|(y) |(n) |(n)|(y) |(y) |(y) |(y) |(y) |(y) |(y)|(n)|(y) |(n) |compiled |
|[[apps:all:pure_data|Pd]]| IAP |user|(y)|(y)|(y) |(y)*|(y)|(n) |(y) |(n) |(y) |(y) |(n)*|(y)|(n)|(y) |(n) |interpreted|
|[[apps:all:faust|Faust]] | D |dev |(y)|(n)|(y) |(n) |(n)|(y) |(y) |(y) |(y) |(n) |(n) ((not yet)) |(y)|(y)|(y) |(n) |compiled |
|[[apps:all:chuck|Chuck]] | IA |user|(y)|(n)|(y) |(n) |(y)|(n) |(n) |(y) |(y) |(y) |(y) |(y)|(n)|(y) |(n) |interpreted|
|[[apps:all:csound|Csound]]| PI |user|(y)|(n)|(y) |(y) |(n)((Livecoding is possible with 3rd party addons)) |(y) |(n)((3rd party GUIs are available: fi. QuteCSound, Algoscore, Cecilia, blue..)) |(y) |(y) |(y) |(n) |(n)|(n)|(y) |(n) |interpreted|
|[[apps:all:supercollider|SC3]]|PI |user|(y)|(y)|(y)?|(y) |(y)|(y)*|(n) |(y) |(y) |(y) |(n) |(n)|(y)|(y) |(y) |interpreted|
|[[apps:all:snd-rt|Snd-RT]]|PDI? |user|(y)|(n)|(y)?|(n)?|(y)|(n) |(y) |(y) |(y) |(y) |(y) |(y)|(y)|(y) |(y) |compiled |
|[[http://lua-av.mat.ucsb.edu/|Lua-AV]] | PDI |user|(y)|(y)| | |(y)| | |(y) |(y) |(y) | |(y)|(y)|(y) |(y) |interpreted/JIT |
|[[apps:all:fluxus|Fluxus]]| |user| |(y)| | |(y)| |(y) |(y) | | | | |(y)|(y) |(y) |interpreted|
|[[apps:all:gstreamer|Gstreamer]]| |dev | | | | | | | | | | | | |(n)|(y) |(n) |compiled |
|CLM| DIA? |user|(y)|(n)|(y)?|(y) |(n)|(y) |(y) |(y) |(y) |(y) |(y) |(y)|(y)|(n) |(y) |both |
|[[apps:all:nyquist|nyquist]]| |user| | | | | | | | | | | | |(y)|(n) |(y) |interpreted |
Note: the (*)'s are //missing// footnotes from the original document that came to be at LAC2010. Attendees of said round-table please clarify.