-         

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 48

Thema: MIDI auslesen?

  1. #1
    1hdsquad
    Gast

    MIDI auslesen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallihallö, ich habe mal wieder ein Problem: Lässt sich das MIDI Protokoll eines Keyboards (Ja, das mit schwarzen und weissen Tasten, http://de.wikipedia.org/wiki/Keyboards ), auslesen, um eine Leiste mit LEDs in aufgemalten Tasten anzuschliessen, welche die gerade gedrückte Taste darstellen? Ich meine erstmal, ob es "einfach" ist (wie RS 232) oder "schwer" (wie USB).
    MFG

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    MIDI ist nen RS232-Verschnitt. Also: "einfach wie RS 232"

  4. #4
    1hdsquad
    Gast
    Ok, danke schön! Dann will ich mal schauen...

  5. #5
    1hdsquad
    Gast
    Hallöchen!
    Ich hab mir in einem Buch mal was nachgelesen, das ist aber von 1990, da dröhnt einem der Schädel bei der PC-Leistung der Zeit, wenn die dauernd von Amiga, C64 etc. reden
    Und EPROMS wollt ich auch net brennen...
    Das im Buch ist nicht schlecht, nur eben zu alt. Gibt es heutzutage standarisierte ICs für Midi? Wie gesagt, ich will das Gerät an den Midiausgang vom Keyboard anklemmen und für jede Taste eine LED haben, welche bei Tasdtendruck leuchtet. Cooler wäre auch noch, wenn man Duo-LEDs und die Anschlagdynamikfunktion der Taste verwendet, sodass die LED z.B. bei Druck rot aufblitzt und dann bis zum Loslassen grün leuchtet...
    Also: gibts da was???
    MFG und hier mal draufgehen, einfach geil: http://www.youtube.com/watch?v=bPjWP...elated&search=

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    vielleicht hilft dir das:
    http://de.wikipedia.org/wiki/MIDI#Fu...IDI-Protokolls
    soweit ich sehe werden (häufig) jeweils 3 bytes übertragen, "0x9n kk vv" beim anschlag einer taste.
    das (hex) 9 in den ersten 4 bit wäre für dich wichtig, wenn du die anschlagsdynamik und den notenwert erfassen willst, danach evtl. noch die zweiten 4 bit für den channel 0-15. darauf folgt die angespielte note (0-127) und die dynamik (0-127). nix klar?
    dein µC empfängt ein 144-127-63 (alles dezimal). weil das erste byte >127 ist, weiß dein µC, dass ein neuer datensatz anfängt.
    144 ist binär 10010000 -> die erste bytehälfte (binär 1001) ist der code für "Beginnt das Spielen einer Note", die zweite bytehälfte (man sagt nibble, ich weiss..) ist 0 also der erste kanal.
    bei den nächsten 2 bytes ist das erste bit 0 (also dezimal 0-127), daran erkennt das gerät, dass es sich um den teil eines datensatzen handelt. als nächstes byte folgt die note (127 = der "höchste ton"), darauf die dynamik (63 dez), also "mittel starker" anschlag.

    vielleicht würde folgendes klappen (pseudo-code, kanns leider nicht testen):
    Code:
    int byte;
    while(1)
    {
      read(byte); 
      if(byte>127) //erstes byte ist statusbyte für attack (anschlag)
      {
        if(byte%127==2) // 3tter channel
        {
           read(byte); // note
           led_an(byte%12); // 12 halbtonschritte angenommen, eine von 12 leds leuchten lassen
           read(byte); // dynamik
           if(byte>(63+32)) // anschlagsdynamik im oberen drittel
           {
              led2_an(); // stärkerer anschlag
           }
        }
      }
    }
    sry falls ich mich täusche oder was falsch wiedergegeben habe.. korrigiert mich bitte!

    p.s. bin fast sicher da stimmt irgendwas nicht

    p.p.s. helge war mal echt gut, aber in dem fall eher nicht.

    gruesse von der katz

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Das (theoretisch) erste Byte beinhaltet welcher Event und welcher Channel (0-15).
    Das zweite ist, welche Taste (0-127)
    das dritte, wie laut (0-127)

    Es gibt aber auch andere Events, also da muß man schon genau schauen.

    Das erste Byte kommt nur, wenn eine anderer Event oder ein anderer Channel da ist. (running status) Sonst kommt nur Note u. Velocity
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Und selbst davon weicht der Sequenzer u/o die Midi-Verteiler-Kiste (wie immer man diese Boxen nennt, bin nicht aus der Szene) eines Kunden ab, für den ich demnächst ein Gerät umdesignen darf. Also nicht wundern, wenn es trotz Einhaltung der allseits bekannten Specs doch nicht so funktioniert wie geplant. Ich habe mir aus diesem Anlass eine Midi-to-Serial-Box nachgebaut, die die Rohdaten auf echtes RS232 umsetzt, so dass ich sie mit MidiSpy ansehen kann.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    ..davon weicht der Sequenzer u/o die Midi-Verteiler-Kiste
    Das täte mich interessieren, klingt unglaublich. Weiß man Näheres ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Bisher nicht, daher ja auch der Konverter, um den MIDI-Datenstrom mitzulesen. Ich bin auch schon sehr gespannt, was mich da erwartet.

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •