Frage

Wie kann ich MIDI-Nachrichten aus einem C ++ Programm und sie spielen den Sound aus der General-MIDI-Bank?

senden

Ich habe schaute mich um und es scheint nicht eine einfache Antwort zu sein, und mein Gehirn beginnt zu schmelzen nach langen Handbücher über Coremidi und Dinge wie das Lesen.

Ich habe ein einfache C ++ Spiel / Synthesizer-Projekt, und alles, was ich tun möchte, ist, zum Beispiel, wenn dieser Ball auf den Boden aufschlägt, löst eine C4 aus dem Grand Piano Bank. Mir geht es gut mit der Mehrheit des Programms, aber das Integral MIDI-Part hat mir bisher völlig undurchsichtig.

Ich mag Coremidi verwenden, weil es scheint, wie es am einfachsten sein, aber etwas Multi-Plattform wäre ein Bonus.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

Eine andere Möglichkeit wäre rtmidi

Es sollte einfach und plattformübergreif sein

Ich habe die ähnliche RTAudio für Echtzeit-Audio verwendet i / o, und es war relativ einfach zu bedienen.

Sie sollten der Lage sein, alle MIDI-Geräte mit dem Beispiel-Code zur Liste, dann wählen Sie die GM-Bank, und senden Sie die entsprechende MIDI-Meldung (Note On / Off-Meldung), nachdem Sie das Klavier mit einem Programmwechsel auswählen. Wikipedia hat eine hilfreich loszulegen

Andere Tipps

Ich habe ein Tutorial geschrieben, die jemand helfen könnte, die über das gleiche Problem kommt mit Coremidi. Es wird erläutert, wie eine MIDI-Datei und Ausgabe der durch einen AUGraph mit Soundeffekten aus einer Sound-Font-Datei zu lesen. Es erklärt auch, wie ein virtuelles Endpunkt verwenden, um Zugriff auf die MIDI-Nachrichten in Echtzeit zu erhalten. Hier .

tun, was Sie suchen zu tun, könnten Sie das Beispielprojekt ändern I mit dem folgenden bieten:

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

Wo AUSampler ist ein Zeiger auf die AUSampler das heißt den Startpunkt in der AUGraph. Anstatt aus einer Datei lesen können Sie den folgenden Befehl eine MIDI-Note zu senden, um gespielt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top