Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

TFMX

Der TFMX-Editor ist ein auf Videospiel-Musik ausgerichteter Musiksequenzer, der sich konzeptuell stark an MIDI-Sequencern orientiert. ... Im TFMX-Song liegt …

Inhalt6 Abschnitte
  1. 1. Überblick
  2. 2. Aufbau eines Songs
  3. 3. Pattern und Befehle
  4. 4. Wichtige Patternbefehle
  5. 5. Macros und Dateien
  6. 6. Bekannte Nutzer

Überblick

TFMX steht für „The Final Musicsystem eXtended“. Es ist ein kommerzielles Musikprogramm für den Commodore Amiga, das vor allem für Videospiel-Musik gedacht war. Entwickelt wurde es von Chris Hülsbeck und Peter Thierolf: Hülsbeck entwickelte das Konzept, die Musikroutine und die Grafik, Thierolf programmierte den Editor. Veröffentlicht wurde TFMX 1988/89 von Demonware; 1994 erschien eine Neuveröffentlichung durch Magnamedia auf der Amiga Power Disc Nr. 21.

Wichtig ist TFMX, weil es sich von vielen damals auf dem Amiga verbreiteten Trackern unterscheidet. Ein Tracker ordnet Noten meist in ein festes zeitliches Raster ein. TFMX arbeitet dagegen stärker wie ein MIDI-Sequenzer: Noteninformationen können als einzelne Events festgehalten und in einem Event-Editor bearbeitet werden. Die Tonerzeugung nutzt dabei den Amiga-Soundchip, die Eingabe ist aber auf das Einspielen mit einem MIDI-Keyboard ausgerichtet.

Zusätzlich besitzt TFMX einen vereinfachten, trackerähnlichen Bearbeitungsmodus, der dem Soundmonitor nachempfunden ist. Dieser Modus kann als Einstieg dienen, weil seine Noteninformationen in das event-orientierte TFMX-Format umgewandelt werden können. Die Umwandlung funktioniert jedoch nicht zurück in die andere Richtung. Das event-orientierte Format ist das Format, das die vollen Möglichkeiten von TFMX ausnutzt.

Aufbau eines Songs

Ein TFMX-Song wird über mehrere Ebenen aufgebaut. Die Track-Page ordnet größere Songabschnitte an, die Pattern-Page enthält die eigentlichen musikalischen Bausteine mit Noten und Befehlen, und die Macro-Page beschreibt, wie Samplematerial abgespielt wird.

Die Track-Page besitzt acht voneinander unabhängige Spuren, also Tracks. In jeder Spur werden pro Schritt zwei Werte eingetragen: die Nummer des zu spielenden Patterns und die Höhe der Transponierung. Transponierung bedeutet hier, dass ein Pattern in einer anderen Tonhöhe abgespielt werden kann. Die acht Spuren werden Schritt für Schritt gleichzeitig abgespielt. Ein Track-Step enthält daher acht Wörter, also 8 × 2 Bytes. Die Anzahl der Schritte ist auf 512 begrenzt.

Gültige Patternnummern in der Track-Page reichen von $00 bis $7F. Das ergibt höchstens 128 Patterns. Zusätzlich gibt es besondere Pattern-Kommandos für einzelne Tracks und Track-Step-Kommandos, die den gesamten Song beeinflussen. Beispiele sind $80 zum Weiterspielen des vorherigen Patterns, $FE zum Löschen des im Transposewert angegebenen Tonkanals und $FF für ein leeres Pattern.

Track-Step-Kommandos können den Ablauf des Songs steuern. Dazu gehören STOP zum Anhalten, LOOP zum Springen zu einer bestimmten Track-Step-Zeile yyyy, SPEED zum Ändern der Songgeschwindigkeit auf yyyy und FADE zum Ändern der Lautstärke auf zz mit Geschwindigkeit yy. Das Kommando TIMESHARE verringert die Rechenzeit des Players, funktioniert aber nur mit TFMX-Musikroutinen ohne Unterstützung des 7-stimmigen Modus. Das Kommando 7-VOICE legt bei passenden Musikroutinen die Wiedergaberate in yy kHz und eine Feineinstellung der Songgeschwindigkeit um zz fest.

Pattern und Befehle

Pattern sind die Grundbausteine eines TFMX-Songs. In der Track-Page werden sie zum gesamten Song zusammengesetzt. In der Pattern-Page werden Noten, die zugehörigen Macros, Lautstärke und Tonkanal eingegeben. Außerdem können viele Patternbefehle verwendet werden. Die Anzahl der Pattern ist auf 128 begrenzt.

Die Länge eines einzelnen Patterns ist variabel. Wie die Track-Page ist auch ein Pattern in Schritte gegliedert. Ein Schritt enthält entweder eine Note oder einen Patternbefehl und hat jeweils die Größe eines Langwortes. Jedes Pattern endet immer mit dem Patternbefehl $F0 END. In der Datenstruktur eines TFMX-Songs ist das Ende eines Patterns deshalb am Langwort $F0000000 zu erkennen.

Ein Beispiel aus dem Artikel zeigt ein Pattern, das die Note F#2 mit Macro Nummer $00 in maximaler Lautstärke abspielt. Danach wartet es $0F Schritte, bevor es beendet wird. Im Song liegt dieses Pattern als drei Langworte vor: 1800F100 F30F0000 F0000000.

Notenwerte können in mehreren Varianten eingegeben werden. Werte kleiner als $80 führen nach der Note automatisch den nächsten Schritt aus; deshalb ist oft ein Befehl wie $F3 WAIT nötig, damit die Note hörbar bleibt. Werte ab $80 und kleiner als $C0 enthalten bereits einen WAIT-Befehl; die Zahl der Warteschritte steht dann im letzten Byte, das ursprünglich für DETUNE vorgesehen ist. Werte ab $C0 und kleiner als $F0 enthalten einen PORTAMENTO-Befehl. Portamento bedeutet, dass die Tonhöhe zu einem Zielton hingezogen wird, sofern zuvor auf demselben Tonkanal eine Note anderer Tonhöhe gespielt wurde. Werte ab $F0 sind reine Patternbefehle.

Wichtige Patternbefehle

Patternbefehle steuern den Ablauf und Klang innerhalb eines Patterns. $F0 END beendet ein Pattern und führt zum nächsten Track-Step. $F1 LOOP programmiert eine Schleife; aa gibt die Anzahl der Schleifendurchläufe an, wobei 00 unendlich bedeutet, und bbbb gibt den Schritt an, zu dem zurückgesprungen wird. $F2 CONT setzt in einem anderen Pattern fort: aa ist die Patternnummer, bbbb der Schritt im Zielpattern. $F3 WAIT wartet aa Schritte.

Weitere Befehle beeinflussen Klang und Wiedergabe. $F4 STOP stoppt das aktuelle Pattern. $F5 KUP^ sendet KEYUP an das Macro auf einem bestimmten Tonkanal. $F6 VIBR erzeugt Vibrato, also eine periodische Veränderung der Tonhöhe; aa ist die Geschwindigkeit, b der Tonkanal und cc die Stärke. $F7 ENVE steuert eine Lautstärkehüllkurve: aa ist die Geschwindigkeit der Lautstärkeveränderung, b der Tonkanal und cc die Ziellautstärke.

Es gibt auch Befehle für Sprünge und Gesamtlautstärke. $F8 GSPT verzweigt in ein Subpattern, $F9 ROPT kehrt zum alten Pattern zurück. $FA FADE bewirkt ein Fade-in oder Fade-out der Gesamtlautstärke; aa ist die Geschwindigkeit und bb die Ziellautstärke. $FB PPAT spielt ein Pattern aa in Track b mit Transponierung cc ab.

Einige Funktionen sind im Artikel als nicht dokumentiert gekennzeichnet: $FC FXPR und $FD FLAG. $FE STOP dient als Endmarkierung eines Custompatterns für eigene Programmierung der Musikroutine. $FF NOP! hat keine Funktion und dient als Füllnote für einige Funktionen des TFMX-Editors.

Macros und Dateien

Bevor Samplematerial in einem Musikstück verwendet werden kann, muss in TFMX ein Macro erstellt werden. Ein Sample ist aufgezeichnetes Klangmaterial. Ein Macro enthält die nötigen Daten, damit dieses Sample abgespielt werden kann, zum Beispiel Beginn und Länge des Samples. Der TFMX-Editor kann ein Standardmacro erstellen, bietet aber auch viele Macrobefehle für komplexere Macros. Die Anzahl der Macros ist auf 128 begrenzt.

Ein TFMX-Song wird vom Editor in drei Dateien aufgeteilt. Die Datei mit dem Präfix info. ist die Infodatei und enthält die Namen der Pattern, Macros und Samples. Die Datei mit dem Präfix mdat. ist die Musikdatei; sie enthält alle Daten des Musikstücks außer den Sampledaten. Die Datei mit dem Präfix smpl. ist die Sampledatei und enthält die reinen Sampledaten.

Zum Abspielen eines TFMX-Songs genügen die Musikdatei und die Sampledatei. Die Infodatei wird nur benötigt, wenn der Song im TFMX-Editor weiterbearbeitet werden soll.

Bekannte Nutzer

Der Artikel nennt mehrere bekannte TFMX-Musiker. Dazu gehören Chris Hülsbeck, unter anderem mit Apidya, Jim Power und der Turrican-Trilogie, sowie Rudolf Stember, unter anderem mit Das Schwarze Auge: Die Nordland-Trilogie, Mad TV und Mr. Nutz.

Weitere genannte Musiker sind Peter Thierolf mit Fatal Heritage, Ooops Up und The Power, Dirk Magerkord mit Brainball und PP Hammer, Jonathan Pickard mit PreFlightCheck und Rush of Discovery, Jan Krolzig mit Cheeky Twins sowie Markus Schneider mit Gordian Tomb und Tusker.

Weiterlesen