Пример #1
0
        void Start()
        {
            Application.targetFrameRate = 60;
            c = Constant.CreateDefault();
            ImpulseResponses.LoadAll(c);

            waveAudioClip = WaveAudioClip.CreateWavAudioClip("Bytes/DrumLoop2.wav");
            debugButton.AddButton("Drum1", () =>
            {
                waveAudioClip = WaveAudioClip.CreateWavAudioClip("Bytes/DrumLoop2.wav");
            });
            debugButton.AddButton("Drum2", () =>
            {
                waveAudioClip = WaveAudioClip.CreateWavAudioClip("Bytes/TightFunkBreak-mono.wav");
            });
            debugButton.AddButton("Ochestra\nStrings", () =>
            {
                waveAudioClip = WaveAudioClip.CreateWavAudioClip("Bytes/OchestraStrings-mono.wav");
            });
            debugButton.AddButton("Siren", () =>
            {
                waveAudioClip = WaveAudioClip.CreateWavAudioClip("Bytes/PoliseCarSiren-mono.wav");
            });
            debugButton.AddButton("Stop", () =>
            {
                isPlaying = false;
                audioClipStreamingPlayer.Stop();
            });
            positionCircle.onTouched += OnTouched;
            overlapAddLeft            = new OverlapAdd(c);
            overlapAddRight           = new OverlapAdd(c);
            bufferSample              = new float[c.blockSamples];
            audioClipStreamingPlayer.Initialize(c, this);
        }
Пример #2
0
        /// <summary>
        /// 変換テスト
        /// </summary>
        private void ConvertTest()
        {
            if (!convertTestFlg)
            {
                return;
            }

            float[] x1       = new float[] { 1, 2, 3, 4, 5 };
            float[] x2       = new float[] { 6, 5, 3, 2, 1 };
            float[] impulseX = new float[] { 0.1f, 0.2f, 0.3f, 0.4f };
            float[] ret;

            debugButton.AddButton("ConvertTest", () =>
            {
                var v = new OverlapAdd(Constant.CreateTest());
                v.SetImpulseResponse(impulseX);
                //v.SetIdentifyImpulseResponse();
                v.Convolution(x1);
                ret = v.GetConvolution();

                Debug.Log($"x1 convolution =================================");
                for (int i = 0; i < ret.Length; ++i)
                {
                    Debug.Log($"[{i}]:{ret[i]:0.00}");
                }

                v.Convolution(x2);
                ret = v.GetConvolution();
                Debug.Log($"x2 convolution =================================");
                for (int i = 0; i < ret.Length; ++i)
                {
                    Debug.Log($"[{i}]:{ret[i]:0.00}");
                }

                Debug.Log($"overlap =================================");
                var overlap = v.GetOverlap();
                for (int i = 0; i < overlap.Length; ++i)
                {
                    Debug.Log($"[{i}]:{overlap[i]:0.00}");
                }
            });
        }