MIDI demó (Nagy Dániel)

Saját műveink legyen az BASIC-ben, Pascal-ban, gépi kódban, de lehet akár grafika is...
Avatar
Bali
Alapító tag
Hozzászólások: 2302
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

MIDI demó (Nagy Dániel)

Hozzászólás Szerző: Bali » 2019.08.12. 12:57

Annak idején igen népszerű volt videojátékokban és háziszámítógépekben a General Instruments AY 3-8910 (vagy a kisebb tokban lévő AY 3-8912, vagy a Yamaha által gyártott YM-2149 klón) 3-csatornás hanggenerátor IC. Megtalálható a TRS-80 és HT-1080Z gépekben, a ZX Spectrum különböző 1984 utáni változataiban és klónjaiban, az Amstrad CPC sorozatának minden gépében, az Atari ST és TT sorozatban, meg még rengeteg más gépben, amiket felsorolni is nehéz lenne. Talán a Commodore volt az egyetlen ismertebb cég, amelyik abban az időben szisztematikusan tartózkodott a használatától, mindenki más beépítette ebbe-abba. Asszem, még ma is gyártják a cuccot.

Nemrég írtam rá egy MIDI-fájl lejátszót azzal a konkurens programozástechnikával (kooperatív multitasking), amit itt már egyszer bemutattam: kizárólag a stack pointer lecserélésével váltogatunk a konkurensen futó szálak között olyankor, amikor épp kényelmes, ám elég gyakran ahhoz, hogy minden szál "szóhoz jusson". A szálak közötti kommunikáció a processzor regisztereiben zajlik, még memóriapuffer sem kell hozzá. Jelen esetben két szál fut, egy "sequencer", ami megfelelően időzítve midi parancsokat generál (ez teljesen független a lejátszó hardvertől), és egy "zongora", ami hanggenerátor-specifikus és csak lejátssza a billentyűleütéseket valós időben, amint megkapja őket, mindig a soron következő hangcsatornán. Az eredmény engem is meglepve egész jó lett, úgyhogy veletek is megosztom.
P.S. Igen, TETRIS klónhoz kellett jó zene.

mididemo.tap
(11.13 KiB) Letöltve 3 alkalommal.
-= Bali =-
(c) 1983-2017 Evil-Soft

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég