PERFORMING MY CSOUNDAV COMPOSITIONS WITH OTHER VERSIONS OF CSOUND Art Hunkins - May 2005 The real-time works I have composed for CsoundAV run best in CsoundAV. For the *Windows* platform (CsoundAV is limited to Windows), CsoundAV is the most responsive, versatile and user-friendly of real-time Csounds. Performers and relative newcomers to Csound will experience fewer problems with CsoundAV when working in real time. This is why CsoundAV is the recommended version for these pieces. Here is a list of features of my CsoundAV works that affect which other current Csounds (and computer systems) can perform them: 1) *All* versions of all works require real-time audio. 2) *All* versions of all works require FLTK graphics. 3) Some versions of all works require MIDI input (from an external MIDI controller). 4) Some versions of some works are multi-channel (4 discrete channels - more in only one case). These require a multi-channel sound card. 5) All versions of *some* works specify sample rates less than 44100. (Of course, these rates could be raised if the system is capable.) ASIO sound card drivers (needed for multi-channel output in Windows) sometimes require sample rates of at least 44100. 6) Some works and some versions of works are more computationally demanding than others (an individual work's instructions gives information about this). Most works are *not* computationally intensive - which means they *may* be performable on less powerful computer systems. A fairly recent computer system running CsoundAV (with a PCI or later sound card - stereo or multi-channel) can perform all these works, assuming the system is tuned for real time audio by turning off background processes. Older computer systems and other versions of Csound are where most problems will arise. Nonetheless, not everyone works in Windows, and composers and performers will have their own familiar and preferred versions of Csound and supporting utilities. This document explores other current possibilities for performing these works. As additional options become available, this document will be updated. Please note that all referenced software is available for *free* download. Windows Versions of Csound The recommended version of Csound, Maldonado's CsoundAV, is available at the following URL: http: www.csounds.com/csoundav Both (32-bit) console mode (CsoundAV_Con.exe) and GUI (CsoundAV_Win.exe) versions will work. The documentation for my compositions recommends only the GUI version because it is simpler to run .csd files from it. However, the console (command line) version works well, as do other command line versions described below. Please be aware that any *graphics tablet* version of these compositions, indicated by a final "G" in the filename, require the *very latest* v0.0432 CsoundAV. This latest v0.0432 may be available *only* at the URL above. At this time, CsoundAV alone can perform these graphics tablet versions. CsoundGBS/flCsound Windows executables are located at: http://sourceforge.net/project/showfiles.php?group_id=81968 The GBS version, currently GBS13, is command-line, while flCsound incorporates a simple GUI. To use these versions, you must change the set of CsOptions flags in my performance (.csd) file to one of the following: For files not using MIDI: -m0d -odac For files using MIDI: -M0 -m0d -odac (To spot the difference easily: the original CsOptions include the flag -+K when MIDI is involved.) You can make this change in any text editor. These versions are limited to stereo. Lazzarini's MyCsound4 is a command-line only version found at: http://www.nuim.ie/academic/music/musictec/csound Use the same set of CsOptions as given for the GBS/flCsound versions above. This version too is limited to stereo. In either of these alternative Csounds, sonic output may be broken and sporadic. The drivers they use are the older, higher latency (delayed response) MME variety. *Adding a -b1000 flag to the line of CsOptions will likely help this*. You are urged to experiment with values of -b from 1000 to 4000 to find the number that gives you the most consistent and immediate audio response. Also, closing as many concurrently running processes in the background as possible will help. (Note that CsoundAV is much less susceptible to both audio breakup and latency issues.) A Note about Csound5: Csound5 is the future of Csound, and is intended to be a (much needed) cross-platform solution. Though it is presently considered BETA software, Csound5 for Windows and Linux is now ready for real-time use. It will likely be somewhat longer for a Macintosh version to be "real-time" operational (though it is "getting there"). Csound5beta - part of Gogins' CsoundVST package (or vice versa) - is a command-line version of Csound that can be downloaded here: http://sourceforge.net/project/showfiles.php?group_id=81968 It requires ASIO drivers, and will not work with MME or DirectSound. Stereo soundcards do not have ASIO drivers; however, with the advent of ASIO4ALL, this is no longer a problem (see below). The only real-time limitation of ASIO with Csound5beta is that it cannot do audio input and output (full-duplex) at the same time. (Contrast this to CsoundAV, which is capable of doing full-duplex ASIO - as well as MME and DirectSound.) Csound5beta and CsoundAV are the two Windows Csounds capable of *multichannel* output. *Without* ASIO4ALL, stereo soundcards cannot run Csound5beta. *Native* ASIO drivers are only available for multi-channel cards. Thankfully, the author of ASIO4ALL (an ASIO driver specifically for *stereo* soundcards) has recently done a version that now supports SR's below 44100 (down to and including 8000) - whatever your sound card allows. What this means is that real-time pieces that "break up" on slower computers can now be performed with unbroken sound at slower SR's for at least test/compositional purposes. Here is the link to this latest version (ASIO4ALL 2.6): http://www.asio4all.com/A4Av2Ins.exe Appropriate flags are the same as above, except that -b and -B are also *required*. Their suggested values: -b64 and -B256. (On slow computers, -B should be raised to -B2048 when SR=44100. -B should remain higher than, and a multiple of -b; both numbers are integers and preferably powers of two.) If you have *more than one ASIO driver* installed (including ASIO4ALL), you may need to add a device number following -odac (-odac defaults to -odac0). The *multichannel* driver seems to install itself as #0; ASIO4ALL follows as -odac1. So, in such cases, -odac (no device number) is probably safe for the multichannel device, while -odac1 is likely required for ASIO4ALL. When in doubt, look at the runtime messages to see how the output devices are numbered. Linux Versions of Csound Gogins' Csound5 - part of his CsoundVST package (or vice versa) - is a command-line version of Csound that *must be built by the user*. (Be sure to include the FLTK option when building. Also note that creating your own executable from source files is not for the faint of heart): http://sourceforge.net/project/showfiles.php?group_id=81968 This version *may* have issues with MIDI and with real-time audio. In addition to the flags listed above, -b and -B are required (like Csound5beta); their recommended values: -b64 and -B256 (the same considerations apply as for Csound5beta - see above). CsoundGBS (console mode) and flCsound (minimal GUI) Linux builds - again created by the user - also work for stereo files only (but perhaps multi- channel as well?): http://sourceforge.net/project/showfiles.php?group_id=81968 Finally, Varga's Csound-4.24.1 is a *prebuilt* Linux binary (all other versions are "build your own") that purportedly is capable of multi-channel: http://www.csound.com/istvan/html/cspatches.html (Please note that Varga's *Windows* binary will not work for these pieces.) Limitations of the various Linux packages are that they *may* not be capable of MIDI or (alternatively) of multi-channel audio. Since builds tend to be unique to the user and to his/her version of Linux and supporting software, results tend to be highly variable. A considerable amount of "tweaking" may be necessary to get real-time audio working well. (Also, *many* things can go wrong during the build process!) CsOptions are similar to those for the alternative Windows versions above, except that the audio output device flag (-o) must be specified in a way unique to Linux and the user's hardware. Macintosh Versions of Csound No Macintosh version of Csound can currently perform these compositions. (The leading Mac version of Csound, Ingalls' MacCsound, has a problem with the graphics used, called FLTK.) There is one version, however, that is close to being able to render these works. This is an flCsound (simple GUI) for MacOS X executable based on CsoundGBS8 (an earlier version of the GBS11 cited above): http://sourceforge.net/project/showfiles.php?group_id=81968 (A similar flCsound based on GBS*9*, available at the same URL, has also been recently issued.) The version's drawbacks at this time are that it cannot do MIDI, and that its realtime audio is somewhat problematic. It *may* do multi-channel. The CsOptions should be identical to the alternative Windows versions above. Lots of luck!