Hallo allerseits,
ich schreibe gerade ein Programm, das unter anderem MIDI Signale von einem Keyboard empfangen und dann interpretieren soll. Nach stundenlangem Googlen bin ich nicht wesentlich weiter. Mir fehlt der entscheidende Schritt, dass ein event bei Tastendruck ausgelöst wird, dem der MIDI-Befehl übergeben wird. Hier im Forum gab es die bis jetzt beste Hilfe (http://www.vbarchiv.net/forum/read.php?id=14&t=2752&i=2752&v=f), aber leider funktioniert das Beispiel dort nicht ohne weiteres...
Hier ist mein bisheriger Code: Diese Klasse wird in einem Minimalbeispiel auf Button_Click erstellt. Es erscheint einmal die msgbox "Midi-Test", wenn die Klasse erstellt wird und ich .OpenMIDI aufrufe, aber sonst passiert nichts...
Public Class MIDI_Handler
Declare Function midiInOpen Lib "winmm.dll" (ByRef lphMidiIn As Integer, _
ByVal devIDIn As Integer, _
ByVal cbfuncIn As test, ByVal _
cbdataIn As Integer, _
ByVal cboptionsIn As Integer) _
As Integer
Public Const CALLBACK_FUNCTION = &H30000
Public Const MM_MIM_OPEN = &H3C1
Public Const MM_MIM_CLOSE = &H3C2
Public Const MM_MIM_DATA = &H3C3
Private Const MIDI_IO_STATUS = &H20&
Public MidiLocation
Public Delegate Function test(ByVal hmidiIn As Integer, ByVal wMsg As _
Integer, _
ByVal dwInstance As Integer, ByVal dwParam1 _
As Integer, _
ByVal dwParam2 As Integer) As Boolean
Public Function MidiInProc(ByVal hmidiIn As Integer, ByVal wMsg As Integer, _
ByVal dwInstance As Integer, _
ByVal dwParam1 As Integer, ByVal dwParam2 As _
Integer) As Boolean
MessageBox.Show("Midi-Test")
End Function
Public Sub OpenMIDI()
Dim rcin As Integer
rcin = midiInOpen(MidiLocation, 0, AddressOf MidiInProc, 0, _
CALLBACK_FUNCTION)
End Sub
End Class Hat jemand eine Idee, wie es weitergeht? Danke im Voraus für jegliche Hilfe! |