Beats ist eine Drum Machine … eine Kommandozeilen Drum Machine. Man beschreibt seinen Beat in YAML (Yet Another Markup Language), füttert Beat mit diesem Code und man bekommt eine Wav-Datei. Klingt einfach, isses auch.

recht übersichtlich…

Zunächst einmal muss man den Compiler (Beats) installieren. Das funktioniert mithilfe der rubygems.org. Mit folgendem Befehl wird Beats dann installiert:

gem install beats

Einfacher geht’s kaum. Die Beats Downloadseite bietet auch gleich ein paar Samples zum Rumprobieren mit an … falls man gerade nichts zur Hand hat. Im Grunde funktioniert Beats ganz simpel. Man schreibt seinen Songablauf und die zu verwendenden Samples in eine Text-Datei, die ein spezielles Format haben muss, dann ruft man den Compiler auf und dieser erzeugt dann die Wav-Datei.

Ich habe gerade eben mal ganz schnell etwas zusammen geschrieben (Achtung … ist nicht allzu musikalisch). Wichtig ist, dass man die Samples im gleichen Ordner liegen hat, wie später dann die Textdatei mit der Komposition.

Song:
    Tempo: 110
    Flow:
        -  Verse:  x2
        -  Chorus: x1
        -  Verse:  x2
        -  Chorus: x1
    Kit:
        -  Kick:      Kick.wav
        -  Snare:     Snare.wav
        -  ClosedHat: HH_cl.wav
        -  OpenHat:   HH_op.wav
        -  Claps:     Claps.wav
    
Verse:
    -  Kick:      X...X...X...X...X...X...X...X...
    -  Snare:     ..X...X.......X.......X...X.....
    -  ClosedHat: X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.
    -  OpenHat:   ..............................X.
    -  Claps:     ..................X.......X.....

Chorus: 
    -  Kick:      X.......X...X...
    -  ClosedHat: X...X...X...X...
    -  Claps:     ......X...X.....

Wichtig ist hier auch, dass man die Einrückungen beachtet. Ich hatte z.B. die Patterns für den Verse und den Chorus genau so eingerückt, wie Tempo, Flow und Kit und schon bekam ich beim Kompilieren eine Fehlermeldung. Also, das Textfile wird im selben Ordner wie die Samples abgelegt, das Terminal aufgerufen und folgendes Kommando ausgeführt:

beats song01.txt song01.wav

…Und nach ein paar Sekunden ist die Magie vorüber und im Ordner liegt wie durch Zauberhand ein Wav-File:

kein gutes Beispiel…

Beats bietet noch einige Parameter bei der Kompilierung an, um beispielsweise jeden Track einzeln auszugeben, oder nur ein Pattern zu generieren.

-s, --split
    Save each track to a separate Wave file,
    instead of combining them into one.

-p, --pattern PATTERN_NAME
    Only generate the pattern PATTERN_NAME,
    instead of the entire song.

--path BASE_PATH
    Look for song files with relative paths
    relative to BASE_PATH, instead of relative
    to the song file's path.

beats -s example_song.txt
beats -p Verse example_song.txt
beats --path ~/drum_sounds example_song.txt

Unter’m Strich ist es definitiv eine nette Spielerei, schnell erstellt und resourcenschonend. Allerdings kann man natürlich anstelle der X und . Notation auch schnell etwas in die Piano Roll einzeichnen. Allzu viel Möglichkeiten der Manipulation hat man auch nicht (Humanisierung, Velocity-Einstellungen, etc…). Aber vielleicht machen gerade diese Einschränkungen Sinn. Man muss ja nicht nur Percussion Samples benutzen 😉 Es wäre ja mal eine Übung in Kreativität mit Beats einen kompletten Song zu bauen…