2017-03-29 2 views
1

Ecriture d'une application qui prend l'entrée MIDI en utilisant naudio. Géré pour que l'entrée midi soit active et que la sortie se fasse bien sur la console, mais pour utiliser les données, je dois pouvoir isoler certaines parties des données. Mon code estnaudio Entrée Midi - Filtre e.MidiEvénement au paramètre data2 seulement?

void midiIn_MessageReceived(object sender, MidiInMessageEventArgs e) 
    { 
     Console.WriteLine(e.MidiEvent); 
    } 

qui écrit la ligne suivante dans la console.

0 ControlChange Ch: 1 Controller 48 Value 51 

C'est très bien mais comment puis-je seulement obtenir data2 (la valeur) pour passer à quelque chose? Je pouvais faire quelque chose de terrible comme le trancher comme une chaîne, mais c'est probablement pas la voie à suivre ...

Répondre

3

Vous devez obtenir le message MIDI à partir des informations de message:

void midiIn_MessageReceived(object sender, MidiInMessageEventArgs e) 
{ 
    MidiEvent me = e.MidiEvent; 

Ensuite, vous devez vérifier le type de message correct:

ControlChangeEvent cce = me as ControlChangeEvent; 
    if (cce != null) { 

Et le manipuler:

 Console.WriteLine(cce.ControllerValue); 
    } 
} 
+0

Yaaas! C'est celui-là. À votre santé :) – jdm555