Home / LinuxUser / 2003 / 11 / Musiksynthese mit BEAST

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

KDE Plasma Workspaces 4.8
(306 Punkte bei 32 Stimmen)
SUSE12
(173 Punkte bei 4 Stimmen)
Pardus Linux am Ende?
(164 Punkte bei 4 Stimmen)
OpenSuse 12.1-Service Kit 01/12
(161 Punkte bei 4 Stimmen)
Meinst Du: Patch CD Updates?
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Soundbastelkasten

Musiksynthese mit BEAST

01.11.2003 Wer schon immer einmal einen Science-Fiction-Film vertonen wollte, findet in BEAST das richtige Werkzeug zum Basteln abgefahrener Klangkreationen. Aber auch ein satter Heavy-Metal-Verzerrer oder eine Jazzorgel überfordern dieses flexible Werkzeug keineswegs.

Als sich Robert A. Moog und Herbert Deutsch 1964 über die Entwicklung neuer elektronischer Musikinstrumente unterhielten [4], ahnten sie mit Sicherheit nicht, welche Bedeutung modulare Synthesizer knappe vierzig Jahre später haben würden. Ihre Arbeit legte die Grundlage für viele der elektronischen Instrumente, die man heute kaufen kann.

Nach dem Prinzip des legendären Moog-Synthesizers kombiniert auch die Audio-Synthese-Software BEAST (Bedevilled Audio System) einfache Komponenten, die von anderen Komponenten oder auch von außen gesteuert werden können.

Kasten 1: Vom Quellcode zum BEAST

Die Installation von BEAST gestaltet sich je nach verwendeter Distribution mehr oder weniger einfach. Ein simples apt-get install beast unter Debian geht zwar sehr schnell, allerdings muss man sich unter der aktuell stabilen Debian-Ausgabe Woody mit der reichlich veralteten Version 0.3.3 zufriedengeben. Wer etwas abenteuerlustiger ist und auch Pakete aus Debian/testing oder gar unstable einsetzt, erhält auf diesem Weg jedoch ohne weitere Probleme die neueste BEAST-Ausgabe.

Für SuSE 8.2 gibt es zwar ebenfalls vorkompilierte Pakete, die man jedoch mitsamt der vorausgesetzten Software einzeln von Hand installieren muss. Gregor Walugas Howto [5] in deutscher und englischer Sprache erleichtert diese Arbeit.

In allen anderen Fällen ist man auf sich selbst gestellt. Man muss zunächst die benötigten externen Software-Pakete GnomeCanvas aus GNOME 2.0, GTK+ 2.2, Guile 1.6, Ogg/Vorbis und optional libmad installieren, die zum Glück den meisten aktuellen Distributionen als vorkompilierte Pakete beiliegen. Der Rest beschränkt sich dann auf

./configure && make && make install

im Verzeichnis mit dem entpackten BEAST-Quellcode.

Es empfiehlt sich, auch gleich die LADSPA-Plugins von Steve Harris [8] zu installieren, was auch wieder mit ./configure && make && make install getan ist.

Dem hübschen Splash-Screen nach dem Programmstart mit dem Kommando beast& folgt ein Fenster mit einer leeren Sample-Liste, in die sich mit einem Klick auf den Load...-Knopf am rechten Fensterrand eine Klangdatei aufnehmen lässt (Abbildung 1). Name und Kommentar verändert man direkt in der Liste; dazu genügt ein Klick auf das entsprechende Feld. Zu einem Sample-Editor soll später einmal der Editor-Knopf führen; im Moment verbirgt sich dahinter nur eine Vorhörmöglichkeit.

Abbildung 1: Die Sample-Liste mit der Beispiel-WAV-Datei

Der wichtigste Teil von BEAST sind die Custom Synthesizer (anzulegen mit Project / New Custom Synthesizer) – klangverarbeitende Netze mit Signalquellen, Verknüpfungselementen, Filtern und Signalsenken. Der Wave-Generator speist einen Klang aus der Sample-Liste in ein Netz ein, der Standard-Oszillator liefert gängige Grundwellenformen wie Sinus, Dreieck, Sägezahn und Rechteck. Addierer, Multiplikatoren und Mischer kombinieren Signale, außerdem verändern Filter bei Bedarf das Frequenzspektrum eines Signals.

Good Vibrations

Da alle Theorie grau ist, lädt Sie dieser Artikel im Folgenden zu einer praktischen Musikstunde ein. Das nötige Material finden Sie zum Download unter [6], so zum Beispiel die Datei phone.wav, die wir zunächst über Load... laden.

Anschließend legen wir mit Project / New Custom Synthesizer ein neues Netz an. Dabei entsteht eine neue "Karteikarte" namens BseCSynth: Unnamed, die wir in der Leiste am linken Rand auswählen. In deren Reiter Parameters bekommt das Kind einen Namen: Geklingel. Weil das Netz eigenständig und nicht Teil eines MIDI-Synthesizers oder eines Songs ist, setzen wir unter Playback Settings ein Häkchen vor Auto Activate.

Nun nehmen wir uns das eigentliche Netz vor. Im Reiter Routing finden wir eine leere Arbeitsfläche. Das Kontextmenü des rechten Mausknopfs beschert uns mit Audio Sources / Wave Oscillator und einem Linksklick zum Platzieren BseWaveOsc-1, unsere erste Klangquelle.

Das abzuspielende Sample stellen wir im Parameterfenster des Oszillators ein, welches wir mit einem Klick ins soeben neu aufgetauchte Symbol erreichen. Dort listet die Popup-Box unter Wave alle bisher geladenen Samples auf (Abbildung 2). Nach der Auswahl von phones.wav können wir diesen Dialog über das Schließen-Symbol in der Kopfzeile des Fensters beenden; einen extra Schließen-Knopf gibt es nicht.

Hörbar wird der Klang mit dem PCM-Ausgabemodul (Input & Output / PCM Output im Kontextmenü der "Zeichenfläche"). Damit dort auch etwas ankommt, müssen wir noch zwei Verbindungslinien ziehen. Jeweils ein Klick auf das rote Kästchen mit der Bezeichnung Audio Out und ein weiterer auf das gelbe mit der Marke Left Audio In bzw. das olivfarbene Right Audio In verbindet die beiden Komponenten wie in Abbildung 2. Ein Klick auf den dreieckigen Abspielknopf unterhalb der Menüleiste sollte nun für ein hörbares Ergebnis sorgen.

Abbildung 2: Zum Abspielen von "phone.wav" klicken Sie auf den Wiedergabe-Knopf unterhalb des "Project"-Menüs

Liegen die einzelnen Symbole auf der Zeichenfläche zu eng beeinander, zieht man sie einfach mit dem mittleren Mausknopf an einen anderen Platz.

MIDI-Synthesizer

Als nächstes bauen wir einen Minimal-MIDI-Synthesizer, damit wir unsere Klangkreationen direkt mit einem Keyboard ansteuern können. (Wer kein MIDI-Keyboard besitzt, werfe einen Blick in Kasten 3.) Dabei tritt erstmals ein neues Problem auf: Mehrstimmigkeit. Für jede gedrückte Taste muss BEAST den Ton eigenständig berechnen, da er sich normalerweise in Tonhöhe, Anschlagstärke und Haltezeit von den anderen gespielten Noten unterscheidet.

An dieser Stelle kommt das Stichwort "Virtualisierung" ins Spiel: BEASTs MIDI-Komponente kümmert sich darum, dass für jede gespielte Note eine neue Instanz des Synthesizernetzwerks erzeugt, in Gang gesetzt und nach Abschluß der Note auch wieder entfernt wird.

Öffnen wir zunächst einmal eine neue Datei (File / New), in der wir wiederum mit Project / New Custom Synthesizer ein neues Netz anlegen. Auch hier empfiehlt es sich, die Namenlosigkeit von BseCSynth: Unnamed auf der Karte Parameters zu beenden, wo wir außer dem Namen Minimal einen Kommentar, Autoren- und Copyright-Informationen hinterlegen können.

Dass die neue Arbeitsfläche nicht lange leer bleibt, dafür sorgt wiederum das über den rechten Mausknopf erreichbare Kontextmenü. Virtualization / Keyboard Input und ein Klick mit dem linken Mausknopf beschert uns ein erstes BseSubKeyboard, unsere Noteninformationsquelle, die sich vom Keyboard am externen MIDI-Port speist.

Dessen Ausgabefrequenz soll erst einmal einen Oszillator steuern, den wir unter Audio Sources / Standard Oscillator finden. Die Verbindung stellen ein Klick auf das rote Kästchen mit der Bezeichnung Frequency und ein weiterer auf das gelbe mit der Marke Freq In her (siehe Kasten "Verbindungen").

Um den Lautstärkenverlauf einer Note zu beeinflussen, benötigen wir einen Hüllkurvengenerator, zu finden unter Other Sources / Simple ADSR. Dessen Gate In speist sich aus dem Gate des BseSubKeyboard.

Verbindungen

