Un SID sullo Spectrum, ma usando l'AY!
Poke e Omega hanno portato sullo Spectrum una tecnica di programmazione che
permette di ottenere sull'AY/YM delle forme d'onda molto simili a quelle
del SID del C64. La tecnica e' molto in voga sull'Atari ST (che ha anche
lui un chip YM2149) ed e' comunemente conosciuta come "syncbuzzer"; in
realta' ce ne sono diversi di questi trucchi, piu' o meno complicati da
implementare, ma non tutti si prestano ad essere trasportati sullo Spectrum.
Per chi sa programmare l'AY, l'idea di fondo e' quella di cambiare
rapidamente il registro della forma di inviluppo in modo da ottenerne altre
assai piu' complesse. Sull'ST questo si puo' fare con l'aiuto di interrupt
programmati, mentre su Speccy (mancando un timer) bisogna ricorrere a cicli
di temporizzazione dello Z80 (come per suonare le musiche sul 48K). Quindi
non sentiremo queste SID-musiche di sottofondo ai giochi o agli effetti dei
demo, ma e' comunque una vera prelibatezza tecnica (e acustica)! :)
Poke e Omega hanno approntato una piccola dimostrazione che fara'
sobbalzare i veterani della demoscene per l'esplicito ed ironico
riferimento ad un altro cult del genere audio, DigiSynth. A quell'epoca,
DigiSynth rivoluziono' anch'esso il modo di fare musica sullo Spectrum
portando il primo esempio di digiplayer (in due parole, suonava MOD a 3
canali sull'AY).
DigiSid e' solo una versione dimostrativa della routine, che deve ancora
essere perfezionata (tanto per tener buona la gente insomma :)).
Consiglio di usare un YM invece di un AY per via della migliore accuratezza
degli inviluppi di questo chip. Su RealSpectrum si puo' selezionare il chip
audio dello Spectrum dal menu delle proprieta' dell'hardware (F3 + F3).
http://www.ramsoft.bbk.org/demos/sidsound.zip
Buon ascolto!
Luca
PS: Omega e' quello di Exception! ;)