Initial Commit
This commit is contained in:
commit
13767d3f40
160 changed files with 51070 additions and 0 deletions
74
AudioLinkSysAudio/AudioLinkSysAudio.cs
Normal file
74
AudioLinkSysAudio/AudioLinkSysAudio.cs
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
using System.Linq;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
[RequireComponent(typeof(AudioSource))]
|
||||
public class SystemAudioCapture : MonoBehaviour
|
||||
{
|
||||
private AudioSource audioSource;
|
||||
[SerializeField] private string deviceName;
|
||||
[SerializeField] private AudioMixerGroup audioMixerGroup; // Assign a muted mixer group
|
||||
private int sampleRate = 48000;
|
||||
private int bufferSize = 1024;
|
||||
|
||||
public AudioClip CapturedAudio => audioSource.clip;
|
||||
|
||||
void Start()
|
||||
{
|
||||
audioSource = GetComponent<AudioSource>();
|
||||
audioSource.loop = true;
|
||||
audioSource.mute = false; // Allow processing
|
||||
audioSource.outputAudioMixerGroup = audioMixerGroup; // Route to a muted mixer group
|
||||
StartCapture();
|
||||
}
|
||||
|
||||
private void StartCapture()
|
||||
{
|
||||
if (string.IsNullOrEmpty(deviceName)) return;
|
||||
|
||||
if (Microphone.IsRecording(deviceName))
|
||||
Microphone.End(deviceName);
|
||||
|
||||
audioSource.clip = Microphone.Start(deviceName, true, 10, sampleRate);
|
||||
while (Microphone.GetPosition(deviceName) <= 0) { } // Wait for microphone to initialize
|
||||
audioSource.Play(); // Ensure playback for Audio Link
|
||||
}
|
||||
|
||||
public void RestartCapture()
|
||||
{
|
||||
if (Microphone.IsRecording(deviceName))
|
||||
Microphone.End(deviceName);
|
||||
StartCapture();
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
[CustomEditor(typeof(SystemAudioCapture))]
|
||||
public class SystemAudioCaptureEditor : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
SystemAudioCapture script = (SystemAudioCapture)target;
|
||||
var devices = Microphone.devices;
|
||||
int selectedIndex = Mathf.Max(0, devices.ToList().IndexOf(script.deviceName));
|
||||
selectedIndex = EditorGUILayout.Popup("Audio Device", selectedIndex, devices);
|
||||
if (selectedIndex >= 0 && selectedIndex < devices.Length)
|
||||
{
|
||||
script.deviceName = devices[selectedIndex];
|
||||
}
|
||||
script.audioMixerGroup = (AudioMixerGroup)EditorGUILayout.ObjectField("Audio Mixer Group", script.audioMixerGroup, typeof(AudioMixerGroup), false);
|
||||
if (GUILayout.Button("Restart Capture"))
|
||||
{
|
||||
script.RestartCapture();
|
||||
}
|
||||
if (GUI.changed)
|
||||
{
|
||||
EditorUtility.SetDirty(script);
|
||||
}
|
||||
DrawDefaultInspector();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
11
AudioLinkSysAudio/AudioLinkSysAudio.cs.meta
Normal file
11
AudioLinkSysAudio/AudioLinkSysAudio.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 61b0e75002246a146a1fac6161b02527
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
104
AudioLinkSysAudio/NewAudioMixer.mixer
Normal file
104
AudioLinkSysAudio/NewAudioMixer.mixer
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!244 &-8518242826334645401
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: b47807d6588481b418cfd1b03a992946
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 1de6082d702acdf40ae222067f4f1db0
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!243 &-2904293998249763307
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Silent
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 42b906f295624304aab92090d94f4b5c
|
||||
m_Children: []
|
||||
m_Volume: 82b743a12a7857749a202545eccc99ae
|
||||
m_Pitch: 8ecf05f078429454ea47564301ce3523
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: -8518242826334645401}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!241 &24100000
|
||||
AudioMixerController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: NewAudioMixer
|
||||
m_OutputGroup: {fileID: 0}
|
||||
m_MasterGroup: {fileID: 24300002}
|
||||
m_Snapshots:
|
||||
- {fileID: 24500006}
|
||||
m_StartSnapshot: {fileID: 24500006}
|
||||
m_SuspendThreshold: -80
|
||||
m_EnableSuspend: 1
|
||||
m_UpdateMode: 0
|
||||
m_ExposedParameters: []
|
||||
m_AudioMixerGroupViews:
|
||||
- guids:
|
||||
- 1cc603b6426b4ca429cefd980c46a3b8
|
||||
- 42b906f295624304aab92090d94f4b5c
|
||||
name: View
|
||||
m_CurrentViewIndex: 0
|
||||
m_TargetSnapshot: {fileID: 24500006}
|
||||
--- !u!243 &24300002
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Master
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 1cc603b6426b4ca429cefd980c46a3b8
|
||||
m_Children:
|
||||
- {fileID: -2904293998249763307}
|
||||
m_Volume: 87d2ad79b28cd7643bfcffebd031ac5d
|
||||
m_Pitch: 2d3a374f0780b114f8708060419e9981
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 24400004}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &24400004
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 8c62407025a23a6409b162409b3460e1
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 9fa416b2b7b6d71408527ba8d9563b77
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!245 &24500006
|
||||
AudioMixerSnapshotController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Snapshot
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_SnapshotID: 3a343ed8de1d5914f9167c99797d8e38
|
||||
m_FloatValues:
|
||||
82b743a12a7857749a202545eccc99ae: -80
|
||||
m_TransitionOverrides: {}
|
||||
8
AudioLinkSysAudio/NewAudioMixer.mixer.meta
Normal file
8
AudioLinkSysAudio/NewAudioMixer.mixer.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cc0ec66b60b791f47863b58f56075d35
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 24100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Add table
Add a link
Reference in a new issue