J'écris un MIDI en C++ en utilisant asoundlib. Parfois, je voudrais que mon application arrête toutes les voix, appelant un événement All-Notes-Off. Je le fais en appelant une note-off à chaque note sur chaque canal, car c'est la seule façon que je connaisse, mais pour certaines raisons, je ne suis pas vraiment heureux d'envoyer 16 * 128 = 2048 événements en un instant. Y a-t-il une autre approche? Ce serait parfait si je pourrait envoyer un événement à la file d'attente de contrôle, y en a-t-il? Si non, alors comment procéder?
Toute aide est la bienvenue, car Internet ne dispose pas d'une bonne documentation ALSA détaillée.
Selon le cours intensif sur la spécification midi vous envoyez simplement un événement 'Z' avec toutes les notes désactivées qui est expliqué comme 00 B0 7B 00
00 to indicate no time delay
B0 to send a midi control signal
7B to send an all notes off
00 does nothing (padding)
Vous pouvez voir une liste d'octets de contrôle midi ici: Numéros de contrôleur MIDI
Bonne chasse!