Question

Comment puis-je envoyer des messages MIDI à partir d'un programme C ++ et faire jouer le son de la banque General MIDI?

Je l'ai regardé autour et il ne semble pas être une réponse simple, et mon cerveau commence à fondre après avoir lu des manuels sur de longues CoreMIDI et des choses comme ça.

Je simple C ++ jeu / projet de synthétiseur, et tout ce que je veux faire est, par exemple, lorsque cette balle touche le sol, déclencher une C4 du Grand Piano banque. Je suis très bien avec la majorité du programme, mais la partie MIDI intégrale m'a jusqu'à présent été totalement opaque à.

Je voudrais utiliser CoreMIDI, car il semble que cela pourrait être plus simple, mais quelque chose multi-plateforme serait un bonus.

Merci pour toute aide!

Était-ce utile?

La solution

Une autre option serait rtmidi

Il est destiné à être simple et multi-plateforme

Je l'ai utilisé la RTAudio similaire pour l'audio en temps réel i / o, et il est relativement facile à utiliser.

Vous devriez être capable de lister tous les périphériques MIDI avec l'exemple de code, puis sélectionnez la banque GM, et envoyer le message MIDI approprié (note sur le message / off), après avoir sélectionné le piano avec un message de changement de programme. Wikipedia a un utile pour commencer

Autres conseils

J'ai écrit un tutoriel qui pourrait aider quelqu'un qui vient à travers le même problème en utilisant CoreMIDI. Il explique comment lire un fichier MIDI et la sortie du moyen d'un AUGraph en utilisant des effets sonores à partir d'un fichier Sound Font. Il explique également comment utiliser un point final virtuel pour accéder aux messages MIDI en temps réel. .

Pour faire ce que vous cherchez à faire, vous pouvez modifier le projet d'exemple que je fournir les éléments suivants:

result = MusicDeviceMIDIEvent ([AUSampler], midiStatus, note, velocity, 0);

Où AUSampler est un pointeur vers le AUSampler à-dire le point de départ dans le AUGraph. Plutôt que de lire un fichier, vous pouvez utiliser la commande suivante pour envoyer une note MIDI à jouer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top