MXTracker

MXTracker 1.0

Manuál

Manuál k ovládání AY trackeru pro ZX Spectrum Next

Skener čte klasickou matici klávesnice 8×5, takže všechny kombinace používají CAPS SHIFT (CS) a SYMBOL SHIFT (SS). Ovládání proto funguje i na skutečném Spectrum Next bez PS/2 klávesnice.

01Základní pojmy

Kapitola vysvětluje pojmy, se kterými zbytek manuálu počítá: co je pattern, nástroj, ornament nebo obálka a jak do sebe zapadají. Kdo už v nějakém AY trackeru dělal, může ji přeskočit.

Jak je skladba poskládaná

Tracker skládá hudbu z tabulek. Order list (panel ORDER) je seznam pozic přehrávaných odshora dolů; každá pozice odkazuje na jeden pattern. Pattern je mřížka: řádky jdou v čase za sebou a každý kanál má na řádku jednu buňku s notou a dalšími událostmi. Přehrávač hraje pattern řádek po řádku, na konci přejde na další pozici a za poslední pozicí se vrací na smyčku, kterou v order listu značí zelený trojúhelník. K tomu skladba nese název, autora, výchozí rychlost a kompletní sadu nástrojů a ornamentů; celé se to ukládá do jednoho souboru MXM.

Pattern má 1–96 (60h) řádků, nový vzniká s 64 (40h). Skladba jich může mít až 64, číslují se hexadecimálně 00–3F. Jedno číslo patternu smí stát na několika pozicích — refrén se tak upraví jednou a změní se všude. Sloupec PAT v ORDERu určuje, který pattern pozice hraje, a LEN ukazuje jeho délku.

Tick je základní takt trackeru: jedno obnovení obrazu, na PAL stroji tedy padesátina sekundy. Nástroje, ornamenty i efekty postupují o jeden krok každý tick. Rychlost (Spd: v transportním řádku) říká, kolik ticků trvá jeden řádek patternu — vyšší číslo znamená pomalejší skladbu. Příkaz B umí rychlost přepnout kdekoli uprostřed skladby.

AY čip a kanály

AY (AY-3-8912, přepínatelně kompatibilní YM2149) je zvukový čip Spectra se třemi tónovými kanály. Spectrum Next má díky TurboSound Next tři takové čipy, proto může skladba používat 3, 6, nebo 9 kanálů: CH1–CH3 hraje první AY, CH4–CH6 druhý a CH7–CH9 třetí.

Kanál hraje v každém okamžiku nejvýše jednu notu. Jeho zvuk se míchá ze dvou zdrojů: z tónu — obdélníkové vlny s výškou podle noty — a ze společného šumu. Hlasitost kanálu je buď pevné číslo 0–15, nebo ji převezme hardwarová obálka. Co z toho v danou chvíli zní, řídí aktuální řádek nástroje.

Dvě věci jsou na čipu jen jednou a jeho tři kanály se o ně dělí: generátor šumu (jediná perioda pro celý čip) a obálkový generátor (jediný tvar a perioda). Proto se obojí zadává v globální stopě N ENV AYx vedle patternu, ne v kanálových buňkách.

Buňka patternu

Buňka je jedna událost jednoho kanálu na jednom řádku. Vybraný kanál ukazuje všechna pole, zleva doprava:

PoleVýznam
notaC-1–B-8 spustí notu; === kanál umlčí a R-- je release — rozdíl popisuje kapitola Zadávání not
nástrojdvě hexa číslice: kterým z 32 nástrojů se od tohoto řádku hraje
ENVE = hlasitost kanálu řídí obálka, D = zpět na pevnou hlasitost
ornamentčíslice 0–F vybírá jeden z 16 ornamentů; prázdný ornament 0 vrací čistý tón
hlasitost0–F; škáluje hlasitost, kterou předepisuje nástroj
prodleva a příkazdvě číslice efektu: druhá je číslo příkazu, první určuje, po kolika ticích efekt krokuje
parametrčtyři číslice s hodnotou pro příkaz

Podstatné pravidlo: prázdné pole (tečky) znamená beze změny. Buňka není stav, ale událost — nástroj, hlasitost, ornament i obálka platí od řádku, kde byly zapsané, dokud je jiný řádek nepřepíše. Nota se proto obejde bez vyplněné hlasitosti a kanál bez nové noty prostě drží tu předchozí.

Nástroj

Nástroj (instrument; PT3 mu říká sample neboli vzorek) určuje barvu zvuku. Je to tabulka až 46 řádků: od spuštění noty se přehrává jeden řádek na tick a na konci se tabulka vrací do své smyčky. Smyčka může končit před koncem tabulky: zbylé řádky jsou dozvuk, který u nástroje s příznakem REL zazní po události R--. Každý řádek určuje, zda zní tón, šum, případně obojí, jakou má krok hlasitost 0–15, o kolik se posune výška tónu a jak se mění šum či perioda obálky. Z těchto několika sloupců se skládají doznívající klavíry, vibrata, basy i bicí — kreslí se v editoru nástroje popsaném v kapitole Panely.

Každý AY čip má vlastní banku 32 nástrojů. Při zápisu noty do patternu se číslo aktuálního nástroje doplní do buňky automaticky, takže se běžně jen hraje a nástroje se přepínají přes SS+5 / SS+8.

Ornament

Ornament je tabulka až 32 posunů výšky v půltónech, opět jeden řádek na tick a se smyčkou. Přičítá se k zahrané notě: ornament opakující 0 +4 +7 udělá z jedné noty rozložený durový akord (arpeggio) — na čipu, kde má každý kanál jediný tón, je to klasická náhrada akordů. Hodí se i na trylky a rychlé nájezdy. Každý AY má banku 16 ornamentů; číslo 0 se obvykle nechává prázdné, takže funguje jako „žádný ornament“.

Hardwarová obálka

Obálka (envelope) je průběh hlasitosti, který generuje sám čip: pila, trojúhelník nebo jednorázový náběh či útlum, daný tvarem 0–F a 16bitovou periodou. Kanál se k ní přihlásí událostí E ve sloupci ENV (nebo příznakem v řádku nástroje); od té chvíle jeho hlasitost neřídí čísla 0–15, ale obálka.

S dlouhou periodou obálka pomalu tvaruje hlasitost. S krátkou se ale rozkmitá tak rychle, že funguje jako další oscilátor — odtud typické obálkové basy a „bzučivé“ zvuky AY hudby. V tom případě výšku určuje perioda obálky, ne zahraná nota. Tvar i perioda se zadávají v globální stopě; tabulka tvarů s náčrty průběhů je v kapitole Panely a seznam otevře EXT.MODE+F.

Šum

Šum je náhodný signál pro bicí, výbuchy nebo příboj. Čip má jediný šumový generátor s periodou 00–1F (menší číslo = vyšší, syčivější šum), společný pro všechny tři kanály. Zda se šum do kanálu přimíchá, říká řádek nástroje; jakou má právě periodu, určuje sloupec N globální stopy, případně posuny z nástroje.

Globální stopa AY

Pruh N ENV AYx vpravo od patternu je čtvrtá stopa každého čipu: nese události, které patří celému AY — periodu šumu a tvar s periodou obálky. Zobrazuje se jako NN EPPPP a tečky v něm znamenají „beze změny“ stejně jako v buňkách; = místo tvaru mění jen periodu bez nového spuštění obálky. Edituje se stejnými klávesami jako pattern, podrobnosti v kapitole Panely.

Banky a LINK

Nástroje a ornamenty jsou pro každý AY zvlášť — tři nezávislé banky. Editor vždy pracuje s bankou čipu, do kterého patří kanál pod kurzorem. Kdo chce mít stejný zvuk na všech čipech, zapne u daného čísla příznak LINK (CS+L): položka se zkopíruje do všech tří bank a další úpravy se zrcadlí. Podrobnosti v kapitole Panely.

02Globální klávesy

KlávesaAkce
0otevřít menu (při zapnutém zápisu v hexadecimálním sloupci zapíše 0; menu je potom na CS+1)
CS+1vždy otevřít menu
ENTERpřehrávat aktuální pattern ve smyčce
SS+ENTERpřehrávat skladbu od aktuální pozice
CS+ENTERpřehrát jediný řádek pod kurzorem a nechat ho doznít
CS+SPACEzastavit přehrávání
SPACEzapnout/vypnout režim zápisu (Rec)
SS+SPACEdalší kanál
SS+4přepnout rozdělený pohled a pattern přes celou obrazovku
SS+3umlčet/obnovit kanál pod kurzorem
SS+Suložit MXM
SS+Lnačíst MXM
EXT.MODE+Zvrátit poslední změnu (Undo)
EXT.MODE+Yznovu provést vrácenou změnu (Redo)
EXT.MODE+Hotevřít prohledávatelnou nápovědu klávesových zkratek
EXT.MODE+Iotevřít/zavřít celoobrazovkový editor nástroje
EXT.MODE+Ootevřít/zavřít celoobrazovkový editor ornamentu
EXT.MODE+Totevřít transformace označeného bloku

03Nápověda klávesových zkratek

Okno EXT.MODE+H obsahuje zkratky ze všech kontextů editoru. Psaný text se okamžitě hledá bez ohledu na velikost písmen v popisu funkce i ve zkratce. CS+0 smaže poslední znak filtru, šipky nahoru/dolů a CS+3 / CS+4 posouvají výsledky, CS+9 / CS+2 skočí na začátek/konec a CS+SPACE nebo znovu EXT.MODE+H okno zavře. Seznam lze posouvat také kolečkem myši.

