Ich gehe in am Freitag in einer Woche an ein von einem guten Freund organisiertes kleines Festival. Plan ist sfäre mitzunehmen und mit 2-3 Beamern an die Wand zu projizieren. Music läuft vielleicht über Spotify oder was anderes im Hindergrund. Hedenfall gehe ich davon aus, dass ich nicht immer sfäre Audio benutze. Ich fände es cool, wenn ich dafür die Visualisierung hinbekomme. Leider klappt es bislang nicht, zumindest nicht nur mit Unity.
Ich habe an verschiedenen Orten Code-Schnipsel gefunden und mir zusammengereimt wie es funktioniert.
Diese Funktion streamt System-Sound oder Microphon in ein Unity AudioClip, das dann wiederum von einem Unity AudioSource abgespielt wird. Das führt zu einem Echo des System-Sound in sfäre. Glücklicherweise kann ich das aber stumm schalten aber dennoch auf die SpectralDaten zugreifen. Leider führt das Buffern aber zu einer Verzögerung in der Reaktion auf die Audio-Ausgabe, Bild und Ton sind nicht schön aufeinander abgestimmt.
Code: Alles auswählen
void UpdateMic()
{
if (currentIndex != inputIndex)
{
currentIndex = inputIndex;
//micClip?.UnloadAudioData();
if (currentIndex < 0)
{
//micClip = null;
if (audioSrc != null)
{
audioSrc.Stop();
}
}
else
{
if (audioSrc == null)
audioSrc = GetComponent<AudioSource>();
if (audioSrc == null)
audioSrc = gameObject.AddComponent<AudioSource>();
string activeDevice = Microphone.devices[currentIndex % Microphone.devices.Length];
audioSrc.clip = Microphone.Start(activeDevice, true, 1, 44100);
int micPos, k = 0;
//this supposedly reduces lag
do
{
micPos = Microphone.GetPosition(activeDevice);
} while (!(micPos > 0) && k++<100000);
Debug.Log("MIC POS " + micPos + " (" + k + ")");
audioSrc.loop = true;
audioSrc.Play();
audioSrc.outputAudioMixerGroup = mixer;
}
}
}
Beim Schreiben ist mir gerade eine Idee gekommen. Evtl. kann ich Spotify auf ein Audiogerät ausgeben, dass stumm ist... das dort dann auslesen und in sfäre die eigentliche Soundausgabe machen? .... hmmm
edit: Die Idee ist glaub ich gut, aber ich krieg es nicht hin. Die Geräte die Unity als Eingang akzeptiert überlappen sich nicht mit denen die in Windows 10 als Ausgabe zur Verfügung stehen.
edit: Wenn ich sfäre irgendwie als Ausgabe für Spotify festlegen könnte wär das richtig geil