Hallo, liebe Forengemeinde!
Kann mir Jemand sagen, wie ich ein Midi- Keyboard auslesen kann?
Ich möchte ausschließlich wissen, welche Taste c0, c1, cis2... er gewählt hat und mit diesem Wissen weiterarbeiten.
Alle weiteren Dinge, wie Anschlagsstärke, Instrument, Bank oder Pan interessieren nicht.
Ich habe im Code- Archiv zwar etwas zu diesem Thema gefunden, das Programm ist mir aber unverständlich.
Wie gesagt, will ich die meisten Dinge ja auch nicht wissen, sondern nur diese eine rudimentäre Information.
Für schnelle Hilfe wäre ich sehr dankbar!
Alles Gute,
Sebastian
Midi- Keyboard auslesen
Naja, MIDI frägt man so gesehen nicht ab, sondern MIDI-Daten empfängt man. Sprich, man sagt nicht "hey MIDI-Schnittstelle, gib mir mal kurz 'ne Information drüber, welche Tasten am Keyboard gerade gedrückt sind", sondern man muß ständig nach MIDI-Daten horchen und diese dann auswerten. Man bekommt alles zugeschickt, sprich jedes MIDI-Ereignis, das auf dem Instrument passiert, wird über den MIDI-Out an den PC (oder ein anderes MIDI-Gerät) gesendet. Das heißt also, Du frägst erstmal nicht gezielt nach etwas bestimmten, sondern Du kriegst einfach die komplette Informationsflut und mußt diese dann auseinandernehmen.
Soviel zum Grundverständnis, vielleicht hilft Dir das nun, das Beispiel im Codearchiv zu verstehen
selber hab ich noch nix mit MIDI programmiert, daher kann ich Dir nicht sagen, wie man das genau handhabt - aber ich denke, daß das Beispiel im Codearchiv grundsätzlich sicherlich richtig ist (auch wenn ich mir es jetzt grad nicht anschaue), nur mußt Du eben wissen, wie MIDI überhaupt funktioniert.
Dazu noch folgendes: MIDI setzt sich aus Befehlen zusammen, es ist quasi eine Art Protokoll. Du bekommst eben 'nen Befehl der heißt z.B. "Note" und dahinter steht dann eine Nummer, die für die entsprechende Note steht. Auch der Befehl selbst hat eine Nummer. Das heißt Du mußt Dir im Internet eine Liste über alle Standard-MIDI-Befehle suchen, dort steht dann wie diese aufgebaut sind und welche Werte die Dir überbringen.
Wenn Du dann soweit bist und diese Daten alle empfangen kannst, dann mußt Du die Daten nur noch zerlegen und entsprechend auswerten. Dann weißt Du auch welche Noten gespielt wurden und kannst mit diesen Informationen dann irgendwie weiterarbeiten.
Soviel zum Grundverständnis, vielleicht hilft Dir das nun, das Beispiel im Codearchiv zu verstehen

Dazu noch folgendes: MIDI setzt sich aus Befehlen zusammen, es ist quasi eine Art Protokoll. Du bekommst eben 'nen Befehl der heißt z.B. "Note" und dahinter steht dann eine Nummer, die für die entsprechende Note steht. Auch der Befehl selbst hat eine Nummer. Das heißt Du mußt Dir im Internet eine Liste über alle Standard-MIDI-Befehle suchen, dort steht dann wie diese aufgebaut sind und welche Werte die Dir überbringen.
Wenn Du dann soweit bist und diese Daten alle empfangen kannst, dann mußt Du die Daten nur noch zerlegen und entsprechend auswerten. Dann weißt Du auch welche Noten gespielt wurden und kannst mit diesen Informationen dann irgendwie weiterarbeiten.


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
okay. man bekommt also alle möglichen Ereignisdaten. Und wie spricht man dieses Protokoll mit Purebasic an? Ich kann im Internet nicht suchen, weil ich nicht weiß wonach genau ich suchen soll. Was muss ich in Purebasic eingeben, um auf diese Schnittstelle zuzugreifen?
Und wie wertet man die empfangenen Daten aus?
Und wie wertet man die empfangenen Daten aus?
Im CodeArchiv gibt's ein paar MIDI-Sachen...


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Aus den Midi- Sachen im Codearchiv werde ich leider nicht schlau und ich weiß nicht, wie ich die benutzen muss. Ich habe ja angegeben, dass ich ein Anfänger bin. Ich suche nach einer einfachen Lösung, die ich verstehen und nutzen kann. Ich habe nie mit der WinAPI gearbeitet und habe dementsprechend meine Schwierigkeiten.
Alles Gute
Sebatian
Alles Gute
Sebatian
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02