ciao a tutti, per la mia tesi di 5a sto sviluppando una tastiera MIDI in C#, ma non riesco ad assegnare ai tasti della keyboard, la riproduzione delle singole note. le funzioni di riproduzione, vengono eseguite correttamente quando premo i bottoni con il mouse, perciò non penso ci siano errori di codice.

Per la riproduzione delle note, uso le seguenti funzioni:

codice:
int MidiOutMessage(int handle, int iStatus, int iCanale, int iDato1, int iDato2)
        {
            int message=0;
            message = iStatus | iCanale | (iDato1 << 8) | (iDato2 << 16);
            return midiOutShortMsg(handle , message);
        }


int MidiNoteOn(int hMidi, int iCanale,int ottava, int iNota, int iVel)
        {
            return MidiOutMessage(hMidi, 0x090, iCanale,12*ottava+iNota , iVel);

        }


int MidiNoteOff(int hMidi, int iCanale, int ottava, int iNota, int iVel)
        {
            return MidiOutMessage(hMidi, 0x080, iCanale, 12*ottava+iNota,iVel);
        }
ho provato a scrivere una funzione per la riproduzione tramite keyboard
codice:
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode==Keys.Q)
                MidiNoteOn(lphMidiOut, 0, 2, 36, 60);
        }
ma non ottengo nessun risultato.

qualcuno saprebbe il modo per risolvere questo problema?

grazie in anticipo