void Update()
        {
            float[] spectrum = fftPitchDetector.Spectrum;
            //int formant = 0;
            Color color = Color.red;

            for (int i = 1; i < spectrum.Length - 1; i++)
            {
                GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth + i, transform.position.y - halfCameraHeight + 10, transform.position.z + zPos), new Vector3(transform.position.x - halfCameraWidth + i, transform.position.y - halfCameraHeight + spectrum[i] * magnification + 10, transform.position.z + zPos), color, 0, true);
            }

            //{

            /*if (formant < formantFinder.Formants.Length)
             *  if (i == formantFinder.Formants[formant].LowerBound)
             *      color = Color.yellow;
             *  else if (i - 1 == formantFinder.Formants[formant].HigherBound)
             *  {
             *      color = Color.red;
             *      formant++;
             *  }
             *  else if (i == formantFinder.Formants[formant].Peak)
             *      color = Color.white;
             *  else if (i - 1 == formantFinder.Formants[formant].Peak)
             *      color = Color.yellow;
             */
            //}

            // Draw Noise Line
            //GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight + formantFinder.NoiseLevel * activationThreshold * magnification + 10, transform.position.z + zPos), new Vector3(transform.position.x + halfCameraWidth, transform.position.y - halfCameraHeight + formantFinder.NoiseLevel * activationThreshold * magnification + 10, transform.position.z + zPos), Color.blue, 0, true);

            //vowelText.text = vowelFinder.vowel;
        }
        void Update()
        {
            if (audioPlaying)
            {
                visualiserPoints[visualiserPosition] = microphoneInput.Level;

                //float noiseIntensity = microphoneInput.NoiseIntensity;

                float highest = 0;
                Color color   = Color.white;
                for (int i = 0; i < visualiserPoints.Length; i++)
                {
                    highest = Mathf.Max(highest, visualiserPoints[i]);

                    //if ((pointFeatures[i] & (1 << 0)) != 0)
                    //     color = Color.green;
                    //else if ((pointFeatures[i] & (1 << 1)) != 0)
                    //    color = Color.red;
                    //else
                    color = Color.white;

                    GLDebug.DrawLine(new Vector3(transform.position.x + i - halfCameraWidth, transform.position.y - halfCameraHeight, transform.position.z + zPos), new Vector3(transform.position.x + i - halfCameraWidth, transform.position.y - halfCameraHeight + visualiserPoints[i] * magnification, transform.position.z + zPos), color, 0, true);

                    if ((pointFeatures[i] & (1 << 2)) != 0)// Syllable Peak
                    {
                        GLDebug.DrawLine(new Vector3(transform.position.x + i - halfCameraWidth, transform.position.y - halfCameraHeight + visualiserPoints[i] * magnification, transform.position.z + zPos), new Vector3(transform.position.x + i - halfCameraWidth, transform.position.y - halfCameraHeight + visualiserPoints[i] * magnification + 10, transform.position.z + zPos), Color.blue, 0, true);
                    }
                }
                magnification = 20 / highest;

                //GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight + noiseIntensity * MicrophoneInput.activationMultiple * magnification, transform.position.z + zPos), new Vector3(transform.position.x + visualiserPoints.Length - halfCameraWidth, transform.position.y - halfCameraHeight + noiseIntensity * MicrophoneInput.activationMultiple * magnification, transform.position.z + zPos), Color.red, 0, true);
                // GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight + (noiseIntensity + 2 * microphoneInput.StandardDeviation) * magnification, transform.position.z + zPos), new Vector3(transform.position.x + visualiserPoints.Length - halfCameraWidth, transform.position.y - halfCameraHeight + (noiseIntensity + 2 * microphoneInput.StandardDeviation) * magnification, transform.position.z + zPos), Color.red, 0, true);

                //if (microphoneInput.InputDetected)
                //    GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight + noiseIntensity * MicrophoneInput.presenceMultiple * magnification, transform.position.z + zPos), new Vector3(transform.position.x - halfCameraWidth + visualiserPoints.Length, transform.position.y - halfCameraHeight + noiseIntensity * MicrophoneInput.presenceMultiple * magnification, transform.position.z + zPos), Color.blue, 0, true);

                //GLDebug.DrawLine(new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight, transform.position.z + zPos), new Vector3(transform.position.x - halfCameraWidth, transform.position.y - halfCameraHeight + microphoneInput.NormalisedPeakAutocorrelation * 100, transform.position.z + zPos), Color.red, 0, true);


                visualiserPosition++;
                if (visualiserPosition >= visualiserPoints.Length)
                {
                    visualiserPosition = 0;
                    pointFeatures[visualiserPosition] = pointFeatures[pointFeatures.Length - 1];
                }
                else
                {
                    pointFeatures[visualiserPosition] = pointFeatures[visualiserPosition - 1];
                }
                pointFeatures[visualiserPosition] = (byte)(pointFeatures[visualiserPosition] & (255 - (1 << 2)));
            }
        }