atarionline.pl Interface MIDI-IN via Joy - pomysł - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorpebe
    • CommentTime12 Feb 2022 zmieniony
     
    Siemka :)

    Od jakiegoś czasu, chodzi mi po głowie pewien pomysł, związany z interfejsem MIDI dla Naszego maluszka.

    Założenia

    - wykorzystanie portu Joysticka do komunikacji z interfejsem
    - główne urządzenie (interfejs) z gniazdem DIN5 i/lub USB oraz wtyczką DB9
    - przyjmowanie danych MIDI z urządzeń zewnętrznych, takich jak: keyboardy, sterowniki/kontrolery.
    - buforowanie danych w samym interfejsie

    Nie jestem elektronikiem (i raczej nigdy nim nie zostanę) jednak "patent" na funkcjonowanie takiego interfejsu, rysuje mi się w głowie.

    Jakbym widział działanie?

    Z tego co pamiętam, port Joysticka w Atari bardzo łatwo się programowało. Za czasów posiadania malucha, bawiłem tym portem z pomocą Taty, który robił mi sampler :) ale nie oto nie oto...

    Port ten jest portem asynchronicznym, więc do wszelkiej transmisji danych potrzebny byłby sygnał zegarowy (IN). Dodatkowo, widziałbym tam jeszcze sygnał (IN) o dostępności danych w buforze oraz sygnał (OUT) którym wyzwalałoby się wysyłanie danych z interfejsu do Atari.

    Najprostszą formą transmisji danych jest oczywiście transmisja szeregowa, jednak można by się pokusić o równoległą (2- lub -4 bitową) dla przyspieszenia odbioru.

    Dlaczego taka koncepcja?

    Sprawa tyczy się SFX Trackera i chciałem zaoszczędzić POKEYa, tzn. przyjmując dane z MIDI, chciałem je odtwarzać na Atari :P W takiej sytuacji odpada SIO :( (przynajmniej tak mi się wydaje)

    Wykorzystanie w SFX Trackerze odbywałoby się na zasadzie oczekiwania na dostępność danych w interfejsie. Kiedy dane te, były by dostępne, program "pełną mocą" odbierałby dane z interfejsu po czym je analizował.

    Podsumowanie
    Zastanawia mnie, czy taki interfejs byłby wykonalny i funkcjonalny - wiecie, w głowie wszystko potrafi działać :P a sam projekt, wydaje się (chyba) dość prosty.

    Myślałem nad zakupem "jakiegoś" prostego w obsłudze kontrolera, aby pobawić w prototyp, jednak kompletnie nie umiem w te rzeczy. Oczywiście, brak Atari dodatkowo utrudnia realizację projektu :P

    Napiszcie, co myślicie o takim pomyśle. Czy gra jest warta świeczki?
    • 2: CommentAuthorBarman
    • CommentTime12 Feb 2022
     
    Prościej można. Gniazdo cart. + (MOS6551 lub MC6850).
    Program nie musi "pilnować" czy dane się pojawiły. Po odebraniu/wysłaniu danych scalak generuje przerwanie IRQ
    Wystarczy obsłużyć takie przerwanie...
    • 3: CommentAuthormono
    • CommentTime12 Feb 2022 zmieniony
     
    Poszukaj MIDI-Joy w ABBUC-u. To jest właśnie takie rozwiązanie. ->link<-
    MIDIMate podpinany do złącza SIO nie angażuje generatorów POKEY-a bo używa właśnie zewnętrznego taktowania. Można go czasem kupić na ebayu. A to jest rozwiązanie sensowniejsze bo automatyczne - od razu wysyłasz/odbierasz cały bajt a nie bawisz się w jakiś bitbang.
    • 4:
       
      CommentAuthorpebe
    • CommentTime12 Feb 2022 zmieniony
     
    @Barman: Widzisz, szukałem prostego rozwiązania, takiego co to umiałbym sam ogarnąć (programowo)

    @mono: Wiem, że kiedyś już pytałem o rozwiązania MIDI dla Atari, jednak uleciało het het daleko :P Nie wiedziałem, że można nie angażować POKEY-a i używać SIO. heh, wielu rzeczy nie wiem :P Przyznaję rację, że takie rozwiązanie jest o wiele wiele lepsze.

    Dzięki. Trzeba przemyśleć sprawę :)
    • 5: CommentAuthorBarman
    • CommentTime13 Feb 2022
     
    @pebe: Bartman i Barman to dwie różne osoby...
    • 6:
       
      CommentAuthorpebe
    • CommentTime13 Feb 2022
     
    @Barman: Przepraszam za omyłkę. Tak to jest, jak czyta się pierwszą i ostatnią literę wyrazu ;) XD (skorygowałem)
    • 7: CommentAuthorBarman
    • CommentTime13 Feb 2022
     
    :P hihihih
    • 8:
       
      CommentAuthorsun
    • CommentTime13 Feb 2022
     
    Hm, ponieważ już dawno miałem taki zamiar, to zamówiłem dziś płytki do interfejsu mytek'a ->link<- wersję 2 z portem na S2 DreamBlaster.
    Będę miał 2 lub 3 wolne sztuki.
    • 9: CommentAuthormono
    • CommentTime13 Feb 2022
     
    Jeśli miałbyś kompletną zmontowaną wersję do sprzedania to ja chętnie zanabedę 1 szt.
    • 10: CommentAuthorpin
    • CommentTime13 Feb 2022
     
    przypominam, że PokeyMAX z tym nie "chodzi".
    • 11:
       
      CommentAuthorpancio
    • CommentTime13 Feb 2022
     
    Sun, to ja poproszę jedną... muszę się na czymś uczyć...
    • 12:
       
      CommentAuthorjhusak
    • CommentTime13 Feb 2022 zmieniony
     
    Jakbym robił to midi in na porcie joya, to na atmedze.
    • 13: CommentAuthorpin
    • CommentTime13 Feb 2022 zmieniony
     
    Yeeeaaahhh ;)
    • 14:
       
      CommentAuthorsun
    • CommentTime13 Feb 2022 zmieniony
     
    patrzę tylko, że nigdzie nie mogę namierzyć do kupienia tego PIC'a :( No nic, jest coś w smd, jakoś się to zrobi, kiedyś, może jak świat wróci do normy.
    W razie czego, to samo bez uC ->link<- ;)
    • 15: CommentAuthormono
    • CommentTime14 Feb 2022 zmieniony
     
    Zastanawiałem się po co tam u mytek jest MCU.
    Natomiast w tym ostatnim nie widzę na schemacie obsługi MOTOR-CONTROL co pewnie powoduje że urządzenie działa ciągle i może powodować zakłócenia w komunikacji z innymi urządzeniami na magistrali SIO np. stacją dysków (i przy komunikacji SIO też pewnie na magistrali MIDI). Niekoniecznie to musi być wada, ale na pewno warto mieć tego świadomość.
    • 16:
       
      CommentAuthorjhusak
    • CommentTime14 Feb 2022 zmieniony
     
    Ten kod w basicu jest nieskomplikowany, jeden wieczór i jest kod na atmegę :) Co jak co, ale taka atmega jest bardzo łatwa w ogarnięciu czy to środowiska avrgcc, czy dokumentacji bardzo przejrzyście napisanej.
    • 17:
       
      CommentAuthorsun
    • CommentTime14 Feb 2022 zmieniony
     
    znalazłem pic'e w PL, zobaczymy, może uda się to jutro ogarnąć.
    @mono: ten uC ogarnia tam całą logike z tych ttli, generuje sygnał zegara i takie tam.
    @jhusak: nie programuję uC (jeszcze) i nie jestem elektronikiem, tylko składaczem :) zawsze to powtarzam.
    • 18:
       
      CommentAuthorjhusak
    • CommentTime14 Feb 2022
     
    Eeee tam. Jakbyś spróbował, to to nie jest trudne, a wręcz bywa prostackie.
    • 19:
       
      CommentAuthorpebe
    • CommentTime14 Feb 2022
     

    pin:

    przypominam, że PokeyMAX z tym nie "chodzi".


    Co jest powodem, że MIDIMate nie "chodzi" z rozszerzeniem PokeyMAX?
    • 20:
       
      CommentAuthorpancio
    • CommentTime14 Feb 2022
     
    Strzelam: zegar MIDI. Nie testowałem jeszcze. Mam zamiar przeprowadzić eksperyment z troszkę innym podejściem opartym o cartridge/pbi aby uwolnić SIO. Niestety będzie to okupione napisaniem nowego/modyfikacją istniejącego softu...
    • 21:
       
      CommentAuthorsun
    • CommentTime14 Feb 2022 zmieniony
     
    @jhusak:ba,mam arduino, różne atmegi, programator, środowisko w zasadzie wszystko prócz... czasu na to :(

    Ok, udało się kupic PIC'e, blastery w drodze, może coś z tego się urodzi :)
    • 22: CommentAuthormono
    • CommentTime14 Feb 2022
     
    @sun: Super!
    Ja wiem tylko sobie myślę jaka tam może być ta logika żeby tam sadzić aż cały MCU? Wybramkowanie sygnałów zależnie od motor control? Podział 4MHz zegara na 128? Co jeszcze? PLD by pewnie wystarczył a nie MCU. Za chwilę do takiego zadania będzie zaprzęgany RPi.
    • 23:
       
      CommentAuthorjhusak
    • CommentTime14 Feb 2022 zmieniony
     
    Chodzi o bufor i odciążenie procka. I granie melodyjki na dzień dobry :D
    • 24:
       
      CommentAuthorsun
    • CommentTime14 Feb 2022 zmieniony
     
    ponieważ są jaja z częściami, to w większości hurtowni taki mały uC to zamów dziś, dostawa w lutym 2023! :)
    Zresztą, zaxon pisze, że do SDrive kupuje arduino i wylutowuje atmegi, do czego to doszło ;(
    uC już u mnie, czekamy dalej na płytki.
    • 25:
       
      CommentAuthorpancio
    • CommentTime15 Feb 2022
     
    • 26:
       
      CommentAuthorKaz
    • CommentTime15 Feb 2022
     
    Ślicznota. To liczę na to, że połączycie siły i będzie sofcik i hardzik! :)
    • 27:
       
      CommentAuthorsun
    • CommentTime15 Feb 2022
     
    @pancio: A gdzie slot na s2 dream blastera?
    • 28:
       
      CommentAuthorpancio
    • CommentTime16 Feb 2022
     
    Bardzo dobry pomysł....
    dopracujemy...
    • 29:
       
      CommentAuthorMq
    • CommentTime16 Feb 2022
     
    @pancio, a dlaczego musi być z ECI? Nie da się na sam cart tego zrobić? Trochę to powiększa urządzenie, uniepasowuje je do obudowy Sikora, a do tego zawęża temat do jednego modelu Atari...
    • 30:
       
      CommentAuthorpancio
    • CommentTime16 Feb 2022
     
    Da się... Wersja z ECI wykorzystuje przerwania do obsługi transmisji czyli takie trochę PRO :-) Wersja CART będzie również jak tylko testy wykażą przydatność prototypu z ECI...
    • 31:
       
      CommentAuthorAlex
    • CommentTime16 Feb 2022
     
    Jeśli mogę dodać swoje trzy grosze, to sugeruję zrobienie bufora FIFO dla MIDI OUT.
    • 32:
       
      CommentAuthorpancio
    • CommentTime16 Feb 2022
     
    masz na myśli dodatkowy RAM do którego i tak trzeba wrzucić dane z Atari?
    • 33:
       
      CommentAuthorAlex
    • CommentTime16 Feb 2022
     
    Tak, bufor na cartridgu. Myślę, że 256 bajtów wystarczy. Przy dużej ilości wysyłanych danych MIDI pozwoliłoby to odciążyć procesor, by mógł zająć się czym innym :)
    • 34:
       
      CommentAuthorpancio
    • CommentTime16 Feb 2022
     
    Jak wyliczył Mono, na wysłanie/odebranie ramki potrzebujemy 4-5 linii skaningowych.. czasu na resztę jest aż nadto...

    Nie wiem czy potrafię zaprojektować "kombajn" i póki co skupię się na "biedzie wersji".

    Opieram swoje projekty na najprostszych możliwych rozwiązaniach, dostępnych dla wszystkich i nie wymagających wiedzy poza podstawową technikę cyfrową. Chętnie natomiast pomogę i wesprę inne rozwiązania :-)
    • 35:
       
      CommentAuthorAlex
    • CommentTime17 Feb 2022
     
    Nie znam szczegółów technicznych Twojego interfaceu, ale chodzi mi o transmisję szeregową. Skoro nie wykorzystujesz POKEY-a i robisz rejestr do wysyłki to warto to wykorzystać :) Gdy pisałęm MIDI Trackera zostałem zmuszony do opracowania procedury wysyłania komunikatów MIDI na przerwaniach IRQ. Był tam właśnie 256 bajtowy bufor FIFO, który upłynnił działanie trackera jakkolwiek zajmował przerwanie :/ Natomiast z transmisją MIDI jest tak, że im więcej jest nut, zmian instrumentów, efektów, modulacji itp. tym więcej danych, które trzeba wysyłać przez co czekanie na wysłanie zajmuje coraz więcej czasu procesora.
    • 36:
       
      CommentAuthorpancio
    • CommentTime17 Feb 2022
     
    Rozumiem, bufor nadawczy jak najbardziej się przyda.. tyle, że trzeba wiedzieć "kiedy" dane mają być wypchnięte... no chyba, że masz na myśli wszystkie dane instrumentów itp. na dany moment czasu... maksymalna ilość danych wypychanych/odbieranych to 3125 bajtów na sekundę więc myślę, że większego bufora niż 2x3125 nie ma potrzeby robić... Nie jestem ekspertem od MIDI ale zawsze wydawało mi się, że wystarczy pchać dane z tikiem zegara 31250Hz a syntezator już "wie" co z tym robić i jeśli przyjmiemy, że tracker wypełni bufor to przerwanie powinno załatwić resztę. Należy też zastanowić się nad wersją bez przerwania od urządzenia szeregowego (jak mamy ECI to możemy zgłaszać o obsługiwać przerwanie od pustego/pełnego bufora 1-no bajtowego). W takim przypadku dla wersji CART "warowanie" na odpowiedni bit w rejestrze stanu będzie wymagane... co też pewnie można opędzić w przerwaniu NMI.
    • 37:
       
      CommentAuthorAlex
    • CommentTime17 Feb 2022
     
    Ja to zrobiłem programowo tak, że player trackera wrzucał z wyprzedzeniem komendy do bufora i gdy nadchodził czas ich wykonania zgodnie z synchronizacją czasu i pozycji w patternie odpalał wysyłkę ustawiając specjalną flagę. Wysyłanie zawartości bufora dokonywało się na przerwaniu w tle, a program mógł działać dalej :)
    • 38:
       
      CommentAuthorsun
    • CommentTime18 Feb 2022
     
    Powoli coś się dzieje
    • 39:
       
      CommentAuthorpancio
    • CommentTime18 Feb 2022 zmieniony
     
    @Alex, bardzo cenne uwagi i dobra recepta. Przyjęte do realizacji :-)

    @Sun, mój S2 w drodze... szkoda, że się nie zgadaliśmy.. ech.. 10 ojro w d..ę.
    • 40:
       
      CommentAuthorAlex
    • CommentTime18 Feb 2022 zmieniony
     
    @pancio - Cieszę się :) Natomiast najgorsze są komunikaty MIDI CC. Na to raczej nie ma mocnych przy graniu na jednym kabelku...

    Dla niewtajemniczonych przykładzik -
    • 41: CommentAuthormono
    • CommentTime18 Feb 2022
     
    Nie działa.
    • 42:
       
      CommentAuthorpancio
    • CommentTime18 Feb 2022
     
    ->link<-

    ale to wydaje się w miarę proste...
    • 43:
       
      CommentAuthorsun
    • CommentTime18 Feb 2022
     
    @pancio: no tak to jest jak się szybciej robi niż myśli :(
    A brałem 2, to przy 3 to by w ogóle wyszło tanio za przesyłkę :(
    Ale zadałem Ci inne pytanie, to może się w tym temacie zgadamy ;) Mianowicie gniazdka DIN-5.
    • 44: CommentAuthorpin
    • CommentTime18 Feb 2022
     

    Alex:

    Gdy pisałęm MIDI Trackera zostałem zmuszony do opracowania procedury wysyłania komunikatów MIDI na przerwaniach IRQ


    Czy program zachował się do czasów dzisiejszych?
    • 45:
       
      CommentAuthorpancio
    • CommentTime19 Feb 2022
     
    @sun, ale co z tymi gniazdkami? na boki czy jak? :-)
    • 46:
       
      CommentAuthorpancio
    • CommentTime20 Feb 2022
     
    bieda wersja bez S2:
    • 47:
       
      CommentAuthorsun
    • CommentTime24 Feb 2022
     
    Czas zacząć składać. Na początek 2 szt.
    • 48:
       
      CommentAuthorAlex
    • CommentTime24 Feb 2022 zmieniony
     
    @pin - prawdopodobnie tak, ale nie mam jak tego stwierdzić ponieważ nie mam jak zgrać dyskietek (brak przelotowego IDE+).

    Może ktoś ma pożyczyć/sprzedać HUB CART+ECI? :)
    • 49:
       
      CommentAuthorpancio
    • CommentTime27 Feb 2022 zmieniony
     
    Tak więc.. ten tegez... Atari gra w MIDI :-)

    Pierwsze dźwięki:


    Pierwszy akord na trzech kanałach:

    • 50: CommentAuthorpin
    • CommentTime27 Feb 2022
     
    @Alex - ale jak, dane masz na KMD? Nie rozumiem problemu ze zgrywaniem. Napisz coś więcej.