Beast - Music Synthesizer and Composer
C++ C Makefile Shell Perl M4 Other
Latest commit 421aca3 Sep 30, 2017 @tim-janik tim-janik Merge branch 'bse-macros'
* bse-macros:
  BSE: use BSE_MFENCE instead of a Rapicorn macro
  SFI: provide BSE_CACHE_LINE_ALIGNMENT and BSE_?FENCE directives
  BSE: use __func__ instead of a Rapicorn macro
  BSE: use DOXYGEN instead of a Rapicorn macro
  BSE: use BSE_BACKTRACE instead of a Rapicorn macro
  BSE: use BSE_NORETURN instead of a Rapicorn macro
  BSE: use BSE_UNUSED instead of a Rapicorn macro
  SFI: fix debug message
  BSE: use BSE_CLASS_NON_COPYABLE instead of a Rapicorn macro
  BSE: use static_assert instead of a Rapicorn macro
  SFI: fix a Bse::warning
  BSE: use BSE_UNLIKELY instead of a Rapicorn macro
  BSE: use BSE_ARRAY_SIZE instead of a Rapicorn macro
  BSE: use BSE_ASSERT_RETURN instead of a Rapicorn macro
  SFI: use BSE_ASSERT_RETURN instead of a Rapicorn macro

Signed-off-by: Tim Janik <timj@gnu.org>
Permalink
Failed to load latest commit information.
beast-gtk BSE: use BSE_UNUSED instead of a Rapicorn macro Sep 24, 2017
bse BSE: use BSE_MFENCE instead of a Rapicorn macro Sep 24, 2017
config BUILD: move autotools files to config/ and require srcdir==builddir Nov 3, 2016
data DATA: remove references to bsescm Jun 18, 2017
debian BUILD: fix build rules to not require guile anymore Jun 18, 2017
docs BSE: use static_assert instead of a Rapicorn macro Sep 24, 2017
drivers DRIVERS: use Bse::info() for runtime messages Jun 25, 2017
ebeast EBEAST: use this_thread_*() for name/getpid/gettid/online_cpus Sep 18, 2017
external/v8pp Merge branch 'wip/for-beast' of http://github.com/tim-janik/v8pp as '… Mar 24, 2017
launchers BUILD: remove EXTRA_DIST everywhere, since we package all git tracked… Jun 17, 2017
library ALL: Actually label "Public Domain Dedication" licenses as "Public Do… Jun 21, 2017
misc MISC: packres.py: add script to generate compressed C++ strings from … Sep 18, 2017
plugins PLUGINS: use std::mutex and std::lock_guard Jul 17, 2017
po PO: scan res/gxk/*.xml files Sep 18, 2017
pybeast BUILD: add $beastdir / INSTALLPATH_BEASTDIR for /opt/<package> instal… Jun 16, 2017
r+d-files BSE: use BSE_ARRAY_SIZE instead of a Rapicorn macro Sep 24, 2017
res RES: move all GXK GUI .xml resource files into res/gxk/ Sep 18, 2017
sfi SFI: provide BSE_CACHE_LINE_ALIGNMENT and BSE_?FENCE directives Sep 24, 2017
tests TESTS: suite1: add randomhash tests from Rapicorn Sep 18, 2017
tools TOOLS: bwtwave: avoid redundant use of mktemp Sep 6, 2017
.autom4te.cfg BUILD: prevent autoconf, autoheader, automake, etc from using stale c… Jun 17, 2017
.gitattributes BUILD: cleanup git archive export files Jun 17, 2017
.gitignore BUILD: use only config/config.h for autoconf results Nov 3, 2016
.travis.yml TRAVIS: remove jessie builds, which only ships g++-4.9 Sep 10, 2017
AUTHORS up version to v0.4.1rc4. Aug 30, 2002
COPYING COPYING: add license text of the LGPL-2.1 to match source code license Jul 15, 2017
HACKING.md HACKING.md: mention deduplicaiton of old enum names Sep 5, 2017
MAINTAINERS MAINTAINERS: http://live.gnome.org/MaintainersCorner#maintainers Sep 8, 2007
Makefile.am RES: add toplevel res/ directory for internal program resources Sep 18, 2017
Makefile.decl BUILD: Makefile.decl: add $(QDIE) Jul 23, 2017
NEWS NEWS: updates for the next release Jun 26, 2017
README.md README.md: we now depend on g++-5.2.1 Sep 10, 2017
acbeast.m4 BUILD: acbeast.m4: provide MC_ASSERT_VERSION Nov 3, 2016
autogen.sh BUILD: autogen.sh: speed up by some +40% by avoiding autoreconf Mar 15, 2017
beast.doap ALL: fixed all web references to use http://beast.testbit.eu/ Apr 8, 2011
configure.ac BUILD: remove rapidres dependency Sep 18, 2017
ld-symbolic.m4 BUILD: link with -Bsymbolic-functions to optimize ELF relocations Oct 17, 2014
stamp-h.in distcheck build fixes Oct 10, 2003
taptool.sh BUILD: taptool.sh: prevent excessive printouts during pipeline failures Dec 29, 2015
topbuildid.hh MISC: mkbuildid.sh: add script to generate build id Oct 19, 2016

README.md

BEAST & BSE

License LGPL-2.1+ Build Status

DESCRIPTION

Beast is a digital synthesizer and music creation system. It has support for Linux Audio Plugins (LADSPA), multi-track editing, unlimited undo, real-time synthesis, MIDI and various free audio codecs. Bse is the Beast Sound Engine, a library providing the synthesis and audio functions used by Beast.

REQUIREMENTS

Beast is a soft realtime application which needs elevated CPU scheduling priorities to avoid audio glitches and drop outs. For this purpose, it installs a small uid wrapper which acquires nice level -20 for the synthesis threads and then immediately drops privileges. For Linux kernels of the 2.6.x series and later, this enables the low-latency scheduling behavior needed to avoid audio artefacts.

In order to build release tarballs, Rapicorn, GnomeCanvas, Ogg/Vorbis, libflac and npm are required. Support for MP3 files is optional and requires libmad (MPEG audio decoder library) when compiling Beast. Compilation requires g++-5.2.1 or later and a recent Linux distribution like Ubuntu-14.04.

INSTALLATION

In short, Beast needs to be built and installed with:

./configure
make
make check         # run simple unit tests
make install
make installcheck  # run audio tests

Note that Beast has to be fully installed to function properly, and that the binaries built in the launchers/ directory have to be installed with permissions of the root user.

BINARY PACKAGES

New source code pushed to the Beast repository is automatically built and tested via Travis-CI. Ever so often we create release candidate packages and later release packages after a stabilization phase. Some of the release candidates and the stable versions are provided as binary packages which can be installed via apt:

# Enable HTTPS transports for apt
apt-get -y install apt-transport-https ca-certificates wget
# Recognize signatures from the Beast-Team
wget -qO- https://beast.testbit.org/apt/archive.key | sudo apt-key add -
# Add Beast release packages to the repository list
echo "deb https://beast.testbit.org/apt xenial/stable/" |
  sudo tee -a /etc/apt/sources.list.d/beast-team.list
# Update package list and install Beast
apt-get update && apt-get -y install beast

The directory xenial/stable/ holds end user release packages, and the directory xenial/rc/ holds temporary release candidates.