Beast FAQ

= Introduction=

Authors
The main author of BEAST/BSE is Tim Janik. A list of the various contributions is given in the About box of BEAST.

Document History
This FAQ was written by Tim Janik. Initial markup was done by Dave Seidel, until Alper Ersoy implemented a new markup parser for BEAST documentation. Around the 0.4.1 release, the docs got migrated to texinfo format. After the 0.6.6 release, the documentation system was rewritten, so all docs inclusing the FAQ got migrated to doxer format. In 2011 the FAQ got incorporated into the Beast wiki.

Contact Information and Resources

 * WWW: http://beast.testbit.eu
 * Mailing List: http://mail.gnome.org/mailman/listinfo/beast/.

= Questions & Answers=

Why do I get "Cannot access memory at address 0x706f6e6d" when running BEAST in gdb?
Some versions of gdb have problems figuring dynamic plugins, we can only hope that this is going to be fixed some time soon. Newer versions of gdb may already figure what's going on with the plugins if you simply restart BEAST within gdb.

UPDATE: This problem has not been reproduced with gdb versions newer than 5.

Why doesn't my synthesis network produce any sound?
There are various possible causes for this. First, make sure you have BEAST correctly installed and accessing your sound card by running one of the synthesis tests in the ./test/ subdirectory. For custom synthesis networks, make sure you have something noisy (e.g. the audio output of an oscillator) hooked up to a PcmOutput module, and have the network's "Auto Activate" parameter (on it's "Parameters" notebook page, section "Playback Settings") enabled.

Why can't I get the synthesis networks to work?
This is probably a plugin loading problem, most synthesis networks require plugins and won't work if there are any problems loading/finding them. BEAST loads its plugins from some common installation directory. It therefore needs to be properly installed before you can make use of its plugins. Simply starting it from within the build directory is not sufficient.

Why do I see BEAST-WARNING **: strange, can't find any plugins, please check .../plugins on startup?
See previous question.

Why can't I get BEAST to load my .mp3, .aiff, .something sample files?
Import functionality for foreign sample types is always being worked on, but due to the sheer multitude of formats out there chances are that a specific format is not yet supported. However, sample file loaders have much improved in the last versions, and at this point exist for Ogg/Vorbis, MPEG Audio 1.0/2.0/2.5 Layer I/II/III, RIFF/WAVE, and .bsewave (BSE multi sample format) files.

Why does BEAST sometimes crash with a segmentation fault on startup?
This was due to a bug in the X Keyboard extension. BEAST tries to figure the country specifics of the keyboard layout, using the XKB extension. Apparently, there are some allocation problems in XkbFreeKeyboard or XkbFreeClientMap in libX11, which can cause random crashes. Usually BEAST will run fine when restarted.

UPDATE: Recent versions of XKB seem to have fixed this problem.

Why doesn't BEAST 0.4.0 play songs from earlier versions?
The song support was completely rewritten for this version. If lots of compatiblity problem reports occur, a converter might be implemented at some point.

What is a .bse file?
BEAST stores saved data in BSE files. These files can hold everything associated with a project, such as the definition of synthesis networks, songs with their notes and tracks, and even complete music sample files. Except for raw sample data, the contents are stored in a human readable text form using lisp syntax. The textual file contents may even be manually edited, as long as the binary appendix used to store wave data doesn't get corrupted. The recommended mime type image for BSE files looks like this:

What are the minimum hardware requirements for BEAST?
This depends a lot on how you utilise BEAST. If you simply want to create synthesis networks or very simple songs, any Pentium II ought to suffice. If you want to lay down a few tracks with effects you may need something more modern like a CPU with 1 GHz or higher core frequency.

BEAST crashes upon creation of new synthesis networks?
BEAST uses the GnomeCanvas Library to display synthesis networks. That library has a malicious redrawing bug in versions up to (including) 2.2.0.1 triggering an assertion if the code is compiled with debugging output, which looks like this GnomeCanvas error: This issue got fixed with version 2.2.0.2, so users encountering crashes with BEAST upon creation of synthesis networks will need to upgrade their GnomeCanvas Library to at least 2.2.0.2.

How do i get MIDI to work?
BEAST comes with a test/midi-test.bse file in the test/ directory of recent releases, it works out of the box with properly setup MIDI drivers and MIDI pianos. Setting up MIDI drivers can be a tough task on its own but is beyond the scope of this FAQ and is already taken care of by The Linux MIDI-HOWTO, which provides good descriptions and further links to related documentation.

GCC/G++ crashes or leaks or hangs when compiling BEAST
Recent versions of BEAST make use of C++ templates pretty heavily. This allowes us to greatly simplify some code portions (for instance the plugin implementations), but it's also a stress-test for the compilers out there. So people encountering problems compiling C++ code in BEAST should try to upgrade their compilers as a first meassure.

Unwanted signal distortion when using multiple tracks
The signal output of a song's tracks in BEAST are added up before they are routed to the sound output driver. If this added-up signal exceeds the maximum amplitude supported by the output driver (usually the machine's sound card), the output values are clipped to the supported range, causing the audio signal to encounter distortion of varying amounts, depending on the signal utilization of the channels. In the current version (0.6.2), the distortion can be circumvented by adding a post-processing network to songs which attenuates the incoming signals (left and right). The Quick Start Guide has a section detailing the setup of postprocessing networks. For future versions, a mixer is already in development, which will allow to handle this situation in much more flexible and adequate ways.

What platforms are supported?
Beast is mainly developed under Linux and has been ported to some BSD versions. The Download page of the Beast website links to the available packages and source code repositories for the various supported Linux and BSD variants. Some effort also went into a Windows port, more details about the state of which can be found on the Beast Windows Port wiki page. Other operating systems are currently not supported, but the project is always taking patches and looks for new volounteers. So to start a new port, simply write your patch and contact the mailing list and developers.

Why does nothing happen on Play?
If correctly installed, BEAST should play the demo song from the Demo-menu out of the box, unless it cannot acquire a suitable PCM device. To debug PCM problem causes, the following can be used: $ beast --bse-debug=pcm

This can produce message like the following: beast-0.7.1[999]:BSE-ALSA:1 : ALSA: opening PCM "hw: 0,0" readable=1 writable=1 : Device or resource busy

This is an indication that you have other audio programs (players or sound servers) which currently access your PCM device and block it for BEAST. Stopping or closing the other applications should free the audio device for use by BEAST. beast-0.7.1[26493]:BSE-ALSA:1 : ALSA: opening PCM "hw: 0,0" readable=0 writable=1 : Failed to configure device frequency

This one is a bit more tricky. Some ALSA drivers only allow very specific playback rates to be used by audio applications. BEAST uses the playback rate specified in the user preferences which comes with plausible defaults upon installation. If you see this message, try to adjust the "Synth Mixing Frequency" on the "BSE" page of the Edit/Preferences dialog.