VJManager.Start C# (CSharp) Method

Start() private method

private Start ( ) : IEnumerator
return IEnumerator
    IEnumerator Start()
    {
        while (true) {
            if( source && source.clip ) {
                AudioClip ac = source.clip;

                if( rawData == null ) {
                    nSamples = (int) (((float)ac.frequency * analysisWindowSec) * ac.channels);
                    rawData = new float[nSamples];
                }

                if( rawData != null ) {
                    ac.GetData(rawData, source.timeSamples);
                }
                source.GetSpectrumData(rawSpectrum, 0, FFTWindow.BlackmanHarris);
                _ConvertOutputDataToVolumeLevels();
                _ConvertRawSpectrumToBandLevels();
            }
            if( isMicSourceNow != isMicSource ) {
                if(mic) {
                    if(isMicSource) {
                        oldSource = source;
                        source = mic.StartMicrophone();
                        rawData = null;
                        rawVolume = 0.0f;
                    } else {
                        mic.StopMicrophone();
                        source = oldSource;
                        rawData = null;
                        rawVolume = 0.0f;
                    }
                    isMicSourceNow = isMicSource;
                }
            }

            yield return new WaitForSeconds(intervalSec);
        }
    }