Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
C/C++
MIDAS Digital Audio System
7. února 2002, 00.00 | MIDAS je zvuková knihovna s bohatou historií, prošla již dlouhým vývojem. Je možné s ní i dnes programovat hry pro MS-DOS. Jak se s ní pracuje pod Windows98, se dočtete v tomto článku.
Dnes se mi podařilo oprášit golema, a oživit jej, aby mi zahrál své nejlepší skladby. A pokud i vy chcete zaslechnout pramínky melodií utkaných z těch nejčistších nástrojů, pojďte se mnou, však uslyšíte sami.
Ale dost snění, teď nás čeká jen tvrdá dřina, krev a pot. Jen takové úsilí si žádá zkrocení legendy mezi zvukovými systémy, která se jmenuje MIDAS.
Knihovna MIDAS již prošla již velkou vývojovou cestou a jistě si ji pamatujete z dob již dávno minulých z MS-DOSu. Byla využita v mnoha počítačových hrách. A mě zajímalo, jak si MIDAS stojí dnes.
Nejprve ale navštivte oficiální stránku Housemarque Audio Systemu, jak se MIDAS nyní jmenuje.
Archív s knihovnou má velikost 2300KB, obsahuje zdrojáky, dynamickou knihovnu, příklady a nápovědu.
Knihovna MIDAS je rozdělena do 6 částí, každá část se věnuje určitému okruhu činností.
-inizializace a konfigurace
-ovládaní systému MIDAS
-přehrávání modulů
-přehrávání samplů
-přehrávání streamů
-zvukové efekty
Toto rozdělení jsem si nevymyslel, takhle jsou rozděleny datové typy a jednotlivé
funkce v nápovědě. když jsem si procházel možnosti MIDASu, viděl jsem spoustu
funkcí, které jsou právě určeny pro stařičký operační systém MS-DOS. Mám na
mysli například funkci na autodetkci zvukové karty. Takže pokud někdo z vás
ještě koketuje s myšlenkou tvořit MS-DOSácké hry, je to výzva pro něj.
MIDAS jakožto postarší knihovna slouží především k přehrávání modulů (s3m, mod ...). Můžete také přehrát wav a výstup obohatit o echo.
Program pro C++ Builder
MIDAS jsem testoval na jednoduchém přehrávači, stejně jako v předchozích článcích o sound systémech. Program přehrává moduly. Testoval jsem funkce přehrávání play, stop a nastavení hlasitosti výstupu.
Než začnete programovat, přehrajte si hlavičkový soubor midasdll.h a dynamickou knihovnu midas11.dll. Statickou knihovnu vytvoříte utilitou implib a teď již máme vše potřebné k programování.
Nahlédnutí do kódu
Programování s knihovnou je nachlup podobné jako při programování s bassmodem
a fmodem, takže nemá smysl rozebírat kód řádek pořádku. MIDAS má pár odlišností,
které stojí za to zmínit. Například stavy jako jméno skladby, pozice ve skladbě,
délka skladby získáme přes strukturu MIDASmoduleInfo.
A tyto informace jsou položky této struktury, narozdíl od fmodu, kde všechno
obstará příslušná funkce. Abych se přiznal, mám raději ten druhý způsob získávání
informací.
Obrázek o programování s MIDASem si můžete udělat z následujícího kódu:
Obsluha tlačítka PLAY
|
Tak tolik řádků je potřeba k započetí přehrávání. Vše by bylo naprosto krásné,
kdyby nebyly potřeba první dvě podmínky. První podmínka testuje, jestli není
ukazatel module, který ukazuje na načtený modul prázdný (NULL).
To by se mohlo přihodit, kdyby jste nenačetli žádný modul nebo načtený soubor
nebyl modul. To by mělo za následek zhroucení programu, protože knihovna MIDAS
prostě nepozná, když pod ukazatelem module nic není. A aby to nebylo málo, nelze
ani nastavit hlasitost, pokud se nepřehrává. Druhou malou nedokonalostí je,
že MIDAS není schopen vícekrát po sobě volat funkci MIDASplayModule.
Normální by asi bylo, při opakovaném volání této funkce buď znovu začít přehrávat
modul a nebo prostě tuto volbu ignorovat. MIDAS to řeší po svém velmi svérázně,
prostě zkolabuje. Potom ale nechápu, proč se testuje jestli není
playHandle == 0, když program zkolabuje dřív, než program zjistí, že
není něco v pořádku. Aby se opakovaně znova nevolalo MIDASplayModule
zavedl jsem si proměnou play, která sleduje, jestli program právě přehrává,
či nikoliv.
Můj pokus s MIDASem si stáhněte zde (470KB).
Hodnocení
MIDAS je knihovna na přehrávání modulů se vším všudy, co tento druh muziky vyžaduje. Může přehrát i wav sobor. Obsahuje vše, co budete potřebovat do své počítačové hry - přehrává hudbu a samply. Na druhou stanu nabízí programátorovy malý komfort při programování. Například nemožnost měnit hlasitost výstupu, pokud není přehráván nějaký modul. Jsou to maličkosti, ale myslím, že to otravuje při programování (hlídat, jestli se přehrává nebo ne). Na druhou stranu je MIDAS ve své 11 verzi už poměrně stařík, rok vydání je 1998, a takže si může dovolit pokulhávat za svými konkurenty. A navíc má možnost, kterou již jeho mladší konkurenti nemají a sice je stavěný i pro programování v MS-DOSu (autodetekce zvukové karty...). V archívu knihovny jsem postrádal navíc licenci.
Teď již záleží pouze na vás, kterou knihovnu si vyberete.
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007