04Název a autor skladby

Položky Song / Edit title a Song / Edit author otevřou textový editor ve stavovém řádku. Současná hodnota je předvyplněná. Běžnými znakovými klávesami se text doplňuje, CS+0 maže poslední znak, ENTER změnu potvrdí a CS+SPACE (ESC) ji zruší. Obě hodnoty mají nejvýše 32 znaků.

Název a autor se zobrazují na informačním řádku nahoře a ukládají se jak do nativního MXM, tak do hlavičky při exportu PT3.

05Pohyb v patternu

KlávesaAkce
CS+5 / CS+8doleva/doprava mezi sloupci a kanály
CS+6 / CS+7dolů/nahoru
CS+3 / CS+4o 16 řádků nahoru/dolů
CS+9 / CS+2začátek/konec patternu
SS+7 / SS+6předchozí/další pattern
SS+5 / SS+8předchozí/další nástroj
EXT.MODE+Aoznačit tři kanály aktivního AY, nejvýš 64 řádků
EXT.MODE + šipkyoznačovat řádky a sloupce; vlevo/vpravo přechází i mezi kanály aktuálního AY
EXT.MODE+C / EXT.MODE+X / EXT.MODE+Vkopírovat/vyjmout/vložit označený blok nebo buňku pod kurzorem
CS+0vymazat označený blok, jinak celou buňku
SS+C / SS+X / SS+Způvodní zkratky kopírování/vyjmutí/vložení zůstávají funkční

Pohybové klávesy se při držení automaticky opakují. Přepínače jako SPACE, ENTER a menu se neopakují.

EXT.MODE+A okamžitě označí celý aktivní AY: jeho tři kanály a řádky aktuálního patternu, nejvýš však 64 — víc se do schránky bloku stejně nevejde, takže dál nemá smysl výběr roztahovat. Nový song začíná s délkou patternu 40h (64 řádků), takže se výběr ve výchozím stavu vejde celý. První EXT.MODE + šipka založí výběr v aktuální buňce. Nahoru/dolů se výběr rozšiřuje nebo zmenšuje po řádcích, vlevo/vpravo po jednotlivých sloupcích — teprve na kraji buňky přejde na sousední kanál a skočí na jeho protější sloupec. Dá se tak označit třeba jen nota s nástrojem a zbytek buňky nechat být. Vodorovný výběr se zastaví na hranici trojice kanálů jednoho AY. Běžný pohyb kurzoru nebo kliknutí výběr zruší, obsah schránky však zůstane zachován. Vkládání začíná pod kurzorem a blok, který by přesáhl konec patternu nebo aktuální AY, bezpečně ořízne. Výběr je nejvýše 64 řádků vysoký — schránka bloku i náhled transformace mají pevný buffer v datové stránce, na kterou už se víc nevejde. Celý 96řádkový pattern se kopíruje přes EXT.MODE+C v panelu ORDER (viz níže), ten má vlastní stránku a zvládne plnou délku.

Schránka si okno sloupců pamatuje a vkládání i mazání přepíšou jen ty sloupce, které byly označené — zbytek cílové buňky zůstane nedotčený. Blok se tak dá přenést do stejných sloupců jiného kanálu nebo jiného AY, aniž by přepsal jeho příkazy nebo hlasitost. Po vložení je vložený blok rovnou označený.

Okno pracuje po celých bajtech buňky, a protože prodleva sedí v horním nibblu bajtu s číslem příkazu, cestují prodleva a příkaz vždycky spolu. Totéž platí pro dvojice číslic parametru: PAR1 s PAR2 a PAR3 s PAR4.

V panelu ORDER mají EXT.MODE+C a EXT.MODE+V kontext celého patternu. První zkratka uloží úplný snímek patternu pod kurzorem včetně jeho délky, všech devíti kanálů a globálních stop AY. Po přechodu na jiný pattern jej EXT.MODE+V celý přepíše. Kopírování buněk a bloků v mřížce zůstává beze změny.

Příkazy buňky

Příkaz zabírá dvě hexa číslice a čtyři číslice za nimi jsou jeho parametr. Druhá číslice je číslo příkazu, první je jeho prodleva. Prodleva určuje, jak často se krok efektu provede: glissando s krokem 8 a prodlevou 3 posune tón o 8 každý třetí tik. Nula prodlevu nevypíná, ale zastavuje celý efekt, takže glissando, portamento ani posun obálky s nulou nedělají nic. Výjimkou je glissando ve skladbách s verzí ProTrackeru 7 a vyšší, kde se nula chová jako jednička. Prodleva má vlastní kurzorový sloupec vlevo od čísla příkazu a zapisuje se do ní stejně, tedy hexa číslicí. Import PT3 ji vyplňuje z modulu, export ji zase zapisuje zpátky. EXT.MODE+F, Edit / Effect list nebo druhé kliknutí na sloupec příkazu už vybrané buňky otevřou seznam všech příkazů se jmény:

1 glissando2 portamento na notu3 offset ve vzorku
4 offset v ornamentu5 vibrato8 env. slide dolů
9 env. slide nahoruB rychlost (ticků na řádek)C perioda obálky
D perioda šumuE break na další poziciF skok na pozici v ORDERu

Šipky nahoru/dolů a ENTER vybírají, hexa číslice vybere rovnou, BREAK nebo kliknutí mimo okno nechá buňku být a položka no effect příkaz smaže. Po výběru příkazu stojí kurzor rovnou na první číslici parametru, takže se dá hodnota hned psát; u no effect zůstane na samotném příkazu. V úzkých buňkách, které sloupec příkazu vůbec nekreslí, kurzor zůstává, kde byl. Číslice 6, 7 a A jsou volné. Napsat číslici do sloupce ručně funguje jako dřív. Po dobu otevřeného seznamu je přehrávání zastavené.

Na zadání parametru je potřeba režim zápisu: přepíná ho SPACE a v transportním řádku se rozsvítí Rec. Bez něj klávesy jen předehrávají noty, takže by číslice v hexa poli neudělala vůbec nic - stavový řádek to proto rovnou napíše, místo aby mlčel. Samotný seznam příkaz zapíše tak jako tak, stejně jako Edit / Clear cell nebo transformace bloku.

Přes B se dělá rychlost po patternech: B s parametrem 0006 na prvním řádku patternu hraje od té chvíle šest ticků na řádek, a to i přes hranice patternů, dokud nepřijde další B. Pole Spd: v transportním řádku je jen rychlost, se kterou skladba začíná. Import i export PT3 tento příkaz přenášejí, takže importované moduly si rychlost po patternech ponechají.

Transformace označeného bloku

Položka Edit / Transform block nebo EXT.MODE+T otevře bezpečný modální editor. Pracuje s celým označeným obdélníkem; bez aktivního označení použije jedinou buňku pod kurzorem. Vlevo je původní obsah a vpravo živý náhled. SS+SPACE přepíná náhled mezi až třemi označenými kanály.

K dispozici jsou tyto operace:

  • Transpose notes posune skutečné noty o −24 až +24 půltónů. Prázdné buňky, OFF a RELEASE se nemění a výsledek se bezpečně ořízne na rozsah C–B.
  • Set instrument nastaví nástroj 00–1F na řádcích obsahujících notu nebo existující událost nástroje.
  • Adjust volume přičte −15 až +15 pouze k existujícím událostem hlasitosti; výsledek zůstane v rozsahu 0–F. Prázdné pole zůstane prázdné a dál dědí poslední hlasitost daného kanálu.
  • Fill current column vyplní pole odpovídající sloupci, ve kterém byl kurzor při otevření dialogu. Podporuje notu, nástroj, envelope, ornament, hlasitost, příkaz i vysoký/nízký bajt parametru.
  • Interpolate column dopočítá lineární přechod mezi hodnotou v prvním a posledním označeném řádku. Interpolace probíhá samostatně pro každý kanál; první i poslední hodnota daného kanálu musí být platná. U parametru se podle pozice kurzoru interpoluje vysoký nebo nízký bajt. Operace nemá ručně nastavitelnou hodnotu: oba endpointy určují celý výsledek automaticky.
Klávesa v dialoguAkce
CS+6 / CS+7další/předchozí operace
CS+5 / CS+8ubrat/přidat hodnotu o jeden krok
SS+5 / SS+8hrubý krok; u transpozice celá oktáva
0–9, A–Fpřímé zadání nástroje nebo hodnoty pro Fill
SS+SPACE (TAB)další kanál náhledu
ENTERpotvrdit náhled a změnit pattern
CS+SPACE (BREAK) nebo EXT.MODE+Tzrušit dialog beze změny

Původní pattern se mění až po ENTER. BREAK jej ponechá nedotčený a interní clipboard pro kopírování bloků se po zavření dialogu obnoví v původním stavu. Operaci lze také vybrat kliknutím nebo kolečkem; levý/pravý klik na řádku hodnoty přidává/ubírá a tlačítka APPLY a CANCEL dialog dokončí myší.

