クロスプラットフォームのオーディオビジュアルライザー
カール・スターヴストランド著
デモビデオ
それは何ですか
インストール中
ソースから
パッケージマネージャー
音声のキャプチャ
パルスオーディオ
パイプワイヤー
ALSA
警視庁
スンディオ
OSS
ジャック
スクイーズライト
macOS
窓
SSH経由で実行
トラブルシューティング
使用法
コントロール
構成
他の用途での cava の使用
キャバコア
生の出力
貢献
Cava は、ターミナルまたはデスクトップ (SDL) 用のバー スペクトル オーディオ ビジュアライザーです。
作業対象:
Linux
FreeBSD
macOS
窓
このプログラムは科学的使用を目的としたものではありません。音楽を視覚化するために使用すると、応答性が高く、見た目も美しくなるように作成されています。
必要なコンポーネント:
FFTW
リブツール
オートメイク
autoconf-archive (OpenGL のセットアップに必要)
pkgconf
ビルドの必需品
イニパーサー
推奨されるコンポーネント:
ディストリビューションに応じて、次のオーディオ フレームワークのいずれかの開発ライブラリ:
ALSA
パルスオーディオ
パイプワイヤー
ポルタディオ
スンディオ
ジャック
オプションのコンポーネント:
SDL2 開発ファイル
ncursesw dev ファイル (arch の ncurses にバンドルされています)
CAVA のコンパイルに実際に必要なのは FFTW、iniparser、およびビルド ツールだけですが、これにより提供されるのは fifo ファイルから読み取る機能のみです。システムのパイプワイヤーからオーディオを直接キャプチャするには、pulseaudio、alsa、sndio、jack、または portaudio dev ファイルが必要です (使用しているオーディオ システムに応じて)。
デフォルトの出力方法に問題がある場合は、代替の出力方法として Ncurses を使用できます。しかし、それは必須ではありません。
すべての要件は、すべての主要なディストリビューションに簡単にインストールできます。
FreeBSD
pkg install autoconf autoconf-archive automake fftw3 iniparser jackit libglvnd libtool pkgconf psftools sdl2 sndio
さらに、ビルドする前に FreeBSD で次のコマンドを実行します。
export CFLAGS="-I/usr/local/include" export LDFLAGS="-L/usr/local/lib"
Debian/Ubuntu:
sudo apt install build-essential libfftw3-dev libasound2-dev libpulse-dev libtool automake autoconf-archive libiniparser-dev libsdl2-2.0-0 libsdl2-dev libpipewire-0.3-dev libjack-jackd2-dev pkgconf
ArchLinux:
pacman -S base-devel fftw alsa-lib iniparser pulseaudio autoconf-archive pkgconf
openSUSE:
zypper install alsa-devel fftw3-devel libpulse-devel libtool autoconf-archive pkgconf
フェドーラ:
dnf install alsa-lib-devel fftw3-devel pulseaudio-libs-devel libtool autoconf-archive iniparser-devel pkgconf
macOS:
まだ Homebrew をインストールしていない場合は、まず Homebrew をインストールします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
次に、前提条件をインストールします。
brew install fftw libtool automake autoconf-archive pkgconf portaudio iniparser
Homebrew パッケージのインストール場所は、Intel Mac と Apple Silicon Mac では異なります。そのため、コマンドは少し異なります。どのタイプがあるかはここで確認できます
両方のマシンで次のコマンドを実行して、macOS が libtool を見つけられないことを修正します。
export LIBTOOL=`which glibtool` export LIBTOOLIZE=`which glibtoolize` ln -s `which glibtoolize` /usr/local/bin/libtoolize
ファイル名はバージョンによって多少異なりますが、ディレクトリは同じである必要があることに注意してください。
さらに、./configure が Homebrew パッケージを見つけられるように、Apple Silicon Mac で次のコマンドを実行します。
export LDFLAGS="-L/opt/homebrew/lib" export CPPFLAGS="-I/opt/homebrew/include"
Intel Mac の命令は macOS Big Sur でテストされました。
Apple Silicon の手順は macOS Ventura でテストされました。
Windows:
cava_win
フォルダー内の別の Readme を参照してください。
まず、このリポジトリのクローンを作成し、そこに cd インしてから、次のコマンドを実行します。
./autogen.sh ./configure make
推奨コンポーネントがインストールされているが、それを使用したくない場合 (おそらく、あるマシンで別のマシンで使用するバイナリをビルドする場合)、構成中に対応する機能を無効にすることができます (詳細については、configure --help を参照)。
Windows の場合、 cava_win
フォルダーに VS ソリューション ファイルがあります。
cava
デフォルトの/usr/local
にインストールします。
make install
または、次のようにPREFIX
変更することもできます。
./configure --prefix=PREFIX
make uninstall
ディストリビューション固有のインストール ソースはすべて古い可能性があります。ここで問題を報告する前にバージョンを確認してください。
pkg install cava
Tumbleweed ユーザーのリポジトリには cava が含まれています。彼らは次のものを使用することができます。
zypper in cava
Leap ユーザーは、まず multimedia:apps リポジトリを追加する必要があります。
zypper ar -f obs://multimedia:apps/openSUSE_Leap_42.2 multimedia
別のバージョンを使用している場合は、 openSUSE_Leap_42.2 をopenSUSE_13.2に置き換えて、ご使用のバージョンに合わせて調整してください。
Cava は Fedora 26 以降で使用できます。 以下を実行して Cava をインストールできます。
dnf install cava
カヴァはAURです。
pacaur -S cava
sudo apt install cava
Harshal Sheth は CAVA を PPA に追加しました。CAVA は以下でインストールできます。
add-apt-repository ppa:hsheth2/ppa apt update apt install cava
カヴァは自作です。
brew install cava
Pulseaudio dev ファイルがインストールされていること、および cava がpulseaudio サポートを使用してビルドされていることを確認してください (dev ファイルが見つかった場合は自動的にビルドされるはずです)。
運が良ければ、カヴァを実行するだけです。
何も起こらない場合は、デフォルトとは異なるソースを使用する必要がある可能性があります。デフォルトがマイクである場合もあります。ヘルプについては設定ファイルを参照してください。
セット
method = pipewire
デフォルトのソースはauto
で、現在選択されている出力になる可能性が高くなります。 Wireplumber を実行する場合は、 wpctl
使用して、視覚化する目的のデバイスのobject.path
またはobject.serial
取得できます。
例えば
source = alsa:pcm:3:front:3:playback
セット
method = alsa
設定ファイルにあります。
ALSA は、出力からオーディオを取得するネイティブな方法がないため、難しい場合があります。 (マイクやライン入力だけでなく) 出力からオーディオを直接キャプチャしたい場合は、ALSA ループバック インターフェイスを作成し、オーディオをループバックと通常のインターフェイスの両方に同時に出力する必要があります。
ループバック インターフェイスを作成するには、次のコマンドを実行するだけです。
sudo modprobe snd_aloop
うまくいけば、 aplay -l
ループバック インターフェイスが含まれるはずです。
起動後も永続的にするには、 snd-aloop
行を「/etc/modules」に追加します。最初のサウンドカードとしてロードされないようにするには、「/etc/modprobe.d/alsa-base.conf」にoptions snd-aloop index=1
行を追加します。これにより、「1」でロードされます。 「1」は、オーディオ設定で最も意味のあるものに置き換えることができます。
ループバック インターフェイス経由でオーディオを再生すると、cava でオーディオをキャプチャできますが、スピーカーからは音が出なくなります。ループバック インターフェイスと実際のインターフェイスでオーディオを再生するには、ALSA マルチ チャネルを使用する必要があります。
マルチチャンネルの使用方法については、付属のサンプル ファイルexample_files/etc/asound.conf
を参照してください。 HDA Intel PCH サウンド カードを使用するとこれを機能させることができましたが、USB DAC ではうまくいきませんでした。
ALSA メソッドの詳細については、こちらをご覧ください。
Rasberry PI の alsa メソッドで問題が発生した場合は、次の行を/boot/config.txt
に追加してmmap
有効にして再起動してみてください。
dtoverlay=i2s-mmap
@reluekiss さんは、dmix で cava を動作させることができました。 example_files/etc/asound_dmix.conf
と issue 534 のサンプル構成を確認してください。
mpd に次の行を追加します。
audio_output { type "fifo" name "my_fifo" path "/tmp/mpd.fifo" format "44100:16:2" }
構成ファイルのコメントを解除し、入力メソッドをfifo
に変更します。
FIFO のパスは、 source
パラメーターで指定できます。
同期に少し問題がありました(ビジュアライザーが音よりも先にありました)。 mpd の ALSA バッファを減らすと修正されました。
audio_output { type "alsa" name "My ALSA" buffer_time "50000" # (50ms); default is 500000 microseconds (0.5s) }
セット
method = sndio
Sndio は OpenBSD で使用されるオーディオ フレームワークですが、FreeBSD、NetBSD、Linux でも利用できます。これまでのところ、これは FreeBSD でのみテストされていますが、おそらく他のオペレーティング システムでも非常に似ています。次の例は、FreeBSD で sndio 用に CAVA をセットアップする方法を示しています (この例のさまざまなpcmX
サウンド デバイスおよび対応する/dev/dspX
オーディオ デバイスの詳細については、OSS セクションを参照してください)。
$ cat /dev/sndstat インストールされているデバイス: pcm0: <Realtek ALC1220 (リアアナログ)> (再生/録音) デフォルト pcm1: <Realtek ALC1220 (フロントアナログマイク)> (録音) pcm2: <USB オーディオ> (再生/録音) ユーザースペースからデバイスがインストールされていません。
Sndio はデバイス記述子で動作します。一般に、すべての/dev/dspX
オーディオ デバイスには、対応するrsnd/X
sndio raw デバイス記述子があります。この例では、 rsnd/0
、 rsnd/1
、およびrsnd/2
があります (これらは/dev
にはリストされていません。 sndio はこれらの記述子を使用して、対応するオーディオ デバイスに内部的にアクセスします)。 Sndio は暗黙的なdefault
デバイス記述子も処理します。これは、デフォルトのオーディオ デバイス/dev/dsp
に対応する raw デバイス記述子へのシンボリックリンクのように機能します。この例では、デフォルトのオーディオデバイス/dev/dsp
が/dev/dsp0
にシンボリックリンクしているため、これはrsnd/0
へのシンボリックリンクのように機能します。 Sndio は、環境変数AUDIODEVICE
およびAUDIORECDEVICE
も評価します。これらのいずれかが設定されており (両方が設定されている場合は、 AUDIORECDEVICE
AUDIODEVICE
をオーバーライドします)、sndio 対応プログラムがdefault
デバイス記述子または未指定のデバイス記述子を開こうとした場合、プログラムは環境変数で指定されたデバイス記述子を使用します。
CAVA でマイク入力を視覚化するには、構成ファイル内のsource
値を対応するオーディオ記述子に設定する必要があります。
source = default # default; symlink to rsnd/0 in this example; AUDIORECDEVICE and AUDIODEVICE evaluation source = # unspecified device descriptor; same as default above source = rsnd/0 # for the pcm0 mic on the rear source = rsnd/1 # for the pcm1 mic on the front source = rsnd/2 # for the pcm2 mic on the USB headset
source = default
指定すると、構成ファイルを再度変更せずにコマンドラインで視覚化を切り替えることができます。
$ AUDIODEVICE=rsnd/0 カヴァ $ AUDIODEVICE=rsnd/1 カヴァ $ AUDIODEVICE=rsnd/2 カバ
Sndio は、生のデバイス記述子だけでは再生されたオーディオを録音できません。つまり、 rsnd/0
を介して外部ステレオ スピーカーで再生される音楽プレーヤーまたはブラウザからのサウンドは、CAVA では視覚化されません。これを機能させるには、sndio サーバーを起動し、監視サブデバイスを作成する必要があります。次の例は、サーバーを起動して監視サブデバイスsnd/0
rsnd/0
から作成し、新しい監視サブデバイスを指すAUDIODEVICE
で CAVA を起動する方法を示しています。
$ sndiod -f rsnd/0 -m play,mon $ AUDIODEVICE=snd/0 カバ
スピーカーと USB ヘッドセットを切り替えます。
$ sndiod -f rsnd/2 -m play,mon -s usb -f rsnd/0 -m play,mon -s スピーカー $ AUDIODEVICE=snd/usb cava $ AUDIODEVICE=snd/スピーカーカバ
sndio サーバーの構成と起動に関する詳細については、マンページsndiod(8)
を参照してください。
セット
method = oss
FreeBSD で使用されるオーディオ システムは Open Sound System (OSS) です。次の例は、FreeBSD で OSS 用に CAVA をセットアップする方法を示しています。
$ cat /dev/sndstat インストールされているデバイス: pcm0: <Realtek ALC1220 (リアアナログ)> (再生/録音) デフォルト pcm1: <Realtek ALC1220 (フロントアナログマイク)> (録音) pcm2: <USB オーディオ> (再生/録音) ユーザースペースからデバイスがインストールされていません。
システムには、 pcm0
、 pcm1
、およびpcm2
という 3 つのpcm
サウンド デバイスがあります。 pcm0
、外部ステレオ スピーカーが接続される背面のアナログ出力ジャックと、マイクを接続できるアナログ入力ジャックに対応します。出力と入力の両方をカプセル化するため、 play/rec
としてマークされます。 default
サウンドデバイスとしても設定されます。 pcm1
、前面のマイク用の別のアナログ入力ジャックに対応し、 rec
とマークされています。統合マイクを備えた USB ヘッドセットが USB ポートに接続されており、システムはそのplay/rec
機能を備えたpcm2
サウンド デバイスを作成しています。
一般に、すべてのpcmX
デバイスには、対応する/dev/dspX
オーディオ デバイスがあります。この例では、 /dev/dsp0
、 /dev/dsp1
、および/dev/dsp2
があります (システムは必要に応じてこれらを作成します。現在使用されていない場合、 ls /dev
ではリストされません)。システムは暗黙的な/dev/dsp
も作成します。これは、 default
オーディオ デバイス (この例では/dev/dsp0
へのシンボリックリンクのように機能します。
CAVA でマイク入力を視覚化するには、構成ファイル内のsource
値を対応するオーディオ デバイスに設定する必要があります。
source = /dev/dsp # default; symlink to /dev/dsp0 in this example source = /dev/dsp0 # for the pcm0 mic on the rear source = /dev/dsp1 # for the pcm1 mic on the front source = /dev/dsp2 # for the pcm2 mic on the USB headset
OSS は、発信オーディオを独自に録音することはできません。つまり、 /dev/dsp0
を介して外部ステレオ スピーカーで再生される音楽プレーヤーまたはブラウザからのサウンドは、CAVA では視覚化されません。解決策は、仮想 OSS を使用することです。既存のオーディオ デバイスから仮想オーディオ デバイスを作成できます。特に、 /dev/dsp0
からループバック オーディオ デバイスを作成し、そこから再生されたオーディオを CAVA に供給できます。
$ doas pkg install virtual_oss $ doas virtual_oss -r44100 -b16 -c2 -s4ms -O /dev/dsp0 -R /dev/null -T /dev/sndstat -l dsp.cava $ cat /dev/sndstat インストールされているデバイス: pcm0: <Realtek ALC1220 (リアアナログ)> (再生/録音) デフォルト pcm1: <Realtek ALC1220 (フロントアナログマイク)> (録音) pcm2: <USB オーディオ> (再生/録音) ユーザースペースからインストールされたデバイス: dsp.cava: <仮想 OSS> (再生/録音)
/dev/dsp0
から仮想ループバックデバイス/dev/dsp.cava
を作成しました。これで、設定ファイルのsource = /dev/dsp.cava
を使用してオーディオがCAVAで視覚化されます。再生プログラムには、 /dev/dsp.cava
デバイスを使用するための構成が必要です。これが不可能なプログラム、たとえば常に/dev/dsp
使用するプログラムの場合は、 -l dsp.cava
-l dsp
に置き換えます。仮想 OSS は、FreeBSD 上のサービスとして設定および開始できます。
セット
method = jack
JACK Audio Connection Kit (JACK) は、FreeBSD や Linux などのいくつかのオペレーティング システムで利用できるプロフェッショナルなサウンド サーバー API です。
CAVA は、基本クライアント名cava
を持つ JACK クライアントであり、標準のサーバーの起動および停止動作に従います。つまり、CAVA は、JACK サーバーがまだ実行されておらず、環境変数JACK_START_SERVER
が定義されている場合に起動します。この場合、すべてのサーバーが停止した場合、サーバーも停止します。クライアントが退場しました。 CAVA 構成ファイル内のsource
は、CAVA が接続を試みる JACK サーバーの名前を指定します。デフォルト値はdefault
で、これはデフォルトの JACK サーバー名でもあります。値は空にすることもできます。その場合は、 default
意味します。したがって、次の 3 つのエントリは同等です。
; source = default source = default source =
1 つの例外は、空のsource
エントリと環境変数JACK_DEFAULT_SERVER
の組み合わせです。環境変数が定義されている場合 (たとえば、 export JACK_DEFAULT_SERVER=foo
、次のエントリは同等です。
source = foo source =
JACK サーバーの構成と起動に関する詳細については、マンページjackd(1)
を参照してください。
CAVA は、端末のオーディオタイプ (つまり MIDI サポートなし) 入力ポートを作成します。これらのポートは、他の JACK クライアントの出力ポートに接続できます。たとえば、音楽プレーヤーの出力ポートに接続すると、CAVA が音楽を視覚化します。現在、CAVA は最大 2 つの入力ポートをサポートしています。つまり、モノラルとステレオをサポートしています。入力ポートの数は、構成ファイルの入力セクションのchannels
オプションを介して制御できます。
channels = 1 # one input port, mono channels = 2 # two input ports, stereo (default)
ポートの短縮名は、単純にモノラルを表すM
、ステレオを表すL
とR
です。基本クライアント名に基づく入力ポートの完全名は、モノラルの場合はcava:M
、ステレオの場合はcava:L
およびcava:R
です。
autoconnect
オプションは、CAVA のポートから他のクライアントのポートへの接続戦略を制御します。
autoconnect = 0 # don't connect to other ports automatically autoconnect = 1 # only connect to other ports during startup autoconnect = 2 # reconnect to new ports regularly (default)
自動接続戦略は、物理端末の入力ポート、つまり実際にサウンドを出力する実際のオーディオ デバイスをスキャンし、同じ接続を CAVA のポートに適用します。このようにして、CAVA はデフォルトで JACK クライアントから再生されたオーディオを視覚化します。
CAVA のポートと他のクライアント プログラムのポート間の接続を制御および管理するために、JACK 用の接続管理プログラムがあります。グラフィカル ユーザー インターフェイスを備えたよく知られた接続マネージャーには、QjackCtl と Cadence があります。多くの場合、JACK パッケージ自体には CLI ツールが付属しています。オペレーティング システムによっては、FreeBSD など、個別にインストールする必要がある場合があります。
$ doas pkg install jack-example-tools
ツールの中には、プログラムjack_lsp
およびjack_connect
があります。コマンドラインでポートを一覧表示して接続するには、これら 2 つのツールで十分です。次の例は、これらのツールを使用して接続をセットアップする方法を示しています。
$ ジャック_lsp システム:キャプチャ_1 システム:キャプチャ_2 システム:再生_1 システム:再生_2 カヴァ:L moc:出力0 moc:出力1 カヴァ:R
このリストには、現在使用可能なすべての完全なポート名が表示されます。これらは、2 つの外部 JACK クライアント ( cava
およびmoc
と 1 つの内部 JACK クライアントsystem
に対応します。ポート間のタイプと現在アクティブな接続は、 jack_lsp
の-p
および-c
スイッチを使用してリストできます。 CAVA と MOC のポートを接続するには、 jack_connect
使用します。
$ jack_connect cava:L moc:output0 $ jack_connect cava:R moc:output1
CAVA は MOC から送信される音声を視覚化するようになりました。
Squeezelite は、Logicool Media Server で利用できるいくつかのソフトウェア クライアントのうちの 1 つです。 Squeezelite は、この入力モジュールが使用する共有メモリとしてオーディオ データをエクスポートできます。設定を調整するだけです。
method = shmem source = /squeezelite-AA:BB:CC:DD:EE:FF
ここで、 AA:BB:CC:DD:EE:FF
、squeezelite の MAC アドレスです (不明な場合は、LMS Web GUI ([設定] > [情報]) を確認してください)。注: ビジュアライザーのサポートを有効にするには、squeezelite を-v
フラグで開始する必要があります。
注: Cava は、デフォルトの macOS ターミナル内では正しくレンダリングされません。最適な表示を実現するには、Kitty をインストールしてください。 #109; で示された問題に遭遇する可能性があることに注意してください。ただし、これで解決できます。
バックグラウンドミュージック
ループバック インターフェイスを自動的に提供する BGM をインストールします。インストールして実行したら、portaudio でこのインターフェイスを使用するように設定を編集するだけです。
method = portaudio source = "Background Music"
サウンドフラワー
Soundflower はループバック インターフェイスの作成にも機能します。このレシピに従って、Audio MIDI セットアップを使用して、スピーカーとループバック インターフェイスの両方にオーディオを出力する仮想インターフェイスを設定します。マルチ出力デバイスを作成すると、キーボードの音量を制御できなくなります。このため、キーボードでコントロールできる BGM アプリをお勧めします。
次に、portaudio でこのインターフェイスを使用するように構成を編集します。
method = portaudio source = "Soundflower (2ch)"
デフォルトの出力デバイスからオーディオを自動的にキャプチャする必要があります。
SSH 経由で外部モニターに実行するには、出力を/dev/console
にリダイレクトします。
~# ./cava <> /dev/console >&0 2>&1
Ctrl+Z で終了し、「bg」を実行すると、ログアウトした後も実行を継続できます。
(コンソールにリダイレクトするには root である必要があります。単純な sudo では十分ではありません。最初にsudo su
を実行してください。)
最も可能性が高いのは問題 #399 です。 cava が動作するには、ロケール設定を正しく設定する必要があります。
これはパイプワイヤに関する既知の問題です。ここで説明されている回避策を試してください
これはフォントの問題か、ターミナル エミュレータで有効になっている行間隔のいずれかに問題があります。フォントを変更するか、行間隔を無効にしてみてください。
単純に文字をベースにしたグラフィックなので、フォントサイズを小さくしてみてください。
一部の端末エミュレータは単に遅いです。 Cava は、kitty や alacritty などの GPU ベースの端末で最適に表示されます。フォントサイズを大きくしてみることもできます
TTY (ctrl+alt+F2 など) で cava を実行すると、プログラムはフォントを付属のcava.psf
(実際にはわずかに変更された「unifont」) に変更します。
コンソール フォントでは、おそらくビットマップ フォントであるため、256 個の Unicode 文字のみがサポートされているようです。 Unicode 文字 2581 ~ 2587 (解像度を上げるために各バーの上部に使用される 1/8 ~ 7/8 ブロック) を含むフォントが見つかりませんでした。
したがって、 cava.psf
では、文字 1 ~ 7 は実際には Unicode 文字 2581 ~ 2587 に置き換えられます。 cava が終了すると、フォントが元に戻ります。 cava が異常終了し、1 ~ 7 が部分ブロックに置き換えられていることに気付いた場合は、 setfont
でフォントを変更してください。
実際には、 setfont
デフォルトのフォントを返すことになっていますが、これは通常は設定されていません。現在のフォントを取得する別の方法が見つかりませんでした。したがって、cava は中断時にフォントを「Lat2-Fixed16」に設定します。すべての主要なディストリビューションにはそれが必要です。再起動するとデフォルトのフォントに戻ります。
Konsole はこれをサポートしていません。 #194
Usage : cava [options] Visualize audio input in terminal. Options: -p path to config file -v print version
ctrl+c または q で終了します。
cava が予期せず終了するか、強制終了された場合は、 stty -echo
を使用してエコーを手動でオンにする必要があります。
鍵 | 説明 |
---|---|
上/下 | 感度の増加/減少 |
左/右 | バーの幅を増減する |
f / b | 前景色/背景色を変更する |
r | 設定をリロードする |
c | カラーのみをリロードする |
qまたはCTRL-C | CAVAをやめる |
バージョン 0.4.0 では、すべてのオプションが設定ファイル内で実行され、コマンドライン引数は不要になりました。
デフォルトでは、構成ファイルは初回起動時に$XDG_CONFIG_HOME/cava/config
または$HOME/.config/cava/config
に作成されますが、 -p
オプションを使用して cava が別のファイルを使用するようにすることもできます。
cava に SIGUSR1 シグナルを送信すると、cava は設定ファイルを強制的にリロードします。したがって、ユーザーが端末でr を押したかのように動作します。 pkill
またはkillall
使用して SIGUSR1 シグナルを送信することもできます。例えば:
$ pkill -USR1 cava
同様に、cava に SIGUSR2 シグナルを送信すると、設定ファイルからカラーが再ロードされるだけで、これはターミナルでc を押すのと同じです。これは、オーディオ処理を再初期化する必要がないため、構成全体を再ロードするよりもわずかに高速です。
$ pkill -USR2 cava
イコライザーがどのように機能するかの例:
[eq] 1=0 2=1 3=0 4=1 5=0
[eq] 1=2 2=2 3=1 4=1 5=0.5
cava のコア処理エンジンは、別個のライブラリcavacore
に分割されました。詳細については、CAVACORE.md を参照してください。
また、生出力モードを使用して、Cava の出力を他のプログラムに使用することもできます。これにより、バー データがSTDOUT
に書き込まれ、他のプロセスにパイプすることができます。このオプションの詳細については、構成ファイルの例に記載されています。
生データを使用する Python で書かれた便利な開始点スクリプトの例は、ここにあります。
プル リクエストを開く前に COTRIBUTING.md をお読みください。
おかげで:
天のセイウチ
あんこ
より良く生きる
このプロジェクトの初期開発における多大な貢献に対して。
また、pulseaudio のデフォルトのシンク名を見つける方法を見つけてくれた dpayne にも感謝します。