来自Spotify的流媒体音乐的可视化

本文关键字:可视化 音乐 流媒体 来自 Spotify | 更新日期: 2023-09-27 17:55:46

我正在使用C#包装器ohLibSpotify从Spotify流式传输音乐,并使用NAudio播放。现在,我正在尝试为我收到的数据创建频谱可视化。

当我从libspotify获取数据时,会调用以下回调:

public void MusicDeliveryCallback(SpotifySession session, AudioFormat format, IntPtr frames, int num_frames)
{
    //handle received music data from spotify for streaming
    //format: audio format for streaming
    //frames: pointer to the byte-data in storage
    var size = num_frames * format.channels * 2;
    if (size != 0)
    {
        _copiedFrames = new byte[size];
        Marshal.Copy(frames, _copiedFrames, 0, size);   //Copy Pointer Bytes to _copiedFrames
        _bufferedWaveProvider.AddSamples(_copiedFrames, 0, size);    //adding bytes from _copiedFrames as samples
    }
}

是否可以分析我传递给 BufferedWaveProvider 的数据以创建实时可视化?有人可以解释一下吗?

来自Spotify的流媒体音乐的可视化

将时域信号(如音频样本)转换为频域信息的标准工具是傅里叶变换。

拿起你选择的快速傅里叶变换库,把它扔到你的数据上;你会得到信号分解成它的组成频率。然后,您可以获取该数据并随心所欲地进行可视化。频谱图特别容易;您只需要绘制每个频率分量的幅度与频率和时间的关系。