TFMX

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
TFMX

TFMX (The Final Musicsystem eXtended) ist ein kommerzielles Musikprogramm für den Commodore Amiga von Chris Hülsbeck und Peter Thierolf. Chris Hülsbeck entwickelte das Konzept, die Musikroutine und die Grafik, während Peter Thierolf den Editor programmierte. TFMX wurde 1988/89 von der Firma Demonware veröffentlicht. Eine Neuveröffentlichung erfolgte im Jahre 1994 durch die Firma Magnamedia auf der Amiga Power Disc Nr. 21.

Der TFMX-Editor[Bearbeiten | Quelltext bearbeiten]

Grundlegendes[Bearbeiten | Quelltext bearbeiten]

TFMX-Editor

Der TFMX-Editor zählt zu den Trackern. Abweichend von den damals üblichen Trackern verwendet der TFMX-Editor dabei kein reines Liniensystem, sondern basiert auf Tracks, Patterns und Macros. Die Eingabe der Werte erfolgt hierbei stets im Hexadezimalsystem.

Zur Bearbeitung eines Songs stellt der TFMX-Editor die Track-Page (auch als Track-Step bezeichnet), die Pattern-Page und die Macro-Page zur Verfügung.

Die Track-Page[Bearbeiten | Quelltext bearbeiten]

Track-Page

Die Track-Page bietet acht voneinander unabhängige Spuren (Tracks). In jeder Spur können zwei Werte (jeweils ein Byte) eingetragen werden: zum einen die Nummer des zu spielenden Patterns und zum anderen die Höhe der Transponierung des zu spielenden Patterns. Die acht Spuren werden in Schritten (Steps) gleichzeitig abgespielt. Pro Schritt besitzt der Track-Step also eine Datenmenge von acht Wörtern (8x 2 Bytes). Die Anzahl der Schritte ist auf 512 begrenzt.

Gültige Patternnummern für die Track-Page sind $00 bis $7F. Das entspricht einer maximalen Anzahl von 128 Patterns. Darüber hinaus existieren spezielle Pattern-Kommandos, die sich auf einen einzelnen Track, und Track-Step-Kommandos, die sich auf den gesamten Song auswirken.

Pattern-Kommandos:

  • $80 – Weiterspielen des vorherigen Patterns
  • $FE – Löschen des im Transposewert angegebenen Tonkanals
  • $FF – Leeres Pattern

Track-Step-Kommandos:

Befehl Parameter Kommando
Funktion
EFFE 0000 keine STOP Der Song wird gestoppt.
EFFE 0001 yyyy LOOP Der Song loopt zu Track-Step-Zeile yyyy.
EFFE 0002 yyyy SPEED Die Songgeschwindigkeit wird auf yyyy geändert.
EFFE 0003 yyyy TIMESHARE* Verringerung der Rechenzeit des Players ein- (yyyy = 0001) bzw. ausschalten (yyyy = 0000).
* Dieses Kommando funktioniert nur mit TFMX Musikroutinen ohne Unterstützung des 7-stimmigen Modus.
EFFE 0003 00yy 00zz 7-VOICE** Wiedergaberate des Songs in yy kHz, Feineinstellung der Songgeschwindigkeit um zz.
** Dieses Kommando funktioniert nur mit TFMX Musikroutinen, die den 7-stimmigen Modus unterstützen.
EFFE 0004 00yy 00zz FADE Die Lautstärke des Songs wird auf zz mit einer Geschwindigkeit von yy gefadet.

Beispiel: Fade-In eines Songs mit der Geschwindigkeit $28 auf die Lautstärke $3F:

Track 1 Track 2 Track 3 Track 4 Track 5 Track 6 Track 7 Track 8
STEP
PT TR
PT TR
PT TR
PT TR
PT TR
PT TR
PT TR
PT TR
0000
EF FE
00 04
00 28
00 3F
FF 00
FF 00
FF 00
FF 00

