- LiFePO4 Speicher Test         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 48

Thema: MIDI auslesen?

  1. #11
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    Powerstation Test
    Ok, denk aber dran, uns das mitzuteilen. Ich könnt' betroffen sein.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Das Hardwareprotokoll von MIDI ist eigentlich einfacher als das von RS232.
    Es handelt sich um eine einfache Stromschleife die von einem Optokoppler abgeschlossen werden.

    Der schwierigere Teil ist eigentlich die Anzahl von verschiedenen Nachrichten, die über MIDI verschickt werden können.

    Die für dich interessanten Befehle dürften "Note on", "Note off", "All Notes off" sein.
    Die ersten beiden Befehle beschreiben welche Taste mit welcher Geschwindigkeit angeschlagen wurde. Wobei "Note on" mit einem velocity Wert von 0 ebenfalls eine Note abschaltet.
    Auch Interessant dürften die "Aftertouch" Commandos sein, wenn das Keyboard das hergibt.

    Ein kleines Problem dürfte die Datenabnahme sein. Ich würd einen PC900 Optokoppler von Sharp mit nachgeschaltetem Treiber für weitere MIDI Geräte verwenden.
    Die CNY17 Optokoppler Lösung hat bei mir nie richtig funktioniert.

    Da in einem MIDI Datenstrom eine Unmege an Nachrichten enthalten sein können, muss man gezielt nach den gewünschten Nachrichten suchen.
    Dabei muß man dann auch entscheiden ob einer, mehrere oder gar alle 16 Kanäle des MIDI Protokolls überwacht werden sollen.

    Interessante Nachrichten sind auch "Programm Change" und "Control Change" welche z.B. auf ein anderes Instrument umschalten oder die Lautstärke verändern.

    Ich hab das Buch "MIDI in Therie und Praxis" zu Hause, da ist das Ganze wirklich verständlich erklärt und es sind auch ein paar Schaltungsbeispiele drin - hat aber auch schon ein paar Jahre auf dem Buckel.

  3. #13
    1hdsquad
    Gast
    @ wkrug: Das ist mein Buch..., aber wie gesagt, das ist ja asbachuralt. Gibts keine Standardchips, mit denen das einfach geht? Im Buch ist eine Schaltung, mit der man ein nicht-midifähiges elektrisches Instrument "midifizieren" kann, wie der Autor sagt. Vom Ansatz könnte die Schaltung gehen, nur hat sie eben EPROMS drin, und sie gibt nicht für jeden Ton eine Spannung von 3 Volt (für LED) auf einem jeweils anderen "Kanal" (=LED) aus, sondern auf einem "Kanal" eine der Tonhöhe proportionalen Spannung...
    Soll ichs mal posten?
    MFG
    Der Helge Fan
    P.S.: Helge tourt in Deutschland, www.helge-schneider.de

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Ich hab mal aus dem Buch das "MIDI Baßpedal" gebaut.

    Aber das ist ja genau der umgekehrte Weg.
    Du hast eine vorhandene Tastatur und erzeugst ein MIDI Signal.

    Du möchtest aber, wenn ich das richtig verstanden habe, aus einem vorhandenen MIDI Signal die Toninformationen rausfiltern und dadurch LED's zu leuchten bringen.

    Mir ist kein käuflicher Chip bekannt der das kann.
    Für einen Microcontroller dürfte das aber kein Problem darstellen.
    Ich würd Da so an einen ATMEGA 8 oder 16 denken.
    Der hat schon eine serielle Schnittstelle an Bord und könnte, mit entsprechender Software ausgestattet, sicher auch die "Note" Nachrichten rausfiltern. Sinn scheint mir das aber nur für einen Kanal zu haben, den man frei einstellen kann. Wie wärs mit einem BCD Schalter um ein Display zu sparen?.
    Die Ausgangsports könnten dann über ein Software PWM sogar noch in der Helligkeit gesteuert werden. Bei der Menge an LED's wirst Du dann aber um einen nachgeschalteten Treiber (z.B. ULN 2003) nicht herumkommen.
    Ein Software PWM für einen ATMEGA8 mit 3 Ausgangskanälen hätt ich in C (Codevision AVR) hier. Das zu Erweitern dürfte kein Problem sein.
    Wenn Dir die Ports des ATMEGA 16 (ca. 30) für deine LED's nicht ausreichen kannst Du immer noch ein Schieberegister dranhängen, dann ist allerdings mit der Helligkeitssteuerung Ende.

    Das mit dem Aufblitzen ließe sich vermutlich auch realisieren, aber dafür wäre dann die doppelte Anzahl an LED Ports nötig oder man macht das Ganze mit einem vorgeschalteten Kondensator pro roter LED.

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    06.05.2005
    Ort
    Berlin
    Beiträge
    212
    Hey,
    der Standartchip für Sowas heißt:
    ATtiny2313, ATmega8 o.Ä.. Den mußte halt nur programmieren.
    Ich habe gerade die Klangerzeugung der Drums
    aus 'ner alten Quelle-Orgel extrahiert
    und steuer die über MIDI mit 'nem Mega8 an.
    Das Problemchen ist nur, Du brauchst dafür 'nen
    "geraden" Quarz (1, 2, ... 16,20MHz) sonst wird der Fehler
    bei 31250Baud (MIDI) zu groß.
    Ich nehm übrigens als Optokoppler den 6N137, der ist billiger,
    als der Klassiker PC900 und tut's klaglos.
    Übrigens: MIDI ist Asbachuralt, da hat sich seit 1983
    nicht viel geändert, sprich: Dein Buch stimmt sicher immer noch.
    Nur die Chips, die sowas bedienen sind wesentlich komfortabler
    geworden. Externe ROMs oder RAMs braucht man halt nicht mehr.
    Und noch was interessantes: Im MIDI_Protokoll
    ist jedes Byte, das mit einer 1 beginnt ein Statusbyte,
    beginnt das Byte mit 0, so ist es ein Datum.
    Das mit der proportionalen Spannung ließe sich sicher
    gut mit der PWM bewerkstelligen. Wenn einzelne LEDs
    leuchten sollen, sind Schieberegister (Serial in Parallel out) angesagt.
    Wenn's wen interessiert, kann ich ja mal was Sachdienliches dazu Posten.

  6. #16
    1hdsquad
    Gast
    Nur damit das keiner falsch versteht: Mit "Kanal" meine ich einen Ausgang für eine LED.
    Was ist ein BCD-Schalter? Ein Display brauch ich nicht...
    PWM ist auch egal, an und aus reichen.
    @ tholan: Ja, poste doch mal.
    Das Keyboard, an welches das Ganze dran soll, ist ein PSR 2100, das hat 61 Tasten, aber soviele LEDs brauch ich nichtmal. Das Blitzen war nur son Gedanke, das ist mir zu aufwendig (doppelte Port-Anzahl), also vergesst es.
    Wie programmiere ich den Atmega etc.? Ich nehme an, an meinem PC? Also brauch ich ein spezielles Board und Software... Hab ich aber nicht! Könnte mir das jemand programmieren (="draufladen")?
    MFG

  7. #17
    1hdsquad
    Gast
    Hab mir grad mal Wiki reinmgezogen, "AVR-Einstieg leicht gemacht". Hab ich das richtig verstanden, dass ich den Atmega8 einfach an den Printerport schliessen kann mit dem Donglekabel? Und den dann programmieren?
    MFG

  8. #18
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Hab ich das richtig verstanden, dass ich den Atmega8 einfach an den Printerport schliessen kann mit dem Donglekabel? Und den dann programmieren?
    Anfangs konnt ich das auch nicht glauben.

    Du hast das richtig verstanden.
    Zum einspielen der Software in den Controller kannst Du dann aber leider nicht AVR Studio 4 verwenden.

    Ich nehm zum Brennen der Atmel Controller Ponyprog und das geht mit dem Druckerport Dongle.

    Es gibt im Internet sehr viele Lösungen für Programmierdongel für die Atmel AVR Reihe. Serielle und parallele.

    Die einfachste Du ich kenne besteht aus einem Druckerportstecker mit 2 Widerständen einem kurzen Flachbandkabel und einem Pfostenfeldstecker

    Schau mal auf diese Seite http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

  9. #19
    1hdsquad
    Gast
    Ist ja cool... Ich dacht immer, man bräuchte zwingend ein teures Board zum Programmieren.
    MFG und danke schön!

  10. #20
    1hdsquad
    Gast
    Ich hab wieder ein paar fragen:
    1. Der Mega8 hat zuwenig Pins. Der Mega 32 aber auch! Ich hab 30 LEDs und dann noch Spannungsversorgung, Quarz, ISP und so weiter... Macht mehr als 40...
    Da dachte ich mir, ich könnte ja die LEDs in ein Matrix schalten, das geht aber nicht, denn rein theoretisch muss ich eine beliebige Anzahl von Tasten gleichzeitig drücken können und es dürfen dabei nur die korrekten LEDs aufleuchten, aber bei beispielsweise einer 5x6 Matrix leuchten auch falsche LEDs, wenn ich Gruppe 1 (LED 1-5), Gruppe 2 (LED 11-16), Gruppe 3 (LED 1,6,11,16,21,26) und Gruppe 4 (LED 2,7,12,17,22,27) "aktiviere". In diesem Fall würden 4 LEDs leuchten, auch wenn ich nur 2 Tasten drücke! Nämlich LED 1,6,2,7. Blöd Kann ich Schieberegister verwenden? (schnell genug? Midi ist ja ein bisschen zeitkritisch...) Oder wie kann ich es anders machen?

    2.Kann ich die LEDs direkt aus dem Mega/Schieberegister betreiben? (Im Wiki geht das mit einer LED, von 30 steht da nichts, und 20 mA mal 30 sind 600 mA... Ich denke nicht? Also: Welche Treiber?

    3. Wie macht ihr die schönen Schaltpläne im Wiki? Muss man wieder Krösus sein und sich Eagle kaufen oder geht das kostenlos?

    MFG und in riesiger Vorfreude auf eure zahlreichen Antworten
    David

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress