Offset

Aus OpenMPT-Wiki
Zur Navigation springenZur Suche springen
Offset
Startposition in einem Sample festlegen
IT
O
S3M
O
XM
9
MOD
9

Mit Hilfe des Offset-Befehls lässt sich eine andere Start-Position bestimmen, ab der ein Sample gespielt werden soll.

Der Offset kann bei IT- und S3M-Modulen durch O (großes o) und bei MODs und XM-Modulen durch 9 festgelegt werden.

Bei IT- und S3M-Modulen gibt es den High Offset-Befehl (SA). Dadurch kann der Adressierungsbereich um 4 Bits von den regulären 8 (max: FF) auf 12 (FFF) erweitert werden, wodurch es möglich wird, das 16-fache des üblichen Bereiches zu adressieren.

Definition[Bearbeiten]

Der Offset-Befehl ermittelt die neue Position, von der an das Sample gespielt werden soll, indem er den ihm übergebenen Parameter bitweise um 8 Stellen nach links verschiebt. Geht der Wert über die Samplelänge hinaus, spielt das Sample von Anfang an.

|F-501...O10

Hier wird Sample 1 (oder ein Sample aus Instrument 1) ab Sampleposition 4096 gespielt, da 0x10==16 und 16<<8==4096.

Diese Regel lässt sich generell auch anders formulieren: 16*256, also der Parameter von O (bzw. 9) wird mit 256 multipliziert. Dies trifft zu, da eine Bitverschiebung nach links um 8 Stellen immer einer Multiplikation mit 256 gleichkommt (sofern links keine Bits über den Rand hinauswandern, was hier allerdings nie der Fall ist).

Hinweis.gif Für das Verständnis dieses Befehls ...
reicht es aus, sich die Regel XX*256 zu merken. Wichtig ist es auch, zu beachten, dass hier (wie in der Effektspalte üblich) die Parameter in hexadezimaler Schreibweise angegeben werden


High Offset[Bearbeiten]

High Offset
Startposition in einem Sample festlegen (erweitert)
IT
SA
S3M
SA
XM
MOD
SA O00-OFF
0 0-65.280
1 65.536-130.816
2 131.072-196.352
3 196.608-261.888
4 262.144-327.424
5 327.680-392.960
6 393.216-458.496
7 458.752-524.032
8 524.288-589.568
9 589.824-655.104
A 655.360-720.640
B 720.896-786.176
C 786.432-851.712
D 851.968-917.248
E 917.504-982.784
F 983.040-1.048.320

Wenn der Offset-Befehl allein für das Festlegen der Startposition eines Samples nicht ausreicht (dieser kann so nur bis zu Sampleposition 65.280 genutzt werden), wird durch SA die hohe Offset-Position gesetzt. Das bedeutet, man ist nicht auf 8 Bit zur Bestimmung der Position beschränkt - sondern auf 12 :). Ohne diesen Befehl sind die obersten 4 Bit immer 0.

|........SA1
|D#501...O00

Die Offset-Position ist nun dank SA1 nicht 0, sondern 65.536. Das eine Nibble von dem Befehl SA1 ist das Höchstwertige. Und das Byte von O00 wird dann hinten dran gehängt, in Hex umgewandelt ist diese Zahl dann 0x100. Dies in Dezimalschreibweise ist 256 und 256*256 ist 65.536.

Noch ein Beispiel:

|........SA6
|D#501...O28

Hier ist die Zahl 0x628, also 1.576. Dies mit 256 multipliziert ergibt eine Sample-Position von 403.456.

Das durch SA gesetzte Nibble bleibt für die Dauer des Liedes gesetzt, wenn der selbe Befehl nicht erneut mit einem anderen Parameter aufgerufen wird, ist aber nur für den Kanal gültig in dem der Befehl ausgeführt wurde.


Benutzungshilfe[Bearbeiten]

In der Statusleiste des Sample-Editors wird auch der passende Offsetwert angezeigt, wenn sich der Cursor über dem Sample befindet. Dabei werden automatisch Offset und High Offset berechnet (z.B. "O31, SA5").

Die genaue Sampleposition kann man sich in älteren Versionen im Sample-Editor anzeigen lassen, diese muss dann allerdings von Hand umgerechnet werden. Wenn man mit der Maus über die Sample-Darstellung geht, sieht man unten rechts in der Statusleiste hinter Cursor die Position an der sich die Maus gerade befindet. Diese Zahl repräsentiert die Sample-Position. So ist es leichter, die genaue Position zu finden, die man dann auch hinter dem Offset-Befehl eintragen kann. Anstatt aber die Zahl durch 256 zu teilen und dann auch noch in eine Hexadezimalzahl umzurechnen, sollte man den Befehl O (oder halt 9 bei XM/MOD) im Pattern-Editor an der gewünschten Position eingeben, und dann mit der linken Maustaste doppelt auf den Befehl klicken. Dies funktioniert bei allen Effekten. Dort öffnet sich dann ein kleines Fenster, wo man unter Set Offset mit dem Schieberegler die richtige Offset-Position einstellen kann (in einem Abstand von 256; allerdings nur bis 65.280), die dann automatisch durch 256 geteilt und Hex-kodiert hinter dem Offset-Befehl angezeigt wird.

Beispiele[Bearbeiten]

ModPlug Tracker  IT
|C-601...O00
|C-601...O04
|C-601...O09
|C-601...O0D
|C-601...O12
|C-601...O16
|C-601...O1B
|C-601...O1F
|C-601...O24
|C-601...O28
|C-601...O2D
|C-601...O31
|C-601...O36
|C-601...O3A
|C-601...O3F
|C-601...O43
  • Wenn man ein Stimmensample hat, in dem ein Satz gesagt wird, kann man der Stimme im wahrsten Sinne des Wortes die Worte im Mund umdrehen. So lässt sich nämlich - ohne das Sample manipulieren zu müssen - ein komplett neuer Zusammenhang konstruieren.
  • In älteren Modulen trifft man es manchmal an, dass verschiendene Samples in Einem untergebracht wurden und sich so beim Abspielen des Samples mit einem anderen Offset auch ein völlig anderer Ton ergibt. So wurden z. B. Basstrommel, Snare, Hihats und Claps - sprich, die gesamte Perkussion - in einem Sample untergebracht. Auch Strings, die in verschiedenen Akkorden eingespielt wurden, hat man so nicht selten in ein einziges Sample gepackt. Dies war der Tatsache geschuldet, dass es damals, zur Zeit der MODs noch eine Begrenzung von 31 Samples gab. Auf diese Weise wurde ein bisschen gecheatet und es ließen sich mehr Samples unterbringen. Not macht erfinderisch :).
  • Man kann die Geschwindigkeit eines zu spielenden Samples festlegen, indem man von der Start- bis zur Endposition des Samples eine gewisse Anzahl an mehr oder weniger aufeinander folgenden Offsets hintereinander durchspielen lässt. Dabei wird in jeder Zeile ein Stück des Samples gespielt, in der nächsten Zeile ein weiteres Stück und so weiter. Dies wird auch vorzugsweise bei Stimmen angewandt. Um einen solchen Effekt zu erstellen, ermittelt man die Start- und Endposition wie weiter oben beschrieben, trägt den Startoffset an der ersten und den Endoffset an der gewünschten Endposition ein. Danach wählt man den gesamten Bereich aus, drückt die rechte Maustaste und wählt "Interpolate Effect" aus. Auch das Instrument muss in jeder Zeile angespielt werden. Wie das ungefähr aussieht, ist in der Abbildung rechts zu sehen.