ZX Spectrum Next / připravovaný software
MXTracker – hudební tracker pro ZX Spectrum Next
Už nějakou dobu ve mně vrtal červík, kterého do mě zasadil z00m/SinDiKAT – vím, jak to zní :). Při práci na hudbě pro mou hru 2048 pro ZX Spectrum Next si několikrát postěžoval na trackery. Ne že by s nimi neuměl pracovat, ale jejich ergonomika, způsob zadávání dat a vůbec celkový pracovní postup mu jednoduše nesedly.
Chvíli jsme se o tom bavili a jak mě tak znáte, samozřejmě jsem si začal něco zkoušet. Jenže tentokrát jsem tomu zpočátku nepřikládal žádnou velkou váhu. Další projekt podobného rozsahu jsem opravdu rozjíždět nechtěl. CalmCommander, Bow Commander, NXPaint, .paper, rozdělané hry… ono by se také mohlo stát, že by se moje práce začala zpomalovat. A to byste přece nechtěli… :)
Jenže mezitím jsem tak nějak dokončil .paper, NextDash, 2048 i Bow Commander a po tom trackeru jsem pořád po očku pokukoval. Když se pak na Slacku znovu rozhořela podobná debata o tom, co komu na současných trackerech vadí, už jsem prostě neodolal.
Program zatím ještě není vydaný, takže tentokrát nejde o release oznámení. Rád bych vás ale seznámil s tím, jak se MXTracker ovládá, jakým způsobem se v něm pracuje a co už dnes umí – nebo v některých případech umět bude.
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.
Globální klávesy
| Klávesa | Akce |
|---|---|
0 | otevřít menu (při zapnutém zápisu v hexadecimálním sloupci zapíše 0; menu je potom na CS+1) |
CS+1 | vždy otevřít menu |
ENTER | přehrávat aktuální pattern ve smyčce |
SS+ENTER | přehrávat skladbu od aktuální pozice |
CS+SPACE | zastavit přehrávání |
SPACE | zapnout/vypnout režim zápisu (Rec) |
SS+SPACE | další kanál |
SS+4 | přepnout rozdělený pohled a pattern přes celou obrazovku |
SS+3 | umlčet/obnovit kanál pod kurzorem |
SS+S | uložit MXM |
SS+L | načíst MXM |
EXT.MODE+H | otevřít prohledávatelnou nápovědu klávesových zkratek |
EXT.MODE+I | otevřít/zavřít celoobrazovkový editor nástroje |
EXT.MODE+O | otevřít/zavřít celoobrazovkový editor ornamentu |
EXT.MODE+T | otevřít transformace označeného bloku |
Ná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. DEL smaže poslední znak filtru, šipky nahoru/dolů a CS+3 / CS+4 posouvají výsledky a CS+SPACE nebo znovu EXT.MODE+H okno zavře. Seznam lze posouvat také kolečkem myši.
Ná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, DEL 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.
Pohyb v patternu
| Klávesa | Akce |
|---|---|
CS+5 / CS+8 | doleva/doprava mezi sloupci a kanály |
CS+6 / CS+7 | dolů/nahoru |
CS+3 / CS+4 | o 16 řádků nahoru/dolů |
CS+9 / CS+2 | začátek/konec patternu |
SS+7 / SS+6 | předchozí/další pattern |
SS+5 / SS+8 | předchozí/další nástroj |
EXT.MODE+A | označit všechny řádky tří kanálů aktivního AY v aktuálním patternu |
EXT.MODE + šipky | označovat řádky a 1–3 kanály v rámci aktuálního AY |
EXT.MODE+C / EXT.MODE+X / EXT.MODE+V | kopírovat/vyjmout/vložit označený blok nebo buňku pod kurzorem |
CS+0 | vymazat označený blok, jinak celou buňku |
SS+C / SS+X / SS+Z | pů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: všechny řádky aktuálního patternu a jeho tři kanály. 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 celých kanálech. 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 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.
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. TAB přepíná náhled mezi až třemi označenými kanály. K dispozici jsou tyto operace:
Transpose notesposune skutečné noty o −24 až +24 půltónů. Prázdné buňky,OFFaRELEASEse nemění a výsledek se bezpečně ořízne na rozsah C–B.Set instrumentnastaví nástroj00–1Fna řádcích obsahujících notu nebo existující událost nástroje.Adjust volumepřičte −15 až +15 pouze k existujícím událostem hlasitosti; výsledek zůstane v rozsahu0–F. Prázdné pole zůstane prázdné a dál dědí poslední hlasitost daného kanálu.Fill current columnvyplní 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 columndopočí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 dialogu | Akce |
|---|---|
CS+6 / CS+7 | další/předchozí operace |
CS+5 / CS+8 | ubrat/přidat hodnotu o jeden krok |
SS+5 / SS+8 | hrubý krok; u transpozice celá oktáva |
0–9, A–F | přímé zadání nástroje nebo hodnoty pro Fill |
SS+SPACE (TAB) | další kanál náhledu |
ENTER | potvrdit náhled a změnit pattern |
CS+SPACE (BREAK) nebo EXT.MODE+T | zruš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.
Zadá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 +.
spodní řada: Z S X D C V G B H N J M
C C# D D# E F F# G G# A A# B
horní řada: Q 2 W 3 E R 5 T 6 Y 7 U I 9 O P
C C# D D# E F F# G G# A A# B C C# D E
(o oktávu výš)
| Klávesa | Akce |
|---|---|
1 | vložit === — vypnutí noty |
4 | vymazat pouze notu v buňce |
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, envelope, ornament, hlasitost, příkaz a parametr — se zadávají hexadecimální hodnoty 0–9 a A–F.
Panely
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 začátku smyčky a konce. 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í. Klávesové ovládání je stejné v rychlém i celoobrazovkovém editoru:
| Klávesa | Akce |
|---|---|
CS+6 / CS+7 | řádek nástroje dolů/nahoru |
CS+5 / CS+8 | předchozí/další pole |
SS+6 / SS+7 | snížit/zvýšit vybranou hodnotu |
SPACE | přepnout vybraný příznak nebo cyklovat posun hlasitosti |
CS+T / CS+N / CS+V | přímo přepnout tón/šum nebo cyklovat posun hlasitosti |
CS+L | přepnout LINK tohoto nástroje mezi všemi bankami AY |
Z S X V G H N J M, Q W R T Y U I O P | přehrát náhled aktuálního nástroje příslušnou klavírní notou |
0–9, A–F | zadat vybranou hodnotu hexadecimálně |
INS / DEL | prodloužit/zkrátit nástroj |
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ávesa | Akce |
|---|---|
CS+6 / CS+7 | řádek dolů/nahoru |
CS+5 / CS+8 | hodnota −1/+1 |
SS+6 / SS+7 | hodnota −12/+12 |
SS+5 / SS+8 | předchozí/další ornament |
CS+L | př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 P | přehrát náhled aktuálního nástroje a ornamentu |
0–9, A–F | zadat syrový znaménkový bajt hexadecimálně |
SPACE | nastavit aktuální posun na nulu |
INS / DEL | prodloužit/zkrátit ornament |
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.
Order list
| Klávesa | Akce |
|---|---|
CS+6 / CS+7 | pozice dolů/nahoru |
CS+5 / CS+8 | číslo patternu −1/+1 |
0–9, A–F | zadat číslo patternu |
CS+0 | odstranit pozici |
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. 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ávesa | Akce |
|---|---|
šipky nahoru/dolů, CS+3 / CS+4 | výběr patternu |
| šipky vlevo/vpravo | změna délky patternu |
ENTER | přiřadit vybraný pattern aktuální ORDER pozici a otevřít jej |
C | vytvořit nezávislý klon do prvního bezpečně volného čísla |
CS+0 dvakrát | vyčistit data vybraného patternu; odkazy v ORDERu zůstanou |
U dvakrát | uvolnit datové stránky všech patternů nepoužitých v ORDERu |
CS+SPACE | ná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 AYx N ENV 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ávesa | Akce |
|---|---|
CS+6 / CS+7 | řádek dolů/nahoru |
CS+5 / CS+8 | předchozí/další globální pole |
SS+5 / SS+8 | předchozí/další AY čip |
0–9, A–F | zadat šum, tvar envelope nebo jednu číslici periody |
SPACE | vymazat vybranou událost šumu/envelope |
CS+0 | vymazat celou globální buňku na aktuálním řádku |
CS+SPACE | návrat do běžného kanálového patternu |
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“.
Diagnostika
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.
Myš (K-Mouse)
Kurzor je hardwarový sprite, takže nezakrývá obsah tilemapy.
- Kliknutí na řádek 0 otevře nebo zavře 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 xxneboORNAMENT xzmě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
Lv 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–CH9vybere 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í naAY1–AY3stejný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. - Kliknutí do mřížky umístí kurzor na příslušný řádek, kanál a sloupec.
- V globální hlavičce
AYxlevé 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.
A co dál?
Neříkám, že vše výše napsané teď funguje - je to ve stádiu rozpracovanosti, ale už teď vím, že jsem na dobré cestě. Velká výhoda už teď je, že dokážu vyťukat do MXTrackeru melodii "Kočka leze dírou...", což se mi nepovedlo v Arkos Trackeru, Vortex Trackeru... a není to tím, že bych neznal noty. Hrál jsem několik let na klavír - pak mi ale rodiče dali na vybranou - box nebo klavír :) asi víte jak to dopadlo - teda minimálně ti, kteří mne znají osobně. Příští článek bude o tom, jak interně ukládám hudební data a možná něco málo o hradlu, které se začíná rýsovat a importované PT3 do MXTrackeru znít tak jak mají.







