---
name: "bsescm"
section: "1"
platform: "linux"
package: "beast"
version: "0.7.4-5"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/bsescm"
---

# bsescm(1)

A Guile based scheme shell for BEAST and BSE.

## 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(1)](/beast/1.md). 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)](/beast/1.md), [bse(5)](/bse/5.md), BEAST/BSE Website (http://beast.testbit.eu), Guile Documentation (http://www.gnu.org/software/guile/docs/)