Ve skladbě se 6 nebo 9 kanály zůstávají všechny kanály stále viditelné. Vybraný kanál se rozšíří na úplnou buňku s notou, nástrojem, obálkou, ornamentem, hlasitostí a příkazem. Při 6 kanálech ukazují neaktivní kanály osm znaků dat a oddělovací mezeru. Při 9 kanálech používají kratší přehled s oddělenou notou a nástrojem. Přesunem kurzoru nebo kliknutím se kompaktní kanál rozšíří; žádná data se přitom neztrácejí. Tříznaková pole not mají jemné pozadí podle svého AY, aby byla oddělená od nástroje a efektů.

Stavový řádek vlevo dole průběžně popisuje pole pod kurzorem. Rozlišuje notu, nástroj, obálku, ornament, hlasitost, příkaz a parametr patternu; všech devět polí řádku nástroje; znaménkový posun ornamentu; číslo patternu v order listu a šum, tvar i periodu globální obálky AY. Krátká systémová hlášení mají přednost a při dalším pohybu kurzoru se nápověda automaticky vrátí.

Aktuální editační řádek je souvisle zvýrazněný přes všechny kanály a globální stopu AY. Konkrétní pole pod kurzorem zůstává světlejší (při Rec červené) a zelený řádek přehrávání má před editačním zvýrazněním přednost.

06Zadávání not

Klaviatura zabírá přibližně dvě a půl oktávy. Oktáva se volí hodnotou Oct: v transportním řádku, kliknutím myší nebo přes Setup / Octave +. Když je kurzor ve sloupci noty patternu, nastaví SS+1 až SS+7 příslušnou oktávu přímo; v ostatních sloupcích si tyto kombinace ponechávají své původní funkce.

spodní řada

ZC
XD
CE
VF
BG
NA
MB
SC#
DD#
GF#
HG#
JA#

horní řada

QC
WD
EE
RF
TG
YA
UB
IC
OD
PE
2C#
3D#
5F#
6G#
7A#
9C#

poslední čtyři klávesy jsou o oktávu výš

KlávesaAkce
SS+1 … SS+7přímo nastavit oktávu 1–7 (jen ve sloupci noty)
1vložit === — vypnutí noty
8vložit R-- — release
4vymazat pouze notu v buňce

1, 4, 8 a 0 jsou jediné číslice, které klaviatura nepoužívá, a nula otevírá menu — na vlastní události sloupce noty tak zbývají tyhle tři.

=== notu jen umlčí. R-- je release: u běžného nástroje kanál umlčí stejně jako ===, u nástroje se zapnutým REL (viz editor nástroje) ale zruší smyčku a nechá dohrát dozvuk — zbytek tvaru za koncem smyčky až po LENGTH. PT3 zná jen jednu z těch dvou událostí a dozvuk neumí, takže export zapíše obě jako svůj release; formát MXC dozvuk zachová.

Při vypnutém Rec klávesy notu pouze přehrají a do patternu nic nezapíšou. Náhled skončí po uvolnění klávesy.

Do ostatních sloupců — nástroj, ornament, hlasitost, příkaz a parametr — se zadávají hexadecimální hodnoty 0–9 a A–F. Kanálový sloupec ENV je výjimka: používá jen E = zapnout obálku, D = vypnout ji a 0 = vymazat událost. Ostatní hexa klávesy se v tomto sloupci ignorují.

07Panely

Kliknutí myší nebo položka menu přesune kurzor do panelu nástroje, ornamentu nebo order listu. CS+SPACE (ESC) vrátí fokus do patternu.

Editor nástroje

Rychlý sedmiřádkový editor na hlavní obrazovce zůstává beze změny. Kliknutím na jeho nadpis INSTRUMENT, položkou Instr / Full editor nebo zkratkou EXT.MODE+I se otevře podrobný editor s 24 viditelnými řádky. Zobrazuje všechna pole v pevných sloupcích, graf hlasitosti, přesnou hexadecimální hodnotu a značky smyčky a konce: šipka vlevo označuje začátek smyčky, ◀ v pravém sloupci její konec a ■ poslední řádek nástroje. EXT.MODE+I nebo CS+SPACE se vrátí zpět.

První kliknutí vybírá řádek a nejbližší pole. Další levé kliknutí na stejné pole přidá +1 (u příznaku jej přepne), pravé ubere −1; kliknutí přímo do grafu hlasitosti hodnotu nastaví podle pozice. Stejně funguje i rychlý panel. Kolečko posouvá kurzor po řádcích. Levé kliknutí na číslo INSTR vybere další nástroj, pravé kliknutí předchozí. Kliknutí do pravého sloupce se značkami nastaví smyčku: levé tlačítko její začátek na řádek pod kurzorem, pravé její konec. Hodnoty LENGTH, LOOP a END v hlavičce mění levý klik o +1 a pravý o −1, klik na REL přepíná dozvuk. Klávesové ovládání je stejné v rychlém i celoobrazovkovém editoru:

KlávesaAkce
CS+6 / CS+7řádek nástroje dolů/nahoru
CS+5 / CS+8předchozí/další pole
SS+6 / SS+7snížit/zvýšit vybranou hodnotu
SPACEpřepnout vybraný příznak nebo cyklovat posun hlasitosti
CS+T / CS+N / CS+Vpřímo přepnout tón/šum nebo cyklovat posun hlasitosti
CS+Lpřepnout LINK tohoto nástroje mezi všemi bankami AY
CS+Rpřepnout REL — dozvuk nástroje po R-- (jen celoobrazovkový editor)
Z S X V G H N J M, Q W R T Y U I O Ppřehrát náhled aktuálního nástroje příslušnou klavírní notou
0–9, A–Fzadat vybranou hodnotu hexadecimálně
EXT.MODE+N / CS+0prodloužit/zkrátit nástroj
EXT.MODE+Q / EXT.MODE+W / EXT.MODE+Enastavit začátek smyčky / konec smyčky / konec nástroje na aktuální řádek

Smyčka běží od LOOP po END včetně; END je normálně shodný s koncem nástroje. Řádky mezi END a LENGTH jsou dozvuk: hrají se jen u nástroje se zapnutým REL, a to až po příkazu R-- v patternu. Přehrávač v tu chvíli smyčku pro daný tón zruší, dojede zbytek tvaru až po LENGTH a teprve pak kanál umlčí. Nástroj bez REL se po R-- vypne hned, dozvuk se nikdy nehraje. Formát PT3 dozvuk neumí, export ho zapíše jako obyčejný release; File / Export MXC ho zachová (viz Potvrzení).

V editorech hodnot mají 0–9 a A–F vždy přednost jako hexadecimální vstup, takže lze přímo napsat například 1C. Klávesy B, C, D a E zde proto nehrají noty; ostatní klávesy náhledové klaviatury zůstávají aktivní. Náhled používá aktuální nástroj, ornament, hlasitost, oktávu a kanál.

Tlumené L v nadpisu panelu označuje samostatný nástroj, zelené L aktivní LINK. Při zapnutí se celý aktuální nástroj z AY vybraného kanálu ihned zkopíruje do všech tří bank AY a další úpravy se zrcadlí. Vypnutí zachová vzniklé kopie, ale dovolí je znovu upravovat nezávisle.

Ornament

Rychlý panel ornamentu zůstává na hlavní obrazovce. Kliknutím na nadpis ORNAMENT, položkou Instr / Full ornament nebo zkratkou EXT.MODE+O se otevře podrobný editor s 24 řádky a osou −24…0…+24 půltónů. Záporné hodnoty směřují vlevo, kladné vpravo. Vedle grafu je vždy přesná signed a raw hex hodnota; přesah grafu označí šipka. Kliknutí do grafu nastaví odpovídající půltón. Další levé kliknutí na vybranou signed/raw hodnotu přidá +1, pravé ubere −1; stejné dvouklikové ovládání funguje v rychlém panelu. Levé/pravé kliknutí na číslo ORN vybere další/předchozí ornament. EXT.MODE+O nebo CS+SPACE editor zavře.

KlávesaAkce
CS+6 / CS+7řádek dolů/nahoru
CS+5 / CS+8hodnota −1/+1
SS+6 / SS+7hodnota −12/+12
SS+5 / SS+8předchozí/další ornament
CS+Lpřepnout LINK tohoto ornamentu mezi všemi bankami AY
Z S X V G H N J M, Q W R T Y U I O Ppřehrát náhled aktuálního nástroje a ornamentu
0–9, A–Fzadat syrový znaménkový bajt hexadecimálně
SPACEnastavit aktuální posun na nulu
EXT.MODE+N / CS+0prodloužit/zkrátit ornament
EXT.MODE+Q / EXT.MODE+Enastavit smyčku/konec na aktuální řádek

Také zde nastaví levé kliknutí do pravého sloupce začátek smyčky a pravé kliknutí konec ornamentu.

Nadpis ornamentu používá stejný tlumený/zelený ukazatel L a stejné chování: při zapnutí kopírovat, při aktivním LINK zrcadlit změny. Každé číslo nástroje i ornamentu má vlastní nezávislý příznak LINK.

Undo a Redo

EXT.MODE+Z vrací změnu a EXT.MODE+Y ji znovu provede; stejné dva příkazy stojí na začátku menu Edit. Historie má čtyři kroky a pokrývá pattern včetně AY-globálních řádků, ORDER, nástroje a ornamenty včetně příznaku LINK, práci s celými patterny, klonování i prohození kanálů. Jeden paste, transformace, mazání nebo tah myší je jeden krok. Nová změna po Undo zahodí větev Redo.

