├── .gitignore
├── Assets
├── Materials.meta
├── Materials
│ ├── Default White.mat
│ └── Default White.mat.meta
├── Plugins.meta
├── Plugins
│ ├── CSCore.dll
│ └── CSCore.dll.meta
├── Prefabs.meta
├── Prefabs
│ ├── Bar Spectrum Cube.prefab
│ └── Bar Spectrum Cube.prefab.meta
├── Scripts.meta
├── Scripts
│ ├── Audio.meta
│ ├── Audio
│ │ ├── AudioVisualizationStrategy.cs
│ │ ├── AudioVisualizationStrategy.cs.meta
│ │ ├── BasicSpectrumProvider.cs
│ │ ├── BasicSpectrumProvider.cs.meta
│ │ ├── ISpectrumProvider.cs
│ │ ├── ISpectrumProvider.cs.meta
│ │ ├── LineSpectrum.cs
│ │ ├── LineSpectrum.cs.meta
│ │ ├── LoopbackAudio.cs
│ │ ├── LoopbackAudio.cs.meta
│ │ ├── RealtimeAudio.cs
│ │ ├── RealtimeAudio.cs.meta
│ │ ├── ScalingStrategy.cs
│ │ ├── ScalingStrategy.cs.meta
│ │ ├── SpectrumBase.cs
│ │ └── SpectrumBase.cs.meta
│ ├── Behaviors.meta
│ ├── Behaviors
│ │ ├── RandomMaterialColorObject.cs
│ │ └── RandomMaterialColorObject.cs.meta
│ ├── Extensions.meta
│ ├── Extensions
│ │ ├── ListExtensions.cs
│ │ └── ListExtensions.cs.meta
│ ├── Globals.cs
│ ├── Globals.cs.meta
│ ├── ReactiveEffects.meta
│ └── ReactiveEffects
│ │ ├── Base.meta
│ │ ├── Base
│ │ ├── VisualizationEffectBase.cs
│ │ └── VisualizationEffectBase.cs.meta
│ │ ├── MaterialColorIntensityReactiveEffect.cs
│ │ ├── MaterialColorIntensityReactiveEffect.cs.meta
│ │ ├── ObjectScaleReactiveEffect.cs
│ │ ├── ObjectScaleReactiveEffect.cs.meta
│ │ ├── PrefabLayoutAudioObject.cs
│ │ └── PrefabLayoutAudioObject.cs.meta
├── _scenes.meta
└── _scenes
│ ├── Main.unity
│ └── Main.unity.meta
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── Physics2DSettings.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
└── UnityConnectSettings.asset
├── README.md
└── UnityPackageManager
└── manifest.json
/.gitignore:
--------------------------------------------------------------------------------
1 | /[Ll]ibrary/
2 | /[Tt]emp/
3 | /[Oo]bj/
4 | /[Bb]uild/
5 | /[Bb]uilds/
6 | /Assets/AssetStoreTools*
7 |
8 | # Visual Studio 2015 cache directory
9 | /.vs/
10 |
11 | # Autogenerated VS/MD/Consulo solution and project files
12 | ExportedObj/
13 | .consulo/
14 | *.csproj
15 | *.unityproj
16 | *.sln
17 | *.suo
18 | *.tmp
19 | *.user
20 | *.userprefs
21 | *.pidb
22 | *.booproj
23 | *.svd
24 | *.pdb
25 |
26 | # Unity3D generated meta files
27 | *.pidb.meta
28 |
29 | # Unity3D Generated File On Crash Reports
30 | sysinfo.txt
31 |
32 | # Builds
33 | *.apk
34 | *.unitypackage
35 |
--------------------------------------------------------------------------------
/Assets/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 63df4479e8a17d041b88eaa22bb3144f
3 | folderAsset: yes
4 | timeCreated: 1509126997
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Materials/Default White.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Default White
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0.5
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 0
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 1, g: 1, b: 1, a: 1}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/Materials/Default White.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 320b400d4a179e24d9a44605f328fb90
3 | timeCreated: 1509127009
4 | licenseType: Free
5 | NativeFormatImporter:
6 | externalObjects: {}
7 | mainObjectFileID: 2100000
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e860cb2d1bbbade40ba9b810102871bf
3 | folderAsset: yes
4 | timeCreated: 1509125359
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/CSCore.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hallidev/UnityWASAPILoopbackAudio/42c0b1d06dc84395f5019ea27e8d1b9e123e10bf/Assets/Plugins/CSCore.dll
--------------------------------------------------------------------------------
/Assets/Plugins/CSCore.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f5ab56cb999f13b46bb15670bea9a397
3 | timeCreated: 1509125365
4 | licenseType: Free
5 | PluginImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | iconMap: {}
9 | executionOrder: {}
10 | isPreloaded: 0
11 | isOverridable: 0
12 | platformData:
13 | - first:
14 | Any:
15 | second:
16 | enabled: 1
17 | settings: {}
18 | - first:
19 | Editor: Editor
20 | second:
21 | enabled: 0
22 | settings:
23 | DefaultValueInitialized: true
24 | - first:
25 | Windows Store Apps: WindowsStoreApps
26 | second:
27 | enabled: 0
28 | settings:
29 | CPU: AnyCPU
30 | userData:
31 | assetBundleName:
32 | assetBundleVariant:
33 |
--------------------------------------------------------------------------------
/Assets/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c71fc6f4145e23e4eaa8763f34681a3a
3 | folderAsset: yes
4 | timeCreated: 1509127138
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Prefabs/Bar Spectrum Cube.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1143285611701888}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1143285611701888
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4620026278452056}
22 | - component: {fileID: 33364499364152282}
23 | - component: {fileID: 65931422964808166}
24 | - component: {fileID: 23521452415898532}
25 | - component: {fileID: 114977533371762004}
26 | - component: {fileID: 114186006647847878}
27 | m_Layer: 0
28 | m_Name: Bar Spectrum Cube
29 | m_TagString: Untagged
30 | m_Icon: {fileID: 0}
31 | m_NavMeshLayer: 0
32 | m_StaticEditorFlags: 0
33 | m_IsActive: 1
34 | --- !u!4 &4620026278452056
35 | Transform:
36 | m_ObjectHideFlags: 1
37 | m_PrefabParentObject: {fileID: 0}
38 | m_PrefabInternal: {fileID: 100100000}
39 | m_GameObject: {fileID: 1143285611701888}
40 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
41 | m_LocalPosition: {x: 0, y: 0, z: 0}
42 | m_LocalScale: {x: 0.2, y: 0.2, z: 0.2}
43 | m_Children: []
44 | m_Father: {fileID: 0}
45 | m_RootOrder: 0
46 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
47 | --- !u!23 &23521452415898532
48 | MeshRenderer:
49 | m_ObjectHideFlags: 1
50 | m_PrefabParentObject: {fileID: 0}
51 | m_PrefabInternal: {fileID: 100100000}
52 | m_GameObject: {fileID: 1143285611701888}
53 | m_Enabled: 1
54 | m_CastShadows: 1
55 | m_ReceiveShadows: 1
56 | m_DynamicOccludee: 1
57 | m_MotionVectors: 1
58 | m_LightProbeUsage: 1
59 | m_ReflectionProbeUsage: 1
60 | m_Materials:
61 | - {fileID: 2100000, guid: 320b400d4a179e24d9a44605f328fb90, type: 2}
62 | m_StaticBatchInfo:
63 | firstSubMesh: 0
64 | subMeshCount: 0
65 | m_StaticBatchRoot: {fileID: 0}
66 | m_ProbeAnchor: {fileID: 0}
67 | m_LightProbeVolumeOverride: {fileID: 0}
68 | m_ScaleInLightmap: 1
69 | m_PreserveUVs: 1
70 | m_IgnoreNormalsForChartDetection: 0
71 | m_ImportantGI: 0
72 | m_StitchLightmapSeams: 0
73 | m_SelectedEditorRenderState: 3
74 | m_MinimumChartSize: 4
75 | m_AutoUVMaxDistance: 0.5
76 | m_AutoUVMaxAngle: 89
77 | m_LightmapParameters: {fileID: 0}
78 | m_SortingLayerID: 0
79 | m_SortingLayer: 0
80 | m_SortingOrder: 0
81 | --- !u!33 &33364499364152282
82 | MeshFilter:
83 | m_ObjectHideFlags: 1
84 | m_PrefabParentObject: {fileID: 0}
85 | m_PrefabInternal: {fileID: 100100000}
86 | m_GameObject: {fileID: 1143285611701888}
87 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
88 | --- !u!65 &65931422964808166
89 | BoxCollider:
90 | m_ObjectHideFlags: 1
91 | m_PrefabParentObject: {fileID: 0}
92 | m_PrefabInternal: {fileID: 100100000}
93 | m_GameObject: {fileID: 1143285611701888}
94 | m_Material: {fileID: 0}
95 | m_IsTrigger: 0
96 | m_Enabled: 1
97 | serializedVersion: 2
98 | m_Size: {x: 1, y: 1, z: 1}
99 | m_Center: {x: 0, y: 0, z: 0}
100 | --- !u!114 &114186006647847878
101 | MonoBehaviour:
102 | m_ObjectHideFlags: 1
103 | m_PrefabParentObject: {fileID: 0}
104 | m_PrefabInternal: {fileID: 100100000}
105 | m_GameObject: {fileID: 1143285611701888}
106 | m_Enabled: 1
107 | m_EditorHideFlags: 0
108 | m_Script: {fileID: 11500000, guid: 1e23875de3f875c47b6b582670277d87, type: 3}
109 | m_Name:
110 | m_EditorClassIdentifier:
111 | AudioVisualizationStrategy: 1
112 | AudioSampleIndex: 0
113 | MinIntensity: 0.1
114 | IntensityScale: 0.4
115 | MinEmissionIntensity: 0.1
116 | EmissionIntensityScale: 0.4
117 | --- !u!114 &114977533371762004
118 | MonoBehaviour:
119 | m_ObjectHideFlags: 1
120 | m_PrefabParentObject: {fileID: 0}
121 | m_PrefabInternal: {fileID: 100100000}
122 | m_GameObject: {fileID: 1143285611701888}
123 | m_Enabled: 1
124 | m_EditorHideFlags: 0
125 | m_Script: {fileID: 11500000, guid: f13a833d6049fab4d88af257d9e74d75, type: 3}
126 | m_Name:
127 | m_EditorClassIdentifier:
128 | AudioVisualizationStrategy: 1
129 | AudioSampleIndex: 0
130 | ScaleIntensity: {x: 0, y: 1, z: 0}
131 |
--------------------------------------------------------------------------------
/Assets/Prefabs/Bar Spectrum Cube.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6e62b12bf802d264fbf867ae4db46dfd
3 | timeCreated: 1509127148
4 | licenseType: Free
5 | NativeFormatImporter:
6 | externalObjects: {}
7 | mainObjectFileID: 100100000
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1a35acdc62fe9fa40b7389c77d7b2451
3 | folderAsset: yes
4 | timeCreated: 1509125388
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Scripts/Audio.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8f79d55f29b39c5448aff4d83851e45e
3 | folderAsset: yes
4 | timeCreated: 1509125408
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Scripts/Audio/AudioVisualizationStrategy.cs:
--------------------------------------------------------------------------------
1 | namespace Assets.Scripts.Audio
2 | {
3 | public enum AudioVisualizationStrategy
4 | {
5 | Raw,
6 | PostScaled,
7 | PostScaledMinMax,
8 | PostScaledMax,
9 | PostScaledEnergy
10 | }
11 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Audio/AudioVisualizationStrategy.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6193d1efd822074a8aca40edcf4921c
3 | timeCreated: 1509203286
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Assets/Scripts/Audio/BasicSpectrumProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using CSCore.DSP;
4 |
5 | namespace Assets.Scripts.Audio
6 | {
7 | ///
8 | /// BasicSpectrumProvider
9 | ///
10 | public class BasicSpectrumProvider : FftProvider, ISpectrumProvider
11 | {
12 | private readonly int _sampleRate;
13 | private readonly List