Ich habe eine Frage zu CoreAudio und AVFoundation.Leistung zwischen CoreAudio und AVFoundation
Ich habe eine Pro-Audio-Anwendung mit CoreAudio mit einem AUGraph und AudioUnit gebaut.
Ich würde gerne zu AVFoundation Framework wechseln, das wirklich toll zu sein scheint. Aber da ich mir Sorgen um die Leistung mache, würde ich gerne ein bisschen mehr darüber wissen.
In meinem Kern-Audio-Render-Callback kann ich 512 Samples mit einer Samplerate von 44100 kHz verarbeiten, so dass mein Callback alle 10ms aufgerufen wird, und ich denke, dass es schneller gehen könnte (habe ich Recht?).
Jetzt in AVFoundation ist der Render-Callback der Tap des AVAudioNode. Und ich habe in dem Kommentar gelesen, dass der Parameter pufferSize the requested size of the incoming buffers in sample frames. Supported range is [100, 400] ms.
ist Also bedeutet es, dass ich weniger als 4410 Proben bei jedem Aufruf verarbeiten kann?
Kommt die Einschränkung von den Objective-C-Einschränkungen (Nachrichtenaufrufe, Sperren usw.)?
Wird es sich nicht auf den Echtzeit-DSP-Prozess auswirken?
Vielen Dank @ hotpaw2! Ich schätze immer Ihre Qualitätsantworten hier. Das ist, was ich suchte, und es scheint eine gute Lösung zu sein. Ich habe AUAudioUnit nicht unterklassifiziert. Übrigens ist es so traurig, dass wir das Audiogerät nicht von einem AVAudioPlayer bekommen konnten ... Wenn ich also gut verstehe, wäre der richtige Weg, um das Sample eines AVAudioPlayerNode mit hoher Rate zu bekommen/zu ändern: AVAudioPlayerNode -> MyCustomAU (mit Callback) -> OtherAVAudioUnit. In der Tat scheint es, dass es möglich wäre, die AudioUnit nur mit macOS 10.13 und höher zu bekommen. – DEADBEEF
Quelle meines letzten Kommentars [Apple Documentation] (https://developer.apple.com/documentation/avfoundation/avaudionode/2866396-auaudiounit) – DEADBEEF
Eine AUAudioUnit-Unterklasse scheint für Code zu funktionieren, der im iOS-Simulator läuft, der unter macOS 10.12 läuft. Raten Sie, was das bedeuten könnte ... – hotpaw2