[#1] Muzyka AdLib (z platformy PC)
Hej,

Wiem jak poradzić sobie z wyciąganiem praktycznie wszystkich plików z danymi (grafiki, animacje, palety, dźwięki, czcionki, kafelki, misje itp.) z gry Dune II: Building of a Dynasty z platformy PC.

Największą jednak trudnością jest oczywiście muzyka. Muzyka dla Dune II jest w kilku formatach, w zależności od urządzenia odpowiedzialnego za dźwięk.

Wybrałem format AdLib. Udało mi się rozpracować całościowo pliki .adl przechowujące muzykę, załączone z Diuną II. Jest tam informacja dla odtwarzacza, która zawiera indeksy utworów oraz informacja dla sterownika, zawierająca indeksy ścieżek, instrumentów po których następują właściwe dane ścieżek (nuty, efekty) oraz dane instrumentów. Wiem dokładnie gdzie co się znajduje.

Ponadto udało mi się znaleźć pełen kod źródłowy odtwarzacza i sterownika karty AdLib.

https://github.com/adplug/adplug/blob/master/src/adl.cpp

Prawdopodobnie potrzebuję małej pomocy przy instrumentach oraz ścieżkach. Czy ktoś spotkał się już ze sterownikiem AdLib? O ile w kodzie źródłowym jest praktycznie wszystko co potrzeba, zestawienie ze sobą elementów nie jest już takie proste. Wiem gdzie w sterowniku znajduje się odczyt kolejnych nut ze ścieżki, pobranie parametrów oraz wywołanie funkcji i efektów.

W zasadzie potrzebuję dowiedzieć się dwóch rzeczy w tej kolejności:

- Jaki jest format instrumentów AdLib? Czy jest to bardzo zbliżone do Amigowego ciała plików IFF 8SVX lub 16SV? Jak znajdę odpowiedź na to pytanie, będę mógł od razu odtwarzać te instrumenty,

- Jaki jest format ścieżek - tutaj akurat pełna informacja znajduje się kodzie sterownika, i to jest łatwiej wyciągnąć, zapoznawszy się bardziej szczegółowo z funkcją sterownika, która wywoływana jest z częstotliwością 72Hz.

Nie wiem, czy poradzę sobie z tym do końca, ale postępy które tutaj odnotowałem w ostatnim czasie pozwalają mieć nadzieję, że muzykę uda się wyodrębnić i odtwarzać na Amidze, ew. skonwertować do MEDa, Protrackera itp.

Jeden plik z muzyką AdLib w Dune II zajmuje co najwyżej kilkanaście kilobajtów i posiada wiele utworów (tzw. sub-songs).

Jeśli natomiast chodzi o kanały, to karta AdLib ma bodajże 10 kanałów, gdzie jeden jest sterujący, ale też posiada priorytety dźwięków, dzięki czemu odgrywany jest dźwięk najistotniejszy (Amiga też ma alokację kanałów z zadanym priorytetem).

Animacje z Dune II już udało się w pełni odtworzyć na Amidze. (Pozostałe formaty też nie nastręczają trudności). Formaty z Dune II z PC nie są jakieś bardzo wygodne, więc raczej lepiej jest je skonwertować.

Jeżeli bym robił port na Amigę, to oczywiście cały kod źródłowy programu napisałbym samodzielnie na bazie własnego kodu, ewentualnie można podejrzeć kod źródłowy z C&C firmy Westwood Studios, który też jest dostępny i zawiera niektóre ważne dla gier strategicznych Westwood elementy.

Rzecz jasna muzyka nie jest niezbędna do portu gry, ale jest całkiem atrakcyjnym dodatkiem. Można też rzecz jasna dorobić nawet lepszą, Amigową muzykę z samplami, ale to wymaga dodatkowej pracy i pewnie większego zespołu.

Ale ten projekt jest poboczny, będę go robił w miarę sił i możliwości. Głównym moim projektem jest praca nad prostą grą na Amigę, czym się przede wszystkim zajmuję (oraz implementacją technik i ich demonstracją).

Sprawdziłem i gra ma digitizowane dźwięki mowy dopiero jak się ustawi w Setup kartę Sound Blaster (mimo że na AdLib Gold niby wyświetla że też powinny być). Oczywiście Amiga poradzi sobie również z takimi dźwiękami bez problemów (a same dźwięki w formacie .voc są łatwe do wyciągnięcia).

Pozdrawiam i dzięki z góry za wszystkie wskazówki (szczególnie co do formatu instrumentów, ewentualnie nut). Oraz czy warto tę muzykę wyciągać (szczególnie że na Ami można zrobić nawet ładniejszą muzykę)?

W przypadku Amigi CD32 jest też opcja konwersji muzyki do formatu CD-Audio. Nie wymagałoby to zapoznawania się z formatem (bo odtwarzacz dla MS-DOS i Unix istnieje). Może warto dać muzykę jako exclusive dla tego modelu Amigi.

P.S. Warto nadmienić przy okazji, że CD32 ma również akcelerację grafiki w formacie, który jest używany w wersji PC VGA, czyli Chunky, zatem odtworzy animacje z formatu VGA (ale wcześniejsza konwersja formatu np. do IFF ANIM - o ile w ogóle konieczna - nie powinna stanowić dużego problemu).

Przyznam na marginesie, że Westwood Studios ma swoje formaty ogólnie dość toporne (pewnie jak cały MS-DOS od Microsoftu i wcześniejsze PC od IBM), choć ja zawsze bardzo pozytywnie odbierałem ich gry strategiczne, a wersje PC VGA poznawałem sporo później. Dune II ma swój niepowtarzalny klimat i grywalność.
1
[#2] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #1

A to ciekawe - spodziewałem się, że AdLib to forma odtwarzacza midi, tymczasem to raczej SID na sterydach. 8SVX to ja kojarzę tylko jako sample.
[#3] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #1

A dlaczego wybierasz gorszy PC-towy format muzyczny, czyli AdLib zamiast MIDI?

Tutaj jest 9 utworow MIDI z Dune 2.
link

Ale jak sie upierasz w sprawie AdLib to masz tutaj jakies linki:

link

link

I strone autora muzyki:

link
[#4] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #3

Dokładnie tak jak napisałeś. AdLib nie ma żadnego podjazdu do MIDI.
Dźwięku z Roland MT-32 nic nie pobije. Poniżej małe porównanie:
https://www.youtube.com/watch?v=SiaoxTph0QU
[#5] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #3

AdLib wybrałem, dlatego że w pierwszej kolejności natrafiłem na szczegółowy opis pliku z rozszerzeniem .adl oraz właśnie stronę AdPlug.

Oczywiście nie ma dla mnie różnicy format - ważne jest tylko to, by był dobrze opisany. Dune II ma pliki MIDI z rozszerzeniem .xmi.

Dziękuję za te pliki MIDI ze strony FED2k.

Stronę autora muzyki widziałem, ale utwory są do pobierania w formie MP3, czyli kilka megabajtów, co oczywiście jest nieefektywne (oryginalna muzyka to kilkanaście kilobajtów).

To co chciałem zrobić w kolejności w ramach tego zadania, to wyciągnąć z plików ADL (lub MIDI) te instrumenty, a później nutki. Póki co mam opis plików ADL razem z kodem źródłowym playera, a teraz również pliki MIDI. Czy wiesz może, gdzie jest opis plików MIDI?

@Bobycob

Nie znam się na kartach dźwiękowych.

Muzyka w Dune II (pod DOSBox) brzmi podobnie dla AdLib i Sound Blaster. Ta druga karta jednak daje sample z digitizowaną mową.

Tak, IFF 8SVX to format sampli, nie muzyki. Ja odnosiłem to do instrumentów w pliku z muzyką.

Główne moje pytanie jest o format instrumentów w takich formatach. Czy koduje się to podobnie jak sample?

Ostatnia aktualizacja: 13.03.2026 10:55:06 przez Hexmage960
[#6] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #5

Ja juz malo co pamietam, ale XMI to Extended MIDI, ten sam format, ktory jest uzywany w HOMM2.
Jest to chyba MAC-owa wersja MIDI, bo uzywa BE a nie LE.

Tutaj masz opis:
link

Co do sampli to ja kiedys rypnalem wszystkie sample MIDI z Windows 98.
To byly sample z/od Rolanda o ile dobrze pamietam, caly set.
Wszystkie 22kHz.

Sa tutaj:
link

HOMM2_MIDI.lzx (3051275 bytes) original Roland (16-bit) MIDI samples set for conversion to Protracker format.

Tylko juz nie pamietam, czy sa tutaj jako oryginalny bank (1 wielki plik), czy tez w formie IFF (czyli podzielone przez muzyka z EAB).
W kazdym razie wedlug mnie to jest najlepszy MIDI sample set, bo oryginalny z Windows 98, wszystkie sample sa z tego samego sprzetu, wszystkie sa 22 kHz, i wszystkie sa 16 bitowe, wiec latwo je przerobic na 8 bit, albo uzywac w formie 16 bitowej.

Ostatnia aktualizacja: 13.03.2026 11:22:00 przez Don_Adan
[#7] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #6

Dzięki za link do opisu XMI. Widzę, że ten format jest nieco bardziej złożony aniżeli ADL. Na plus jest to, że to format IFF.

Przyznam, że terminologia MIDI to w tej chwili jest dla mnie czarna magia. W kodzie C++ sterownika do AdLib wydaje się to prostsze. Zapis nutowy jest znacznie prostszy.

Opis ADL znajduje się w tym samym serwisie:

https://moddingwiki.shikadi.net/wiki/ADL_Format

Co do zrzucenia instrumentów MIDI to w pliku ADL znajdują się właściwe dane instrumentów. Nie trzeba chyba korzystać z baz instrumentów MIDI.

Czy pamiętasz jak zrzuciłeś instrumenty MIDI? Może w tym ADL jest ten sam format.

P.S. Ciekawostką jest, że Amiga ma taki fajny format o nazwie IFF SMUS, który obsługuje instrumenty po zwyczajnych nazwach.
[#8] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #7

Instrumenty MIDI sa po prostu w jednym z plikow instalacyjnych Windowsa 98.
Tylko bodaj instaluja sie do ukrytego katalogu Windowsa, tak ze tego pliku nie widac normalnie.
Juz nie pamietam czy z tego ukrytego katalogu je jakos skopiowalem, czy tez zdearchiwizowalem ten plik Windowsa.
Byc moze Deliplayera PC uzylem do czegos, bo zdaje sie ze ten player ma wybor setu MIDI.
Ale moze Delplayera uzylem tylko do tego, zeby sprawdzic czy wszystko z tym bankiem sampli MIDI jest Ok?
Nie pamietam.
[#9] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #8

Ale jaki jest format tych plików? Bo zasadnicza kwestia to format instrumentów (w ADL są takie dane w końcowej sekcji). Wydaje mi się, że to powinien być jakiś surowy zapis dźwięku, jak 8SVX BODY. Z zapisem nutowym ADL myślę, że sobie nawet poradzę.

Dziękuję za dotychczasową pomoc i informacje.

Co do Delitrackera to można sprawdzić, ale wątpię by obsługiwał którykolwiek z tych formatów. Obsługuje z tego co pamiętam MaxTrax, czyli muzykę z Amigowej wersji Dune II.

OK, kwestia muzyki z PC jest oczywiście opcjonalna i jeżeli się uda ją zgrać byłoby po prostu fajnie.

Ostatnia aktualizacja: 13.03.2026 13:07:01 przez Hexmage960
[#10] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #8

Znalazłem coś bardzo pomocnego. I też w związku z AdLib. Okazuje sie, że ta karta jest troszkę bardziej przyjazna, jeśli chodzi o terminologię.

Istnieje format o nazwie AdLib Instrument Bank Format z rozszerzeniem BNK.

https://moddingwiki.shikadi.net/wiki/AdLib_Instrument_Bank_Format

Jest to format używany przez edytor muzyki AdLib Visual Composer.

Jest tam dużo informacji o tym formacie. Przyznam, że mimo wielu złożonych terminów muzycznych, potrafię coś tam zrozumieć. Nie wiedziałem, że trzeba znać takie szczegóły implementacji, by zakodować instrument.

Na szczęście istnieją programy do konwersji tych instrumentów na coś zjadliwego (np. OPL3 Bank Editor).

Pytanie jeszcze pozostaje takie: Jak Visual Composer umieszcza te dane o instrumentach w wynikowych plikach z muzyką, do których należy ADL z Dune II. Wiem, że jest tylko jeden wspólny format dla instrumentów AdLib.

Ja nie mam tych dźwięków w źródłowym formacie BNK, którą miał kompozytor, ale ta sekcja w ADL gdzie są instrumenty na pewno zawiera zbliżone dane.

Ostatnia aktualizacja: 13.03.2026 14:56:24 przez Hexmage960
[#11] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #9

Deliplayer to nie jest Delitracker, choc autorzy sa ci sami.
I Deliplayer obsluguje MIDI, nie pamietam czy XMID tez, bo byc moze skonwertowalem xmid to mid najpierw.

Pisza, ze to ten plik jest:
C:\WINDOWS\SYSTEM32\DRIVERS\GM.DLS

Byc moze jest dolaczany do DosBoxa.
W necie sa rozne gm.dls dostepne, ale to sa przerobki, a nie oryginalna wersja z Windows 98, tak przynajmniej rozumiem.
Choc nie szukalem zbyt dokladnie.
[#12] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #11

I Deliplayer obsluguje MIDI, nie pamietam czy XMID tez, bo byc moze skonwertowalem xmid to mid najpierw.

Dzięki. Tak, zrozumiałem że chodzi Ci o podobny program na PC. Pewnie tych narzędzi do MIDI jest więcej i być może współpracują z tym archiwum z muzyką do którego podałeś link w poście #3. Jeżeli wyciągnę choć instrumenty, to będzie OK.

Natomiast nutki też chciałem wyciągnąć, żeby odtwarzać to jako utwór muzyczny bazujący na instrumentach, jak w oryginale. Kod źródłowy playera i sterownika ADL może tu pomóc. Jest tam czarno na białym wszystko opisane (zapis nutowy i efekty).

Być może podobny kod istnieje dla odtwarzacza MIDI - musiałbym znów poszukać. Ale już tyle ustaliłem odnośnie AdLib, że będę się go raczej trzymać w tym zadaniu (jeśli chodzi o zapis nutowy).

Ostatnia aktualizacja: 13.03.2026 15:22:45 przez Hexmage960
[#13] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #12

Znalazłem! W kodzie sterownika. Otóż okazuje się, że rekord z instrumentem ma zawsze 11 bajtów. Znalazłem w kodzie metodę setupInstrument która wgrywa te 11 bajtów w poszczególne rejestry karty dźwiękowej - rzecz jasna z pełną dokumentacją.

Tutaj link do tej metody

Teraz tylko rozszyfrować te terminy (modulacja, amplituda, waveform select itp.), by generować dźwięki na Amidze.

Waveform select to pewnie wybór ustalonej fali dźwiekowej itd.

Zawsze krok, który zbliża do odgrywania tej muzyki. Do odtwarzania melodii zostały jeszcze nutki i funkcje (efekty), ale są one też dokładnie wytłumaczone, no i już rozumiem mniej więcej o co tu chodzi.

Ostatnia aktualizacja: 13.03.2026 16:16:32 przez Hexmage960
[#14] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #13

No więc na podstawie dokumentacji programistycznej do AdLib wiem dokładnie co zawierają te parametry instrumentów.

Udało mi sie rozszerzyć mój program do analizy tych plików o wyświetlanie wszystkich tych parametrów z nazwami.

Pozostało wygenerowanie tych dźwięków tak jak to robi karta AdLib - ale tego to nawet w dokumentacji deweloperskiej nie ma.

Wpadłem jednak na pomysł by po prostu wprowadzić te parametry do programu "AdLib Visual Composer", a konkretnie jego modułu "Instrument Maker" i wygenerować w ten sposób te instrumenty/dźwięki.

Będę mógł wtedy też zgrać te instrumenty do wspomnianego banku instrumentów BNK a następnie konwertować do dogodnego formatu.

https://www.vgmpf.com/Wiki/images/6/60/AdLib_Visual_Composer_-_DOS_-_4.png

Jest to ilustracja z "Instrument Makera". Można tam wprowadzić te parametry (mam wszystkie potrzebne) i dzięki temu tworzyć instrumenty.

"AdLib Visual Composer" jest dostępny w co najmniej dwóch miejscach w Internecie.

Zadanie jest bardzo trudne, ja z zawodu muzykiem nie jestem, ale udało się sporo ruszyć. Mając instrumenty pozostanie jeszcze poznanie formatu zapisu nutowego na podstawie kodu sterownika.

Ostatnia aktualizacja: 15.03.2026 09:21:28 przez Hexmage960
[#15] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #14

Ten kod to nie kod sterownika tylko emulator. Jeśli myślisz, że po rozszyfrowaniu formatu adl jest już prosta droga do odtwarzania na Amidze to grubo się pomyliłeś. Adlib to syntezator FM, nie przechowuje żadnych sampli. Instrument Maker nie stworzy sampla, możesz go zgrać z wyjść samej karty lub zgrać na emulatorze. Mając wszystkie instrumenty nie kończy to sprawy: liczba kanałów i oktaw. Może dochodzić to tego zmiana parametrów syntezatora w czasie.
[#16] Re: Muzyka AdLib (z platformy PC)

@cholok, post #15

Ten kod to nie kod sterownika tylko emulator.

Klasa AdLibDriver odpowiada za sterownik.

Natomiast emulator AdLib też tam jest, ale to oddzielna rzecz.

Dla przykładu wiele programów z AdPlug wymaga fizycznie obecności karty AdLib. A część używa jej emulatora.

Jeśli myślisz, że po rozszyfrowaniu formatu adl jest już prosta droga do odtwarzania na Amidze to grubo się pomyliłeś. Adlib to syntezator FM, nie przechowuje żadnych sampli. Instrument Maker nie stworzy sampla, możesz go zgrać z wyjść samej karty lub zgrać na emulatorze.

Tak, zdaję sobie sprawę, że to nie są sample, tylko instrumenty.

Mogę jednakże sprawę nieco uprościć generując sample z wybranymi parametrami.

W Instrument Makerze po wprowadzeniu parametrów powinno dać się te dźwięki usłyszeć (jest klawiatura na dole), żeby chociaż wiedzieć jaki to instrument. Po czym zapisać w banku BNK.

Pomyślałem też, że plik BNK z bankiem instrumentów z Dune II mogę utworzyć samodzielnie, po czym użyć programu do konwersji (OPL3 Bank Editor), by zapisać w jakimś wygodniejszym formacie.

Mając wszystkie instrumenty nie kończy to sprawy: liczba kanałów i oktaw. Może dochodzić to tego zmiana parametrów syntezatora w czasie.

Zgoda. Co do liczby kanałów to akurat muza w Dune II ich dużo nie używa - poza tym są priorytety dźwięków, więc mogę odgrywać te najistotniejsze.

Tak, zmiana parametrów w czasie jest trudna w obsłudze.

Jednakże na Amidze też mamy efekty na dźwiękach. Wydaje mi się, że najprościej skonwertować to do MEDa - oczywiście z dużymi uproszczeniami.

MED obsługuje wiele standardów muzycznych i te terminy się tam pojawiają.

Podsumowując bardziej zamieniłbym tę muzykę na coś przyjaznego, czyli sample i nuty. Nuty można wyodrębnić. Jeżeli niektórych efektów nie uda się uzyskać, to nic nie szkodzi. Ważne by brzmienie było zbliżone.

Ostatnia aktualizacja: 15.03.2026 11:05:45 przez Hexmage960
[#17] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #16

Dodam, że muzyka w Dune II nie jest bardzo wyszukana. Jest dość prosta pod kątem brzmieniowym.

Poza tym MED na Amidze obsługuje MIDI, oczywiście trzeba mieć wtedy odpowiedni sprzęt. Ale MED (Music Editor) jest bardzo dobrym programem muzycznym na Amigę i wspiera wiele standardów ze świata muzyki.
[#18] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #16

To co robisz mialoby jakis sens gdybys pisal playera Adlib dla Delitracker/EaglePlayera/HippoPlayera.
Ewentualnie robil/pisal konwerter AdLib do formatow MOD lub MED.
Tak, to po prostu marnujesz swoj czas, zamiast robic cos potencjalnie pozytecznego, jak np. konwerter MIDI do MOD.
Raczej probujesz wymyslec kolo na nowo, a to jest zwykle kiepski pomysl, o ile ktos wczesniej juz to zrobil w miare dobrze.
Zakladam, ze DOSBox i MAME odgrywac AdLiba potrafia prawidlowo od dawna.
[#19] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #18

a jakże
https://dosbox-x.com/doxygen/html/adlib_8cpp_source.html
[#20] Re: Muzyka AdLib (z platformy PC)

@Don_Adan, post #18

Staram się nie odkrywać koła na nowo.

Wiem, że istnieją gotowe odtwarzacze AdLib. Przecież sam AdPlug to potrafi. Zarówno z prawdziwym AdLibem, jak i emulowanym (klasy Copl i CEmuopl).

Zauważ, że ustaliłem już bardzo dużo (z Waszą pomocą):

1. Dokładny format instrumentów AdLib w pliku ADL (na podstawie kodu sterownika i dokumentacji do AdLib),

2. Jak działa sterownik AdLib, przeznaczenie rejestrów karty,

3. (Wstępnie), zapis nutowy w ścieżkach (trackach).

Wydaje mi się, że ta praca ma sens, bo możemy otrzymać lekki odtwarzacz formatu AdLib z ew. pominięciem jakichś egzotycznych efektów.

Nie chcę emulować AdLiba, ani dynamicznie tworzyć tych sampli.

Myślę, ze konwersja instrument -> sampel powinna być możliwa, jak i zapisu nutowego AdLiba na prostszy zapis, jeżeli to konieczne.

Poza tym przyznam, że temat jest dla mnie ciekawy i pouczający. Nie miałem styczności z tego typu syntezą dźwięku.

Ostatnia aktualizacja: 15.03.2026 14:40:17 przez Hexmage960
[#21] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #20

Udało mi się wyciągnąć z Dune II pierwszy instrument, za pomocą "Instrument Makera". Dźwięk jest całkiem przyjemny, wszystkie parametry wygladają na prawidłowe.

No cóż, jest to zwyczajny dźwięk, który możemy odgrywać na klawiaturze w poszczególnych tonacjach.

Teraz muszę to zapisać w postaci sampla na jakimś domyślnym, środkowym tonie C. Zapis nie powinien sprawiać jakichkolwiek problemów, najlepiej będzie odpalić emulator (np. ten z AdPluga) i zapisać dźwięk wyjściowy.

Prawdopodobnie najlepiej napisać własny programik do tego celu, który korzysta z kodu AdPluga.

Format AdLib jest oczywiście bardzo oszczędny, bo dźwięk zajmuje tak jak pisałem 11 bajtów, i to od urządzenia zależy wygenerowanie fali. No ale oczywiście chcę to mieć w samplach.

Chciałbym wyjąć wiele instrumentów, więc najpewniej wyciągnę je z ADL i zapiszę do plików INS - prosta sprawa, bo te pliki zawierają tylko te parametry, nic więcej.

Pliki BNK mają dodatkowe informacje - czy instrument jest "melodyjny", czy "perkusyjny" i nazwy instrumentów.

Program AdPlay dla DOSBox odtwarza muzykę ADL, ale z tego co sprawdzałem nie wyświetla listy instrumentów.

No OK, tak więc jak się uda skonwertować INS na sample to pierwsza połowa pracy za nami. Mam nadzieję, że łatwo uda mi się przechwycić wyjście z odtwarzacza AdPlug do pliku z samplem. Skorzystam z odpowiedniej klasy z tej biblioteki.

Odtworzyć indywidualny instrument to AdPlug na pewno też potrafi, skoro odtworzy całą muzykę (jak w funkcji setupInstrument).

Druga połowa to zapis nutowy.

Tak się składa, że zobaczyłem też program "AdLib Tracker" i tam w dokumentacji nazwy efektów są zbliżone do Protrackera (podobnie w kodzie sterownika AdLib). Choć oczywiście są też inne terminy (Carrier, Modulator).

Póki co mogę wyciągnąć resztę instrumentów i zapisać jako INS lub BNK.

Ostatnia aktualizacja: 15.03.2026 18:50:46 przez Hexmage960
[#22] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #21

Ja cały czas mam wrażenie że błędnie traktujesz pliki MIDI. One nie mają żadnych sampli, tylko informację o instrumentach. Następnie taka informacja jest przekazywana dalej (przez złącze MIDI lub wewnętrzne) do jakiegoś odtwarzacza MIDI który przypisuje konkretne instrumenty do ich brzmień w posiadanej bibliotece dźwięków i odtwarza. Musiał byś więc zawrzeć odtwarzacz MIDI albo przypisać jakieś instrumenty. Są trackery które potrafią wczytać MIDI, na Amigę np OctaMED Sound Studio.

Co do AdLib potrzebujesz emulacji dźwięku, co powoduje dodatkowe utrudnienia, np obciążenie CPU generacją dźwięku poprzez emulację. BSzili dlatego dał przekładanie z AdLib na sample w duologii Blake Stone, bo byłby problem ze znacznym obciążeniem CPU. Na AmiNet jest gotowy plugin do AdLib, możesz na niego zerknąć.
https://aminet.net/package/dev/lib/adplug

W ogóle zdaje mi się że w ogóle nie podparłeś się AmiNet i próbujesz wymyślać koło na nowo.
[#23] Re: Muzyka AdLib (z platformy PC)

@rygar997, post #4

Mam Roland MT-32 i Roland SC-88 Pro i ten drugi obsługuje GM i brzmi jednak lepiej niż MT-32.

Dodatkowo ma wbudowaną obsługę MT-32 więc nim też można odtworzyć jak na MT-32.

Edycja:
Tutaj masz Lands of Lore z SC-88 Pro (GM)



Edycja 2:
@Hexmage960
Źródła SCUMMVM mają odtwarzanie MIDI (także natywnie poprzez emulację) jak i chyba AdLib. Możesz spróbować z nich zapożyczyć zamiast samemu odkrywać koło na nowo. ;)

Edycja 3:
A tu "samochwała" żeby nie było, oba moje wspomniane sprzęty jeden na drugim.



Ostatnia aktualizacja: 16.03.2026 07:26:39 przez Solo Kazuki
[#24] Re: Muzyka AdLib (z platformy PC)

@Solo Kazuki, post #22

Tak, wiem że dźwięki są tworzone na podstawie szeregu parametrów, a nie gotowych, zsamplowanych danych dźwiękowych.

Przyznam, że jednak jak podchodziłem do tematu, to jeszcze o tym nie wiedziałem.

Natomiast utworzone instrumenty możemy traktować jako zwyczajne sample, odtwarzane w różnych tonacjach. Z tym wyjątkiem, że efekty dźwiękowe są nadal zapodawane do rejestrów karty dźwiękowej, czyli modyfikują te parametry wejściowe.

Jednakże jest to całkiem zbliżone do efektów w Amigowych trackerach.

Nadal muzyka w AdLib to ścieżki z nutkami i efektami.

Teraz najważniejsze dla mnie to zapisać te utworzone, gotowe instrumenty w samplach. Ale najpierw po prostu wyciągnę wszystkie instrumenty z pliku ADL, co już wiem jak zrobić.

Nadal to będzie zdecydowanie oszczędniejsze aniżeli użyć muzyki w jakimś wynikowym, dużym pliku WAVE.

Dzięki za ten link do Aminetu. Nie pomyślałem, że może być coś z tym związanego na Aminecie.

Ta biblioteka z Aminetu jednak jest dla architektury PowerPC-AmigaOS. Jest ona w formacie SO (Shared Object).

Ja akurat mam kod źródłowy oryginalnego AdPlug i on mi wystarczy, żeby poznać zasadę działania sterownika i szczegóły formatu pliku ADL. Dzięki niemu dowiedziałem się o przeznaczeniu wszystkich parametrów instrumentów, a szczegóły doczytałem z dokumentacji AdLib dla programisty.

Poza tym chcę obsłużyć tylko pliki ADL, czyli te z Dune II.

Co do ScummVM, to właśnie AdPlug bazuje na nim. Kod jest niemal identyczny.

Oczywiście jak ktoś pomoże mi w zapisie dźwięków poszczególnych instrumentów np. do WAVE za pomocą AdPlug korzystając z przekierowania wyjścia audio do pliku, to będę wdzięczny. Po to założyłem wątek, żeby się czegoś dowiedzieć.

Ostatnia aktualizacja: 16.03.2026 09:34:40 przez Hexmage960
[#25] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #24

Znalazłem w kodzie AdPluga ważną rzecz przybliżającą do osiągnięcia oczekiwanego rezultatu, czyli zapisu instrumentu jako sampel:

- Emulator OPL3 (klasa CEmuopl, o której już wspominałem) - jest to kod emulujący kartę AdLib. Ta klasa wywodzi się z Copl i posiada metodę write() wykorzystywaną przez sterownik AdLiba w kodzie odtwarzania muzyki w formacie ADL.

Klasa ta ma metodę update(), która służy do pobrania danych fali dźwiękowej z emulatora. Produkuje 16-bitową falę dźwiękową (a nawet posiada redukcję do 8 bitów).

Okazuje się, że biblioteka AdPlug ma też zewnętrzną dokumentację w pliku .texi.

Tak więc myślę, że to właściwa droga. Chcę użyć tych klas do utworzenia pliku WAVE (docelowo 8SVX) z instrumentem, zapisanym jako sampel.

- Jeszcze ciekawostka: AdPlug ma nawet klasę do obsługi Protrackera! Tyle, że raczej służy to tylko do obsługi modułów w formacie Protrackera.

Ostatnia aktualizacja: 16.03.2026 10:32:02 przez Hexmage960
[#26] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #25

Ale z AdPlug to ci się wymagania zwiększą znacząco, jak myślisz o porcie Dune II. To tylko tak nawiasem.
[#27] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #1

Z tego co widzę port już jest prawie skończony przez Roberta Koona...
https://www.patreon.com/duneiithebuildingofaremaster
[#28] Re: Muzyka AdLib (z platformy PC)

@Solo Kazuki, post #26

Ale z AdPlug to ci się wymagania zwiększą znacząco, jak myślisz o porcie Dune II. To tylko tak nawiasem.

Bibliotekę AdPlug chciałem wykorzystać w programach pomocniczych w C++ do wyciągnięcia instrumentów, konwersji na sample 8SVX oraz zapisu nutowego, który chciałbym przekształcić np. na MED (bez efektów stricte pod kartę dźwiękową).

Nie wykorzystam kodu AdPlug w swoim projekcie.

Teraz będę tworzył zbiorczo zbiór plików INS z instrumentami. To proste zadanie. Następnie chciałbym napisać program w C++, który wpisze parametry instrumentów do rejestrów emulowanej karty (setupInstrument), wywoła nutkę o zadanej długości (setupNote i noteOn) i zapisze bufor wynikowy z falą dźwiękową do pliku z samplem.

Co do wywołania nutek - wiem gdzie to się znajduje, ale nie poznałem jeszcze szczegółów.

Nie muszę tego wpisywać bezpośrednio. Mogę skorzystać z funkcji sterownika AdLib. Tylko wyciąganie danych wynikowych wymaga skorzystania z funkcji emulatora karty.

Program pomocniczy jest tylko dla PC.

@Rygar997

Tak, słyszałem o projekcie Roberta Koona. Z chęcią przyjmę ten remaster.

Ja nie rozpocząłem pracy nad portem. Jestem na etapie wyodrębniania danych. Animacje WSA już mam odtwarzane na Amidze. Muzyka, jak uda się to sfinalizować, będzie ciekawym dodatkiem.

Jeśli chodzi o port, to ja napisałbym taki od podstaw - z własnym kodem. Mam też pewną wiedzę o wewnętrznym działaniu Dune II. Jednakże wolałbym troszkę ulepszyć interfejs użytkownika w grze.

W tym wątku ustalam szczegóły odnośnie muzyki AdLib. Przy okazji poznaję wiele ciekawych detali i się uczę.

O samym porcie Dune II z PC jeszcze nie myślę - bo nie zaprojektowałem nawet kodu.

Ostatnia aktualizacja: 16.03.2026 14:47:47 przez Hexmage960
[#29] Re: Muzyka AdLib (z platformy PC)

@Hexmage960, post #28

A nie szybciej ściągnąć zestaw dźwięków, wczytać MIDI, przypisać dźwięki i zapisać jako moduł za pomocą OMSS?
[#30] Re: Muzyka AdLib (z platformy PC)

@Solo Kazuki, post #29

A nie szybciej ściągnąć zestaw dźwięków, wczytać MIDI, przypisać dźwięki i zapisać jako moduł za pomocą OMSS?

Masz na myśli OctaMED Sound Studio? OK, to brzmi jak bardzo dobry pomysł. Zdawałem sobie sprawę z tego, że OctaMED to świetny program muzyczny wspierający standardy w muzyce (oraz MIDI). Ale nie pomyślałem o jego wykorzystaniu już na tym etapie.

Będę musiał zapoznać się bardziej szczegółowo z OctaMED SS oraz jego możliwościami. Swego czasu trochę o MEDzie czytałem, pisałem replayer modułów, ale nie wchodziłem w temat MIDI.

Dziękuję za ten pomysł.

Widzę, że w 2025 roku ktoś wrzucił pełny podręcznik do tego programu w formacie AmigaGuide.

https://aminet.net/package/docs/help/OctamedSSManual

Sam program jest dostępny za darmo od dawna.

https://aminet.net/package/mus/edit/OctamedSS1.03c
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem