From e30daa57d97e8a22ee23b8771d32d1db1e3af12d Mon Sep 17 00:00:00 2001 From: Chikashi Miyama Date: Sun, 29 Sep 2019 12:00:16 +0200 Subject: [PATCH] refactor spectrum viewer --- UnityProject/Assembly-CSharp-Editor.csproj | 4 +- UnityProject/Assembly-CSharp.csproj | 2 +- UnityProject/Assets/Editor/PdBindEditor.cs | 104 ------ .../Assets/Editor/PdSpectrumBindEditor.cs | 64 ++++ ...r.cs.meta => PdSpectrumBindEditor.cs.meta} | 0 .../Assets/Editor/RectangularSelection.cs | 52 +++ .../Editor/RectangularSelection.cs.meta | 3 + .../Assets/Editor/SpectrumGenerator.cs | 42 +++ .../Assets/Editor/SpectrumGenerator.cs.meta | 3 + .../PdBackendDemo/PdBackendDemo.unity | 77 +++++ .../Assets/Scripts/PdConnection/PdBackend.cs | 2 +- .../Assets/Scripts/PdConnection/PdBind.cs | 12 - .../Scripts/PdConnection/PdSpectrumBind.cs | 31 ++ ...{PdBind.cs.meta => PdSpectrumBind.cs.meta} | 0 .../StreamingAssets/pd/patch/analyzer.pd | 301 +++++++++++++----- .../pd/patch/{levelwriter.pd => core.pd} | 3 + .../{levelwriter.pd.meta => core.pd.meta} | 2 +- .../Assets/StreamingAssets/pd/patch/count.pd | 14 + .../StreamingAssets/pd/patch/count.pd.meta | 7 + .../StreamingAssets/pd/patch/spectrum.pd | 20 ++ .../StreamingAssets/pd/patch/spectrum.pd.meta | 7 + 21 files changed, 550 insertions(+), 200 deletions(-) delete mode 100644 UnityProject/Assets/Editor/PdBindEditor.cs create mode 100644 UnityProject/Assets/Editor/PdSpectrumBindEditor.cs rename UnityProject/Assets/Editor/{PdBindEditor.cs.meta => PdSpectrumBindEditor.cs.meta} (100%) create mode 100644 UnityProject/Assets/Editor/RectangularSelection.cs create mode 100644 UnityProject/Assets/Editor/RectangularSelection.cs.meta create mode 100644 UnityProject/Assets/Editor/SpectrumGenerator.cs create mode 100644 UnityProject/Assets/Editor/SpectrumGenerator.cs.meta delete mode 100644 UnityProject/Assets/Scripts/PdConnection/PdBind.cs create mode 100644 UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs rename UnityProject/Assets/Scripts/PdConnection/{PdBind.cs.meta => PdSpectrumBind.cs.meta} (100%) rename UnityProject/Assets/StreamingAssets/pd/patch/{levelwriter.pd => core.pd} (74%) rename UnityProject/Assets/StreamingAssets/pd/patch/{levelwriter.pd.meta => core.pd.meta} (74%) create mode 100644 UnityProject/Assets/StreamingAssets/pd/patch/count.pd create mode 100644 UnityProject/Assets/StreamingAssets/pd/patch/count.pd.meta create mode 100644 UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd create mode 100644 UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd.meta diff --git a/UnityProject/Assembly-CSharp-Editor.csproj b/UnityProject/Assembly-CSharp-Editor.csproj index e177087..27c3759 100644 --- a/UnityProject/Assembly-CSharp-Editor.csproj +++ b/UnityProject/Assembly-CSharp-Editor.csproj @@ -60,8 +60,10 @@ - + + + diff --git a/UnityProject/Assembly-CSharp.csproj b/UnityProject/Assembly-CSharp.csproj index 2a7c8af..06c41ef 100644 --- a/UnityProject/Assembly-CSharp.csproj +++ b/UnityProject/Assembly-CSharp.csproj @@ -62,8 +62,8 @@ - + diff --git a/UnityProject/Assets/Editor/PdBindEditor.cs b/UnityProject/Assets/Editor/PdBindEditor.cs deleted file mode 100644 index eae664c..0000000 --- a/UnityProject/Assets/Editor/PdBindEditor.cs +++ /dev/null @@ -1,104 +0,0 @@ -using UnityEngine; -using UnityEditor; -using Random = UnityEngine.Random; - -namespace cylvester -{ - - [CustomEditor(typeof(PdBind))] - class PdBindEditor : UnityEditor.Editor - { - - private int selectedSpectrum_; - private Texture2D texture_; - private readonly string[] channels = { - "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" - }; - - private Rect paintSpace_; - private Rect selectedArea_; - private Rect scaledRect_; - - public void OnEnable() - { - texture_ = new Texture2D(256, 256); - } - - public override void OnInspectorGUI() - { - var backend = (PdBackend)target; - if (Event.current.isMouse && Event.current.button == 0) - { - switch (Event.current.type) - { - case EventType.MouseDown: - { - var mousePos = Event.current.mousePosition; - selectedArea_.x = mousePos.x; - selectedArea_.y = mousePos.y; - break; - } - case EventType.MouseDrag: - { - var mousePos = Event.current.mousePosition; - selectedArea_.width = mousePos.x - selectedArea_.x; - selectedArea_.height = mousePos.y - selectedArea_.y; - UpdateScaledRect(); - break; - } - } - } - - GUILayout.Label("PureData Inputs", EditorStyles.boldLabel); - - selectedSpectrum_ = EditorGUILayout.Popup("Input Channel", selectedSpectrum_, channels); - GUILayout.Space(30); - GUILayout.Label("Spectrum Extractor", EditorStyles.boldLabel); - - var paintSpace = GUILayoutUtility.GetRect(256, 512, 256, 256); - if (Event.current.type == EventType.Repaint) - { - paintSpace_ = paintSpace; - RenderTexture(); - GUI.DrawTexture(paintSpace_, texture_); - } - - Repaint(); - } - - private void RenderTexture() - { - for (var y = 0; y < texture_.height; y++) - { - for (var x = 0; x < texture_.width; x++) - { - var alpha = 0.4f; - if ((scaledRect_.x < x && x < (scaledRect_.x + scaledRect_.width)) && - (scaledRect_.y < y && y < (scaledRect_.y + scaledRect_.height))) - { - alpha = 1f; - } - var color = new Color(Random.value, Random.value, Random.value, alpha); - texture_.SetPixel(x, 256-y, color); - } - } - texture_.Apply(); - } - - - private void UpdateScaledRect() - { - var xPos = (selectedArea_.x - paintSpace_.x) / paintSpace_.width; - var yPos = (selectedArea_.y - paintSpace_.y) / paintSpace_.height; - var width = selectedArea_.width / paintSpace_.width; - var height = selectedArea_.height / paintSpace_.height; - - scaledRect_.x = xPos * texture_.width; - scaledRect_.y = yPos * texture_.height; - scaledRect_.width = width * texture_.width; - scaledRect_.height = height * texture_.height; - - Debug.Log(scaledRect_); - } - } -} diff --git a/UnityProject/Assets/Editor/PdSpectrumBindEditor.cs b/UnityProject/Assets/Editor/PdSpectrumBindEditor.cs new file mode 100644 index 0000000..6b04cd4 --- /dev/null +++ b/UnityProject/Assets/Editor/PdSpectrumBindEditor.cs @@ -0,0 +1,64 @@ +using UnityEngine; +using UnityEditor; + +namespace cylvester +{ + [CustomEditor(typeof(PdSpectrumBind))] + class PdSpectrumBindEditor : Editor + { + private const int TextureWidth = 512; + private const int TextureHeight = 256; + private readonly string[] channels = { + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" + }; + private int selectedSpectrum_; + private ISpectrumGenerator spectrumGenerator_; + private IRectangularSelection rectangularSelection_; + private Rect paintSpace_; + + public void OnEnable() + { + spectrumGenerator_ = new SpectrumGenerator(TextureWidth, TextureHeight); + rectangularSelection_ = new RectangularSelection(ref paintSpace_, TextureWidth, TextureHeight); + } + + public override void OnInspectorGUI() + { + var behaviour = (PdSpectrumBind)target; + + + if (Event.current.isMouse && Event.current.button == 0) + { + switch (Event.current.type) + { + case EventType.MouseDown: + { + rectangularSelection_.Start(Event.current.mousePosition); + break; + } + case EventType.MouseDrag: + { + rectangularSelection_.Update(Event.current.mousePosition); + break; + } + } + } + + GUILayout.Label("PureData Inputs", EditorStyles.boldLabel); + + selectedSpectrum_ = EditorGUILayout.Popup("Input Channel", selectedSpectrum_, channels); + GUILayout.Space(5); + GUILayout.Label("Spectrum Extractor", EditorStyles.boldLabel); + + var paintSpace = GUILayoutUtility.GetRect(TextureHeight, TextureWidth, TextureHeight, TextureHeight); + if (Event.current.type == EventType.Repaint) + { + paintSpace_ = paintSpace; + spectrumGenerator_.Update(ref rectangularSelection_.Selection); + GUI.DrawTexture(paintSpace_, spectrumGenerator_.Spectrum); + } + + Repaint(); + } + } +} diff --git a/UnityProject/Assets/Editor/PdBindEditor.cs.meta b/UnityProject/Assets/Editor/PdSpectrumBindEditor.cs.meta similarity index 100% rename from UnityProject/Assets/Editor/PdBindEditor.cs.meta rename to UnityProject/Assets/Editor/PdSpectrumBindEditor.cs.meta diff --git a/UnityProject/Assets/Editor/RectangularSelection.cs b/UnityProject/Assets/Editor/RectangularSelection.cs new file mode 100644 index 0000000..1ea1d73 --- /dev/null +++ b/UnityProject/Assets/Editor/RectangularSelection.cs @@ -0,0 +1,52 @@ +using UnityEngine; + +namespace cylvester +{ + interface IRectangularSelection + { + ref Rect Selection { get; } + + void Start(Vector2 mousePosition); + void Update(Vector2 mousePosition); + } + + public class RectangularSelection : IRectangularSelection + { + private readonly Rect paintSpace_; + + private Rect selectedArea_; + private Rect selectionRect_; + private readonly int textureWidth_; + private readonly int textureHeight_; + + public ref Rect Selection => ref selectionRect_; + + public RectangularSelection(ref Rect paintSpace, int textureWidth, int textureHeight) + { + paintSpace_ = paintSpace; + textureWidth_ = textureWidth; + textureHeight_ = textureHeight; + } + + public void Start(Vector2 mousePosition) + { + selectedArea_.x = mousePosition.x; + selectedArea_.y = mousePosition.y; + } + + public void Update(Vector2 mousePosition) + { + selectedArea_.width = mousePosition.x - selectedArea_.x; + selectedArea_.height = mousePosition.y - selectedArea_.y; + var xPos = (selectedArea_.x - paintSpace_.x) / paintSpace_.width; + var yPos = (selectedArea_.y - paintSpace_.y) / paintSpace_.height; + var width = selectedArea_.width / paintSpace_.width; + var height = selectedArea_.height / paintSpace_.height; + + selectionRect_.x = xPos * textureWidth_; + selectionRect_.y = yPos * textureHeight_; + selectionRect_.width = width * textureWidth_; + selectionRect_.height = height * textureHeight_; + } + } +} \ No newline at end of file diff --git a/UnityProject/Assets/Editor/RectangularSelection.cs.meta b/UnityProject/Assets/Editor/RectangularSelection.cs.meta new file mode 100644 index 0000000..cc33292 --- /dev/null +++ b/UnityProject/Assets/Editor/RectangularSelection.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 422a7a65df524b57bacf009a035444c7 +timeCreated: 1569749893 \ No newline at end of file diff --git a/UnityProject/Assets/Editor/SpectrumGenerator.cs b/UnityProject/Assets/Editor/SpectrumGenerator.cs new file mode 100644 index 0000000..c272682 --- /dev/null +++ b/UnityProject/Assets/Editor/SpectrumGenerator.cs @@ -0,0 +1,42 @@ +using UnityEngine; + +namespace cylvester +{ + interface ISpectrumGenerator + { + Texture2D Spectrum { get; } + void Update(ref Rect selectionRect); + } + + public class SpectrumGenerator : ISpectrumGenerator + { + private Texture2D texture_; + private readonly int height_; + public Texture2D Spectrum => texture_; + + public SpectrumGenerator(int width, int height) + { + texture_ = new Texture2D(width, height); + height_ = height; + } + + public void Update(ref Rect selectionRect) + { + for (var y = 0; y < texture_.height; y++) + { + for (var x = 0; x < texture_.width; x++) + { + var alpha = 0.4f; + if ((selectionRect.x < x && x < (selectionRect.x + selectionRect.width)) && + (selectionRect.y < y && y < (selectionRect.y + selectionRect.height))) + { + alpha = 1f; + } + var color = new Color(Random.value, Random.value, Random.value, alpha); + texture_.SetPixel(x, height_-y, color); + } + } + texture_.Apply(); + } + } +} \ No newline at end of file diff --git a/UnityProject/Assets/Editor/SpectrumGenerator.cs.meta b/UnityProject/Assets/Editor/SpectrumGenerator.cs.meta new file mode 100644 index 0000000..625f263 --- /dev/null +++ b/UnityProject/Assets/Editor/SpectrumGenerator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b9ec12d2c1d14323b612b07799422f5a +timeCreated: 1569749431 \ No newline at end of file diff --git a/UnityProject/Assets/Scenes/Examples/PdBackendDemo/PdBackendDemo.unity b/UnityProject/Assets/Scenes/Examples/PdBackendDemo/PdBackendDemo.unity index cdcf8f9..63ea294 100644 --- a/UnityProject/Assets/Scenes/Examples/PdBackendDemo/PdBackendDemo.unity +++ b/UnityProject/Assets/Scenes/Examples/PdBackendDemo/PdBackendDemo.unity @@ -112,6 +112,83 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &127705016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 127705019} + - component: {fileID: 127705018} + - component: {fileID: 127705017} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &127705017 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127705016} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &127705018 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127705016} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &127705019 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127705016} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.8635645, y: -4.5257893, z: 12.978625} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &267275365 GameObject: m_ObjectHideFlags: 0 diff --git a/UnityProject/Assets/Scripts/PdConnection/PdBackend.cs b/UnityProject/Assets/Scripts/PdConnection/PdBackend.cs index 9ec83f2..9b4668f 100644 --- a/UnityProject/Assets/Scripts/PdConnection/PdBackend.cs +++ b/UnityProject/Assets/Scripts/PdConnection/PdBackend.cs @@ -13,7 +13,7 @@ namespace cylvester [ExecuteInEditMode] public class PdBackend : MonoBehaviour, IPdBackend { - [SerializeField] string mainPatch; + [SerializeField] string mainPatch = ""; [SerializeField] int inchannels = 2; private Action onToggled_; diff --git a/UnityProject/Assets/Scripts/PdConnection/PdBind.cs b/UnityProject/Assets/Scripts/PdConnection/PdBind.cs deleted file mode 100644 index 54d337c..0000000 --- a/UnityProject/Assets/Scripts/PdConnection/PdBind.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine; - -namespace cylvester -{ - public class PdBind : MonoBehaviour - { - private void Start() - { - - } - } -} \ No newline at end of file diff --git a/UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs b/UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs new file mode 100644 index 0000000..b985f1d --- /dev/null +++ b/UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace cylvester +{ + public interface IPdSpectrumBind + { + float TrimmedEnergy { get; } + } + + public class PdSpectrumBind : MonoBehaviour, IPdSpectrumBind + { + public int channel; + public int startBin; + public int endBin; + [SerializeField] private float topClip; + [SerializeField] private float bottomClip; + [SerializeField] private float trimmedEnergy = 0f; + + public float TrimmedEnergy => trimmedEnergy; + + private void Start() + { + + } + + private void Update() + { + + } + } +} \ No newline at end of file diff --git a/UnityProject/Assets/Scripts/PdConnection/PdBind.cs.meta b/UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs.meta similarity index 100% rename from UnityProject/Assets/Scripts/PdConnection/PdBind.cs.meta rename to UnityProject/Assets/Scripts/PdConnection/PdSpectrumBind.cs.meta diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/analyzer.pd b/UnityProject/Assets/StreamingAssets/pd/patch/analyzer.pd index b997bdd..a0b9edb 100644 --- a/UnityProject/Assets/StreamingAssets/pd/patch/analyzer.pd +++ b/UnityProject/Assets/StreamingAssets/pd/patch/analyzer.pd @@ -1,26 +1,19 @@ -#N canvas 646 421 694 441 10; -#X msg 294 172 \; pd dsp 1; -#X obj 359 49 loadbang; +#N canvas 550 301 727 406 10; +#X msg 307 54 \; pd dsp 1; +#X obj 187 61 loadbang; #X obj 80 273 adc~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; -#N canvas 1223 661 730 390 levelmeter______________________________ +#N canvas 0 50 450 250 (subpatch) 0; +#X array loop 211681 float 2; +#X coords 0 1 211681 -1 200 140 1 0 0; +#X restore 446 219 graph; +#X obj 274 146 soundfiler; +#X msg 269 109 read -resize drumloop.wav loop; +#X obj 6 318 dac~, f 6; +#X obj 31 228 tabplay~ loop; +#X obj 30 179 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#N canvas 1194 597 730 390 analyzers_______________________________ 0; -#X obj 109 321 table levelmeters 16; -#X obj 96 181 levelwriter 0; -#X obj 120 204 levelwriter 1; -#X obj 149 226 levelwriter 2; -#X obj 173 249 levelwriter 3; -#X obj 199 182 levelwriter 4; -#X obj 224 205 levelwriter 5; -#X obj 252 227 levelwriter 6; -#X obj 277 250 levelwriter 7; -#X obj 300 183 levelwriter 8; -#X obj 324 206 levelwriter 9; -#X obj 353 228 levelwriter 10; -#X obj 377 251 levelwriter 11; -#X obj 403 184 levelwriter 12; -#X obj 428 207 levelwriter 13; -#X obj 457 229 levelwriter 14; -#X obj 481 252 levelwriter 15; #X obj 95 44 inlet~; #X obj 119 69 inlet~; #X obj 148 96 inlet~; @@ -37,65 +30,213 @@ #X obj 425 80 inlet~; #X obj 454 111 inlet~; #X obj 478 132 inlet~; -#X connect 17 0 1 0; -#X connect 18 0 2 0; -#X connect 19 0 3 0; -#X connect 20 0 4 0; -#X connect 21 0 5 0; -#X connect 22 0 6 0; -#X connect 23 0 7 0; -#X connect 24 0 8 0; -#X connect 25 0 9 0; -#X connect 26 0 10 0; -#X connect 27 0 11 0; -#X connect 28 0 12 0; -#X connect 29 0 13 0; -#X connect 30 0 14 0; -#X connect 31 0 15 0; -#X connect 32 0 16 0; -#X restore 79 309 pd levelmeter______________________________; -#X obj 63 167 shmem levelmeters 16; -#X obj 63 108 metro 50; -#X obj 58 19 loadbang; -#X obj 66 79 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1 -; -#X msg 64 50 1; -#N canvas 0 50 450 250 (subpatch) 0; -#X array loop 211681 float 2; -#X coords 0 1 211681 -1 200 140 1 0 0; -#X restore 446 219 graph; -#X obj 446 134 soundfiler; -#X msg 441 97 read -resize drumloop.wav loop; -#X obj 6 318 dac~, f 6; -#X obj 31 228 tabplay~ loop; -#X obj 30 179 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 --1; +#X obj 96 183 core 0; +#X obj 120 204 core 1; +#X obj 149 226 core 2; +#X obj 173 249 core 3; +#X obj 199 182 core 4; +#X obj 225 205 core 5; +#X obj 252 227 core 6; +#X obj 277 250 core 7; +#X obj 300 183 core 8; +#X obj 324 206 core 9; +#X obj 354 228 core 10; +#X obj 377 251 core 11; +#X obj 403 184 core 12; +#X obj 428 207 core 13; +#X obj 457 229 core 14; +#X obj 481 252 core 15; +#X connect 0 0 16 0; +#X connect 1 0 17 0; +#X connect 2 0 18 0; +#X connect 3 0 19 0; +#X connect 4 0 20 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 7 0 23 0; +#X connect 8 0 24 0; +#X connect 9 0 25 0; +#X connect 10 0 26 0; +#X connect 11 0 27 0; +#X connect 12 0 28 0; +#X connect 13 0 29 0; +#X connect 14 0 30 0; +#X connect 15 0 31 0; +#X restore 80 309 pd analyzers_______________________________; +#X obj 46 26 bang~; +#X obj 46 49 count 16; +#X obj 46 76 sel 0; +#X obj 46 102 s shmemupdate; +#N canvas 0 50 450 300 shmems 0; +#X obj 45 78 shmem levelmeters 16; +#X obj 45 42 r shmemupdate; +#X obj 42 105 table levelmeters 16; #X connect 1 0 0 0; -#X connect 1 0 11 0; -#X connect 1 0 14 0; -#X connect 2 0 3 0; -#X connect 2 1 3 1; -#X connect 2 2 3 2; -#X connect 2 3 3 3; -#X connect 2 4 3 4; -#X connect 2 5 3 5; -#X connect 2 6 3 6; -#X connect 2 7 3 7; -#X connect 2 8 3 8; -#X connect 2 9 3 9; -#X connect 2 10 3 10; -#X connect 2 11 3 11; -#X connect 2 12 3 12; -#X connect 2 13 3 13; -#X connect 2 14 3 14; -#X connect 2 15 3 15; +#X restore 608 25 pd shmems; +#N canvas 763 290 686 441 window 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array hann 1024 float 1; +#A 0 0 1.88351e-005 3.76403e-005 9.41157e-005 0.000150591 0.000244677 +0.000338793 0.000470519 0.000602275 0.000771612 0.000940949 0.00114787 +0.00135478 0.00159925 0.00184369 0.00212568 0.00240764 0.00272709 0.00304651 +0.00340337 0.00376022 0.00415444 0.00454867 0.00498021 0.00541174 0.00588053 +0.0063493 0.00685525 0.00736117 0.0079042 0.00844723 0.0090273 0.00960734 +0.0102243 0.0108413 0.0114951 0.0121489 0.0128395 0.01353 0.0142572 +0.0149843 0.015748 0.0165117 0.0173118 0.0181119 0.0189483 0.0197847 +0.0206572 0.0215298 0.0224383 0.0233469 0.0242914 0.0252359 0.0262161 +0.0271963 0.0282121 0.0292279 0.0302792 0.0313304 0.032417 0.0335035 +0.0346252 0.0357469 0.0369035 0.0380601 0.0392516 0.040443 0.041669 +0.042895 0.0441554 0.0454159 0.0467106 0.0480052 0.0493339 0.0506626 +0.0520252 0.0533877 0.0547839 0.05618 0.0576096 0.0590392 0.060502 +0.0619648 0.0634605 0.0649563 0.0664848 0.0680134 0.0695744 0.0711355 +0.0727288 0.0743222 0.0759476 0.077573 0.0792302 0.0808874 0.0825762 +0.0842649 0.085985 0.0877051 0.0894562 0.0912073 0.0929892 0.0947711 +0.0965835 0.0983959 0.100239 0.102081 0.103954 0.105826 0.107729 0.109631 +0.111563 0.113494 0.115455 0.117416 0.119406 0.121395 0.123413 0.125431 +0.127478 0.129524 0.131598 0.133672 0.135774 0.137876 0.140005 0.142134 +0.14429 0.146446 0.148629 0.150811 0.15302 0.155229 0.157464 0.159699 +0.161959 0.16422 0.166506 0.168792 0.171102 0.173413 0.175748 0.178084 +0.180443 0.182803 0.185186 0.18757 0.189977 0.192384 0.194814 0.197244 +0.199697 0.20215 0.204625 0.2071 0.209598 0.212095 0.214614 0.217133 +0.219674 0.222214 0.224775 0.227337 0.229919 0.2325 0.235102 0.237704 +0.240326 0.242948 0.245589 0.24823 0.25089 0.25355 0.256229 0.258907 +0.261604 0.264301 0.267015 0.26973 0.272462 0.275194 0.277942 0.280691 +0.283457 0.286222 0.289003 0.291785 0.294582 0.297379 0.300191 0.303003 +0.305831 0.308658 0.311499 0.314341 0.317196 0.320052 0.322921 0.32579 +0.328672 0.331555 0.334449 0.337344 0.340252 0.343159 0.346078 0.348997 +0.351927 0.354857 0.357798 0.36074 0.363691 0.366643 0.369605 0.372567 +0.375538 0.37851 0.38149 0.384471 0.38746 0.390449 0.393447 0.396444 +0.399449 0.402455 0.405467 0.40848 0.411499 0.414519 0.417545 0.420571 +0.423603 0.426635 0.429672 0.432709 0.435752 0.438794 0.441842 0.444889 +0.44794 0.450991 0.454046 0.457101 0.460159 0.463218 0.466279 0.46934 +0.472403 0.475466 0.478531 0.481596 0.484663 0.487729 0.490797 0.493864 +0.496932 0.5 0.503068 0.506136 0.509203 0.512271 0.515337 0.518404 +0.521469 0.524534 0.527597 0.53066 0.533721 0.536782 0.539841 0.542899 +0.545954 0.549009 0.55206 0.555111 0.558158 0.561205 0.564248 0.56729 +0.570328 0.573365 0.576397 0.579429 0.582455 0.585481 0.588501 0.59152 +0.594533 0.597545 0.600551 0.603556 0.606553 0.609551 0.61254 0.615529 +0.61851 0.62149 0.624462 0.627433 0.630395 0.633357 0.636308 0.63926 +0.642201 0.645143 0.648073 0.651003 0.653922 0.656841 0.659748 0.662656 +0.66555 0.668445 0.671328 0.67421 0.677079 0.679948 0.682804 0.685659 +0.688501 0.691342 0.694169 0.696997 0.699809 0.702621 0.705418 0.708215 +0.710997 0.713778 0.716543 0.719309 0.722057 0.724806 0.727538 0.73027 +0.732984 0.735699 0.738396 0.741092 0.743771 0.74645 0.74911 0.75177 +0.754411 0.757052 0.759674 0.762295 0.764897 0.767499 0.770081 0.772663 +0.775224 0.777786 0.780326 0.782867 0.785386 0.787905 0.790402 0.7929 +0.795375 0.79785 0.800303 0.802756 0.805186 0.807616 0.810023 0.812431 +0.814814 0.817197 0.819557 0.821916 0.824252 0.826587 0.828898 0.831209 +0.833494 0.83578 0.838041 0.840301 0.842536 0.844771 0.84698 0.849189 +0.851372 0.853554 0.85571 0.857866 0.859995 0.862124 0.864226 0.866328 +0.868402 0.870476 0.872523 0.874569 0.876587 0.878605 0.880595 0.882584 +0.884545 0.886506 0.888438 0.890369 0.892272 0.894174 0.896047 0.897919 +0.899762 0.901605 0.903417 0.905229 0.907011 0.908793 0.910544 0.912295 +0.914015 0.915736 0.917424 0.919113 0.92077 0.922428 0.924053 0.925678 +0.927272 0.928865 0.930426 0.931987 0.933516 0.935044 0.93654 0.938036 +0.939499 0.940961 0.942391 0.94382 0.945217 0.946613 0.947975 0.949338 +0.950667 0.951995 0.95329 0.954585 0.955845 0.957106 0.958332 0.959558 +0.960749 0.96194 0.963097 0.964254 0.965375 0.966497 0.967584 0.96867 +0.969721 0.970773 0.971788 0.972804 0.973784 0.974765 0.975709 0.976654 +0.977562 0.978471 0.979343 0.980216 0.981052 0.981889 0.982689 0.983489 +0.984252 0.985016 0.985743 0.98647 0.987161 0.987852 0.988505 0.989159 +0.989776 0.990393 0.990973 0.991553 0.992096 0.992639 0.993145 0.993651 +0.99412 0.994589 0.99502 0.995452 0.995846 0.99624 0.996597 0.996954 +0.997273 0.997593 0.997874 0.998156 0.998401 0.998645 0.998852 0.999059 +0.999228 0.999398 0.99953 0.999661 0.999755 0.999849 0.999906 0.999962 +0.999981 1 0.999981 0.999962 0.999906 0.999849 0.999755 0.999661 0.999529 +0.999398 0.999228 0.999059 0.998852 0.998645 0.998401 0.998156 0.997874 +0.997592 0.997273 0.996953 0.996596 0.996239 0.995845 0.995451 0.995019 +0.994588 0.994119 0.99365 0.993144 0.992638 0.992095 0.991552 0.990972 +0.990392 0.989775 0.989158 0.988504 0.987851 0.98716 0.986469 0.985742 +0.985015 0.984251 0.983488 0.982687 0.981887 0.981051 0.980215 0.979342 +0.978469 0.977561 0.976652 0.975708 0.974763 0.973783 0.972803 0.971787 +0.970771 0.96972 0.968669 0.967582 0.966495 0.965374 0.964252 0.963095 +0.961939 0.960747 0.959556 0.95833 0.957104 0.955843 0.954583 0.953288 +0.951993 0.950665 0.949336 0.947973 0.946611 0.945215 0.943818 0.942389 +0.940959 0.939496 0.938034 0.936538 0.935042 0.933514 0.931985 0.930424 +0.928863 0.927269 0.925676 0.924051 0.922425 0.920768 0.919111 0.917422 +0.915733 0.914013 0.912293 0.910542 0.908791 0.907009 0.905227 0.903414 +0.901602 0.899759 0.897917 0.896044 0.894171 0.892269 0.890367 0.888435 +0.886503 0.884542 0.882582 0.880592 0.878602 0.876584 0.874566 0.87252 +0.870473 0.868399 0.866325 0.864223 0.862121 0.859992 0.857863 0.855707 +0.853551 0.851368 0.849186 0.846977 0.844768 0.842533 0.840298 0.838037 +0.835777 0.833491 0.831205 0.828895 0.826584 0.824249 0.821913 0.819554 +0.817194 0.814811 0.812427 0.81002 0.807613 0.805183 0.802753 0.8003 +0.797847 0.795372 0.792896 0.790399 0.787901 0.785382 0.782863 0.780323 +0.777782 0.775221 0.77266 0.770078 0.767496 0.764894 0.762292 0.75967 +0.757048 0.754407 0.751766 0.749106 0.746446 0.743767 0.741089 0.738392 +0.735695 0.732981 0.730266 0.727534 0.724802 0.722054 0.719305 0.71654 +0.713774 0.710993 0.708211 0.705414 0.702617 0.699805 0.696993 0.694165 +0.691338 0.688497 0.685655 0.6828 0.679944 0.677075 0.674206 0.671324 +0.668441 0.665546 0.662652 0.659744 0.656837 0.653918 0.650999 0.648069 +0.645139 0.642197 0.639256 0.636304 0.633353 0.630391 0.627429 0.624458 +0.621486 0.618506 0.615525 0.612536 0.609547 0.606549 0.603552 0.600546 +0.597541 0.594529 0.591516 0.588496 0.585477 0.582451 0.579425 0.576393 +0.573361 0.570324 0.567286 0.564244 0.561201 0.558154 0.555107 0.552056 +0.549004 0.545949 0.542894 0.539836 0.536778 0.533717 0.530656 0.527593 +0.52453 0.521464 0.518399 0.515333 0.512266 0.509199 0.506131 0.503064 +0.499996 0.496928 0.49386 0.490792 0.487725 0.484659 0.481592 0.478527 +0.475462 0.472399 0.469335 0.466274 0.463213 0.460155 0.457097 0.454042 +0.450987 0.447936 0.444884 0.441837 0.43879 0.435748 0.432705 0.429668 +0.42663 0.423598 0.420566 0.417541 0.414515 0.411495 0.408476 0.405463 +0.40245 0.399445 0.39644 0.393442 0.390445 0.387456 0.384466 0.381486 +0.378505 0.375534 0.372563 0.369601 0.366639 0.363687 0.360736 0.357794 +0.354853 0.351923 0.348993 0.346074 0.343155 0.340247 0.33734 0.334445 +0.331551 0.328668 0.325786 0.322917 0.320048 0.317192 0.314337 0.311495 +0.308654 0.305827 0.302999 0.300187 0.297375 0.294578 0.291781 0.288999 +0.286218 0.283453 0.280687 0.277939 0.27519 0.272458 0.269726 0.267012 +0.264297 0.2616 0.258904 0.256225 0.253547 0.250886 0.248226 0.245585 +0.242944 0.240323 0.237701 0.235099 0.232497 0.229915 0.227333 0.224772 +0.222211 0.21967 0.21713 0.214611 0.212092 0.209594 0.207097 0.204622 +0.202146 0.199693 0.19724 0.19481 0.19238 0.189973 0.187566 0.185183 +0.182799 0.18044 0.17808 0.175745 0.17341 0.171099 0.168788 0.166502 +0.164217 0.161956 0.159696 0.157461 0.155226 0.153017 0.150808 0.148625 +0.146443 0.144287 0.142131 0.140002 0.137873 0.135771 0.133669 0.131595 +0.129521 0.127474 0.125428 0.12341 0.121392 0.119402 0.117413 0.115452 +0.113491 0.11156 0.109628 0.107726 0.105823 0.103951 0.102078 0.100236 +0.0983929 0.0965805 0.0947681 0.0929862 0.0912043 0.0894532 0.0877021 +0.0859821 0.084262 0.0825733 0.0808845 0.0792273 0.0775701 0.0759448 +0.0743194 0.0727261 0.0711327 0.0695717 0.0680107 0.0664822 0.0649537 +0.0634579 0.0619622 0.0604994 0.0590366 0.0576071 0.0561775 0.0547814 +0.0533852 0.0520227 0.0506602 0.0493315 0.0480028 0.0467082 0.0454136 +0.0441532 0.0428927 0.0416667 0.0404407 0.0392494 0.038058 0.0369014 +0.0357447 0.0346231 0.0335014 0.0324149 0.0313284 0.0302772 0.0292259 +0.0282102 0.0271944 0.0262142 0.025234 0.0242896 0.0233451 0.0224366 +0.0215281 0.0206555 0.019783 0.0189467 0.0181103 0.0173103 0.0165102 +0.0157465 0.0149829 0.0142557 0.0135286 0.0128381 0.0121476 0.0114938 +0.01084 0.0102231 0.00960615 0.00902611 0.0084461 0.0079031 0.0073601 +0.00685418 0.00634828 0.00587955; +#A 1000 0.00541082 0.00497931 0.00454783 0.00415364 0.00375944 0.00340265 +0.00304583 0.00272644 0.00240701 0.00212508 0.00184315 0.00159872 0.00135431 +0.00114745 0.000940561 0.000771254 0.000601947 0.000470281 0.000338584 +0.000244498 0.000150442 9.39965e-005 3.75807e-005 1.87755e-005; +#X coords 0 1 1023 0 300 100 1 0 0; +#X restore 39 32 graph; +#X restore 611 47 pd window; +#X connect 1 0 0 0; +#X connect 1 0 5 0; +#X connect 1 0 8 0; +#X connect 2 0 9 0; +#X connect 2 1 9 1; +#X connect 2 2 9 2; +#X connect 2 3 9 3; +#X connect 2 4 9 4; +#X connect 2 5 9 5; +#X connect 2 6 9 6; +#X connect 2 7 9 7; +#X connect 2 8 9 8; +#X connect 2 9 9 9; +#X connect 2 10 9 10; +#X connect 2 11 9 11; +#X connect 2 12 9 12; +#X connect 2 13 9 13; +#X connect 2 14 9 14; +#X connect 2 15 9 15; #X connect 5 0 4 0; -#X connect 6 0 8 0; -#X connect 7 0 5 0; +#X connect 7 0 6 1; +#X connect 7 0 6 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; #X connect 8 0 7 0; -#X connect 11 0 10 0; -#X connect 13 0 12 1; -#X connect 13 0 12 0; -#X connect 13 0 3 0; -#X connect 13 1 14 0; -#X connect 14 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd b/UnityProject/Assets/StreamingAssets/pd/patch/core.pd similarity index 74% rename from UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd rename to UnityProject/Assets/StreamingAssets/pd/patch/core.pd index 3fe2d81..03a019d 100644 --- a/UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd +++ b/UnityProject/Assets/StreamingAssets/pd/patch/core.pd @@ -4,7 +4,10 @@ #X obj 162 153 loadbang; #X obj 167 201 f \$1; #X obj 57 239 tabwrite levelmeters; +#X obj 85 135 spectrum \$1; +#X obj 229 240 table fft_\$1 512; #X connect 0 0 4 0; #X connect 1 0 0 0; +#X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 1; diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd.meta b/UnityProject/Assets/StreamingAssets/pd/patch/core.pd.meta similarity index 74% rename from UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd.meta rename to UnityProject/Assets/StreamingAssets/pd/patch/core.pd.meta index 90dc964..a5ad7cd 100644 --- a/UnityProject/Assets/StreamingAssets/pd/patch/levelwriter.pd.meta +++ b/UnityProject/Assets/StreamingAssets/pd/patch/core.pd.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ce1d1fba9496a6f45ac752b4d01ef632 +guid: ffeec6b2f4ee66447a818305fd0fd53c DefaultImporter: externalObjects: {} userData: diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/count.pd b/UnityProject/Assets/StreamingAssets/pd/patch/count.pd new file mode 100644 index 0000000..fea5cb3 --- /dev/null +++ b/UnityProject/Assets/StreamingAssets/pd/patch/count.pd @@ -0,0 +1,14 @@ +#N canvas 1383 500 450 449 10; +#X obj 76 96 inlet; +#X obj 166 145 + 1; +#X obj 76 149 f 0; +#X obj 76 242 sel \$1; +#X msg 178 210 0, f 11; +#X obj 5 292 outlet; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 1; diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/count.pd.meta b/UnityProject/Assets/StreamingAssets/pd/patch/count.pd.meta new file mode 100644 index 0000000..14f8580 --- /dev/null +++ b/UnityProject/Assets/StreamingAssets/pd/patch/count.pd.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6459c895fc8fc584197b481bb701000e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd b/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd new file mode 100644 index 0000000..d1799fd --- /dev/null +++ b/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd @@ -0,0 +1,20 @@ +#N canvas 1959 406 681 467 10; +#X obj 38 30 inlet~; +#X obj 45 134 rfft~; +#X obj 45 186 *~; +#X obj 82 186 *~; +#X obj 45 226 q8_sqrt~; +#X obj 169 96 block~ 1024 1 1; +#X obj 102 58 tabreceive~ hann; +#X obj 76 92 *~; +#X obj 45 266 tabsend~ fft_\$1; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 1 0 2 1; +#X connect 1 1 3 0; +#X connect 1 1 3 1; +#X connect 2 0 4 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 6 0 7 1; +#X connect 7 0 1 0; diff --git a/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd.meta b/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd.meta new file mode 100644 index 0000000..6206b64 --- /dev/null +++ b/UnityProject/Assets/StreamingAssets/pd/patch/spectrum.pd.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e56e8121fbc616141996c04e582ed74a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: