ZX Spectrum Next / dot command
.pt3play – PT3 přehrávač pro ZX Spectrum Next
Po pár dnech jsem se vrátil z dovolené s rodinou, kterou jsme trávili v obci Hajany. Tentokrát jsem si předsevzal, že ji pojmu jako takový malý detox od počítačů. Žádné programování, žádné ladění, žádné „jenom si na chvilku něco zkusím“. No… asi tušíte, jak to dopadlo.
Výsledkem je další malý příspěvek k MXTrackeru, do kterého teď budu postupně doplňovat a opravovat nové funkce podle připomínek z00ma. Pokud se nic zásadního nepokazí, snad se tak brzy dočkáte první veřejně publikované verze.
Jenže co by to bylo za tracker, kdybyste hudbu, kterou v něm vytvoříte, nemohli jednoduše přehrát ve vlastních demech, hrách nebo dalších programech? Jako první krok proto uvolňuji dot command .pt3play pro ZX Spectrum Next. Samostatná rutina pro přehrávání hudby, kterou půjde vložit přímo do vlastního programu, bude následovat během tohoto týdne.
Co je .pt3play
.pt3play je kompaktní přehrávač hudby PT3 určený přímo pro ZX Spectrum Next. Automaticky zvládá jeden, dva nebo tři čipy AY, tedy 3, 6 nebo 9 zvukových kanálů, a během přehrávání zobrazuje také živý spektrální analyzér.
Podporované počty kanálů
- 3 kanály: jeden standardní modul PT3 na jednom čipu AY.
- 6 kanálů: dva moduly PT3 ve standardním TurboSound kontejneru
02TS. - 9 kanálů: tři moduly PT3 v rozšířeném kontejneru
03TS.
Podpora devíti kanálů už je v přehrávači skutečně implementovaná. Nové devítikanálové soubory PT3 pro tento režim bude exportovat připravovaný MXTracker. Dosavadní PT3 a šestikanálová hudba TurboSound zůstávají plně podporované.
Použití
Příkaz nainstalujte jako /dot/PT3PLAY. Pokud chcete kratší variantu, můžete použít také alias /dot/PT3. Z NextZXOS jej pak spustíte například takto:
.pt3play hudba.pt3
.pt3play "jmeno souboru s mezerami.pt3"
Klávesou SPACE přehrávání ukončíte a vrátíte se do NextZXOS. Příkaz před návratem zavře soubor, umlčí všechny aktivní čipy AY a obnoví původní rychlost procesoru.
Co přehrávač zobrazuje
- jméno souboru, název skladby a autora z hlavičky PT3,
- velikost načteného souboru,
- rozpoznaný počet čipů AY a zvukových kanálů,
- živý spektrální analyzér se 16 pásmy a výškou 128 pixelů,
- zelenou, žlutou a červenou oblast hlasitosti spolu s pomalu klesajícími značkami špiček,
- výrazné varování
TRUNCATED!, pokud je soubor větší než prostor dostupný pro načtení.
Analyzér nepočítá FFT. Čte přímo periody tónů a hlasitosti, které právě míří do všech aktivních hlasů AY. Osm oktáv PT3 rozděluje do šestnácti půloktávových pásem a hlasy, které spadají do stejného pásma, sloučí.
Jak se rozpoznají 3, 6 a 9 kanálů
- 3 kanály: běžný soubor PT3 bez patičky TurboSound. Výstup používá jeden čip AY.
- 6 kanálů: dva úplné moduly PT3 následované patičkou
02TS. Výstup používá dva čipy AY vybírané hodnotami$FFa$FE. - 9 kanálů: tři úplné moduly PT3 následované patičkou MXTrackeru
03TS. Výstup používá tři čipy AY vybírané hodnotami$FF,$FEa$FD.
Patičku tvoří jedna položka pro každý modul – "PT3!" a jeho 16bitová délka v pořadí little-endian – následovaná značkou "02TS" nebo "03TS". Každý vložený modul zůstává úplným modulem PT3. Loader kontroluje značku i základní smysluplnost délek modulů; neplatnou nebo neznámou patičku bezpečně vezme jako obyčejné tříkanálové PT3 místo toho, aby skočil na chybnou adresu. Celá cesta pro třetí čip je už ve zdrojáku skutečně hotová. Parser kontejneru rozpozná 03TS a předá adresu třetího modulu, přehrávač má třetí nezávislý stav i vlastní blok registrů a každých 50 Hz zavolá třetí instanci PT3 přehrávače. Její registry pak zapíše do třetího fyzického AY.
Kompatibilita a omezení
- Určeno pro ZX Spectrum Next a jeho zvukový systém kompatibilní s TurboSoundem se třemi AY.
- Standardní jednomodulové PT3 i dvoumodulové soubory
02TSsi zachovávají původní chování. - Příkaz po dobu běhu přepne procesor na 28 MHz, aby se přehrávání i vizualizace bezpečně vešly do jednoho snímku.
- Modul se načítá souvisle na adresu
$8000a má limit přibližně 30 KB. Stejně jako systémový PT3 přehrávač tím přepíše oblast programu BASIC. - Při načítání hudby se nepoužívá stránkování MMU ani přidělování dalších paměťových bank.
- Přehrávač používá stereo ABC a zapíná vícečipovou zvukovou cestu Nextu.
Na čem přehrávač stojí
PT3PLAY vychází z Universal PT2 & PT3 Turbo Sound playeru od S. V. Bulby. Původní přehrávač jsem pro potřeby ZX Spectrum Next rozšířil ze dvou modulů na tři, aby mohl využít všechny tři čipy AY.
.pt3play si můžete stáhnout zde: https://shrek128.itch.io/pt3play.




