Podjaralem sie tematem midi, wiec zrobilem male gizmo - player MIDI na ukladzie SAM2695, mieszczacy sie w wtyczce sio. Prototyp na mojej tablicy na FB - lotharek.pl.. filmik do sciagniecia tutaj: ->link<-
poczatkowo, zeby poznac uklad, zrobilem malutki modul wave table dla swoich kart dzwiekowych. Takze na sam2695. oo tu: ->link<-
po kilku godzinach rozkminiania transmisji midi w miscie, pc, innych stwierdziłem, ze oprócz buforowania sio_data_out i level shiftingu z 5v na 3v3 wiecej nie potrzeba, zeby atari zaczelo gadac z SAMEM. Efekt - w filmie z linku powyżej.
czyli - bedzie przezryczysta wtyczka sio z wyjsciem JACK_STEREO do podłączenia wzmacniacza/głośników aktywnych...oraz dodatkowo sammer bedzie pchal zmiksowane do mono 2 kanały midi_OUT do sio_audio_in ..zeby na zlaczu monitora tez bylo slychac. Prosty mikser, 2 opampy odwracajace aby nie bylo cross talk`u miedzy kanalami. ot tyle. :-)
temat moze z dupy, ale mi sie pomysl malej wtyczki grajacej midi strasznie podoba
edit. wciaz sie zastanawiam, nad koniecznoscia resetowania ukladu poprzez sygnal np mtrl_control, ale to takie pytanie /zachcenie do dodania featura do tworcow softu / grajkow/ midi na ATARI.
Jeśli odpalił na MIDI-PLAY v.1.3 to pójdzie też na MIDICar Playerze ze sterownikiem dla MIDI BOX, a jeśli posiada zintegrowany zegar MIDI to także ze sterownikiem MIDIMate.
Teoria rzecze, że jeśli tylko obsługa SIO jest standardowa to bez problemu będzie działać. Jesli pin Motor będzie sterowany, celem wyzwolenia zegara - też pójdzie. Jeśli ten pin, będzie sterowany, celem uruchomienia SAM-MIDI to też pójdzie.
Generalnie, jest to odnowiony MIDIBox - z tego co widzę. Pinkowi ostatnio robiłem przeróbkę w jego MB właśnie pod kątem wyjścia JACK Stereo i zwrotki audio do komputera (mix do Mono). Zwrotka była wyłączana w momencie podłączenia wtyczki do MIDIBoxa.
Genialnie to działało.
Podpowiedź dla @Lotharka - wrzuć zegar MIDI na piny Clock In/Out 31250Hz. Teoretycznie MIDIBox działał na sterowaniu zegarem z POKEYa, ale odchyłka bywała zbyt duża. Taki zewnętrzny zegar sprawi, że całość będzie zgodna ze standardem i (jak to mówi @Tebe) po Bożemu :)
Jestem za projektem - MIDI to fajna sprawa ^_^
PS. ten moduł SAM2695 mam w swoim MIDICarze - to dobry wybór.
Pebe... clock nie jest w zadnym stopniu potrzebny do transmisji data out.. serio
wez modul wawatable, podlacz zasilania, sio data out pin 5 przez restor ok 300 ohm do pinu GENERAL_MIDI in ( warunek: modul ustawiony w tryb general midi !!) i zadziala.
pare roznic ktore widze: u mnie zasilanie jest z 5V z portu sio. mtr control stereuje tylo resetem SAM2695. ( PDOWN dla stanu niskiego) ..dlaczego tak ? a noz komus przyjdzie wyrwac wtyczke z dzialajaego komputera.. moze dmucham na zimne
Rozumiem, że SAM po prostu przyjmuje dane jak leci, nie zwracając uwagi na "tempo" transmisji danych szeregowych - tak by wychodziło z tego, co napisałeś. Czyli można słać np. z prędkością 9600 a on (SAM) i tak odbierze dane jako MIDI.
[edit] Ja rozumiem, że sygnał Clock nie idzie do SAMa, jednak... aby wysłać dane z Atari przez SIO...
Clock jest generowany przez Pokeya celem taktowania rejestru przesuwnego SIO (czy to In czy Out, bo są dwa). Jeśli z zewnątrz podasz taki zegar, to wtedy POKEY jest odciążony od generowania zegara. Co za tym idzie - tu trochę domniemam - wolne są kanały 3 i 4 które odpowiadają za generowanie zegara. A jeżeli tak jest, to wtedy można grać też na POKEYu na wszystkich 4-ech kanałach. To duży plus :P
Co do różnic. Czy Motor Control (jako reset dla SAMa) wystarczy wysterować stanem niskim, czy trzeba go na powrót wrócić do wysokiego, czyli 1-0-1? (sory, nie chce mi się przeglądać datasheeta :P ) Czy też reaguje na opadające zbocze? Co w efekcie, pozwoli tylko podać 0 (stan niski) na MTR CTRL.
Pytam, gdyż sterowniki MCP zakładają (jak dla MIDIBox i MIDIMate) własnie zachowanie, że na pin MOTOR Control podawany jest stan niski przez cały czas odtwarzania - nie jest to impuls. A to właśnie dlatego, że urządzenia są tym pine zasilane (przynajmniej tak jest w MIDI Mate)
dokladnie tak jak piszesz. mimo, ze mozna to opatrznie zrozumiec..
cytujac: ->link<- : wylaczenie / wlaczenie urzadzenia odbywa sie poprzez sterowanie bitu 3 rejestru PACtl (adres D302h) czyli: 1 - nie ma prundu, 0 - jest prund na pinie 8 portu sio (nasze mtrctl) :-) oraz najwazniejsze: W czasie nadawania blokada ta nie ma znaczenia. / wejscia i wyjscia takt.. skoro nie ma znaczenia, to po co dokladac zewn clocka ? moze sie myle, ale tak to rozumiem, co tez pokazyly moje eksperymenty z programeem midiplay
czyli, reasumujac: dostaje prad, mam SAMA przyjmujacego dane ; nie mam pradu - sam ladnie spi. nue jest wazne dla mnie czy to impuls czy stan ciagly. zasilanie cale gizmo ma wciaz, tylko restowanie z mtr_ctrl idzie. w najprostysz sposob - przez resytor 10K. proste i skuteczne. myslalem o buforze nieodwracajacym lub np 1g08, ale to przerost formy..brak miejsca..
OK. Co do sterowania Motorem :) milusio. Z elektronicznego punktu widzenia, jest to słuszne rozwiązanie. Nie, wcale się nie podlizuje :P po prostu uważam to za właściwe podejście.
Bufor (tak mi się wydaje) tylko dla urządzeń które coś wysyłają do SIO, bo inaczej blokują całą magistrale SIO, ale... :) z elektronicznego punktu widzenia.... :D To by było właściwe podejście. Jednak, gdy tylko dostaje dane (od Atari) to nie ma potrzeby takiej "izolacji"
Panowie, temat z motor control jest taki, że MIDI przyjmuje wszystko co idzie po szynie bez sum kontrolnych. Jak jest wpięta stacja lub inne urządzenia, które sieją po szynie, to raz na jakieś czas MIDI interpretuje sobie te śmieci jako "key on". I nad tym trzeba umiejętnie zapanować.
Ooo... właśnie @Alex. Tak jest. Ja o tym kompletnie zapomniałem z racji MIDICara który nie korzysta ze SIO :) Ale fakt jest taki, że Motor nie jest wykorzystywany przez stacje dysków. Więc ten Motor, jest "kluczem" dla SAMa. Skoro dla logicznego 0 (stan wysoki) SAM jest cicho, to nic co na szynie danych nie powinno się weń dostać. Jeśli tylko podniesie się Motor (stan niski) wtedy, wszystko co na szynie, trafiać będzie też i do SAMa.
Tu jest minus SAMa, że przyjmuje wszystko jak leci, bez względu na prędkość transmisji, no ale... Jest "klucz" (Motor Ctrl) wiec nie powinno być takich "rzeczów" :P
@Lotharek - Oczywiście, że nie, podobnie jak nie jestem autorem masy innych interfaceów, które pojawiały się na przestrzeni lat :)
Natomiast faktycznie popełniłem parę lat temu taki dynks w formie pudełeczka z wtyczką (stąd "box" w nazwie), które to pozwala odgrywać MIDI ze zwrotnym audio po SIO. Była o tym mowa na forum.
Uprzedzając pytania - mój projekt jest kompletnie open source pro publico bono :)
@alex - widze u ciebie dodatkowoe zlacza midi in, midi out.. jaki chip siedzi w srodku z czystej ciekawosci pytam. wspominasz o 64 glosowej polifoni ?
wstyd mode ON - zerznalem wszytsko z pdfa 1:1 ->link<- podlaczenie do atari z Elelktronik prkatycznej, wycinajac co sie da i decudujac sie uzycia motor control jako reset układu.
@VLX - Miało być parę sztuk dla chętnych, ale z racji mojej pracy nie miałem czasu się tym zająć. Ale może pod koniec roku wrócimy do tematu.
@Lotharek - Ale jakie dodatkowe złącza? Przecież napisałem, że jest to prosty (jak budowa cepa) miniaturowy moduł do odgrywania MIDI przez SIO :) Taki dla typowego laika, który nie chce żadnych skomplikowanych urządzeń czy interfejsów, nie zna się na MIDI, ale chciałby posłuchać sobie muzyczek. Głównym celem, jaki mi przyświecał, było spopularyzowanie MIDI również w grach i demach.
Co do dokumentacji SMA2695, to dość oczywiste, że wykorzystałeś aplikację zalecaną przez producenta. Z resztą to jest gotowiec, bo wystarczy kilka rezystorów i kondensatorów. Całość podpina się do SIO trzema kabelkami i śmiga aż miło :) Dlatego tak bardzo polubiłem ten moduł - bardzo tani i wszystkomający.
Swoją drogą on ma też wejście mikrofonowe, do którego można podpiąć sygnał audio (np. z Pokeya) i nakładać proste efekty dźwiękowe, które są miksowane z MIDI. Układ był bowiem projektowany z myślą o urządzeniach karaoke :) Mogłoby to dać fajne efekty, gdyby było to wewnętrzne rozszerzenie.
Z resztą, myślałem kiedyś nawet o tym, by zrobić to włąśnie jako wewnętrzne rozszerzenie do drugiego Pokeya (tam się marnuje dodatkowy port SIO), by pierwszy mógł normalnie grać. Moża było by wtedy odtwarzać MIDI podczas wczytywania przez SIO lub odtwarzania dźwięków/muzyki na pierwszym Pokeyu. Jednak napierw konieczne jest zaprojektowanie jakiegoś programowalnego mixera audio, który pozwoliłby mieszkać kanały tak, by np. uzyskać tryb mono na obu głośnikach. Piszałem nawet o tym kilka dni temu w którymś z wątków.
Jestem za mało techniczny i przydałoby mi się tu doprecyzowanie żeby zrozumieć różnice między produktami... które tu urządzenie jest wyjściem dźwięku (a la wave'y?) - urządzenie Lotharka? A obsługa MIDI (nie dźwięki a sygnały MIDI? np. do podłączenia keyboardu? widzę MIDI in/out) - urządzenie Alexa?
Jeśli wyjście jest na głośniki aktywne to chyba nie można tego nazwać MIDI tylko normalnym wyjściem? Jak to się różni od wyjścia monitorowego?
wychodz na to, ze Alex i moje robia to samo. daja audio - dzwiek. a to co ma zlacza 2 szt okragle to oczywiscie wyjscia/wejscia midi do podlaczenie np syntezatora/przystawki midi
@Lotharek - Ale to, co Kaz podlinkował, to jest tradycyjny interface MIDI z wejściem i wyjściem :) Z resztą w bardzo fajnej obudowie. Zupełnie inny target i założenie. Mój skromny "MIDI Box", to po prostu nieinwazyjna odgrywajka dla zwykłego Kowalskiego. A napisałem, że Twoje urządzenie wygląda jak klon nie złośliwie, tylko dlatego, że jego koncepcja jest identyczna z tą, którą stworzyłem kilka lat wcześniej i tyle :) No offence.
@bartgo - SIO2MIDI jest interfacem do podpięcia zewnętrznego urządzenia MIDI. Moje to po prostu wtyczka grająca MIDI przez SIO tak, by wszystko było słyszane na wyjściu monitora/telewizora razem z Pokeyem i dźwiękami klawiatury (GTIA). Urządzenie Lotharka działa tak samo, tylko ma dodatkowo mini jacka, czego "MIDI Box" w pierwszej wersji nie posiadał.
resetowanie sama motor_ctrl dziala, ale pojawilo sie "pykniecie" w glosnikach. do tematu trzeba podejsc inaczej - skonczy sie transpotorze prawdopodobnie...albo co mi sie bardziej podoba - reg napiecia z enable / np. LDK130M33RY