Uživatelské nástroje

Nástroje pro tento web


lnxspectrum:lnxtracker

Toto je starší verze dokumentu!


LnxTracker - hudba

Někdy chceme, aby náš projekt v ZX Spectru obsahoval hudbu. Možností máme několik. Existuje spousta hudebních editorů. Na výběr máme buď pro klasický „pípák“ (např. editory WHAM48, Orfeus), nebo pro hudební čipy (např. editory MusicBox128, MusicTracker). V ZX Spectru 128 byl montován AY čip, případně je možné použít SAA které se připojovalo jako přidavné interface.

Popíšu jak použít pro vložení hudby do našeho projektu hudební editor LnxTracker. V našem projektu kanály rozdělíme tak, že na SAA bude hrát hudba, a AY se bude starat o zvukové efekty.

Export z LnxTrackeru

Assembler

Do našeho assembler projektu importujeme soubor „shadow of the beast 3.bin“ který jsme si vyexportovali z LnxTrackeru. Nic dalšího není potřeba, protože v LnxSpectrum je přehrávací rutina pro LnxTracker obsažená v knihovnách v editoru.

Tato hudební rutina má velikost kolem 2 KB, a umí ovládat 2xAY a SAA čip, a to i současně. Pokud se použije jen ta část pro AY, část SAA se nebude do projektu kompilovat, stejně tak naopak. Pokud se použije jen SAA, AY části nebudou použity.

Ovládání je jednoduché. Hudbu inicializujeme zavoláním příkazu mus.load_play, zastavíme ji zavoláním mus.stop. Důležité je, aby každém přerušení (50x za sekundu) byla zavolána obsluhujicí rutina mus.int, a to i v případě, že se zrovna hudba nepřehrává. Je to zvukový engine, který musí být stále aktivní.

mus.int máme několik druhů, podle použití:

mus.int_ay pro přehrávání jen jedním AY čipem, standartní pro ZX Spectrum 128.
mus.int_ts pro přehrávání dvou AY čipů, tzv. TurboSound.
mus.int_saa pro přehrávání pomocí čipu SAA.
mus.int_all pro použití všech předchozích variant.
; LnxSpectrum ASM editor (www.ilnx.cz) 17.5.2019

	org	32768

	ld	de,Music1
	call	mus.load_play
	
; Sound routine called each interrupt (50x per sec).
; Interrupt simulation:
	ei
interrupt	call	mus.Patterns	;Music control
	call	mus.int_SAA	;Sound engine

	halt
	jr	interrupt

	include	"LnxTrackerEngine.slb"
Music1	include	"shadow of the beast 3.bin"
lnxspectrum/lnxtracker.1558102995.txt.gz · Poslední úprava: 2019/05/17 16:23 autor: lanex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki