Csound BeOS Server
Csound Shell for BeOS
Menus
Environment Variables
Sound Synthesis
Heterodyne Filter Analysis
Linear Predictive Analysis
Short-Time Fourier Analysis
Fourier Analysis
Job Execution
BeOS Server
Rationale
Starting the Server
Realtime I/O
Server Windows
MIDI Support
Valid HTML 4.0!
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:
Server Icon
Normally this is not necessary, because the server is started automatically by the Csound Shell when it is first used. 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 sound in realtime. Recording in realtime has not yet been implemented for BeOS R5.
  • For realtime output, use the special names dac or devaudio instead of the name of an output file for synthesis.
To select the actual audio devices, use the BeOS Sound Preferences panel.

^ Server Windows
The server process allows running Csound jobs to use two kinds of windows:
  • Graph windows, in which synthesis and some analysis jobs display signal waveforms.
  • X/Y input windows, used by the xyin opcode to request user input.
The server never removes the windows, even after the job that requested them has finished. At the moment, there is no way to close all the windows belonging to a single job.

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 Window

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 Home, End, PageUp, and PageDown keys.

X/Y Input Windows
X/Y Window

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 xyin opcode in the instrument which caused the window to appear.


Copyright © 1998–2000 Jens Kilian. This file may be distributed under the conditions of the GNU General Public License.