void Update() { if (Source == AudioVisualisationSource.Microphone) { SpectrumData = Input.GetSpectrum(); } else if (Source == AudioVisualisationSource.Molecule) { if (SpectrumData.Length == 0) { LoadMoleculeSpectrum(); } } var length = SpectrumData.Length; // The line renderer can only do 1024 points, so if length > 1024 increase the step size Vector3[] lineCoordinates = new Vector3[length]; for (var i = 0; i < length; i++) { lineCoordinates [i] = new Vector3(Width * ((1f * i / length) - 0.5f), SpectrumData[i] * Scale, 0); } LineRenderer.SetPositions(lineCoordinates); }