BEAST kennt eine Reihe unterschiedlicher Signal- und Anschlußtypen. Nicht alle können sinnvoll miteinander verbunden werden. Gate- und Sync-Anschlüsse liefern Ereigniswerte (0 oder 1), beispielsweise zeigt eine 1 am Gate-Ausgang eines BseSubKeyBoards an, dass gerade eine Taste auf dem Keyboard gedrückt wird; eine entsprechende Signalflanke am Sync-Ausgang eines BseStandardOsc zeigt an, dass gerade eine neue Schwingungsperiode beginnt. Ein High/Low-Übergang am Gate-Eingang des Hüllkurvengenerators veranlasst diesen dazu, den Kurvenverlauf zu erzeugen. Im Gegensatz dazu liegen an Freq-, Ctrl- und Audio-Anschlüssen kontinuierliche, auf den Bereich zwischen -1 und +1 normierte Signale an, die sich beliebig untereinander verbinden lassen, auch wenn nicht unbedingt jede Verbindung unmittelbar einen Sinn ergibt. Bei den Frequenzen entspricht ein Wert von +1.0 24 kHz, der Kammerton A (440 Hz) hat den Wert 0.01833. Man muss aber nicht selbst umrechnen, da es an den relevanten Stellen passende Eingabemöglichkeiten gibt.

Die Ergebnis-Signale aus dem Oszillator und dem Hüllkurvengenerator kombinieren wir über ein Multiplikationselement (Routing / Mult), indem wir Audio Out mit Audio In1 und Ctrl Out mit Audio In2 verbinden (Abbildung 3).

Am Ende soll ein Ton heraus kommen, das erzeugte Tonsignal hörbar werden. Virtualization / Instrument Output hilft uns weiter. BseMult-1/Audio Out gehört an Left Audio und Right Audio, damit wir das Mono-Signal des Oszillators auf beiden Boxen hören. BseSimpleADSR-1/Done Out verbinden wir mit Synth Done, was der Audioengine anzeigt, dass eine Note fertig ist und nicht mehr weiter berechnet werden muss.

Abbildung 3: Fertig ist das Synthesenetzwerk eines Minimalsynthesizers

Das Synthesenetzwerk steht (Abbildung 3); zum MIDI-Synthesizer fehlt nur noch ein kleiner Schritt: Mit dem Hauptmenüpunkt Project / New MIDI Synthesizer erzeugen wir eine neue Karteikarte BseMidiSynth: Unnamed (Abbildung 4), in der wir aus dem Pop-Down-Menü bei Synthesis Network den Punkt Minimal auswählen und den Startknopf ganz links unterhalb der Menüleiste betätigen. Spielt man nun auf der Klaviatur des MIDI-Keyboards, sollte dies einen hörbaren Effekt erzielen.

Abbildung 4: Einstellungen zum MIDI-Synthesizer

Tabelle 1: Neue Version, neue Namen

Kurz vor Drucklegung erreichte die Redaktion noch eine brandheiße Nachricht aus den BEAST-Labs: Wenn Sie dieses Heft in den Händen halten, wird es die Software voraussichtlich bereits in Version 0.5.5 geben. Dort heißen einige der Ein-/Ausgabemodule anders:

Alte Bezeichnung

Neuer Name

BseMonoKeyboard BseMidiInput
BseMidiIController BseMidiController
BseSubKeyboard BseInstrumentInput
BseSubInstrument BseInstrumentOutput
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1073 Hits
Wertung: 92 Punkte (3 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2012_02

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Knoppix: Bootvorgang mit Cheatcode beschleunigen
Knoppix: Bootvorgang mit Cheatcode beschleunigen
Marcel Hilzinger, 18.01.2012 21:05, 0 Kommentare

Die Bootsequenz der Live-Distribution sucht beim Start zunächst auf Festplatten, dann auf USB-Sticks und erst dann in den DVD-Laufwerken (/dev/sr* oder /dev/scd*) nac...

Aktuelle Fragen

OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 0 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...
SUSE12
Jörg Müller, 25.01.2012 14:27, 5 Antworten
Hallo Gemeinde Ich habe schon ziemlich lange auf einem Rechner Linux laufen, bin also nicht ganz...
Hat jemand Erfahrung beim Einsatz einer Kinect / OpenNI?
GoaSkin , 24.01.2012 23:35, 0 Antworten
Hallo, ich habe mir eine Kinect zugelegt, um zu schauen, was man damit unter Linux so machen k...
Kollaboration - Zeichnen auf mehreren Geräten gleichzeitig
Ludwig jun. B., 19.01.2012 11:17, 4 Antworten
Schönen guten Tag, ich suche aktuell eine Software für Linux/Windows (eines von beiden), welch...