New song, načtení MXM a import PT3 začínají novou historii. Purge unused patterns ji rovněž vyprázdní, protože fyzicky vrací datové stránky do paměti. Pohyb kurzoru a výběru, přehrávání, mute/solo a změny zobrazení se do historie nezapisují.

Potvrzení

I s Undo se příkazy, které mohou zahodit větší množství práce, nejdřív zeptají:

  • File / New song, File / Load MXM (SS+L) a File / Import PT3/MXC — tyhle tři jen s neuloženými změnami, protože nic jiného nezahazují. Import bere PT3 i MXC; File / Export MXC uloží PT3 s dozvukem nástrojů (hlavička MXTracker v3.x compilation of, dva bajty před každým vzorkem), který přehraje samostatný přehrávač ptx3play i DOT příkaz .mxplay; běžný Export PT3 dozvuk ztrácí
  • Edit / Clear track, Edit / Clear pattern a Order / Clear pattern
  • Order / Delete position a CS+0, které řádek ORDERu odstraňuje; u poslední zbylé pozice, kterou odstranit nelze, se otázka místo toho ptá na vyčištění jejího patternu
  • Instr / Clear instrument

Klávesy jsou napsané rovnou na tlačítkách: ENTER nebo Y potvrdí, BREAK, N nebo kliknutí kamkoli mimo [ YES / ENTER ] zruší — nechtěný klik tedy nikdy nic nesmaže. Pattern, který ještě nemá žádná data, se maže bez ptaní a správce patternů si ponechává vlastní potvrzení dvojím stiskem.

Order list

KlávesaAkce
CS+6 / CS+7pozice dolů/nahoru
CS+5 / CS+8hodnota vybraného pole PAT nebo LEN −1/+1
0–9, A–Fpřímo zadat vybrané PAT nebo LEN hexadecimálně
Kklonovat pattern do prvního volného čísla
EXT.MODE+7 / EXT.MODE+6posunout pozici ve skladbě nahoru/dolů
EXT.MODE+5 / EXT.MODE+8pattern o řádek kratší/delší
EXT.MODE+Nvložit pozici
CS+0odstranit pozici

Klik na číslo patternu nebo na délku zvolí příslušné pole PAT / LEN; jeho dvě hexadecimální číslice lze potom přímo přepsat, přičemž PAT bere 00–3F a LEN 01–60. Pravý klik do order listu se spolkne, aby omylem neprodlužoval skladbu. Kliknutí na šedou pozici ji aktivuje; případné nové řádky dostanou postupně patterny 01, 02, … a spodní mřížka se ihned přepne. Order / Delete position odstraňuje řádek ze seznamu skladby, zatímco Order / Clear pattern vymaže data aktuálního patternu. Poslední povinnou pozici nelze odstranit; DELETE proto v tomto případě vyčistí její pattern.

Délka patternu

Nový pattern má délku 40h (64 řádků), může však být dlouhý až 60h (96 řádků); mřížka se točí už na jeho konci. Sloupec LEN v order listu ukazuje délku každého patternu. Klik jej vybere pro přímé zadání dvou hexadecimálních číslic; po jednom řádku jej dál mění Order / Pat length - / + a EXT.MODE+5 / EXT.MODE+8. Stejnou hodnotu mění i správce patternů šipkami vlevo/vpravo.

Zkrácení nikdy nic nemaže - řádky pod ním se jen přestanou zobrazovat. Pokud v nich ještě jsou noty nebo události AY, stavový řádek to oznámí hláškou Shorter - hidden rows still hold data, takže se nic neztratí potichu. Po prodloužení jsou řádky zase zpátky beze změny.

EXT.MODE+7 / EXT.MODE+6 prohodí aktuální záznam se sousedním a kurzor jde s ním, takže se stejný pattern dá opakovaným stiskem prostěhovat celou skladbou. Přesouvají se jen pozice uvnitř skladby; šedé řádky za jejím koncem žádný pattern nedrží. Značka smyčky ukazuje na pozici, ne na pattern, a zůstává, kde byla.

Jedno číslo patternu může stát na několika pozicích ORDERu a jeho editace pak mění všechny naráz. K nebo Order / Clone pattern zkopíruje pattern aktuální pozice — data i délku — do prvního čísla, na které neodkazuje žádná pozice a které ještě nemá datovou stránku, a toto číslo pozici rovnou přiřadí. Zbytek skladby si ponechá původní pattern, takže další úpravy už ostatní pozice neovlivní. Totéž ze seznamu patternů dělá C ve správci patternů. (C je v order listu hexadecimální číslice, proto je klon zde na K.)

Položka Order / Pattern manager otevře celoobrazovkový přehled všech 64 patternů. U každého ukazuje počet odkazů z ORDERu, délku a informaci, zda má přidělenou datovou stránku. Ovládání:

KlávesaAkce
šipky nahoru/dolů, CS+3 / CS+4, CS+9 / CS+2výběr patternu
šipky vlevo/vpravozměna délky patternu
ENTERpřiřadit vybraný pattern aktuální ORDER pozici a otevřít jej
Cvytvořit nezávislý klon do prvního bezpečně volného čísla
CS+0 dvakrátvyčistit data vybraného patternu; odkazy v ORDERu zůstanou
U dvakrátuvolnit datové stránky všech patternů nepoužitých v ORDERu
CS+SPACEnávrat bez změny přiřazení

Kliknutí vybere řádek, druhé kliknutí na stejný řádek jej přiřadí a otevře. Kolečko seznam posouvá. Klon je skutečně nezávislý; pozdější změny zdroje se do něj nepromítají.

Malý zelený trojúhelník vpravo označuje začátek smyčky skladby; není to ukazatel přehrávání. Po dosažení konce order listu pokračuje přehrávač z této pozice. Smyčku nastavíte výběrem požadovaného řádku a položkou Order / Set loop point. Celý zeleně podbarvený řádek naproti tomu označuje právě přehrávanou pozici. Pozice smyčky se ukládá do MXM a přebírá se při importu PT3.

Globální šum a envelope AY

Použijte Song / Edit AY globals nebo klikněte na pruh N ENV AYx vedle patternu. Pruh automaticky sleduje AY, ke kterému patří aktuální kanál.

Kanály CH1–CH3 vybírají AY1, CH4–CH6 AY2 a CH7–CH9 AY3. Zobrazenou globální stopu lze tedy změnit výběrem kanálu příslušného AY. Další možností je kliknout na globální pruh nebo jeho hlavičku a pomocí SS+5 / SS+8 přímo cyklovat aktivní AY čipy. Kolečko myši nad globálním pruhem rovněž přepíná AY; nad zbytkem patternu dál posouvá řádky.

KlávesaAkce
CS+6 / CS+7řádek dolů/nahoru
CS+5 / CS+8předchozí/další globální pole
SS+5 / SS+8předchozí/další AY čip
0–9, A–Fzadat šum, tvar envelope nebo jednu číslici periody
EXT.MODE+Mpřepnout režim envelope as note (též Setup / Env as note)
SPACEvymazat vybranou událost šumu/envelope
EXT.MODE + šipkyoznačit blok v pruhu (řádky i pole)
EXT.MODE+Aoznačit celý pruh aktuálního AY
CS+0vymazat označený blok, jinak celou buňku na aktuálním řádku
EXT.MODE+C / EXT.MODE+Xkopírovat / vyjmout označený blok
EXT.MODE+Vvložit od řádku pod kurzorem
CS+SPACEnávrat do běžného kanálového patternu

Výběr v pruhu funguje stejně jako v mřížce: první EXT.MODE + šipka založí kotvu, další ji roztahují po řádcích i po polích a CS+0 označený blok vymaže. Maže se podle toho, které strany se výběr dotkl — vybraný samotný šum nechá obálku na pokoji a naopak. Jakákoli jiná klávesa výběr zruší. Myší se v pruhu označuje tažením se stisknutým levým tlačítkem, blok se ale založí až prvním skutečným posunem, aby obyčejný klik nekreslil obdélník; tažení přes hranici mezi mřížkou a pruhem blok ukončí.

Kopírování má vlastní schránku, takže si nešlape s tou patternovou — blok not i blok obálek můžou být odložené naráz. Ukládají se celé buňky, ale schránka si pamatuje, které sloupce výběr pokrýval, a při vkládání sáhne jen na ně: zkopírovaný samotný šum tedy obálku v cíli nepřepíše. Na konci patternu se vkládání utne.

Zobrazení má tvar NN EPPPP: dvě hexadecimální číslice periody společného šumu, tvar envelope E a její čtyřmístná perioda. Znak = místo tvaru znamená „změnit periodu bez nového spuštění envelope“.

Režim envelope as note (EXT.MODE+M nebo Setup / Env as note, v záhlaví pruhu se objeví NOTE) pracuje s periodou jako Vortex Tracker: ve sloupci periody berou klávesy klaviatury notu v aktuální oktávě a zapíší periodu tónu děleno 16, tedy výšku, kterou obálka tvarů 8, A, C a E skutečně hraje. Perioda, která na nějakou notu přesně sedí, se pak kreslí jako její jméno (C-4), ostatní zůstávají hexadecimálně. Zobrazení sahá i do oktávy 0 (A-0, dvojnásobná perioda oktávy 1), kam obálková basa často padá; klaviaturou se zadávají jen oktávy 1 až 7. Zaokrouhlení na celé číslo ladění neopraví — ve vyšších oktávách obálka drhne stále, jen je hned vidět, kterou notu ve skutečnosti dostanete. Sloupce šumu a tvaru berou hexadecimální číslice dál.