Die Pattern-Page[Bearbeiten | Quelltext bearbeiten]

Pattern-Page

Die Pattern bilden die Grundbausteine des TFMX-Songs. In der Track-Page zusammengefügt, ergeben sie den Gesamtsong. In der Pattern-Page werden die Noten und die jeweils dazugehörigen Macros, sowie die Lautstärke und der Tonkanal eingegeben. Weiterhin gibt es eine Vielzahl an Patternbefehlen, die ebenfalls in den Pattern verwendet werden können. Die Anzahl der Pattern ist auf 128 begrenzt. Die Länge eines einzelnen Pattern ist variabel und gliedert sich, ebenso wie die Track-Page, in Schritte. Ein Schritt eines Pattern enthält entweder eine Note oder einen Patternbefehl und besitzt jeweils die Größe eines Langwortes. Jedes Pattern wird immer mit dem Patternbefehl $F0 END abgeschlossen. Das Ende eines einzelnen Pattern lässt sich daher in der Datenstruktur des TFMX-Songs am Langwort $F0000000 erkennen.

Schematischer Aufbau eines Pattern:

STEP
NOTE
STATUS
MACRONR.
NAME
VOLUME
CHANNEL
DETUNE
0000
18
F#2
00
F
1
00
0001
F3
WAIT
0F
Count 00-FF
0
0
00
0002
F0
END
00
Next track step
0
0
00

Dieses Pattern spielt die Note F#2 mittels des Macros Nummer $00 in maximaler Lautstärke ab und wartet einen Zeitraum von $0F Schritten, bis das Pattern beendet wird. Im TFMX-Song liegt dieses Pattern in Form von drei Langworten vor (je ein Langwort pro Schritt): 1800F100 F30F0000 F0000000

Notenwerte können in drei unterschiedlichen Varianten eingegeben werden:

  • Bei Notenwerten kleiner als $80 wird mit Abarbeitung der Note automatisch der nächste Schritt ausgeführt. Ein Patternbefehl wie z. B. $F3 WAIT ist hier also erforderlich, damit die Note hörbar wird und die TFMX-Musikroutine nicht gleich die nächste Note abspielt.
  • Notenwerte ab $80, die kleiner als $C0 sind, beinhalten einen solchen WAIT Befehl. Die Anzahl der Warteschritte wird dafür im letzten, ursprünglich für DETUNE vorgesehenen Byte eingegeben.
  • Notenwerte ab $C0, die kleiner als $F0 sind, beinhalten einen PORTAMENTO Befehl. Die Tonhöhe wird auf den hier eingegebenen Notenwert hingezogen, vorausgesetzt, dass zuvor eine Note anderer Tonhöhe auf dem gleichen Tonkanal abgespielt wurde. Hierbei wird in dem für die MACRONUMMER vorgesehenen Byte der Wert für den Portamentozähler (standardmäßig auf $01 eingestellt) und in dem für DETUNE vorgesehenen Byte die Portamentogeschwindigkeit eingestellt. Die Kombination beider Werte ergibt die Geschwindigkeit des Portamentoeffekts.
  • Werte ab $F0 stellen reine Patternbefehle dar.

Patternbefehle:

