Audio Programmierung

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

  • Audio Programmierung

    Hallo Leute,
    ich wollte mich mit der Audio Programmierung beschäftigen dieses Thema ist sehr groß und komplex.
    Kennt ihr ein paar gute Seiten wo ich mich informieren kann über dieses Thema, oder ein paar Stickwörter was ich mir unbedingt am Anfang anschauen soll.
    Ich weiss das es CoreAudio gibt aber ich denke mal ich brauche am Anfang erst einmal ein allgemeines wissen über Audio bevor ich richtig los legen kann.
    Vielleicht könnt ihr mir ja so eine Art ToDo List anlegen die ich abarbeiten kann ^^
    Marius
  • Hm... also Du hast super Werkzeuge im vDSP von Apple... Aber: Wie zB erkennst Du zB Verzerrung, was ist das eigentlich? Meinst Du Klirren?

    Ich arbeite seit 15 Jahren im Audio-Bereich, jedoch Signalanalyse von Ultraschall und habe mir dafür Tools selber programmiert. Ein Spektrum oder Sonagramm mit den OnBoard Tools ist leicht zu erstellen, das dann noch performant zu bekommen nicht mehr ganz so einfach. Dann kann man noch toll mit CIFiltern die Bildinfo manipulieren für schöneres Aussehen... aber vermutlich musst Du Dir am Anfang mal Definieren, was Du aus dem Audio-Stream eigentlich auswerten möchtest. Bei manchen Sachen kann ich Dir dann vielleicht Tipps geben.

    Die Muster die Du meinst, sind dann aber wohl so visuelle Effekte wie in iTunes?

    volker
  • Vor ewiger Zeit habe ich mal hier im Forum ein Beispiel für einen rudimentären Spectrum Analyzer für Core Audio gepostet - mit etwas Glück findet der sich noch irgendwo und mit noch etwas mehr Glück funktioniert er sogar noch.

    Wenn du einfach nur etwas Bewegung haben willst, die halbwegs zur Musik passt, brauchst du nur ein paar Frequenzen und etwas Dynamik, geht das mit etwas Einarbeitung in DSP. Wenn du weitergehende Semantik aus dem Audiosignal ziehen willst, wird das ganz schnell eine deftige Aufgabe. Volker hat da ganz Recht: Der erste Schritt wäre eine genauere Definition von dem, was du analysieren willst.
    Multigrad - 360°-Produktfotografie für den Mac
  • Danke Leute für die Infos jetzt muss ich erst einmal viel lesen ^^.
    ich habe z.b dieses Demo gefunden was ich ganz nützlich finde.
    In diesem Demo wird ja nur mit AVFoundation und AudioToolbox gearbeitet ich habe schon mit diesen Frameworks was gemacht aber ich denke bevor ich mit CoreAudio anschaue schaue ich mir
    erste einmal diese Frameworks genauer an
  • Es gibt einige schöne Waveform und Co Codes im Netz. Die sind in der Regel einfach zu nutzen. Aber meistens halt auch sehr generell. Wenn Du was über Audio lernen möchtest, dann programmiere das wenigstens einmal zu Fuß. Dann wirst Du nämlich Dich sehr genau mit Sampleformaten und vor allem was "Audio" genau ist, beschäftigen müssen. Meiner Erfahrung nach scheitern viele daran, dass sie nicht verstehen, wie Audiodaten aufgebaut sind und was dahinter steckt. Und dann klappen die einfachsten Sachen halt nicht, die man mit den Daten machen möchte. Danach kannste, wenn Deine Lösung nicht performant genug ist, ja immer noch auf die fertigen Lösungen zurückgreifen.

    Grüße,
    Volker
  • So habe ein paar Fragen an euch ^^
    Im FVSoundWaveView gibt es eine Methode die heisst renderWaveImageFromAudioAsset und da geht die Party ab ^^

    Quellcode

    1. AVAssetReader* reader = [[AVAssetReader alloc] initWithAsset:songAsset error:&error];
    2. AVAssetTrack* songTrack = [songAsset.tracks objectAtIndex:0];
    3. NSDictionary* outputSettingsDict = [[NSDictionary alloc] initWithObjectsAndKeys:
    4. [NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,
    5. [NSNumber numberWithInt:1],AVNumberOfChannelsKey,
    6. [NSNumber numberWithInt:8],AVLinearPCMBitDepthKey,
    7. [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
    8. [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
    9. [NSNumber numberWithBool:NO],AVLinearPCMIsNonInterleaved,nil];
    10. AVAssetReaderTrackOutput* output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:outputSettingsDict];
    11. [reader addOutput:output];
    Alles anzeigen


    Bei diesem Abschnitt hätte ich zwei Frage an euch.
    1. Was ist genau die AVLinearPCMBitDepthKey ?
    2. In diesem Projekt wird MP4 als File format benutzt MP4 ist Analog deswegen haben wir als Format PCM wie schaut es bei MP3 aus da brauchen wir ein anderes Format habe mir mal die Keys angeschaut die es gibt, und es gibt leider sehr viele Formate paar kenne ich aber welches brauche ich ? ich denke mal es wird das sein kAudioFormatMPEGLayer3 xd
  • 1. Keine Ahnung, vmtl. aber die Auflösung der Samples in Bit ?
    2. Jedes Audio Signal ist Analog - mit Ausnahme von MIDI. Und das wird aber auch analog, sobald Du es hörst.

    Beide Fragen zeigen, dass es wohl ratsam wäre, wenn Du wirklich mit den Grundlagen anfängst. Für Deine Fragen oben ist um Beispiel Verständnis von AudioStreamBasicDescription sinnvoll... und sehr hilfreich ;)

    Davor musst DU natürlich verstehen, wie genau Tondaten gespeichert werden und warum mp3 und mp4 am ende beide so wie Wave als PCM verarbeitet werden....

    Volker
  • 1. Ja, AVLinearPCMBitDepthKey ist die Sampletiefe. 8 erzeugt 8-Bit-Samples, 16 erzeugt 16-Bit-Samples.
    2. Ich würde es genau andersrum sehen: Sowohl mp3 als auch mp4 sind digital. Dass damit eine Wellenform beschrieben wird, die früher (vielleicht) mal analog war, spielt keine Rolle - höchstens, dass für die Verarbeitung einige ähnliche Regeln gelten wie bei der analogen Signalverarbeitung.

    In das Dictionary gibst du nicht das Format des Ursprungsmaterials (das kann der Reader aus der Datei herausziehen), sondern das von dir gewünschte Ausgabeformat. Der Reader wandelt es intern in dieses Format um. Da sollte es zwischen mp3 und mp4 nur wenig Unterschiede geben (höchstens, dass einzelne Decoder bestimmte Features nicht unterstützen, aber das hat Apple schon ziemlich gut abstrahiert).
    Multigrad - 360°-Produktfotografie für den Mac