Tvar obálky patří celému AY čipu — obálkový generátor je v něm jeden a sdílejí ho všechny tři hlasy. Zadává se proto tady v globálním pruhu, ne v kanálu. Sloupec ENV u hlasu má tři jednoznačné stavy: E obálku zapne, D ji explicitně vypne a 0 událost vymaže. V patternu se zobrazují jako E, D a .; ostatní hexa klávesy se v tomto sloupci ignorují. Výšku tónu určuje perioda obálky, ne zahraná nota.

Klávesa EXT.MODE+F nebo druhý klik na pole tvaru otevře seznam tvarů s náčrtkem průběhu. Ovládá se jako seznam příkazů: šipky a ENTER vybírají, hexa číslice vybere rovnou, BREAK nebo kliknutí mimo okno nechá pole být. Tón drží jen opakované tvary — jednorázové po jednom průběhu utichnou nebo zůstanou stát, což zní jako lupnutí.

TvarPrůběhChování
8pila dolůopakuje se — drží tón
Cpila nahoruopakuje se — drží tón
Atrojúhelník, nejdřív dolůopakuje se — drží tón
Etrojúhelník, nejdřív nahoruopakuje se — drží tón
9sestup, pak tichoproběhne jednou
4náběh, pak tichoproběhne jednou
Bsestup, pak drží maximumproběhne jednou
Dnáběh, pak drží maximumproběhne jednou

Tvary 0–3 znějí stejně jako 9 a 4–7 stejně jako F, proto je seznam neopakuje. Místo tvaru F nabízí tvarově shodnou 4.

Obálka jako nota. Setup / Env as note přepíná zadávání periody obálky jako noty, viz globální pruh výše.

Zvukový čip a stereo. Setup / Sound chip AY/YM přepíná mezi AY a YM, Setup / Stereo ABC/ACB mezi oběma rozloženími hlasů do stran. Obojí platí okamžitě a je vidět natrvalo ve stavovém řádku vlevo od Pos:. Jsou to vlastnosti stroje, ne skladby — do MXM se neukládají a po startu se začíná na AY a ABC.

Prohození dvou hlasů. Song / Swap channels A-B, B-C a A-C prohodí dvojici hlasů v celé skladbě, tedy ve všech patternech najednou. Pracuje uvnitř toho AY, ve kterém stojí kurzor, takže při šesti nebo devíti kanálech se ostatních čipů nedotkne. Globální stopa AY zůstává — nese šum a obálku celého čipu, ne jednotlivých hlasů. Dvojí použití vrátí původní stav.

08Diagnostika

Setup / AY monitor on/off zobrazí na řádku 2 živý výpis AY registrů. Help / PT3 import info znovu otevře okno s výsledkem importu PT3. Help / About otevře informační okno s verzí programu a autorskými kredity; libovolná klávesa nebo nový klik myší jej zavře. Myš zůstává aktivní také v informačním okně importu PT3.

09Myš (K-Mouse)

Kurzor je hardwarový sprite, takže nezakrývá obsah tilemapy.

  • Kliknutí na řádek 0 otevře nebo zavře menu.
  • Tažením se stisknutým levým tlačítkem se v mřížce označuje blok. Stisk založí kotvu v buňce pod kurzorem, tažení posouvá druhý konec — po řádcích i po sloupcích, stejně jako EXT.MODE + šipky. Puštění tlačítka výběr ukončí; tažením nad pruh N ENV AYx se fokus přesune do pruhu a označování skončí. Uvnitř samotného pruhu se tahem označuje stejným způsobem, jen s vlastní schránkou.
  • Kliknutí na ukazatel AY/YM nebo ABC/ACB ve stavovém řádku hodnotu rovnou přepne, není kvůli tomu potřeba otevírat menu.
  • Kliknutí na transportní řádek ovládá Play / Pat / Stop / Rec. U oktávy, kroku, rychlosti a počtu kanálů levé tlačítko přidává a pravé odebírá; hodnoty se na krajích cyklicky přetočí.
  • Kliknutí do panelu mu předá fokus a vybere řádek. Kliknutí na nadpis INSTRUMENT xx nebo ORNAMENT x změní aktuální nástroj či ornament: levé tlačítko vybere následující a pravé předchozí. Pod samostatnou hlavičkou je vidět sedm datových řádků panelu.
  • Levé kliknutí na L v nadpisu nástroje nebo ornamentu zapne LINK a ihned zkopíruje položku do všech bank AY; pravé kliknutí LINK vypne.
  • Levé kliknutí na název CH1–CH9 vybere kanál a přepne jeho ztlumení. Pravé kliknutí zapne solo tohoto kanálu; další pravé kliknutí na stejný kanál solo vypne a přesně obnoví předchozí ztlumení. Pravé kliknutí na AY1–AY3 stejným způsobem zapne solo celé trojice kanálů daného AY. V adaptivním 6/9kanálovém pohledu se vybraný kanál zároveň rozšíří. Umlčené kanály jsou v hlavičce červené a označené M.
  • V order listu levé kliknutí na číslo patternu nebo na jeho délku zvolí pole PAT / LEN; jeho dvě hexadecimální číslice se pak dají přímo přepsat a CS+5 / CS+8 mění právě vybrané pole. Pravé kliknutí se spolkne, aby omylem neprodloužilo skladbu.
  • Kliknutí do mřížky umístí kurzor na příslušný řádek, kanál a sloupec.
  • V globální hlavičce AYx levé tlačítko vybere následující AY; pravé tlačítko zapne nebo vypne solo zobrazeného AY.
  • Kolečko nad panelem nástroje, ornamentu nebo order listu předá panelu fokus a posune jeho vybraný řádek.
  • Kolečko nad patternem předá fokus patternu a posune aktuální řádek.

Vygenerováno z dokumentace v repozitáři MXTrackeru.

MXTracker 1.0

Manual

Manual for the AY tracker for the ZX Spectrum Next

The scanner reads the classic 8x5 matrix, so everything goes through CAPS SHIFT (CS) and SYMBOL SHIFT (SS) — it works on a real Spectrum Next without a PS/2 keyboard too.

01Basic concepts

This chapter explains the terms the rest of the manual takes for granted: what a pattern, an instrument, an ornament or the envelope is and how they fit together. If you have used an AY tracker before, feel free to skip it.

How a song is put together

A tracker builds music from tables. The order list (the ORDER panel) is the list of positions played top to bottom; each position points at one pattern. A pattern is a grid: rows follow each other in time and every channel has one cell per row holding a note and other events. The player runs a pattern row by row, moves on to the next position, and after the last position returns to the loop point marked by the green triangle in the order list. On top of that a song carries its title, author, initial speed and the full set of instruments and ornaments; everything is stored in a single MXM file.

A pattern is 1–96 (60h) rows long; a new one starts at 64 (40h). A song can use up to 64 patterns, numbered 00–3F in hex. One pattern number may sit on several positions — a chorus is edited once and changes everywhere. The PAT column in ORDER selects which pattern a position plays and LEN shows its length.

A tick is the tracker’s heartbeat: one screen refresh, i.e. a fiftieth of a second on a PAL machine. Instruments, ornaments and effects advance one step every tick. Speed (Spd: in the transport row) is the number of ticks per pattern row — a higher number means a slower song. The B command can change the speed anywhere mid-song.

The AY chip and channels

The AY (AY-3-8912, switchable to the compatible YM2149) is the Spectrum’s sound chip with three tone channels. Thanks to TurboSound Next the Spectrum Next has three of these chips, so a song can use 3, 6 or 9 channels: CH1–CH3 play on the first AY, CH4–CH6 on the second and CH7–CH9 on the third.

A channel plays at most one note at a time. Its sound is mixed from two sources: the tone — a square wave pitched by the note — and the shared noise. The channel’s loudness is either a fixed 0–15 value or taken over by the hardware envelope. Which of these are heard at any moment is controlled by the current instrument row.

Two things exist only once per chip and are shared by its three channels: the noise generator (a single period for the whole chip) and the envelope generator (a single shape and period). That is why both are entered in the N ENV AYx global track next to the pattern rather than in channel cells.

A pattern cell

A cell is one event of one channel on one row. The selected channel shows all of its fields, left to right:

FieldMeaning
noteC-1–B-8 starts a note; === silences the channel and R-- is a release — the difference is described in Entering notes
instrumenttwo hex digits: which of the 32 instruments plays from this row on
ENVE = the envelope drives this channel’s volume, D = back to fixed volume
ornamentone digit 0–F selects one of the 16 ornaments; the empty ornament 0 returns to a plain tone
volume0–F; scales the volume prescribed by the instrument
delay and commandtwo effect digits: the second is the command number, the first sets how many ticks pass between effect steps
parameterfour digits carrying the command’s value

The key rule: an empty field (dots) means no change. A cell is an event, not a state — instrument, volume, ornament and envelope stay in force from the row where they were written until another row overrides them. A note therefore doesn’t need a volume filled in, and a channel with no new note simply keeps playing the previous one.

Instrument

