Simples C++ Beispiel Projekt mit Audiofile I/O - hat jemand einen Tipp wo ich das finde?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Simples C++ Beispiel Projekt mit Audiofile I/O - hat jemand einen Tipp wo ich das finde?

    Hallo zusammen,

    ich bin E-Technik Student und programmiere in der Regel eigentlich nur Mikroprozessoren in C/C++. So jetzt auch aktuell in meiner Bachelorarbeit, wo ich unter anderem etwas Signalverarbeitung direkt ohne Betriebssystem - "Bare Metal" auf einem ARM realisieren möchte.
    Da ich zu den Entwicklungsbords aber lediglich in der Hochschule Zugang habe, würde ich gerne eine Möglichkeit haben den C++ Code zu Hause oder auch z.B. unterwegs in der Bahn entwickeln zu können. Als Mac-User würde ich dafür gerne auf Xcode zurückgreifen, wobei ich sagen muss, dass trotzt meiner grundsätzlichen C Kenntnisse die ganzen auf dem Mac genutzten Frameworks etc. für mich ein Buch mit sieben Siegeln sind. Da alleine aus Zeitgründen gerade nicht der Zeitpunkt ist, sich grundsätzlich in die Mac App Entwicklung einzuarbeiten, suche ich eigentlich nach irgendeinem simplen - unter OS X lauffähigen - C++ Demoprojekt, dass ein .wav file öffnet (komplett oder blockweise), deren Inhalt in ein Array schreibt, so dass ich meine zu entwickelnde Funktion aufrufen kann und ihr einfach einen Pointer auf die Daten aus dem .wav File übergeben kann. Das Ergebnis meines Algorithmus sollte dann auf gleiche Weise anschließend wieder zurück in ein zweites .wav File geschrieben werden. Das ganze hat keinerlei Anspruch auf überragende Performance oder ähnliches, das wird eh später auf der Zielplattform getestet, es geht mir rein um die erste grundsätzliche funktionale Entwicklung meines Codes und erstem debugging.

    Leider habe ich aber auch nach längerem googeln solch ein Projekt nicht gefunden. Hat da jemand einen guten Tip, wo ich so etwas finden könnte?
  • Genau, reines Command line Tool reicht, es reicht sogar das ganze nur in Xcode lauffähig zu haben ;)

    Wie gesagt, ich bin absolut unwissend was Entwicklung für den Mac oder auch den PC angeht, meine Recherche ergab mir jetzt aber keinen Hinweis welche Libraries ich fürs öffnen und schreiben von .wav Dateien auf dem Mac einbinden kann - hast du da einen ganz konkreten Hinweis welche Library da der Standard ist? Wenn ich die Info schon hätte, würde ich sicher die paar Code Zeilen drum herum zurechtbasteln können.

    Das einzige was ich gefunden habe waren die Audio File Services aus der Apple AudioToolbox für Objective C - aber da bin ich gerade zu wenig in Objective C an sich als dass mir deren Benutzung intuitiv erschien - ganz abgesehen davon, dann meine C++ Funktion irgendwie in das Objective C Projekt einbetten müsste - was offenbar auch nicht 100% straightforward geht?
  • uC_J schrieb:

    (...)C++ Demoprojekt, dass ein .wav file öffnet (komplett oder blockweise), deren Inhalt in ein Array schreibt, so dass ich meine zu entwickelnde Funktion aufrufen kann und ihr einfach einen Pointer auf die Daten aus dem .wav File übergeben kann. (...)

    Leider habe ich aber auch nach längerem googeln solch ein Projekt nicht gefunden. Hat da jemand einen guten Tip, wo ich so etwas finden könnte?
    GitHub kennst Du aber? Lmghtfy (Diverse, Treffer, in der Richtung. Einfach, mal, suchen)
    * Kann Spuren von Erdnüssen enthalten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NSObject ()

  • So,

    erst mal danke an NSObject, ich war in der tat eher auf der Suche nach einer von einem Apple Framework bereitgestellten Funktion die das erledigt, weil ich dachte, dies sei sicher der einfachste Weg. Deine Suchvorschläge haben dann aber gezeigt, dass es scheinbar wirklich nicht schwer ist, die Dateien komplett selbst zu lesen und zu schreiben wie ich dachte ;)

    Hab mir im Endeffekt nun eine eigene C++ Klasse dafür geschrieben. Aktuell arbeitet sie nur mit Mono .wavs, werde sie mal bei Zeiten hübsch machen, auf Stereo erweitern und dann der Allgemeinheit zur Verfügung stellen.
  • Da Du schriebst, dass Du ET studierst, ging ich davon aus, dass Du eigentlich Messwerte (Mit dem Equipment von NI konnte man früher schon Messwerte direkt in WAV oder AIFF schreiben) verarbeiten willst und keine Musik wiedergeben möchtest.

    Ansonsten hätte ich Dich auf die Apples PlayFile Sample verweisen. Es gab auch einen netten Vortrag auf der letzten Macoun dazu.
    * Kann Spuren von Erdnüssen enthalten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NSObject ()

  • Ich befasse mich gerade mit speziellen Audioverarbeitungsalgorithmen, die ich auf verschiedenen Prozessorarchitekturen und einem FPGA benchmarke. Daher liegen meine Testsignale als .wav auf meinem PC vor und werden dann über eine spezielle Soundkarte ausgespielt, die mir am ende direkt I2S/TDM Signale bereit stellt welche an meine Development Boards angeschlossen werden. Auf dem Rückweg passiert das gleiche und am Ende nehme ich wieder ein .wav auf. Daher bot es sich an auch in meiner Testumgebung direkt mit .wav rein und raus zu gehen um später die Ergebnisse möglichst einfach vergleichen zu können.

    Das PlayFile Sample hatte ich schon gefunden, es kompilierte bei mir aber nicht, ich war daher davon ausgegangen, dass es nicht mehr aktuell wäre. Wie dem auch sei, ich habe ja jetzt eine gute Lösung hinbekommen! :)