Csound Shell for BeOS

The Csound Shell is a graphical UI front-end for the Csound music synthesis
program. Its main features are
- Access to all of Csound, including the analysis utilities.
- Ability to save and load sets of options and parameters.
- Full use of BeOS multithreading; while one job is being run, you can
already set up (and indeed start) the next one.
The current version does not yet allow realtime sound input or output, has
no graphical displays and does not allow X/Y coordinate input. These features
will be supported in a later version.
At the heart of the Csound Shell is the concept of a job. A job is
simply a collection of command-line options and parameters which will be
passed to Csound when the job is executed. Jobs can be saved in files.
There are several different job types:
- Synthesis Jobs contain settings for running
Csound in its normal mode, where it synthesizes sounds from its input data.
- Heterodyne Filter Analysis Jobs let Csound run
the
hetro
analysis utility, which generates input files usable
by the adsyn
opcode.
- Linear Predictive Analysis Jobs let Csound run
the
lpanal
analysis utility, which generates input files for
the lpread
opcode.
- Short-Time Fourier Analysis Jobs run the
pvanal
analysis utility program, which produces short-time
Fourier transform data for phase vocoder resynthesis (using the
pvoc
opcode).
- Fourier Analysis Jobs also perform Fourier
analysis (using
cvanal
), for producing fast convolutions with
the convolve
opcode.
- An Environment Job contains values for the
environment variables controlling Csound.
Every open job in the Csound Shell has an associated job window which
displays controls for modifying the contents of the job.
If there are many parameters in the job, an additional options window
is provided to reduce visual complexity.
A job window contains a menu bar and a set of buttons
controlling the execution of the job.
Options windows contain only controls. Closing a job window discards the job,
but closing an options window merely hides the window.
Each control in a window corresponds to a single component of the job
associated with the window. Depending on the component's type, different kinds
of controls are used:
Component Type | Control |
Filename | Text entry field |
Numeric value | Text entry field |
Boolean switch | Check box |
1-of-N selection | Set of radio buttons |
Text entry fields can be mandatory (a value is required for executing
the job) or optional. As long as any mandatory text entry field has
not been assigned a value, the command button used to start execution will stay
disabled. If an optional text entry field has not been assigned a value,
the corresponding command line option will not be passed to Csound when the
job is executed. Mandatory text entry fields are distinguished by their
different background color.
Files can be dragged from a Tracker window to a window in the Csound Shell.
A file whose MIME type or filename extension is recognized will cause the
corresponding text entry field to be updated with the file's name, regardless
of the location where it was dropped. A file whose type or extension is
unknown will cause a text entry field to be updated only if it is dropped
within the space occupied by the field.