An instrument (PT3 calls it a sample) defines the timbre. It is a table of up to 46 rows: from the moment a note starts, one row plays per tick, and at the end the table returns to its loop. The loop may end before the end of the table: the remaining rows are the tail, which an instrument with the REL flag plays after an R-- event. Each row sets whether tone, noise or both are heard, the volume step 0–15, how far the pitch is offset, and how the noise or envelope period shifts. Those few columns are enough for decaying pianos, vibrato, basses and drums — drawn in the instrument editor described in the Panels chapter.

Every AY chip has its own bank of 32 instruments. When a note is written into the pattern the current instrument number is filled into the cell automatically, so normally you just play, switching instruments with SS+5 / SS+8.

Ornament

An ornament is a table of up to 32 pitch offsets in semitones, again one row per tick and with a loop. It is added to the played note: an ornament cycling 0 +4 +7 turns a single note into a rolled major chord (an arpeggio) — the classic substitute for chords on a chip where each channel has just one tone. It also serves for trills and fast runs. Each AY has a bank of 16 ornaments; number 0 is usually left empty so it acts as “no ornament”.

Hardware envelope

The envelope is a volume contour generated by the chip itself: a saw, a triangle or a one-shot attack or decay, defined by a shape 0–F and a 16-bit period. A channel opts in with an E event in its ENV column (or via a flag in the instrument row); from then on its loudness is driven by the envelope instead of the 0–15 numbers.

With a long period the envelope slowly shapes the volume. With a short one it oscillates so fast that it becomes another oscillator — hence the typical envelope basses and “buzzy” sounds of AY music. In that case the pitch comes from the envelope period, not from the played note. Shape and period are entered in the global track; the shape table with waveform sketches is in the Panels chapter, and EXT.MODE+F opens the picker.

Noise

Noise is a random signal for drums, explosions or surf. The chip has a single noise generator with period 00–1F (lower = higher, hissier noise) shared by all three channels. Whether noise is mixed into a channel is decided by the instrument row; its current period is set in the N column of the global track, or shifted by the instrument.

The AY global track

The N ENV AYx strip to the right of the pattern is each chip’s fourth track: it carries the events that belong to the whole AY — the noise period and the envelope shape and period. It is shown as NN EPPPP; dots mean “no change” just like in cells, and = in place of a shape changes the period without restarting the envelope. It is edited with the same keys as the pattern — details in the Panels chapter.

Banks and LINK

Instruments and ornaments are kept per AY — three independent banks. The editor always works with the bank of the chip that owns the channel under the cursor. To get the same sound on every chip, switch on the LINK flag (CS+L) for that number: the item is copied into all three banks and further edits are mirrored. Details in the Panels chapter.

02Global

KeyAction
0open the menu (in hex columns with record on, 0 types a digit and the menu is on CS+1)
CS+1always opens the menu
ENTERloop the current pattern
SS+ENTERplay the song from the current position
CS+ENTERplay just the row under the cursor and let it ring
CS+SPACEstop
SPACErecord on / off
SS+SPACEnext channel
SS+4switch between the split view and full-screen pattern
SS+3mute / unmute the channel under the cursor
SS+Ssave MXM
SS+Lload MXM
EXT.MODE+Zundo the last change
EXT.MODE+Yredo the reverted change
EXT.MODE+Hopen searchable keyboard-shortcut help
EXT.MODE+Iopen/close the full-screen instrument editor
EXT.MODE+Oopen/close the full-screen ornament editor
EXT.MODE+Topen transformations for the selected block

03Keyboard shortcut help

The EXT.MODE+H window lists shortcuts from every editor context. Typed text immediately filters both function descriptions and shortcut names without regard to letter case. CS+0 removes the last filter character; up/down and CS+3 / CS+4 scroll; CS+9 / CS+2 jump to the beginning/end; and CS+SPACE or EXT.MODE+H closes the window. The mouse wheel also scrolls.

04Song title and author

Song / Edit title and Song / Edit author open the text editor in the status row with the current value pre-filled. Character keys append text, CS+0 removes the last character, ENTER accepts the change, and CS+SPACE (ESC) cancels it. Both fields are limited to 32 characters.

The values appear in the song-information row and are written both to native MXM files and to the header of exported PT3 modules.

05Moving around the pattern

KeyAction
CS+5 / CS+8left / right (by columns and channels)
CS+6 / CS+7down / up
CS+3 / CS+416 rows up / down
CS+9 / CS+2start / end of pattern
SS+7 / SS+6previous / next pattern
SS+5 / SS+8previous / next instrument
EXT.MODE+Aselect the three channels of the active AY, at most 64 rows
EXT.MODE + arrowsselect rows and columns; left/right also steps between channels of the current AY
EXT.MODE+C / EXT.MODE+X / EXT.MODE+Vcopy / cut / paste the selection or the cell under the cursor
CS+0clear the selection, or the whole cell when nothing is selected
SS+C / SS+X / SS+Zthe original copy / cut / paste shortcuts remain available

Movement keys auto-repeat while held; toggles (space, enter, menu) do not.

EXT.MODE+A immediately selects the whole active AY: its three channels and the rows of the current pattern, but at most 64 — the block clipboard holds no more, so stretching the selection further is pointless. A new song starts with a pattern length of 40h (64 rows), so by default the whole selection fits. The first EXT.MODE + arrow anchors a selection at the current cell. Up/down extends or contracts it by rows; left/right works column by column — only at the edge of a cell does it step to the neighbouring channel and jump to its opposite column. That way you can select just the note and instrument and leave the rest of the cell alone. A horizontal selection stops at the boundary of the current three-channel AY group. Normal cursor movement or a mouse click cancels the selection but keeps the clipboard. Pasting starts at the cursor and safely clips a block at the end of the pattern or the current AY. A selection is at most 64 rows tall — the block clipboard and the transform preview share a fixed buffer in the data page, which has no room left to grow. Copy a full 96-row pattern with EXT.MODE+C in the ORDER panel (below); that clipboard has its own page and handles the full length.

The clipboard remembers the column window, and both paste and delete touch only those columns — the rest of the target cell is left untouched. A block can therefore be moved into the same columns of another channel or another AY without overwriting its commands or volume. After a paste the pasted block is left selected.

The window works in whole cell bytes, and because the delay sits in the high nibble of the command byte, delay and command always travel together. The same holds for parameter digit pairs: PAR1 with PAR2 and PAR3 with PAR4.

In the ORDER panel, EXT.MODE+C and EXT.MODE+V operate on the whole pattern. Copy stores a complete snapshot, including its length, all nine channels, and the global AY tracks. Move to another pattern and paste to replace it completely. Cell and block copying in the pattern grid is unchanged.

Effect commands

A command takes two hex digits and the four digits after them are its parameter. The second digit is the command number, the first is its delay. The delay sets how often the effect steps: a glissando with step 8 and delay 3 moves the tone by 8 every third tick. Zero does not mean "no delay", it stops the effect entirely, so glissando, portamento and envelope slide do nothing with a zero. The exception is glissando in songs with ProTracker version 7 or newer, where zero behaves as one. The delay has its own cursor column to the left of the command number and takes a hex digit just like it. PT3 import fills it in from the module and export writes it back. EXT.MODE+F, Edit / Effect list, or a second click on the command column of the selected cell opens a list of every command by name:

1 Glissando2 Portamento to note3 Sample offset
4 Ornament offset5 Vibrato8 Envelope slide down
9 Envelope slide upB Speed (ticks per row)C Envelope period
D Noise periodE Break to next positionF Jump to order position

Up/down and ENTER pick, a hex digit picks straight away, BREAK or a click outside the window leaves the cell alone, and no effect clears the command. Picking a command leaves the cursor on the first digit of the parameter, so the value can be typed right away; no effect leaves it on the command itself. In narrow cells, which do not draw the command at all, the cursor stays put. The digits 6, 7 and A are unused. Typing the digit into the column by hand works as before. Playback stops while the list is open.

Typing the parameter needs record mode: SPACE toggles it and Rec in the transport row lights up. Without it the keys only preview notes, so a digit in a hex field would do nothing - the status line says so instead of staying silent. The list itself writes the command either way, the same as Edit / Clear cell or the block transformations.

B is how a song gets a different speed per pattern: put B with parameter 0006 on the first row of a pattern and it plays at six ticks per row from there on, across pattern boundaries, until another B. Spd: in the transport row is only the speed the song starts with. PT3 import and export both carry this command, so imported modules keep their per-pattern speed.

Selected-block transformations

Edit / Transform block or EXT.MODE+T opens a safe modal editor. It operates on the complete selected rectangle; with no active selection it uses the cell under the cursor. Original cells are shown on the left and the live preview on the right. SS+SPACE cycles the preview through up to three selected channels.

The available operations are:

  • Transpose notes shifts real notes by −24 to +24 semitones. Empty cells, note-off and release events are unchanged, and results are clamped to the valid C–B note range.
  • Set instrument assigns instrument 00–1F to rows containing a note or an existing instrument event.
  • Adjust volume adds −15 to +15 only to existing volume events, clamped to 0–F. Empty fields stay empty and continue inheriting the channel's most recent volume.
  • Fill current column fills the field selected when the dialog was opened. Notes, instruments, envelope, ornament, volume, command, and either effect parameter byte are supported.
  • Interpolate column creates a linear transition between the first and last selected row, independently in every selected channel. Both endpoint values must be valid. For an effect parameter, the high or low byte is selected by the original cursor column. There is no manually adjustable amount: the two endpoints determine the result automatically.
