1

Witam.
Czy istnieja konwertery plikow audio SAP na pliki MIDI?
Probuje znalesc taki na internecie ale bezskutecznie.

2

Wątpię, żeby coś takiego instniało... MIDI to plik, gdzie są wpisane wartości nut i oktaw z przypisanymi numerami instrumentów (najczęściej wg. standardu General MIDI). Pliki SAP natomiast mogą posiadać różną budowę, ale tak naprawdę stanowią kod wykonywalny 6502, generujący dane do rejestrów POKEY-a z których raczej ciężko byłoby wyodrębnić wartości nut w oktawie a po stokroć jeszcze ciężej byłoby wyodrębnić dane, z których można byłoby uzyskać np. odpowienik instrumentu MIDI.

3

>stanowią kod wykonywalny 6502, generujący dane do rejestrów POKEY-a

no ale przeciez nie wysylasz kodow "losowo". podajesz konkretne wartosci zeby uzyskac konkretne dzwieki. Ciekawy jestem czy dalo by sie zrobic cos takiego. Mozna by sobie bylo zapodac np muzyke z Draconusa na komorce :D

4

Jest to teoretycznie możliwe , ale czy wszystko by grało poprawnie to już inny temat. Próby takie średnio owocne podjąłem przy podłączeniu przystawki midi do Atarka. Pliki midi tak powstałe miałyby ogromne wielkości - największym problemem pozostaje jednak perkusja - bo trzeba by było napisać jakiś inteligentny analizer , który z jakąś dokładnościa rozróżniłby szum od perkusji itp.

5

tieman napisał/a:

>stanowią kod wykonywalny 6502, generujący dane do rejestrów POKEY-a

no ale przeciez nie wysylasz kodow "losowo". podajesz konkretne wartosci zeby uzyskac konkretne dzwieki.

Chodzi o to, że "kody" są wysyłane do POKEY-a najczęściej 50 razy na sekundę, a nuty grają kilkukrotnie wolniej. Problem polega więc na przerobieniu kilku "kodów" na jedną nutę. W drugą stronę (MIDI->SAP) byłoby pewnie łatwiej.

https://www.youtube.com/watch?v=jofNR_WkoCE

6

Ja się tak bawiłem że przypożądkowałem różnym zniekształceniom odpowiednie instrumenty midi - tak pokrótce , oczywiście należałoby analizować rejestr $d209 tak aby np. filtry czy 1.79 Mhz zostały zamienione na właściwe nutki w midi - myślę że do zrobienia byłaby tablica - częstotliwość pokeya - częstotliwość nuty + odstrojenie w midi - teraz pozostaje dobrać tak instrumenty aby pokrywały się w jakimś stopniu z kształtem fal Pokeya (trudne choć są takie jak 80- square lub 81 - saw (przypomina dźwięk typu synth)). Co do obwiedni to każdy kanał ma Volume control więc każdy kanał atari musiałby mieć osobny kanał midi. Teraz obwiednie z atari mnożymy razy 8 i wisujemy do volume danego kanału - teraz trochę matmy - każdy komunikat midi składa się z 2 - 3 bajtów, więc co zdarzenie (50 na sekundę) wpisujemy:
8 bajtów głośność
8 bajtów puszczenie klawisza poprzedniego.
12 bajtów naciśnięcie następnego , do tego dochodzą oczywiście dane formatu GM i wychodzi kosmicznej wielkości plik midi.
Tutaj nie uwzględniłem jeszcze 8 bajtów - komendy odstrojenia od częstotliwości nutki.
Dałoby się to trochę zoptymalizować - np zmieniać głośność tylko w chwili jej faktycznej zmiany , to samo z częstotliwością.

7

http://atariarea.krap.pl/forum/viewtopic.php?pid=38400

8 Ostatnio edytowany przez Grzegorz Kwiatek (2006-01-05 15:31:02)

Z całym szacunkiem dla wszystkich tu piszących :-) ale wg mnie te wszystkie inteligentne (naprawdę tak myślę!) algorytmy tworzenia MIDA na podstawie dźwięków Atari zadziałają dla jednego... dwóch utworków ale nie wszystkich. Ogrom problemów wspomnianych przez przedmówców jest zbyt duży. Konia z rzędem temu kto zasymuluje przy pomocy midi sprzęgnięcia basów przy tablicy $40, wysoki bas dwukanałowy który tak uwielbia Xray :-) czy parę innych ficzerów. Już pomijam nawet to że wszyscy wiedzą że GM jest takim "standardem" że hej, szczególnie jeśli rozważa się oprogramowanie komórek. Swojego czasu próbowałem skonwertować jakiś swój (stosunko prosty) utworek na midi i padłem pod finalnym efektem. I nie chodzi o to że fałszowało... Co najwyżej można się pobawić w Covery ;-) a to przecież może robić każdy, bez konwertera.

