MIDI, Soundfonts und C++



  • Hallo,
    ich bin auf der Suche nach Informationen zum Thema: Wie kann ich mit Hilfe einer Soundfont einen schönen Klang unter c++ erzeugen. Google lässt sich da nicht wirklich sinnvoll drüber aus und euere Suche beinhaltet leider sehr viele "offene" Themen.

    Kurz zu meinem Plan. Ich möchte eine Software schreiben, die meinen "Generalbaß" (Musiker wissen was ich meine) in einen schönen Chor evtl. mit Orchester schreibt. Das ist auch nicht sonderlich schwer. Die Noten sind auch ganz toll berechnet und werden ganz schön auf dem Montior ausgegeben.

    Der absolute Hammer für mich wäre es jetzt, wenn ich einen Kopf drücke und dann die Noten auch abgespielt werden. Und zwar in bestimmten Soundfont (z.B. Ahh-Chor, Uhh-Chor, Streicher, Drums, etc).

    Ich habe mein Programm auf Linux Suse 10.2 mit g++ geschrieben. Als Oberfläche habe ich KDE mit wxWidgets.

    Auf der Suche nach Infos durch Google finde ich immer wieder den Hinweis, dass man mit MIDI die die Noten erzeugen kann und Suse dann die Soundfonts verwaltet. Allerdings konnte mir kein Beitrag einen Ansatz geben, wie das funktionieren sollte.

    Daher bitte ich euch um Hilfe.

    Kurzform meiner Fragen:
    1.) Wie kann ich unter C++ Midi erzeugen?
    2.) Wie kann ich dieses Midi-Signal per "schöner" Soundfont auch passend hörbar machen.

    Als Anmerkung: ich möchte das ganze auch Mobil nutzen, sprich: Laptop mit OnBoard-Soundkarte (0-8-15-Teil) und es soll trotzdem nach was klingen, daher die Überlegung mit Soundfonts.

    Bitte um Hilfe,
    Danke,
    Stefan

    PS: Bei mir gilt: Der Weg ist das Ziel. Ich suche keinen fertigen Code, sondern Anleitungen, Dokumentationen und gute Links. Denn nur was ich selbst geschrieben habe, habe ich auch verstanden.



  • Guckstu

    Damit hab ich zumindest mal einen Parser schreiben können, die andere Richtung sollte auch gehen.

    Wie du das dann mit ALSA ausgibst weiß ich nicht, aber du könntest dir ja den Code von aplaymidi aus den alsa-utils ansehen.



  • Danke schon mal für den Link. Aber wenn ich das Richtig verstehe, dann sind das Anleitungen für MIDI-Dateien. Ich suche keine MIDI-Dateien. Ich suche einen Weg den Midi-Kanal direkt anzusprechen und das Suse dann über das Midi den Sound erzeugt. Denn ich will im Programm ja an meiner errechneten Arbeit was ändern und dann direkt anhören. Jedesmal in eine Datei schreiben und die mit einem externen Player abzuspielen wäre viel Aufwand und würde Funktionen wie z.B. eine Loop der sich durch Eingaben live ändert nicht möglich machen.



  • Meines Wissens musst du ALSA Midiströme liefern und die werden in den Dokumenten gut beschrieben. Wie gesagt, schau dir mal den Code zu aplaymidi an.

    /EDIT:
    http://www.alsa-project.org/~frank/alsa-sequencer/index.html
    Scheinbar doch keine „echten“ MIDI-Daten, aber sehr ähnlich. Das sollte helfen.




Anmelden zum Antworten