This is the third beta release of jcsound, a jack-audio and alsa-sequencer client wrapper for csound. It requires csound to be installed as a shared library. The easiest way to get a library of csound installed, is to download csound-gbs from:
http://sourceforge.net/projects/csound
gbs stands for gnu-build-system.
Then do the standard ./configure --enable-shared && make and (as root) make install
Make sure to add the "enable-shared" flag to configure.
Currently jcsound is somewhat jack-transport aware:
If slave mode is set to 1 , it will only play if the jack transport is rolling, playing silence when it is not.
It will not reposition, and it will still quit at the end of the score.
(see the TODO)
You can also set it to 2: jcsound will then reload the orc/sco if it has changed on disk when you start the transport again.
If you made an error, it will (try to) put out silence.
Or you can set it to both by setting to slave mode to 3 (1+2)
Type jcsound --help to see the available options.
- NOTE
- csound4 does not deal with event extending opcodes if you specify the "-t" flag. So jcsound won't either. If you use midi input (-M) don't use the -t flag!
The -p option may need a little explanation:
csound currently does most of its memory assignment in the first audio buffer of its performance. This is the time that it loads its function tables etc. To prevent (posibly massive) xruns jcsound normally performs this first buffer in silence, discarding the audio. Since its intended use is as a live (midi) instrument that seemed ok to me. But if you have a score that you want to record into ardour f.i., you can override this behaviour by specifying the -p or --inprocess flag at the command line.
TODO
Make it a complete jack-transport slave.
Make userfriendlier ways of quiting a performance.
gui ?/ncurses-interface ?
intergration with (x)emacs editing mode ?
