Znowu midi…

W ramach odpoczynku od debugowania kodu wysyłającego sekwencje, napisałem dwa proste programiki z interfejsem tekstowym demonstrujące działanie już zaimplementowanych funkcji mojej autorskiej biblioteki MIDI.

midiTest

Pierwszy z nich midiTest służy do sterowania zewnętrznym urządzeniem MIDI za pomocą zwykłej klawiatury komputera (nie mam klawiatury MIDI :( ,a z resztą po co? :) ).
midi_test
Żeby pobawić się programem potrzebne jest 16/32 bitowe Atari podpięte kablem MIDI do syntezatora (najlepiej z rodziny Roland MT-32/CM-32L/CM-500) lub emulator (ze skonfigurowanym odpowiednio wyjściem midi podpiętym pod syntezator np. na karcie dźwiękowej PC). Dla przypomnienia MIDI OUT komputera wpinamy do MIDI IN syntezatora.

Jeżeli mamy drugą maszynę Atari to możemy ją podłączyć jako syntezator, uruchomić program maxYmizer Live, wgrać patche z instrumentami, przypisać kanały MIDI do odpowiednich instrumentów. Teoretycznie możemy podłączyć generalnie wszystko, nawet odkurzacz lub windę, byleby urządzenie miało interfejs MIDI, rozumiało ten protokół i wydawało dźwięki.
Ograniczenia: jeden aktywny kanał, nazwy instrumentów źródła GS syntezatorów nie są jeszcze prawidłowo wyświetlane (przepisywanie tabelek z dokumentacji jest wykańczające psychicznie), nie ma możliwości ustawiania parametrów globalnych syntezatora, efektów oraz ładowania patchy z plików.

ym2149

Drugi to ym2149 i służy do zabawy z ustawieniami układu dźwiękowego Atari ym2149. Nie jest to co prawda ta klasa co MaxYMizer Live, ale raczej mała demonstracja sposobu działania i używania tego układu (może jak będę miał chwilę to napiszę coś o sposobie na ugryzienie ym2149 z odrobiną teorii).
ym2149_test

Ograniczenia: dźwięk o tym samym tonie jest generowany na wszystkich trzech kanałach (braki w interfejsie użytkownika – nie chciałem nad nim spędzać zbyt wiele czasu).

Programy testowałem zarówno pod emulatorem STEEM jak i Atari Mega STE, ale powinny chodzić z wszystkimi komputerami Atari 16/32 bit, 512kb pamięci RAM powinno wystarczyć.
Źródła są dostępne w repozytoriach projektu AMIDILIB.

Teraz pytanie, co ma ym2149 do MIDI?

No cóż chodzi tutaj o potencjalny rozwój projektu. Gdyby odpowiednio rozbudować engine dla ym2149 tj. dodać wgrywania patchy z instrumentami (3 kanały + 2 kanały na sample ), dodać mu opcję konfiguracji nasłuchu komend MIDI (jest to już zrobione w maxymizerze, ale my nie będziemy potrzebowali edytora, bo w naszym przypadku za edytor może nam posłużyć sekwencer lub dane mogą być odczytane z pliku midi) to otrzymalibyśmy fajny moduł brzmieniowy, poniżej przykład dźwięku z MaxYMizer Live ( tańczymy! :-) ):

Drugą interesującą opcją byłaby analogiczna funkcjonalność, ale zamiast ym2149 użylibyśmy DSP56001 do syntezy dźwięku (siedzi już od 1992 w Falconach 030) lub jako generator efektów na ym2149 (ale to byłoby nudne, gdyż zewnętrzne, dedykowane efekty zrobiłyby to lepiej). Dokładnie jak to zostało zrobione w ACE trackerze i ACE MIDI (w poniższej próbce nie użyto żadnych sampli, dźwięki są generowane w czasie rzeczywistym na 5 kanałach, programowo, na maszynie z 16mhz CPU (!) ):

Dla zainteresowanych tematyką DSP polecam “DSP Guide” Steve’a Smith’a (podziękowania do Sqwarda za linka). Wszystkie poszczególne rozdziały są dostępne za darmo w formacie pdf.

A gdyby włożyć ym2149 i syntezę DSP do jednego pudełka? :) Niewątpliwie ciekawa opcja na przyszłość o ile nie zabiją mnie wcześniej lipcowe upały.

A na koniec piosenka dedykowana wszystkim menedżerom IT na świecie, “FYMW, rooaaaaaaa” :D


O wpisie