BEAST/BSE FAQ - Frequently Asked Questions Document revised: Wed May 25 23:38:29 2005 Table Of Contents Table Of Contents 1 - BEAST/BSE FAQ 1.1 - Authors 1.2 - Document History 1.3 - Contact Information and Resources 1.4 - Why do I get "Cannot access memory at address 0x706f6e6d" when running BEAST in gdb? 1.5 - Why doesn't my synthesis network produce any sound? 1.6 - Why can't I get the synthesis networks to work? 1.7 - Why do I see BEAST-WARNING **: strange, can't find any plugins, please check .../plugins on startup? 1.8 - Why can't I get BEAST to load my .mp3, .aiff, .something sample files? 1.9 - Why does BEAST sometimes crash with a segmentation fault on startup? 1.10 - Why doesn't BEAST 0.4.0 play songs from earlier versions? 1.11 - What is a .bse file? 1.12 - What are the minimum hardware requirements for BEAST? 1.13 - BEAST crashes upon creation of new synthesis networks? 1.14 - How do i get MIDI to work? 1.15 - Gcc/g++ crashes or leaks or hangs when compiling BEAST 1.16 - Unwanted signal distortion when using multiple tracks 1 - BEAST/BSE FAQ 1.1 - Authors The main author of BEAST/BSE is Tim Janik. A list of the various contributions is given in the About box of BEAST. 1.2 - Document History This FAQ was written by Tim Janik (timj@beast.gtk.org). Initial markup was done by Dave Seidel, until Alper Ersoy (dirt@gtk.org) implemented a new markup parser for BEAST documentation. Around the 0.4.1 release, the docs got migrated to texinfo format. 1.3 - Contact Information and Resources WWW: http://beast.gtk.org FTP: ftp://beast.gtk.org/pub/beast Mailing List: http://mail.gnome.org/mailman/listinfo/beast/. 1.4 - 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 hasn't yet been reproduced with gdb versions newer than 5. 1.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. 1.6 - 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. 1.7 - Why do I see BEAST-WARNING **: strange, can't find any plugins, please check .../plugins on startup? See previous item. 1.8 - 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. 1.9 - 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. 1.10 - 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. 1.11 - 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: [BSE-Mime-Logo] 1.12 - 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. 1.13 - 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: GnomeCanvas-ERROR **: file gnome-canvas.c: line 3509 (gnome_canvas_request_update_real): assertion failed: (canvas->idle_id != 0) aborting... 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. 1.14 - 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. 1.15 - 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. 1.16 - 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.