マイク入力スペクトラム - Siv3D/Reference-JP GitHub Wiki

マイク入力スペクトラム
# include <Siv3D.hpp>

void Main()
{
    Window::Resize(1024, 320);

    const Font font(30);

    Recorder recorder;

    if (!recorder.open(0, 5s, RecordingFormat::S44100, true))
    {
        return;
    }

    if (!recorder.start())
    {
        return;
    }

    while (System::Update())
    {
        const auto fft = FFT::Analyze(recorder);

        for (auto i : step(1024))
        {
            RectF(i, Window::Height(), 1, -Pow(fft.buffer[i], 0.5) * 500).draw(HSV(i));
        }

        const int32 mouseX = Mouse::Pos().x;

        Rect(mouseX, 0, 1, Window::Height()).draw();

        font(L"{:.1f}Hz"_fmt, fft.resolution() * mouseX).draw(Mouse::Pos().moveBy(0, -50));
    }
}
⚠️ **GitHub.com Fallback** ⚠️