2017-02-21 1 views
0

Ich habe einen Render-Callback mit 20 Bussen, die zu einem Mixer geroutet werden und einen Effekt nur auf einige dieser Busse anwenden müssen.Anwenden von Effekt auf eine oder eine Gruppe von Bussen in einem Render-Callback

Benötige ich verschiedene Callbacks oder ich kann es mit dem gleichen Render bekommen?

+0

Haben Sie 20 Eingaben eines Mixers auf einen Render-Callback gesetzt? – dave234

+0

20 für dieses Projekt habe ich andere Projekte mit mehr als 40 – Fischer

+0

Sie sollten Ihre Frage bearbeiten, um die Anwesenheit des Mischers zu reflektieren. – dave234

Antwort

1

Es gibt einige Möglichkeiten, dies zu tun.

Sie können manuell Effekte zwischen Ihrem Mixer und Ihren Callbacks hinzufügen. Anstatt also den Callback direkt auf den Mixer-Eingang zu setzen, würden Sie für jeden benötigten Bus eine Effekteinheit erstellen, den Effekt mit dem Mixer-Eingang verbinden und dann den Eingangs-Callback auf den Effekt setzen. (Einfachste)

Beispiel:

AUGraphConnectNodeInput(inGraph, sourceEffect, inSourceOutputNumber, mixerNode, inDestInputNumber); 
AUGraphSetNodeInputCallback (inGraph, sourceEffect,0,&inputCallbackStruct); 

Sie einen Verweis auf jeden Effekt halten kann, dann in Ihrem Rückruf manuell aufrufen AudioUnitRender auf die Wirkung. (Art von kompliziert)

Wenn Sie einen einzigen Effekt für diese Verarbeitung über mehrere Busse verwenden möchten, könnten Sie zwei Mischer verwenden. Alle Busse, die einen Effekt benötigen, werden zum "Effektmixer" geroutet, dann kann der Effekt auf dem Ausgang des "Effektmixers" sein, und die Ausgabe des Effekts kann zu Ihrem Hauptmixer gehen. (Am effizientesten)

+0

Vielen Dank für die Antwort, Dave. – Fischer

+0

Dave. Ich habe es getestet. Einen Bus für einen anderen Mixer oder Effekt einzustellen, scheint zu werfen und unabhängig zu rendern. Wenn ich zum Beispiel Bus 1 direkt auf einen Delay Node setze (und Delay Node auf Input 1 des Mixers), wirft der Callback einen Bus 0 für diesen Effekt - Bus, dann einen weiteren Render für den Haupt - Mixer ohne Effekt - Busse (Bus 0, 2 , 3, 4, ....) Ist es ein normales Verhalten? .... Wenn ja, es ist ein Schmerz in den Arsch, weil es meine Kanäle desynchronisiert .. Ich werde viele Code-Modifikationen vornehmen müssen – Fischer

+0

Verwenden Sie einen AUGraph? Wie verbindest du die Effekte? – dave234

Verwandte Themen