Ojej. Dobra - jedną podstawę mamy: dźwięk midi 80 w standardzie GM to chyba był (prawie) czysty kwadrat :-)

I tak sobie myślę, że gdyby ktoś chciał zrobić konwerter, to nie ma sensu komplikować sprawy. Po prostu perkusja w zależności od numeru instrumentu (ustawiana a priori przed konwersja), $0a to np. 80 GM, a bas... no cóż... po prostu któryś z instrumentów basowych. I tyle. A później zapuszczamy edytorek MIDI i rzeźbimy, rzeźbimy. Nic nie jest proste i nie wszystko da się skonwertować!

9 Ostatnio edytowany przez swiety (2006-01-06 13:12:40)

Tutaj zamieściłem próbkę w formie MP3 - pliku cmc2midi - ale na razie tylko realtime - trzeba by było nagrać to na jakimś sekwencerze midi bądź napisać program który będzie generował plik na podstawie muzyczki cmc, z perkusją jest tak że jest mapowana do numeru instrumentu.
www.kswiecicki.prospect.pl/conv.zip , 2 utworek - www.kswiecicki.prospect.pl/fred.zip  3 utworek - www.kswiecicki.prospect.pl/pyza.zip , 4 utworek - www.kswiecicki.prospect.pl/saper.zip no i 5 utworek - www.kswiecicki.prospect.pl/zoom.zip

10

AAAAAAAAAAAAAAAA. Święty jest taki gość, ze ja p******. Masz u mnie takie piwo, ze go nie wypijesz. Fred zarządza!!!!!

Zaraz jak tylko upublicznione zostaną midy uploaduję wszystko do mojego dresofona.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

11 Ostatnio edytowany przez miker (2006-01-06 12:35:45)

Brawo Święty. Requestujema jeszcza na LASERMANIĘ! :)

Czyli rzeczywiście się "nie da". :P

I Ty zostaniesz big endianem...

12

swiety napisał/a:

napisać program który będzie generował plik na podstawie muzyczki cmc

Czemu ograniczać się do CMC ?
Może tak ASAP2MIDI ?

https://www.youtube.com/watch?v=jofNR_WkoCE

13

Fox: jest mały problem ponieważ niezbyt mi idzie kodowanie na Pc więc mogę pomóc ale jedynie czysto teoretycznie :( , choć gdybyś potrzebował jakiegoś wsparcia to czemu nie.

14 Ostatnio edytowany przez Fox (2006-01-06 16:57:26)

Ja z kolei jestem lajkonikiem jeśli chodzi o MIDI. Zasadniczo potrzebny jest algorytm zamiany rejestrów AUDCx, AUDFx i AUDCTL na to, co jest w MIDI. Może być nawet w Pascalu lub BASICu. Edit: po polsku też. :)

Muzy z samplami raczej odpadają, natomiast stereo i kilka razy na ramkę warto uwzględnić. Częstotliwość wołania playera 6502 może być definiowana w SAPie z dokładnością do skanlinii (= 1773447 Hz / 114).

Podejrzewam, że największym problemem będą tablice mapujące zniekształcenia i filtry POKEYa na instrumenty MIDI. Ale może koledzy muzycy pomogą?

https://www.youtube.com/watch?v=jofNR_WkoCE

15

http://atariarea.krap.pl/forum/viewtopic.php?id=886

https://www.youtube.com/watch?v=jofNR_WkoCE

16 Ostatnio edytowany przez swiety (2006-01-07 13:13:56)

Fox: co do 8 kanałow , stereo to może być problem. Chodzi nie o zgrywanie się intrumentów, kanały itp ale o samą przepustowość GM - standard MIDI niestety posiada wąskie gardło w postaci protokołu. (choć np. windows odtwarzając mida nie robi z tego problemu ale gdyby to miało pójść na jakiś interfejs przez midi no to kicha) bo na ramkę przy częstotliwości ok 31khz to można wysłać ok. 60 komunikatów (co przy 10 na kanał może być za mało) - mnie się zdarzyło już parę razy zarżnąć protokół :) przy 4 kanałach !

Oczywiście biorę pod uwagę w miarę dokładną emulację(częstotliwość + obwiednia)

17

Na początek może być mono.

https://www.youtube.com/watch?v=jofNR_WkoCE