Rationale | |
The Csound implementation on the BeOS differs from implementations on other
computing platforms. The Csound executable itself has no user interface apart
from the POSIX-style command line (which is documented in the Csound manual).
The BeOS user interface is split into a frontend providing job control
and a backend which handles realtime sound I/O and graphical displays.
The frontend is described elsewhere; this document
discusses the backend, also called the Csound Server. To move realtime sound support and graphical displays into a separate process may seem a strange choice; the motivation for it was twofold. One reason is that Csound was not written with the BeOS in mind; an earlier port which integrated these features didn't prove very stable. The second reason was portability; by keeping the changes to the core Csound source code small (in particular, by not introducing any C++ code), I will be able to incorporate future Csound releases more easily. The separation between the front-end and the server makes it possible to run Csound from the command line or from a shell script while still using the server for graphics or realtime I/O.
|
|
Starting the Server | |
The server process can be started by double-clicking on its icon:
|
|
Realtime I/O | |
The server allows running Csound jobs to play sound in realtime.
Recording in realtime has not yet been implemented for BeOS R5.
|
|
Server Windows | |
The server process allows running Csound jobs to use two kinds of windows:
When you close a server window, the associated job will continue running (but all data sent to that window will be discarded). There is no way to reopen a closed window.
|
|
Graph Windows | |
Graph windows are used in Csound to display time-domain or frequency-domain data (signal waveforms and spectra). The information in a graph window is updated whenever new data arrive, without waiting for user confirmation. Nothing is lost; the previous window content is merely replaced by a new "page" of information. You can scroll through all pages using the , , , and keys.
|
|
X/Y Input Windows | |
An X/Y input window displays a crosshair cursor which can be moved with
the mouse. The position of the cursor determines the values returned by
the
|