Key in the dialogAction
CS+6 / CS+7next / previous operation
CS+5 / CS+8decrease / increase by one step
SS+5 / SS+8coarse step; one octave for note transposition
0–9, A–Fdirectly enter an instrument or Fill value
SS+SPACE (TAB)next preview channel
ENTERcommit the preview to the pattern
CS+SPACE (BREAK) or EXT.MODE+Tcancel without changing the pattern

The pattern is not modified until ENTER is pressed. Cancelling leaves it untouched, and the block-copy clipboard is restored to its previous contents when the dialog closes. Operations can also be selected by clicking or with the wheel. Left/right clicks on the value row increment/decrement it, and the APPLY and CANCEL buttons complete the dialog with the mouse.

In a 6- or 9-channel song all channels remain visible. The selected channel expands to the full note/instrument/envelope/ornament/volume/command cell. Inactive channels use an 8-character summary plus a separating space with 6 channels and a shorter spaced note/instrument summary with 9 channels. Moving left/right or clicking a compact channel makes that channel the expanded one; no data is discarded. Each three-character note field has a subtle background tint matching its AY, which separates note columns from the instrument and effect fields.

The left side of the status row continuously describes the field under the cursor. It covers pattern note/instrument/envelope/ornament/volume/effect fields, all nine instrument-row fields, the signed ornament offset, the order pattern number, and AY-global noise, envelope shape and envelope period. Short system messages take precedence; contextual help returns on the next cursor movement.

The current editing row is highlighted continuously across all channels and the AY-global lane. The exact field under the cursor remains brighter (red in record mode), while the green playback row takes priority over the edit-row highlight.

06Entering notes

Piano layout over two and a half octaves. The octave is picked with Oct: in the transport row (mouse click or Setup / Octave +). With the cursor in a pattern note column, SS+1 through SS+7 select that octave directly; in the other columns these combinations retain their existing functions.

lower row

ZC
XD
CE
VF
BG
NA
MB
SC#
DD#
GF#
HG#
JA#

upper row

QC
WD
EE
RF
TG
YA
UB
IC
OD
PE
2C#
3D#
5F#
6G#
7A#
9C#

the last four keys are one octave up

KeyAction
SS+1 … SS+7set octave 1-7 directly (note column only)
1=== note off
8R-- release
4clear the note in the cell

1, 4, 8 and 0 are the only digits the piano layout does not use, and 0 opens the menu, so those three are what the note column has for its own events.

=== only silences the note. R-- is the release: on an ordinary instrument it silences the channel just like ===, but on an instrument with REL switched on (see the instrument editor) it cancels the loop and lets the tail play - the rest of the shape past the loop end up to LENGTH. PT3 knows only one of the two events and has no tail, so export writes both as its release; the MXC format keeps the tail.

With record off the keys only preview the note and write nothing into the pattern. The preview stops as soon as the key is released.

In the other columns (instrument, ornament, volume, command, parameter) values are entered in hex, 0-9 and A-F. The channel ENV column is the exception: it takes only E to enable the envelope, D to disable it and 0 to clear the event. Other hex keys are ignored in this column.

07Panels

A mouse click or a menu item moves the cursor into the instrument, ornament or order list panel. CS+SPACE (ESC) returns to the pattern.

Instrument editor

The seven-row editor on the main screen remains the quick editor. Click its INSTRUMENT title, choose Instr / Full editor, or press EXT.MODE+I for a 24-row detailed view with fixed columns, a pseudographic volume bar, exact hex values, and loop/end markers: the arrow on the left marks the loop start, ◀ in the right-hand column the loop end and ■ the last line of the instrument. EXT.MODE+I or BREAK returns to the tracker.

The first click selects a row and field. Another left click on the same field adds +1 (or toggles a flag), while a right click subtracts -1; clicking the volume bar sets its value directly. The quick panel follows the same rule. The mouse wheel moves between rows. Left/right-clicking the INSTR number selects the next/previous instrument. Clicking the marker column on the right sets the loop: the left button puts its start on that line, the right button its end. LENGTH, LOOP and END in the header change by +1 on a left click and -1 on a right click, and clicking REL toggles the tail. Keyboard controls are shared by both views.

KeyAction
CS+6 / CS+7instrument line down / up
CS+5 / CS+8previous / next field
SS+6 / SS+7decrease / increase the selected value
SPACEtoggle the selected flag or cycle the volume slide
CS+T / CS+N / CS+Vdirect tone/noise toggle / volume-slide cycle
CS+Ltoggle LINK for this instrument across all AY banks
CS+Rtoggle REL - the tail played after R-- (full editor only)
Z S X V G H N J M, Q W R T Y U I O Ppreview the current instrument at the corresponding piano notes
0-9,A-Ftype the selected value in hex
EXT.MODE+N / CS+0extend / shorten the instrument
EXT.MODE+Q / EXT.MODE+W / EXT.MODE+Eset the loop start / loop end / instrument end at the current line

The loop runs from LOOP to END inclusive; END normally equals the end of the instrument. Lines between END and LENGTH form the tail: they play only for an instrument with REL switched on, and only after an R-- in the pattern. At that moment the player cancels the loop for that note, plays the rest of the shape up to LENGTH and silences the channel afterwards. An instrument without REL stops immediately on R-- and its tail never plays. PT3 has no tail, so the export writes a plain release; File / Export MXC keeps it (see Confirmations).

In value editors, 0-9 and A-F always take priority as hexadecimal input, so values such as 1C can be typed directly. Consequently B, C, D, and E do not preview notes here; the remaining piano keys still do. Preview uses the current instrument, ornament, volume, octave, and channel.

The L in the panel title is dim for an independent instrument and green when LINK is active. Enabling it copies the complete current instrument from the AY of the selected channel to all three AY banks. Later edits are mirrored. Turning LINK off keeps the copies but lets them diverge again.

Ornament

The quick ornament panel remains on the main screen. Click its ORNAMENT title, choose Instr / Full ornament, or press EXT.MODE+O for a 24-row view with a -24…0…+24 semitone axis. Negative values extend left and positive values right. Exact signed and raw hex values remain visible; an edge arrow marks values outside the graph. Clicking the graph sets the corresponding semitone. Another left click on the selected signed/raw value adds +1; a right click subtracts -1, with the same behavior in the quick panel. Left/right-clicking the ORN number selects the next/previous ornament. EXT.MODE+O or BREAK closes the editor.

KeyAction
CS+6 / CS+7line down / up
CS+5 / CS+8value -1 / +1
SS+6 / SS+7value -12 / +12
SS+5 / SS+8previous / next ornament
CS+Ltoggle LINK for this ornament across all AY banks
Z S X V G H N J M, Q W R T Y U I O Ppreview the current instrument and ornament
0-9,A-Fenter the raw signed byte in hex
SPACEset the current offset to zero
EXT.MODE+N / CS+0extend / shorten the ornament
EXT.MODE+Q / EXT.MODE+Eset the loop / end at the current line

Here too a left click in the right-hand column sets the loop start and a right click the end of the ornament.

The ornament title uses the same dim/green L indicator and the same copy-on- enable, mirror-while-enabled behaviour as instruments. Each instrument and ornament number has an independent LINK flag.

Undo and Redo

EXT.MODE+Z undoes a change and EXT.MODE+Y redoes it; the same commands are the first two entries in the Edit menu. The four-step history covers pattern and AY-global data, ORDER edits, instruments and ornaments including LINK, whole-pattern operations, cloning, and channel swaps. A paste, transformation, clear, or mouse drag is one step. A new edit after Undo discards the Redo branch.

New song, MXM load and PT3 import start a fresh history. Purge unused patterns also clears it because it physically returns data pages to memory. Cursor and selection movement, playback, mute/solo, and view changes are not recorded.

Confirmations

Even with undo, the commands that may discard a larger amount of work still ask first:

  • File / New song, File / Load MXM (SS+L) and File / Import PT3/MXC - these three only when the song has unsaved changes, since that is all they discard. The import takes PT3 and MXC; File / Export MXC writes PT3 with the instrument tails (header MXTracker v3.x compilation of, two bytes before every sample), which the standalone ptx3play player and the .mxplay DOT command play; the ordinary Export PT3 loses the tail
  • Edit / Clear track, Edit / Clear pattern and Order / Clear pattern
  • Order / Delete position and the CS+0 that removes an order row; on the last remaining position, which cannot be removed, the question is about clearing its pattern instead
  • Instr / Clear instrument

The two buttons carry their keys: ENTER or Y confirms, BREAK, N or a click anywhere but on [ YES / ENTER ] cancels, so a stray click never deletes anything. A pattern that owns no data yet is cleared without asking, and the pattern manager keeps its own press-twice confirmation.

Order list

KeyAction
CS+6 / CS+7position down / up
CS+5 / CS+8selected PAT or LEN field -1 / +1
0-9,A-Ftype the selected PAT or LEN in hex
Kclone the pattern into the first free number
EXT.MODE+7 / EXT.MODE+6move the position up / down in the song
EXT.MODE+5 / EXT.MODE+8pattern one row shorter / longer
EXT.MODE+Ninsert position
CS+0delete position