NOTE
STATUS
MACRONR.
NAME
VOLUME
CHANNEL
DETUNE
Parameter
F0
END
--
Next track step
-
-
--
keine
F1
LOOP
aa
count / step.w
b
b
bb
Programmierung einer Schleife
aa = Anzahl der Schleifendurchläufe (00 entspricht unendlich)
bbbb = Schritt, zu dem geloopt wird
F2
CONT
aa
patternno./step.w
b
b
bb
Fortsetzen in einem anderen Pattern (JMP)
aa = Patternnummer, an der fortgesetzt wird
bbbb = Schritt im Zielpattern, an dem fortgesetzt wird
F3
WAIT
aa
count 00-ff
-
-
--
aa = Anzahl der Warteschritte
F4
STOP
--
Stop this pattern
-
-
--
keine
F5
KUP^
--
Set key up / channel
-
a
--
Sendet den Befehl KEYUP an das Macro auf dem Tonkanal a
F6
VIBR
aa
speed / rate.b
-
b
cc
Vibrato
aa = Geschwindigkeit des Vibrato
b = Tonkanal
cc = Stärke des Vibrato
F7
ENVE
aa
speed / endvolume.b
-
b
cc
Envelope
aa = Geschwindigkeit der Lautstärkeveränderung
b = Tonkanal
cc = Ziellautstärke
F8
GSPT
aa
patternno./ step.w
b
b
bb
Verzweigen in ein Subpattern (JSR)
aa = Patternnummer, zu dem verzweigt wird
bbbb = Schritt im Zielpattern, an dem fortgesetzt wird
F9
ROPT
--
Return old pattern
-
-
--
Return to old pattern (RTS)
FA
FADE
aa
speed / endvolume.b
-
-
bb
Fade-in/Fade-out der Gesamtlautstärke
aa = Geschwindigkeit der Lautstärkeveränderung
bb = Ziellautstärke
FB
PPAT
aa
patt./track+transp
-
b
cc
Play Pattern
Spielt das Pattern aa im Track b mit einer Transponierung von cc ab
FC
FXPR
aa
prio / channel+len.b
-
b
cc
(Funktion ist nicht dokumentiert)
FD
FLAG
aa
flagnr. 0-3 / value.w
b
b
bb
(Funktion ist nicht dokumentiert)
FE
STOP
--
Stop custompattern
-
-
--
Endmarkierung eines Custompatterns (für eigene Programmierung der Musikroutine)
FF
NOP!
--
no operation
-
-
--
Keine Funktion (dient als Füllnote für einige Funktionen des TFMX-Editors)

Die Macro-Page[Bearbeiten | Quelltext bearbeiten]

Macro-Page

Bevor Samplematerial im Musikstück verwendet werden kann, muss zunächst ein Macro erstellt werden. Dazu bietet der TFMX-Editor die Möglichkeit, ein Standardmacro zu erstellen, das notwendigste Daten zur Wiedergabe des Samplematerials enthält (z. B. Beginn- und Länge des Samples). Abgesehen davon stellt der TFMX-Editor eine Vielzahl an Macrobefehlen zur Verfügung, die zur Entwicklung komplexer Macros verwendet werden können. Die Anzahl der Macros ist auf 128 begrenzt.

Das TFMX-Fileformat[Bearbeiten | Quelltext bearbeiten]

Der TFMX-Editor speichert einen TFMX-Song in drei Dateien gesplittet ab. Gespeichert werden:

  1. Präfix info. – Infodatei, welche die Namen der Pattern, Macros und Samples enthält
  2. Präfix mdat. – Musikdatei, welche sämtliche Daten des Musikstückes exklusive der Sampledaten enthält
  3. Präfix smpl. – Sampledatei, welche die reinen Sampledaten enthält

Um einen TFMX-Song abzuspielen, genügen die Musik- und Sampledateien. Die Infodatei wird lediglich zur Weiterbearbeitung des TFMX-Songs im TFMX-Editor benötigt.

Bekannte TFMX-Musiker[Bearbeiten | Quelltext bearbeiten]

  • Chris Hülsbeck (z. B. Apidya, Jim Power, Turrican-Trilogie)
  • Rudolf Stember (z. B. Das Schwarze Auge: Die Nordland-Trilogie, Mad TV, Mr. Nutz)
  • Peter Thierolf (z. B. Fatal Heritage, Ooops Up, The Power)
  • Dirk Magerkord (z. B. Brainball, PP Hammer)
  • Jonathan Pickard (z. B. PreFlightCheck, Rush of Discovery)
  • Jan Krolzig (z. B. Cheeky Twins)
  • Markus Schneider (z. B. Gordian Tomb, Tusker)

Weblinks[Bearbeiten | Quelltext bearbeiten]