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 hope to be able to incorporate future Csound releases more easily.
|
|
Starting the Server | |
The server process can be started by double-clicking on its icon:
![]() /home/config/boot/UserBootscript ), e.g.,
# Start the Csound Server /boot/apps/Csound/CsoundServer &The server runs in the background and doesn't appear in the Be menu. It can only be started once; attempts to run it multiple times will be silently ignored.
|
|
Realtime I/O | |
The server allows running Csound jobs to play and record sound in realtime:
|
|
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
|
|
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
|