logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować przenośny moduł MIDI z Raspberry Pi i M-Audio Keystation 88 MK3?

DJ.TRoX 04 Kwi 2025 15:15 1665 11

TL;DR

  • Powstał przenośny moduł MIDI z Raspberry Pi i klawiaturą M-Audio Keystation 88 MK3, zasilany bateryjnie i przeznaczony do grania w plenerze.
  • Układ łączy klawiaturę, procesor i audio na własnej płytce, używa MIDI po UART, transoptora TLP2391 oraz ładowania akumulatorów przez przetwornicę flyback sterowaną mikrokontrolerem.
  • Najbardziej bolesny problem to opóźnienia i błędne ramki MIDI; w praktyce lepiej zadziałał Raspberry Pi 4 niż Pi 5, a karta SD A2 poprawiła płynność.
  • Po testach plenerowych zestaw działał, a sample zaproponowane przez Pana Floyd’a brzmiały lepiej niż fabryczne brzmienia Yamaha MODX.
  • Projekt ma jednak poważne ograniczenia: Raspberry potrafi się zawiesić, ładowanie NIHM nie wznawia się po zakończeniu, a obudowa i okablowanie są mało odporne mechanicznie.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Widok przedniego panelu modułu MIDI z pokrętłami i złączami.
    Moduł MIDI z Raspberry Pi w otwartej obudowie, z widocznymi podzespołami elektronicznymi.
    Moduł MIDI z Raspberry Pi z podłączonymi kablami.
    Moduł MIDI z Raspberry Pi na klawiaturze laptopa

    Witam wszystkie użytkowniczki i użytkowników elektrody. Chciałbym zaprezentować moduł midi z RaspberryPi. To jeden z nielicznych projektów na „użytek własny”, który powstał do końca.

    Moja córka uczy się gry na fortepianie już sporo lat i jakiś czas temu wpadła na genialny pomysł, że uliczna gra jest doskonałym pomysłem. To było niedługo po okresie covidowym i muzycy byli głodni występów. Pomysł dobry tylko jak? Mamy pianino, ale to z wiadomych względów odpada. Mamy Yamaha MODX8, ale to nadal jest ciężkie, nieporęczne a w dodatku dość drogie. Kiedy dodamy do tego opcję deszczu to temat kompletnie odpada. Mamy jeszcze krótki keyboard, ale tu usłyszałem, że to się do niczego nie nadaje. Innymi słowy potrzebujemy pełnej, dynamicznej klawiatury z pedałem w dodatku ma być na tyle tania aby nie bała się deszczu, zestaw ma być przenośny i zasilany bateryjnie. Przyznam szczerze, że miałem nadzieję, że temat jakoś się rozmyje. Niestety tak się nie stało i te absurdalne założenia trzeba było spełnić.

    Przegląd dostępnych rozwiązań szybko pokazał że będzie trudno. Wybór padł na klawiaturę M-Audio Keystation 88 MK3. Miała same zalety: tania, lekka, poręczna i dużo pozytywnych opinii. Niestety to goła klawiatura. Teoretycznie można pojechać w plener z laptopem, ale to byłoby mało wygodne tym bardziej, że trzeba zabrać ze sobą jeszcze statyw, krzesło i głośnik. Oczyma wyobraźni widziałem jak to się skończy więc drążyłem temat dalej. Znalazłem na youtube ten film:

    https://youtu.be/ebPyMOJnA4A?si=8GwI4YaKYekOolmT


    Polecam kanał tego autora bo jest tam sporo ciekawych rzeczy. W jednym z filmów pojawia się pytanie, dlaczego muzycy nie sięgają po Raspberry Pi mimo że istnieje mnóstwo świetnego darmowego oprogramowania. Oprogramowanie może i jest darmowe, ale opakowanie już nie koniecznie lub jest tanie i kompletnie niefunkcjonalne. Postanowiłem więc wyjść naprzeciw tym problemom i dotknąć maliny.

    W zasadzie co może pójść nie tak? Mamy gotową instrukcję jak zamienić malinę w fortepian, wystarczy zamknąć to w obudowie, dorzucić baterię i już. Doświadczenie pokazuje, że kiedy nie mamy pojęcia o tym w co wkładamy ręce to absolutnie wszystko może pójść nie tak i trochę tak było. Plan był dość prosty. Kupić malinę, uruchomić to w „pająku” a kiedy wszystko będzie ok, to narysować płytkę, kupić klawiaturę i skreślić temat z długiej listy rzeczy do zrobienia.

    Co poszło nie tak?

    1. W materiale Pana Floyda jest RaspberryPi 4, ja oczywiści kupiłem najbardziej wypasioną 5. Być może teraz wszystko byłoby ok, ale kiedy uruchamiałem projekt, główne moduły powodowały segmentation fault. Dokupiłem więc RaspberryPi 4.

    2. Do testów kupiłem audio hat, który nie działał.

    3. Okazało się, że instrumenty, które mam mogę podłączyć tylko przez midi (nie przez USB) więc postanowiłem narysować płytkę łamiąc tym samym plan, który obrałem na początku. Mały keybord ma tylko midi a MODX wymaga sterowników windows.

    4. Audio trochę ożyło. To był sukces w porównaniu z audio hatem, niestety przy wyższych poziomach dźwięku, pojawiało się przesterowanie. LM4881, którego użyłem w końcówce mocy bezwzględnie wymaga elementów R44, R45, C58, C59. Nie widziałem tego w dokumentacji, więc w pierwszej wersji ich nie było. Kostka wzbudzała się na około 1MHz czego nie słychać w słuchawkach jednak rewelacyjnie powodowało to efekt przesteru już przy małych sygnałach.

    5. Okazało się, że mały keyboard wysyła niekompletne raki midi. Wciśnięcie klawisza było pozbawione pierwszego bajtu, puszczenie zazwyczaj też choć nie zawsze. W przypadku MODX puszczenie klawisza zawsze było niekompletnie. Jaki w tym sens? Zgaduję, że taki aby ludzie kupowali oryginalne kabelki midi<>USB, ale to tylko moja teoria. Oba instrumenty podłączane do siebie dogadują się bez problemów. W układzie sygnał midi przechodzi przez procesor. Midi jest czytane jednym uartem a wysyłane drugim. Plan był taki, żeby poprawić trochę dzieło Yamaha.

    6. W pewnym momencie pożyczyłem od kolegi klawiaturę midi USB i wszystko ożyło. Ale radość trwała krótko bo okazało się, że dźwięki są pocięte a sustain powoduję kompletny dramat. Próbowałem wrzucać sample do ramdisk ale nie wiele to wnosiło. Wtedy przypomniałem sobie, że Pan Floyd wyraźnie mówił aby używać kart SD A2. U mnie była A1 bo przecież innej nie miałem a później zapomniałem.

    7. Kiedy wszystko działało już poprawnie i zrobiliśmy pierwsze testy plenerowe okazało się, że malina potrafi się zawiesić. W sumie nie wiem co dokładnie się wtedy dzieje bo w domu nigdy mi się to nie zdarzyło. Jest to mega słabe bo załadowanie systemu z uruchomieniem wszystkich modułów trwa dość długo. Może i do grania w parku z kapeluszem jest to jeszcze ok to na scenę z tym zestawem już bym się chyba nie odważył.

    8. Opóźnienia… Okazuje się, że to standardowy problem midi z którym nigdy się nie spotkałem bo nie jestem muzykiem. Niedawno kolega powiedział mi, że istnieje jakaś mityczna dystrybucja linuxa dedykowana do minimalizacji tych opóźnień. Córka od początku mówiła, że gra się na tym dziwnie. Okazuje się, że najtańszy keybord Yamaha jako źródło dźwięku, nie generuje słyszalnych opóźnień w ogóle deklasując malinę.

    9. Użyłem akumulatorków NIHM bo przewracały mi się w szufladzie. One mają ciekawą własność, że kiedy osiągają stan naładowania, napięcie na nich nieznacznie spada. Nie udało mi się wychwycić tego momentu a z drugiej strony nie chciałem ryzykować uszkodzenia. Zgaduję, że to może być efekt lekko różnego stopnia zużycia ogniw.

    Siedem akumulatorów Eneloop w czarnym pojemniku z podłączonym złączem kablowym.

    10. Układ ma pewną wadę polegającą na tym, że kiedy urządzenie jest wyłączone i podłączone do zasilacza to po zakończeniu procesu ładowania idzie spać na amen i nigdy nie wznowi ładowania. Jest to o tyle istotne, że baterie NIHM mają sporą retencję. Pozostawiając urządzenie w spoczynku na rok czy dwa zastaniemy rozładowane baterie mimo że układ był podłączony do zasilania.

    11. O ile całość nie wymaga szczególnych mechanicznych egzorcyzmów to w gruncie rzeczy jest nietechnologiczna. Po pierwsze mamy diody led THT lutowane powierzchniowo do padów bez otworów. Po drugie niewidoczna frontowa płytka wymaga pogłębienia otworów mocujących tak aby stożkowe śrubki nie zapierały o płytkę maskującą. Po trzecie całość trzyma się tylko na frontowych prowadnicach obudowy co sprawia że urządzenie jest mało wytrzymałe na wstrząsy i upadki. Przyklejenie koszyka z bateriami wymaga obcięcia jednego kołka obudowy. Nie udało mi się w żaden rozsądny sposób przytulić Raspberry do frontu tak aby wykorzystać zamontowane na nim USB, dlatego pojawia się kabelek, który generalnie jest słabym pomysłem, ale to zobaczymy dopiero po zdjęciu obudowy.

    12. Wybrany przeze mnie mikrokontroler to porażka. Tu wykazałem się skrajną ignorancją używając filtrów TME. Określiłem obudowę, zaznaczyłem 2x UART oraz że to ma być AVR i kupiłem jakieś koszmarne leżaki magazynowe. 2 UARTy były potrzebne do tego, że nie byłem pewien czy uda mi się zmusić RaspberryPI 5 do pracy z niestandardową prędkością. Urzekł mnie blok ADC o który potknąłem się lata temu w innym mikrokontrolerze tej rodziny.


    Jak widać, sporo rzeczy poszło nie tak choć miało być szybko i prosto. Sam układ nie wnosi zbyt wiele odkrywczego. To na co warto zwrócić uwagę to wejście MIDI zrealizowane na TLP2391. Zaporowa dioda przed nim jest na wypadek gdyby ktoś chciał użyć transoptora z pojedynczą diodą – ja miałem akurat taki. W specyfikacji MIDI znajdziemy 6N138 i taki oryginalnie był. Problemy z czytaniem MIDI, które opisałem wcześniej skłoniły mnie do wnikliwszej analizy tematu. Stwierdziłem że mamy XXI wiek i można użyć czegoś szybszego. Sygnał na wyjściu 6N138 ma strasznie leżące zbocza. Z TLP2391 zbocza są pionowe i układ wymaga znacznie mniejszego prądu na wejściu.

    Schemat elektryczny układu wejścia MIDI z wykorzystaniem 6N138.
    Schemat wejścia MIDI z transoptorem TLP2391 w projekcie na Raspberry Pi.
    Zbliżenie na lutowanie elementów elektronicznych na płytce PCB.


    Warty uwagi jest również układ ładowania baterii. Najprościej byłoby zrobić liniowy stabilizator prądu to jednak będzie się grzało w dodatku napięcie zasilania jest w okolicach wartości pełnego naładowania baterii. Stąd flyback, ale żeby nie komplikować układu, steruje nim mikrokontroler. Pewną herezją jest brak pomiaru prądu po stronie pierwotnej, ale zawsze chciałem zrobić coś takiego. Główna zaleta jest taka że przetwornica pracuje non stop dobierając sobie właściwy współczynnik wypełnienia. Standardowo w flyback sprzężenie zwrotne wyłącza układ gdy na wyjściu pojawia się żądana wartość. Uzwojenie pierwotne jest pompowane do nominalnego prądu w każdym aktywnym takcie. Starty i stopy przetwornicy słychać jako pisk mimo że przetwornica pracuje grubo powyżej słyszalnej częstotliwości. Ten pisk propaguje się również w postaci zakłóceń co w sprzęcie audio nie jest najlepszym pomysłem. W tej realizacji ten problem nie istnieje.

    To co należałoby dopisać to poprawienie skoszonych ramek MIDI Yamaha, ale straciłem motywację do rozwijania projektu kiedy dotarło do mnie, że opóźnienia są nieakceptowalne. Finalnie sample proponowane przez Pana Floyd’a brzmią bardzo ciekawie. Osobiście podobają mi się bardziej niż te oryginalne w Yamaha MODX.

    A tu rezultat:





    Pozdrawiam i czekam na komentarze.


    midi_v..pdf (1.04 MB)Musisz być zalogowany, aby pobrać ten załącznik.
    gcc_XMEG..5.zip (72.9 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    front1_thi...ss_1.2.zip (12.94 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    front2_thi...ss_0.6.zip (25.95 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    main_thick...ss_1.6.zip (86.13 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    rear_thick...ss_1.6.zip (6.52 kB)Musisz być zalogowany, aby pobrać ten załącznik.
    O autorze
    DJ.TRoX
    Poziom 18  
    Offline 
    Specjalizuje się w: sterowanie, przemysł
    DJ.TRoX napisał 273 postów o ocenie 119, pomógł 20 razy. Mieszka w mieście warszawa. Jest z nami od 2005 roku.
  • REKLAMA
  • #2 21506853
    gulson
    Administrator Systemowy
    Posty: 29374
    Pomógł: 148
    Ocena: 6058
    Bardzo dziękuję za prezentacje konstrukcji i dokładny opis! Jestem również pod wrażeniem tego, jak szczerze napisałeś, jakie były problemy i jakie są wady!
    Przesłuchałem próbkę, mogę napisać, że brzmi fantastycznie, chociaż ja mam kiepski słuch :)
    Napisz do mnie Paczkomat a wyślę w przyszłym tygodniu upominek, może się przyda do kolejnych konstrukcji DIY?
  • REKLAMA
  • #3 21506926
    Plumpi
    Specjalista - systemy grzewcze
    Posty: 7998
    Pomógł: 861
    Ocena: 2627
    Transoptory 6N138 średni nadają się do interfejsów MIDI. Choć jak dobrze spolaryzujesz bazę tranzystora (nóżka 7) to jakoś to działa. Ja robiłem tak, że zamiast rezystora do masy, wstawiałem potencjometr montażowy i później ustawiałem przebieg na oscyloskopie.
    Jednakże, MIDI może mieć bardzo mały prąd w pętli prądowej 5mA. Dlatego nie wszystkie transoptory sobie radzą i stosując inne transoptory niż te, które sugeruje specyfikacja MIDI (PC900), który w tym przypadku jest najlepszym transoptorem dla MIDI. Niestety jest on dość trudny do zdobycia. Można próbować z użyciem PC817 który zasadniczo współpracuje z prawie każdym instrumentem. Jednak bywają model z którymi jest problem.
    W przypadku PC900 jeszcze nie spotkałem, aby którykolwiek instrument nie współpracował.

    Napisałeś
    DJ.TRoX napisał:
    Okazało się, że mały keyboard wysyła niekompletne raki midi. Wciśnięcie klawisza było pozbawione pierwszego bajtu, puszczenie zazwyczaj też choć nie zawsze.


    Niestety nie jest to możliwe, aby instrument był pozbawiony pierwszego bajtu, ponieważ w ogóle nie dekodowałby komunikatów MIDI.
    Prawdopodobnie miałeś problem z UART-em lub właśnie z transoptorem.

    16 lat temu na Elektrodzie opisałem standard MIDI oraz generowane komunikaty bitowo/bajtowe
    Może Ci się przyda:
    https://www.elektroda.pl/rtvforum/topic1376909.html#6851858
  • #4 21507098
    PPK
    Poziom 30  
    Posty: 1947
    Pomógł: 94
    Ocena: 424
    PC900 są......https://allegro.pl/oferta/pc900v-dip6-transoptor-logiczny-dioda-wyjscie-cyfrowe-15232662389
  • REKLAMA
  • #5 21507159
    Plumpi
    Specjalista - systemy grzewcze
    Posty: 7998
    Pomógł: 861
    Ocena: 2627
    @PPK Tylko ciekawe czy oryginał. Oryginalne produkowała firma Sharp.
    Transoptory te naprawdę trudne do zdobycia, a jak już ktoś sprzedaje to nie wie ile za nie brać:
    https://sklep.rgbelektronika.pl/pl/products/pc900v-sharp-46753.html

    Oczywiście można też kombinować z innymi transoptorami jak ww albo CNY17, ale dobrze jak za transoptorem znajdzie się jeszcze bramka Schmitta np. 74HCT132 albo 4093

    Oczywiście 6N138 oraz CNY17 potrzebują spolaryzowania bazy.

    Dodano po 37 [minuty]:

    Jeżeli chodzi o ten rzekomo brakujący pierwszy bajt.

    Budowa komunikatów MIDI dla komunikatu Note On i Note Off wyglada następująco:
    Bajty:
    _Pierwszy____Drugi______Trzeci
    1001 kkkk__0nnn nnnn__0vvv vvvv - komunikat Note On
    1000 kkkk__0nnn nnnn__0vvv vvvv - komunikat Note Off

    Pierwszy bajt jest bajtem sterującym, który określa rodzaj komunikatu. Bajty sterujące zawsze zaczynają się od jedynki.
    Starsza część bajtu 1001 określa komunikat Note on, zaś 1000 Note Off

    Młodsza część pierwszego bajtu kkkk określa numer kanału MIDI 0-15

    Po bajcie sterującym idą dwa bajty danych, które zawsze zaczynają się od zera.
    Drugi bajt 0nnn nnnn to Note (nuta - numer klawisza), wartości 0-127
    Trzeci bajt 0vvv vvvv to Velocity czyli siła uderzenia w klawisz, wartości 0-127

    Jak więc widzisz nie ma możliwości, aby którykolwiek instrumenty nie wysyłały pierwszego bajtu, ponieważ urządzenie odbierające nie wiedziałoby do czego przyporządkować bajty danych.
    Każdy instrument wyposażony interfejs MIDI zawsze wysyła po 3 bajty dla Note On i Note Off.
  • #6 21507315
    PPK
    Poziom 30  
    Posty: 1947
    Pomógł: 94
    Ocena: 424
    GEMBARA to solidna firma. A części zamienne do sprzętu, to raczej nie chińskie podróbki... To jest Sharp.
  • #7 21507857
    DJ.TRoX
    Poziom 18  
    Posty: 273
    Pomógł: 20
    Ocena: 119
    Dodano po 11 [minuty]:

    Dziękuję za wszystkie komentarze. Co do Yamaha i niekompletnych ramek MIDI, to w przypadku instrumentów które mam jest to fakt. Stąd wymiana transoptora itd. Dokładnie badałem oscyloskopem co trafia do transoptora i nie mam tu żadnych wątpliwości. Na początku myślałem, że jest to pomyłka Yamahy bo to tani model i być może nikt nigdy nie podłączał nic do tego gniazdka. Jednak pomyślna współpraca 2 urządzeń udowadnia, że raczej nie jest to ani przypadek ani pomyłka. Nawet napisałem kawałek kodu żeby zmusić ten wyrób do współpracy. Niestety na tym etapie wysyłanie rozkazów sterujących również powoduje start dźwięku. To był już ten moment kiedy dale mi się nie chciało.
  • #8 21508580
    Plumpi
    Specjalista - systemy grzewcze
    Posty: 7998
    Pomógł: 861
    Ocena: 2627
    Nie ma takiej opcji, aby w jakimkolwiek instrumencie można było wprowadzić okrojone komunikaty MIDI.
    Albo masz uszkodzony instrument, albo mylisz komunikaty Note On i Note Off z innymi komunikatami, wysyłanymi przez instrument.

    W standardzie MIDI masz komunikaty 1 bajtowe, 2 bajtowe oraz 3 bajtowe
    Komunikaty Note On i Note Off zawsze wysyłają 3 bajty i nie jest możliwe, żeby były okrojone o jakiś bajt.
    Standard MIDI powstał w 1983r.
    Ja się interesuję i zajmuję MIDI od 1986r., czyli prawie od zarania, kiedy tylko istnieje ten standard i można powiedzieć wiem o tym standardzie prawie wszystko.
    Nie ma znaczenia czy instrument jest za 20 tys. zł czy za 200zł. MIDI jest na tyle prostą aplikacją standardu, że nie ma znaczenia ile kosztuje instrument. Jeżeli już jest w nim zamontowany interfejs MIDI to zawsze zgodny ze standardem. Może brakować pewnych bloków standardu MIDI np. może być pozbawiony bloku System Exclusive czy System Real Time. Ale jeżeli chodzi o Note On i Note Off to nawet w zabawkowych instrumentach nie może być pozbawiony bajtu, zwłaszcza pierwszego bajtu, który ściśle określa typ komunikatu.
    Bez tego bajtu, żaden inny instrument nie jest w stanie przyporządkować pozostałej części transmisji komunikatu. Po prostu taki niepełny komunikat byłby zignorowany.

    Oscyloskopem to niczego nie wypatrzysz. Potrzebny jest rejestrator przebiegów, aby zobaczyć cały cykl komunikatów.
    Poza tym weź pod uwagę, że sygnał MIDI jest pętlą prądową, kluczowaną tranzystorem. Bez zamknięcia pętli prądowej, oscyloskop pokaże przypadkowe wartości.

    Wcześniej dałem Ci linka do mojej wypowiedzi sprzed 16 lat w której zamieściłem pliki z tabelą standardu MIDI.
    To są informacje zebrane przeze mnie i usystematyzowane wg typów komunikatów oraz wartości binarnych, szesnastkowych i decymalnych.

    Pamiętaj, zawsze pierwszy bajt jest bajtem sterującym i bez niego nie ma możliwości prawidłowego zdekodowania reszty transmisji. Pierwszy bajt sterujący zawsze zaczyna się od jedynki logicznej 1xxxxxxx
    Po nim mogą się pojawiać 1 lub bajty danych, które zawsze zaczynają się od zera logicznego 0xxxxxxx
    Z tym, że są pewne typy komunikatów w których wysyłany jest tylko i wyłącznie jeden bajt (bajt sterujący) np. System Real Time (impulsy synchronizujące, komunikaty sterujące sequencerami, reset, podtrzymanie pracy instrumentu itp.)
    Są komunikaty w których wysyłane są dwa bajty (pierwszy bajt sterujący + jeden bajt danych) np. Program Change (zmiana brzmienia), Channel Pressure (siła docisku klawiszy), Song Selectn (wybór utworu w odtwarzaczu).
  • #9 21508967
    acctr
    Poziom 39  
    Posty: 4554
    Pomógł: 389
    Ocena: 2021
    DJ.TRoX napisał:
    Kupić malinę, uruchomić to w „pająku” a kiedy wszystko będzie ok, to narysować płytkę, kupić klawiaturę i skreślić temat z długiej listy rzeczy do zrobienia.

    Nie prościej po prostu kupić coś w rodzaju Miditech PianoBox? Cena poniżej 500 zł, własny akumulator i złącze USB pod które podłączana jest klawiatura.
    Do tego byle głośnik BT z wejściem analogowym, dwa kabelki i jest kompletny zestaw do grania.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #10 21510934
    DJ.TRoX
    Poziom 18  
    Posty: 273
    Pomógł: 20
    Ocena: 119
    acctr napisał:
    Nie prościej po prostu kupić coś w rodzaju Miditech PianoBox? Cena poniżej 500 zł, własny akumulator i złącze USB pod które podłączana jest klawiatura.

    Oczywiście, że prościej. Prawda jest taka, że trudno dziś znaleźć logiczne uzasadnienie dla robienia czegokolwiek. Co do PianoBoxa to brałem pod uwagę wersję Mini, tu jednak nie podobało mi się, że jest tam tylko wyjście słuchawkowe a to wróży szumy. Wydawało mi się, że w oparciu o Raspberry zbuduję coś z nieograniczonymi możliwościami, mającego same zalety. Ostatecznie i tak skończy się na Pianoboxie, ale zanim to nastąpi, mam jeszcze jeden pomysł.

    Dodano po 13 [minuty]:

    >>21508580 Oczywiście, że powinno być tak jak napisałeś. Niestety badania zarówno oscyloskopem jak i analizatorem stanów logicznych pokazują, że w tanim modelu Yamaha olała temat standardu i rozkazów sterujących brak. Owszem czasem przy puszczeniu klawisza pojawia się kompletna ramka ale jest to rzadkość. W przypadku Yamaha MODX jest odwrotnie i brak rozkazu sterującego dotyczy puszczenia klawisza. Efekt jest taki jak by grać z wciśniętym na stałe sustain. Żeby było jeszcze ciekawiej to oba instrumenty dogadują się ze sobą w obie strony bez problemów. Kosztowało mnie strasznie dużo czasu zanim się zorientowałem że coś jest nie tak. To też tłumaczy, dlaczego ten nieszczęsny keyboard nigdy nie chciał współpracować z chińskim kabelkiem USB a M-Audio nie ma z tym problemów.
    Analiza sygnałów logicznych z oznaczeniami binarnymi i czasowymi.
    Wykres sygnałów logicznych przedstawiający dane MIDI.
  • #11 21513400
    operator5wp
    Poziom 16  
    Posty: 340
    Pomógł: 1
    Ocena: 134
    Komunikaty Midi może są niepełne bo message wcześniej wysłało np NOTE_ON: '90 nn vv' a potem już nie wysyła 90 tylko już samo 'nn vv' a NOTE_OFF wysyła jako 'nn 00' . Jeżeli poprzedni message był taki sam czyli 8x,9x,Ax,Bx,Cx,Dx,Ex to nie wysyła ich tylko dane po głównym message, aż do czasu gdy poprzedni message będzie inny lub będzie to sysex . Chyba że dane idą po USB to dane idące z urządzenia do PC mają pełne pakiety ale z USB -> midi mogą być już okrojone. W dokumentacji MIDI jest to chyba opisane.
  • #12 21524936
    Konto nie istnieje
    Poziom 1  
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Użytkownik prezentuje ukończony projekt przenośnego modułu MIDI zbudowanego w oparciu o Raspberry Pi i klawiaturę sterującą M-Audio Keystation 88 MK3, przeznaczonego do występów ulicznych. Głównym wyzwaniem technicznym w dyskusji okazała się kwestia implementacji interfejsu MIDI, w szczególności interpretacja komunikatów wysyłanych przez instrumenty Yamaha, które zdaniem autora wysyłały niepełne ramki MIDI (bez bajtu sterującego) – co zostało potwierdzone testami oscyloskopem i analizatorem stanów logicznych. W dyskusji zwrócono uwagę na standard MIDI i mechanizm Running Status pozwalający na optymalizację komunikacji przez pomijanie powtarzających się bajtów statusu. Omówiono stosowanie różnych transoptorów (6N138, PC900, PC817, CNY17) w interfejsach MIDI, rekomendując PC900 jako optymalny, choć trudny do zdobycia oryginał Sharp. Wspomniano o potrzebie polaryzacji bazy dla niektórych transoptorów i możliwości użycia bramek Schmitta (74HCT132, 4093) dla poprawy jakości sygnału. Jako alternatywne, gotowe rozwiązania wskazano Miditech PianoBox lub wykorzystanie laptopa/urządzenia mobilnego.
Wygenerowane przez model językowy.
REKLAMA