private void UpdateWaveForm()
    {
        if (audioWaveFormVisualization == null)
        {
            return;
        }

        MicProfile micProfile = micPitchTracker.MicProfile;

        if (micProfile == null)
        {
            return;
        }

        float[] micData = micPitchTracker.MicSampleRecorder.MicSamples;

        // Consider amplification
        AbstractAudioSamplesAnalyzer.ApplyAmplification(micData, 0, micData.Length, micProfile.AmplificationMultiplier);

        // Consider noise suppression when displaying the the buffer
        bool isAboveThreshold = AbstractAudioSamplesAnalyzer.IsAboveNoiseSuppressionThreshold(micData, 0, micData.Length, micProfile.NoiseSuppression);

        float[] displayData = isAboveThreshold
            ? micData
            : new float[micData.Length];

        audioWaveFormVisualization.DrawWaveFormMinAndMaxValues(displayData);
    }
 private void Update()
 {
     if (audioWaveForm.style.display != DisplayStyle.None)
     {
         audioWaveFormVisualizer.DrawWaveFormMinAndMaxValues(clientSideMicSampleRecorder.MicSampleBuffer);
     }
     UpdateFps();
 }
示例#3
0
 private void Update()
 {
     if (audioWaveForm.style.display != DisplayStyle.None &&
         audioWaveFormVisualization != null)
     {
         audioWaveFormVisualization.DrawWaveFormMinAndMaxValues(micSampleRecorder.MicSamples);
     }
     UpdateFps();
 }
示例#4
0
    public void UpdateAudioWaveForm()
    {
        if (!songAudioPlayer.HasAudioClip ||
            songAudioPlayer.AudioClip.samples <= 0)
        {
            return;
        }

        if (audioWaveFormVisualization == null)
        {
            audioWaveFormVisualization = new AudioWaveFormVisualization(songEditorSceneControl.gameObject, overviewAreaWaveform)
            {
                // Waveform color is same as text color
                WaveformColor = overviewAreaLabel.resolvedStyle.color
            };
        }

        using (new DisposableStopwatch($"Created audio waveform in <millis> ms"))
        {
            // For drawing the waveform, the AudioClip must not be streamed. All data must have been fully loaded.
            AudioClip audioClip = audioManager.LoadAudioClipFromUri(SongMetaUtils.GetAudioUri(songMeta), false);
            audioWaveFormVisualization.DrawWaveFormMinAndMaxValues(audioClip);
        }
    }