Clicking the pattern number or the length picks the matching PAT / LEN field; the picked field gets the red backing of every active edit field and its two hex digits can then be typed over directly — PAT takes 00-3F and LEN takes 01-60. A right click in the order list is swallowed so it cannot extend the song by accident. Clicking a dim position activates it; newly created rows receive patterns 01, 02, … in sequence and the grid below switches immediately. Order / Delete position removes a row from the song list, while Order / Clear pattern erases the current pattern data. The mandatory final position cannot be removed, so DELETE clears its pattern instead.

Pattern length

New patterns are 40h (64 rows) long and may grow up to 60h (96 rows); the grid wraps at their end. The LEN column of the order list shows each pattern’s length. Click it to select direct two-digit hexadecimal entry; Order / Pat length - / + and EXT.MODE+5 / EXT.MODE+8 still change it one row at a time. The pattern manager changes the same value with left/right on the selected row.

Shortening never erases anything - the rows below simply stop being shown. When they still hold notes or AY events, the status line says Shorter - hidden rows still hold data, so nothing is lost silently. Make the pattern longer again and the rows come back untouched.

EXT.MODE+7 / EXT.MODE+6 swap the current entry with the one above or below and take the cursor with it, so the same pattern can be walked through the song with repeated presses. Only positions inside the song take part; the dim rows past its end hold no pattern. The loop marker points at a position rather than at a pattern, so it stays where it was.

One pattern number may sit at several order positions, so editing it changes all of them at once. K or Order / Clone pattern copies the pattern of the current position — data and length — into the first number that no position references and that owns no data page yet, and assigns that number to this position. Everything else in the song keeps the original, so further edits here no longer reach the other positions. C in the pattern manager does the same job from the pattern list. (C is a hexadecimal digit in the order list, which is why the clone lives on K here.)

Order / Pattern manager opens a full-screen overview of all 64 patterns. It shows the number of ORDER references, pattern length, and whether a data page is allocated. Controls:

KeyAction
up/down, CS+3 / CS+4, CS+9 / CS+2select a pattern
left/rightchange pattern length
ENTERassign the selected pattern to the current ORDER position and open it
Cmake an independent clone in the first safely free pattern number
CS+0 twiceclear the selected pattern while keeping ORDER references
U twicerelease data pages belonging to every pattern unused by ORDER
CS+SPACEreturn without changing the assignment

A click selects a row; clicking the same row again assigns and opens it. The mouse wheel scrolls the list. A clone is independent, so later source edits do not affect it.

The small green triangle on the right marks the song loop point; it is not the playback cursor. After reaching the end of the order list, playback continues from this position. Select the required row and use Order / Set loop point to move it. In contrast, the row with a full green background is the position currently being played. The loop position is saved in MXM files and retained when importing PT3 modules.

AY-global noise and envelope

Open Song / Edit AY globals or click the N ENV AYx strip beside the pattern. The strip follows the AY containing the current channel.

Channels CH1-CH3 select AY1, CH4-CH6 select AY2 and CH7-CH9 select AY3. You can therefore switch the displayed global lane by selecting a channel of that AY. Alternatively click the global strip (or its header) and use SS+5 / SS+8 to cycle directly through the active AY chips. The mouse wheel over the global strip cycles AY chips as well; over the rest of the pattern it continues to move through pattern rows.

KeyAction
CS+6 / CS+7row down / up
CS+5 / CS+8previous / next global field
SS+5 / SS+8previous / next AY chip
0-9,A-Fenter noise, envelope shape or a period nibble
EXT.MODE+Mtoggle envelope as note mode (also Setup / Env as note)
SPACEclear the selected noise/envelope event
EXT.MODE + arrowsselect a block in the strip (rows and fields)
EXT.MODE+Aselect the whole strip of the current AY
CS+0clear the selection, or the complete cell on the current row
EXT.MODE+C / EXT.MODE+Xcopy / cut the selection
EXT.MODE+Vpaste from the row under the cursor
CS+SPACEreturn to the normal channel pattern

Selecting inside the strip works like it does in the grid: the first EXT.MODE + arrow anchors a selection, further ones stretch it over rows and fields, and CS+0 clears what is selected. Which side of the strip the selection touches decides what gets cleared — picking noise alone leaves the envelope be, and the other way round. Any other key cancels the selection. The mouse selects by dragging with the left button held, but the block starts on the first real move, so an ordinary click does not draw a rectangle; dragging across the border between the grid and the strip ends the block.

The strip has a clipboard of its own, so it never collides with the pattern one — a block of notes and a block of envelopes can sit in store at the same time. Whole cells are stored, but the clipboard remembers which fields the selection covered and a paste touches only those: copying noise alone will not overwrite the envelope at the destination. A paste stops at the end of the pattern.

The display is NN EPPPP: two hexadecimal digits for the shared noise period, envelope shape E and its four-digit period. = instead of a shape means “change period without retriggering the envelope”.

Envelope as note mode (EXT.MODE+M or Setup / Env as note; the strip header shows NOTE) treats the period the way Vortex Tracker does: in the period column the piano keys enter a note in the current octave and store the tone period divided by 16, i.e. the pitch that envelope shapes 8, A, C and E really produce. A period that matches a note exactly is then drawn as its name (C-4); any other period stays in hex. The display also covers octave 0 (A-0, twice the period of octave 1), where envelope bass often sits; the keyboard enters octaves 1 to 7 only. Rounding to a whole number still leaves the envelope out of tune in the higher octaves - the mode just shows which note you actually get. The noise and shape columns keep taking hex digits.

The envelope shape belongs to the whole AY chip — it has a single envelope generator shared by all three voices. It is therefore set here in the global bar, not per channel. A voice's ENV column has three explicit states: E enables the envelope, D disables it, and 0 clears the event. They are displayed as E, D and .; other hexadecimal keys are ignored in this column. The pitch comes from the envelope period, not from the note that is played.

EXT.MODE+F, or a second click on the shape field, opens a list of shapes with a sketch of each waveform. It works like the command list: arrows and ENTER pick, a hex digit picks straight away, BREAK or a click outside leaves the field alone. Only the repeating shapes hold a tone — the one-shot ones fall silent or stop after a single run, which sounds like a click.

ShapeWaveformBehaviour
8saw downrepeats — holds a tone
Csaw uprepeats — holds a tone
Atriangle, down firstrepeats — holds a tone
Etriangle, up firstrepeats — holds a tone
9decay, then silentfires once
4attack, then silentfires once
Bdecay, holds maximumfires once
Dattack, holds maximumfires once

Shapes 0–3 sound the same as 9 and 4–7 the same as F, so the list does not repeat them. Shape F is offered as the identical 4.

Envelope as note. Setup / Env as note toggles entering the envelope period as a note, see the global strip above.

Sound chip and stereo. Setup / Sound chip AY/YM switches between the AY and the YM, and Setup / Stereo ABC/ACB between the two channel layouts. Both apply immediately and are shown permanently in the status row, to the left of Pos:. They are properties of the machine rather than of the song — they are not stored in the MXM and start out as AY and ABC.

Swapping two voices. Song / Swap channels A-B, B-C and A-C swap a pair of voices across the whole song, that is in every pattern at once. They work inside the AY the cursor sits in, so with six or nine channels the other chips are left alone. The global AY lane stays put — it carries the noise and envelope of the whole chip, not of individual voices. Applying the same swap twice restores the original.

08Diagnostics

Setup / AY monitor on/off shows the live AY register dump in row 2, and Help / PT3 import info reopens the import result window. Help / About opens a program-information and credits window; any key or a new mouse click closes it. The mouse also remains active in the PT3 import information window.

09Mouse (K-Mouse)

The cursor is a hardware sprite, so it does not cover up the tilemap content.

  • clicking row 0 opens / closes the menu
  • dragging with the left button held selects a block in the grid: pressing anchors at the cell under the pointer and dragging moves the other end, by rows and by columns just like EXT.MODE + arrows. Releasing ends the drag; dragging onto the N ENV AYx strip moves the focus there and stops the selection. Inside the strip itself dragging selects the same way, only with a clipboard of its own.
  • clicking the AY/YM or ABC/ACB indicator in the status row toggles it straight away, without opening the menu.
  • clicking the transport row triggers Play / Pat / Stop / Rec; on octave, step, speed and channel count the left button increases and the right button decreases the value, wrapping at either end
  • clicking a panel moves the focus there and selects a row; clicking the INSTRUMENT xx or ORNAMENT x heading selects the next item with the left button and the previous one with the right button; seven data rows remain visible below the separate column heading
  • left-clicking the L in an instrument or ornament title enables LINK and immediately copies that item to all AY banks; right-clicking it disables LINK
  • left-clicking a CH1-CH9 title selects the channel and toggles its mute; right-clicking solos that channel, and right-clicking the same channel again restores the exact previous mute state. Right-clicking AY1-AY3 similarly solos the complete three-channel AY group. In the adaptive 6/9-channel view the selected channel is also expanded; muted channel titles are red and marked M
  • in the order list, left-clicking the pattern number or its length picks the PAT / LEN field; its two hex digits can then be typed over directly and CS+5 / CS+8 change whichever field is picked. A right click is swallowed so it cannot extend the song by accident
  • clicking the grid puts the cursor on that row, channel and column
  • in the global AYx header, the left button selects the next AY; the right button toggles solo for the displayed AY
  • the wheel over the instrument, ornament or order panel focuses that panel and scrolls its selected row
  • the wheel over the pattern focuses the pattern and scrolls its current row

Generated from the documentation in the MXTracker repository.