Pattern-Loop

Aus OpenMPT-Wiki
Zur Navigation springenZur Suche springen
Pattern-Loop
Pattern(ausschnitt) wiederholen
IT
SB
S3M
SB
XM
E6
MOD
E6

Der Pattern-Loop-Effekt (Schleife) wird benutzt, um ein Pattern oder einen bestimmten Teil darin zu wiederholen. Eine solche Schleife kann nach dem ersten Durchlauf bis zu 15 (hex: F) mal wiederholt, also insgesamt bis zu 16 mal durchlaufen werden.


Hinweise[Bearbeiten]

  • Man kann diesen Befehl nicht auf einen einzelnen Kanal anwenden. Das Pattern wird "in der ganzen Breite" wiederholt.
  • Der Startpunkt (SB0 bzw. E60) und der Endpunkt (SBx bzw. E6x) der Schleife müssen sich auf dem selben Kanal befinden.
  • Verschachtelte Pattern-Loops (also mehrere Loops in verschiedenen Kanälen auf der selben Höhe) sollten vermieden werden, wenn es dir wichtig ist, dass deine Musikstücke in allen Trackern gleich klingen. Viele Tracker und Player (darunter alte Versionen von ModPlug) können verschachtelte Loops nicht korrekt wiedergeben.
  • Im XM-Format solltest du am Ende eines Patterns, in dem Pattern-Loop-Effekte verwendet werden, unbedingt ein Pattern-Break-Kommando (D00) setzen, um so einen berüchtigten Fasttracker-2-Bug zu umgehen.


Beispiel[Bearbeiten]

ModPlug Tracker  IT
|G-501...A03
|...........
|...........
|...........
|C-601...SB0
|...........
|D-601......
|........SB3
|G-501......
|...........
|...........
|...........
|D#501...A06
|...........
|...........
|........C00

Im Beispiel links wird eine Melodie gespielt. In der fünften Zeile (im Pattern-Editor ist dies Zeile 4, da dort die erste Zeile 0 heißt; dadurch sind die taktgebenden Zeilen immer mit geraden Zahlen nummeriert) wird durch SB0 die Startposition des Loops festgelegt. Drei Zeilen darunter findet sich die Endposition, an der gleichzeitig die Anzahl der Wiederholungen eingestellt wird (SB3; in MOD- und XM-Modulen ist der entsprechende Befehl E63). Nun wird also dieser Teil, nachdem er einmal durchlaufen wird, drei mal wiederholt - also insgesamt vier mal gespielt.

Wichtig ist, dass man das Ende eines Loops immer eine Position vor dem nächsten Takt anbringt, sonst wird immer eine Zeile zu viel gespielt.

Wird keine Startposition durch SB0 (bzw. E60 bei XM und MOD) festgelegt, ist der Anfang der Schleife in der ersten Zeile des Patterns.

Zur Erklärung der anderen Befehle, die im Beispiel vorkommen:

Der Befehl A legt die Geschwindigkeit fest.

In Zeile 16 wird durch C00 ein Pattern-Abbruch erwirkt, worauf das Pattern wieder von vorn abspielt (bei mehreren Patterns wird zum nächsten Pattern gesprungen).