Conky と Ubuntu - 音楽の視覚化 (ミュージックバー)?

Conky と Ubuntu - 音楽の視覚化 (ミュージックバー)?

数日前から Conky を使い始めて、次のことを実現できました。

注:ゼロから書きましたが、インスピレーションを受けたのはこの写真著者の創造性に感謝します

ご覧のとおり、デジタル時計 (「21:20」) と接続統計の間には空きスペースがあります。

今、私はそのスペースに「ミュージック バー」と呼んでいるものを表示したいと思っています。つまり、私の音楽プレーヤー (現在は Clementine) で現在再生されているサウンドに合わせて動くアニメーション バーです。いくつかのスクリプトと qbus コマンドのおかげで、現在のトラック、アーティスト、年などを表示することは既にできています。

しかし、私は主に次の疑問を抱いています。

  • 実際の音楽データ(振幅と呼ばれると思います)を取得するにはどうすればよいでしょうか?
  • それをかなりスムーズにアニメーション化するにはどうすればよいでしょうか?

私は cairographics で conky と lua を使用していますが、lua/cairographics を「再描画」する方法が見つからず、アニメーションは本当に複雑なもののようです。そのため、アニメーションに「近い」ものを実現するには、.conkyrc の update_interval を減らす必要があります。

残念ながら、update_interval に非常に小さな値を設定すると、conky は (たとえば) 50 ミリ秒ごとに再描画するだけでなく、変数を再計算し、必要に応じてスクリプトを再実行するので、CPU リソースを大量に消費します。

したがって、アニメーションについては、Conky が CPU リソースを消費することなく、スムーズなアニメーション (10 fps で十分) を実現する方法を探しています。

どなたかアイデアを頂ければ嬉しいです。必ずしも LUA である必要はありません。また、conky に代わる優れたもの (軽量なもの) があれば、遠慮なくお知らせください。

--

アイデアと提案をありがとうございます!

答え1

PulseAudioを使えば可能だと思います。完全にどうすればよいかは分かりませんが、ここにユーティリティがあります振幅を取得するのに役立つことがわかりました。その後、それを Conky チャートに変換する何かを見つけることができると思います。

答え2

これを投稿してからかなり時間が経っていることは承知していますが、先日、素晴らしい CLI ビジュアライザーを見つけました。 https://github.com/dpayne/cli-visualizer

もちろん、これによって更新間隔の問題は解決されませんが、それでも私と同じように興味深いと思われるかもしれません。

関連情報