Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    4

    [C#]Riproduzione note tramite tastiera

    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

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Domanda stupida(ma a volte il problema è questo):

    Quando premi q sei sicuro che il focus sia sul form e non su qualche oggetto contenuto nel form?

    In ogni caso prova ad impostare la proprietà .KeyPreview del Form a true

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    4
    non avevo messo a true il KeyPreview xD

    grazie 1000! mi hai salvato

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    4
    ho fatto caso adesso, che se tengo premuto il tasto, il suono si interrompe dopo 1 secondo e poi più nulla... come mai?

  5. #5
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    grazie 1000! mi hai salvato
    Prego. Per il resto non ho mai lavorato con i MIDI (ancora) e non so come aiutarti.


    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.