Ich schreibe gerade eine Processing-Skizze, die auf mehrere Audioeingänge zugreifen muss, aber die Verarbeitung erlaubt nur den Zugriff auf die Standardzeile. Ich habe versucht, Zeilen direkt aus dem Java Mixer zu holen), aber ich bekomme immer noch nur das Signal von der Zeile, die momentan auf meinem Gerät als Standard eingestellt ist.Mehrere Audioeingänge in Bearbeitung bekommen
Ich habe angefangen, den Sound über OSC von SuperCollider zu senden, wie empfohlen here. Da ich aber neu bei SuperCollider bin und deren Dokumentation und Unterstützung eher auf die Erzeugung von Sound als auf den Zugriff auf Eingänge ausgerichtet ist, wird mein nächster Schritt wahrscheinlich darin bestehen, mit Beads und Jack herumzuspielen, wie es here vorgeschlagen wurde.
Hat jemand (1) andere Vorschläge oder (2) konkrete Beispiele, wie man mehrere Eingaben von SuperCollider oder Beads/Jack zur Verarbeitung bekommt?
Vielen Dank im Voraus!
Bearbeiten: Der Sound wird verwendet, um benutzerdefinierte Musikvisualisierungen anzutreiben (denke an den iTunes Visualizer, aber viel mehr Song-spezifisch). Wir arbeiten mit mehreren MP3s. Nun, was ich brauche, ist in der Lage, einen Puffer float [] von jedem Mikrofon zu bekommen. Wir hoffen, 9 verschiedene Mikrofone zu haben, obwohl wir uns mit 4 zufrieden geben werden, wenn das machbar ist.
Für Hardware, an dieser Stelle verwenden wir nur Mikrofone und XLR zu USB-Kabel. (Habe einen Vorverstärker in Erwägung gezogen, aber bisher reicht das.) Ich bin momentan bei Windows, aber ich denke, dass wir letztendlich auf einen Mac wechseln werden.
Hier war mein Versuch mit nur Beads (es funktioniert gut für den Laptop, da ich das zuerst, aber der Headset-Puffer hat alle Nullen; wenn ich sie umschalte und das Headset zuerst, wird der Headset-Puffer korrekt sein , aber der Laptop wird alle 0) enthalten:
void setup() {
size(512, 400);
JavaSoundAudioIO headsetAudioIO = new JavaSoundAudioIO();
JavaSoundAudioIO laptopAudioIO = new JavaSoundAudioIO();
headsetAudioIO.selectMixer(5);
headsetAudioCon = new AudioContext(headsetAudioIO);
laptopAudioIO.selectMixer(4);
laptopAudioCon = new AudioContext(laptopAudioIO);
headsetMic = headsetAudioCon.getAudioInput();
laptopMic = headsetAudioCon.getAudioInput();
} // setup()
void draw() {
background(100,0, 75);
laptopMic.start();
laptopMic.calculateBuffer();
laptopBuffer = laptopMic.getOutBuffer(0);
for (int j = 0; j < laptopBuffer.length - 1; j++)
{
println("laptop; " + j + ": " + laptopBuffer[j]);
line(j, 200+laptopBuffer[j]*50, j+1, 200+laptopBuffer[j+1]*50);
}
laptopMic.kill();
headsetMic.start();
headsetMic.calculateBuffer();
headsetBuffer = headsetMic.getOutBuffer(0);
for (int j = 0; j < headsetBuffer.length - 1; j++)
{
println("headset; " + j + ": " + headsetBuffer[j]);
line(j, 50+headsetBuffer[j]*50, j+1, 50+headsetBuffer[j+1]*50);
}
headsetMic.kill();
} // draw()
bei Zugabe von Jack Mein Versuch, diese Zeile enthält:
ac = new AudioContext(new AudioServerIO.Jack(), 44100, new IOAudioFormat(44100, 16, 4, 4));
aber ich habe den Fehler:
Jun 22, 2016 9:17:24 PM org.jaudiolibs.beads.AudioServerIO$1 run
SEVERE: null
org.jaudiolibs.jnajack.JackException: Can't find native library
at org.jaudiolibs.jnajack.Jack.getInstance(Jack.java:428)
at org.jaudiolibs.audioservers.jack.JackAudioServer.initialise(JackAudioServer.java:102)
at org.jaudiolibs.audioservers.jack.JackAudioServer.run(JackAudioServer.java:86)
at org.jaudiolibs.beads.AudioServerIO$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'jack': Native library (win32-x86-64/jack.dll) not found in resource path ([file:/C:/Users/...etc...)
Und wenn ich in Jack bin, sehe ich mein Mikrofon nicht (das scheint für mich eine riesige rote Fahne zu sein, obwohl ich Jack völlig neu bin). Sollte dieser AudioContext als Input in Jack erscheinen? Oder umgekehrt - finde zuerst mein Mikrofon und dann von Jack zu Processing?
(Verzeihen Sie meine Unerfahrenheit, und nochmals vielen Dank! Mein Mangel an Wissen in Jack macht mich fragen, ob ich Supercollider stattdessen erneut sollte ...)
Könnten Sie etwas mehr Kontext zu machen (zB, was Sie mit dem eingehenden Audio tun), einige Infos Abou die Hardware, die Sie verwenden, und Vielleicht Codebeispiele, die zeigen, was Sie bereits versucht haben? – mbaytas
@baytas Der Beitrag wurde erweitert, um Informationen über das Projekt und die aktuelle Hardware aufzunehmen und Codebeispiele hinzuzufügen. – Aemilia