# BSESCM

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

## NAME

bsescm - A Guile based scheme shell for Beast and Bse.

## SYNOPSIS

bsescm [options] [--] ...

bsescm [options] <infile.bse> ...

## DESCRIPTION

bsescm is a Guile based scheme shell for Bse, the Better Sound Engine.

bsescm provides a shell interface to all procedures exported by the Bse library, so scripts are able to access the full range of functionality provided by it, from simple playback of a .bse file to full fledged automated creation or editing of synthesis networks.

Alternatively to the linked in Bse library, the bsescm language interface can also talk to a remotely running Bse library host, for instance Beast. By operating on a remotely running Bse core, bsescm can be used to script arbitrary Bse programs. The shell is also used directly by the Bse library to execute procedures on its behalf, this allows Bse procedures to be written in scheme.

When started, bsescm tests whether the first non-option argument is a .bse file and if the test succeeds, attempts to play the command line arguments as .bse files.

## OPTIONS

bsescm follows the usual GNU command line syntax, with long options starting with two dashes (’--’).
--bse-pipe infd outfd

Provide the input and output communication filedescriptors for remote operation.

--bse-eval string

Execute (eval-string string) instead of going into interactive mode.

--bse-enable-register

Allowes registration of procedures with the Bse core.

--bse-no-load

Prevent automated loading of plugins and scripts at startup time in interactive mode.

--bse-no-play

Prevent automated detection and playback of .bse file command line arguments.

--g-fatal-warnings

Make runtime warnings fatal (abort).

-h, --help

Describe command line options and exit.

-v, --version

Display version and exit.

-n=nicelevel

Execute with priority nicelevel, this option only takes effect for the root suid wrapper ’beast’.

| -N |  | Disables renicing to execute with existing priority.

--bse-latency=useconds

Set the allowed synthesis latency for Bse in milliseconds.

--bse-mixing-freq=frequency

Set the desired synthesis mixing frequency in Hz.

--bse-control-freq=frequency

Set the desired control frequency in Hz, this should be much smaller than the synthesis mixing frequency to reduce CPU load. The default value of approximately 1000 Hz is usually a good choice.

--bse-pcm-driver driver-conf
-p driver-conf

This options results in an attempt to open the PCM driver driver-conf when playback is started. Multiple options may be supplied to try a variety of drivers and unless driver-conf is specified as "auto", only the drivers listed by options are used. Each driver-conf consists of a driver name and an optional comma seperated list of arguments attached to the driver withan equal sign, e.g.: -p oss=/dev/dsp2,rw -p auto

--bse-midi-driver driver-conf
-m driver-conf

This option is similar to the --bse-pcm-driver option, but applies to MIDI drivers and devices. It also may be specified multiple times and features an "auto" driver.

--bse-driver-list

Produce a list of all available PCM and MIDI drivers and available devices.

Guile Options:
-l file

Load scheme source code from file.

-e function

After reading script, apply function to command-line arguments.

| -ds |  | Do -s script at this point (note that this argument must be used in conjuction with -s).

--debug

Start with debugging evaluator and backtraces enabled (useful for debugging scripts).

--emacs

Enable emacs protocol for use from within emacs (experimental).

The remaining Guile options stop argument processing, and pass all remaining arguments as the value of (command-line):

| -- |  | Stop argument processing, start in interactive mode.

-c expr

Stop argument processing, evaluate expr as a scheme expression.

-s script

Load Scheme source from script and execute as a script.

## SEE ALSO

beast.1 <http://testbit.eu/Beast.1>, bse.5 <http://testbit.eu/Bse.5>, BEAST/BSE Website <http://beast.testbit.eu>, Guile <http://www.gnu.org/software/guile/docs/>