Multiplataforma A udio V isu a lizer
por Karl Stavestrand
Vídeo de demonstração
O que é isso
Instalando
Da fonte
Gerenciadores de pacotes
Capturando áudio
Pulseaudio
Arame
ALSA
MPD
Sndio
OSS
JACK
squeezelite
macOS
Windows
Executando via ssh
Solução de problemas
Uso
Controles
Configuração
Usando cava em outras aplicações
cavacore
Saída Bruta
Contribuição
Cava é um visualizador de áudio de espectro de barras para terminal ou desktop (SDL).
funciona em:
Linux
FreeBSD
macOS
Windows
Este programa não se destina ao uso científico. Ele foi escrito para parecer responsivo e estético quando usado para visualizar música.
Componentes necessários:
FFTW
ferramentalib
automake
autoconf-archive (necessário para configurar o OpenGL)
pkgconf
fundamentos de construção
iniparser
Componentes recomendados:
A biblioteca de desenvolvimento de um desses frameworks de áudio, dependendo da sua distro:
ALSA
Pulseaudio
Arame
Portáudio
Sndio
JACK
Componentes opcionais:
Arquivos de desenvolvimento SDL2
Arquivos ncursesw dev (empacotados em ncurses no arch)
Apenas FFTW, iniparser e as ferramentas de construção são realmente necessárias para a compilação do CAVA, mas isso só lhe dará a capacidade de ler arquivos fifo. Para capturar áudio diretamente do seu sistema, são necessários arquivos pipewire, pulseaudio, alsa, sndio, jack ou portaudio dev (dependendo do sistema de áudio que você está usando).
Ncurses pode ser usado como um método de saída alternativo se você tiver problemas com o método padrão. Mas não é obrigatório.
Todos os requisitos podem ser instalados facilmente em todas as principais distros:
FreeBSD
pkg install autoconf autoconf-archive automake fftw3 iniparser jackit libglvnd libtool pkgconf psftools sdl2 sndio
Além disso, execute estes comandos no FreeBSD antes de compilar:
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
Fedor:
dnf install alsa-lib-devel fftw3-devel pulseaudio-libs-devel libtool autoconf-archive iniparser-devel pkgconf
macOS:
Primeiro instale o homebrew, se ainda não o fez:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Em seguida, instale os pré-requisitos:
brew install fftw libtool automake autoconf-archive pkgconf portaudio iniparser
O local de instalação dos pacotes Homebrew é diferente entre Macs Intel e Macs Apple Silicon. Como tal, os comandos serão um pouco diferentes. Você pode descobrir qual tipo você tem aqui
Para ambas as máquinas, execute estes comandos para corrigir o macOS que não encontra o libtool:
export LIBTOOL=`which glibtool` export LIBTOOLIZE=`which glibtoolize` ln -s `which glibtoolize` /usr/local/bin/libtoolize
Observe que o nome do arquivo pode ser um pouco diferente dependendo das versões, mas o diretório deve ser o mesmo.
Além disso, execute estes comandos em Apple Silicon Macs para que ./configure possa encontrar os pacotes Homebrew:
export LDFLAGS="-L/opt/homebrew/lib" export CPPFLAGS="-I/opt/homebrew/include"
Instruções Intel Mac testadas no macOS Big Sur.
Instruções Apple Silicon testadas no macOS Ventura.
Windows:
veja o leia-me separado na pasta cava_win
.
Primeiro de tudo, clone este repositório e faça cd nele, depois execute:
./autogen.sh ./configure make
Se você possui um componente recomendado instalado, mas não deseja usá-lo (talvez se estiver construindo um binário em uma máquina para ser usado em outra), então o recurso correspondente pode ser desabilitado durante a configuração (veja configure --help para detalhes).
Para Windows existe um arquivo de solução VS na pasta cava_win
.
Instale cava
no padrão /usr/local
:
make install
Ou você pode alterar PREFIX
, por exemplo:
./configure --prefix=PREFIXO
make uninstall
Todas as fontes de instalação específicas da distribuição podem estar desatualizadas. Verifique a versão antes de relatar qualquer problema aqui.
pkg install cava
Os usuários do Tumbleweed têm cava em seu repositório. Eles podem apenas usar:
zypper in cava
Os usuários do Leap precisam adicionar o repositório multimídia:apps primeiro:
zypper ar -f obs://multimedia:apps/openSUSE_Leap_42.2 multimedia
Se você usar outra versão, basta substituir openSUSE_Leap_42.2 por openSUSE_13.2 , ajuste-o para sua versão.
Cava está disponível no Fedora 26 e posterior. Você pode instalar o Cava executando:
dnf install cava
Cava está em AUR.
pacaur -S cava
sudo apt install cava
Harshal Sheth adicionou CAVA ao seu PPA, ele pode ser instalado com:
add-apt-repository ppa:hsheth2/ppa apt update apt install cava
cava está em homebrew.
brew install cava
Apenas certifique-se de ter instalado os arquivos dev do pulseaudio e que o cava foi construído com suporte ao pulseaudio (deve ser automaticamente se os arquivos dev forem encontrados).
Se você tiver sorte, tudo que você precisa fazer é correr cava.
Se nada acontecer, talvez seja necessário usar uma fonte diferente da padrão. O padrão também pode ser o seu microfone. Veja o arquivo de configuração para obter ajuda.
Definir
method = pipewire
A fonte padrão é auto
e provavelmente será a saída atualmente selecionada. Se você executar o wireplumber, poderá usar wpctl
para obter o object.path
ou object.serial
do dispositivo desejado para visualização.
por exemplo
source = alsa:pcm:3:front:3:playback
Definir
method = alsa
no arquivo de configuração.
ALSA pode ser difícil porque não existe uma maneira nativa de capturar áudio de uma saída. Se você deseja capturar o áudio diretamente da saída (não apenas do microfone ou da entrada de linha), você deve criar uma interface de loopback ALSA e, em seguida, enviar o áudio simultaneamente para o loopback e sua interface normal.
Para criar uma interface de loopback basta executar:
sudo modprobe snd_aloop
Esperamos que seu aplay -l
agora contenha uma interface de loopback.
Para torná-lo persistente durante a inicialização, adicione a linha snd-aloop
a "/etc/modules". Para evitar que ela seja carregada como a primeira placa de som, adicione a linha options snd-aloop index=1
em "/etc/modprobe.d/alsa-base.conf", isso irá carregá-la em '1'. Você pode substituir '1' pelo que fizer mais sentido na sua configuração de áudio.
A reprodução do áudio através da interface Loopback possibilita que o cava o capture, mas não haverá som nos alto-falantes. Para reproduzir áudio na interface de loopback e na sua interface real, você deve usar o multicanal ALSA.
Veja o arquivo de exemplo incluído example_files/etc/asound.conf
sobre como usar o multicanal. Consegui fazer isso funcionar com uma placa de som HDA Intel PCH, mas não tive sorte com um DAC USB.
Leia mais sobre o método ALSA aqui.
Se você estiver tendo problemas com o método alsa no Rasberry PI, tente habilitar mmap
adicionando a seguinte linha a /boot/config.txt
e reinicie:
dtoverlay=i2s-mmap
@reluekiss, conseguiu fazer cava funcionar com dmix. Confira o exemplo de configuração em example_files/etc/asound_dmix.conf
e na edição 534.
Adicione estas linhas no mpd:
audio_output { type "fifo" name "my_fifo" path "/tmp/mpd.fifo" format "44100:16:2" }
Remova o comentário e altere o método de entrada para fifo
no arquivo de configuração.
O caminho do fifo pode ser especificado com o parâmetro source
.
Tive alguns problemas com a sincronização (o visualizador estava à frente do som). A redução do buffer ALSA no mpd corrigiu o problema:
audio_output { type "alsa" name "My ALSA" buffer_time "50000" # (50ms); default is 500000 microseconds (0.5s) }
Definir
method = sndio
Sndio é o framework de áudio usado no OpenBSD, mas também está disponível no FreeBSD, NetBSD e Linux. Até agora isso só foi testado no FreeBSD, mas provavelmente é muito semelhante em outros sistemas operacionais. O exemplo a seguir demonstra como configurar CAVA para sndio no FreeBSD (consulte a seção OSS para uma explicação mais detalhada dos vários dispositivos de som pcmX
e dos dispositivos de áudio /dev/dspX
correspondentes neste exemplo).
$ gato /dev/sndstat Dispositivos instalados: pcm0: <Realtek ALC1220 (analógico traseiro)> (reprodução/gravação) padrão pcm1: <Realtek ALC1220 (microfone analógico frontal)> (gravação) pcm2: <Áudio USB> (reproduzir/gravar) Nenhum dispositivo instalado no espaço do usuário.
Sndio opera em descritores de dispositivos. Em geral, para cada dispositivo de áudio /dev/dspX
existe um descritor de dispositivo bruto rsnd/X
sndio correspondente. Neste exemplo existem rsnd/0
, rsnd/1
e rsnd/2
(eles não estão listados em /dev
, sndio usa esses descritores para acessar internamente os dispositivos de áudio correspondentes). Sndio também lida com o descritor de dispositivo default
implícito, que atua como um link simbólico para o descritor de dispositivo bruto correspondente ao dispositivo de áudio padrão /dev/dsp
. Neste exemplo, ele atua como um link simbólico para rsnd/0
porque o dispositivo de áudio padrão /dev/dsp
tem links simbólicos para /dev/dsp0
. Sndio também avalia as variáveis de ambiente AUDIODEVICE
e AUDIORECDEVICE
. Se um deles estiver definido ( AUDIORECDEVICE
substitui AUDIODEVICE
se ambos estiverem definidos) e um programa com reconhecimento de sndio tentar abrir o descritor de dispositivo default
ou um descritor de dispositivo não especificado, o programa usará o descritor de dispositivo especificado na variável de ambiente.
Agora, para visualizar a entrada do microfone no CAVA, o valor source
no arquivo de configuração deve ser definido como o descritor de áudio correspondente:
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
Com source = default
é possível alternar a visualização na linha de comando sem alterar o arquivo de configuração novamente:
$ AUDIODEVICE=rsnd/0 cava $ AUDIODEVICE=rsnd/1 cava $ AUDIODEVICE=rsnd/2 cava
O Sndio não pode gravar o áudio reproduzido apenas com os descritores de dispositivo brutos, ou seja, os sons de um reprodutor de música ou de um navegador que tocam nos alto-falantes estéreo externos através de rsnd/0
não são visualizados no CAVA. Para que isso funcione, o servidor sndio deve ser iniciado e um subdispositivo de monitoramento deve ser criado. O exemplo a seguir mostra como iniciar o servidor e criar um subdispositivo de monitoramento snd/0
a partir de rsnd/0
e, em seguida, iniciar o CAVA com AUDIODEVICE
apontando para o novo subdispositivo de monitoramento:
$ sndiod -f rsnd/0 -m play,mon $ AUDIODEVICE=snd/0 cava
Alternar entre os alto-falantes e o fone de ouvido USB:
$ sndiod -f rsnd/2 -m play,mon -s usb -f rsnd/0 -m play,mon -s alto-falantes $ AUDIODEVICE=snd/usb cava $ AUDIODEVICE=snd/alto-falantes cava
Consulte a página de manual sndiod(8)
para mais informações sobre configuração e inicialização de um servidor sndio.
Definir
method = oss
O sistema de áudio usado no FreeBSD é o Open Sound System (OSS). O exemplo a seguir demonstra como configurar CAVA para OSS no FreeBSD:
$ gato /dev/sndstat Dispositivos instalados: pcm0: <Realtek ALC1220 (analógico traseiro)> (reprodução/gravação) padrão pcm1: <Realtek ALC1220 (microfone analógico frontal)> (gravação) pcm2: <Áudio USB> (reproduzir/gravar) Nenhum dispositivo instalado no espaço do usuário.
O sistema possui três dispositivos de som pcm
, pcm0
, pcm1
e pcm2
. pcm0
corresponde ao conector de saída analógica na parte traseira, no qual alto-falantes estéreo externos são conectados, e ao conector de entrada analógica, no qual é possível conectar um microfone. Como encapsula saída e entrada, é marcado como play/rec
. Também é definido como dispositivo de som default
. pcm1
corresponde a outro conector de entrada analógica para um microfone na parte frontal e está marcado como rec
. Um fone de ouvido USB com microfone integrado é conectado a uma porta USB e o sistema criou o dispositivo de som pcm2
com recursos play/rec
para ele.
Em geral, para cada dispositivo pcmX
existe um dispositivo de áudio /dev/dspX
correspondente. Neste exemplo existem /dev/dsp0
, /dev/dsp1
e /dev/dsp2
(o sistema os cria quando necessário, eles não são listados via ls /dev
se não estiverem em uso no momento). O sistema também cria um /dev/dsp
implícito, que atua como um link simbólico para o dispositivo de áudio default
, neste exemplo para /dev/dsp0
.
Agora para visualizar a entrada do microfone no CAVA, o valor source
no arquivo de configuração deve ser definido para o dispositivo de áudio correspondente:
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
O OSS não pode gravar o áudio de saída por si só, ou seja, os sons de um reprodutor de música ou navegador que tocam nos alto-falantes estéreo externos através de /dev/dsp0
não são visualizados no CAVA. Uma solução é usar Virtual OSS. Ele pode criar dispositivos de áudio virtuais a partir de dispositivos de áudio existentes, em particular, pode criar um dispositivo de áudio de loopback a partir de /dev/dsp0
e a partir do qual o áudio reproduzido pode ser alimentado no CAVA:
$ doas pacote instalar virtual_oss $ doas virtual_oss -r44100 -b16 -c2 -s4ms -O /dev/dsp0 -R /dev/null -T /dev/sndstat -l dsp.cava $ gato /dev/sndstat Dispositivos instalados: pcm0: <Realtek ALC1220 (analógico traseiro)> (reprodução/gravação) padrão pcm1: <Realtek ALC1220 (microfone analógico frontal)> (gravação) pcm2: <Áudio USB> (reproduzir/gravar) Dispositivos instalados do espaço do usuário: dsp.cava: <OSS virtual> (reproduzir/gravar)
Ele criou um dispositivo de loopback virtual /dev/dsp.cava
de /dev/dsp0
. Agora o áudio é visualizado em CAVA com source = /dev/dsp.cava
no arquivo de configuração. O programa de reprodução deve ter uma configuração para utilizar o dispositivo /dev/dsp.cava
. Para programas onde isso não é possível, por exemplo, que sempre usam /dev/dsp
, substitua -l dsp.cava
por -l dsp
. O Virtual OSS pode ser configurado e iniciado como um serviço no FreeBSD.
Definir
method = jack
O JACK Audio Connection Kit (JACK) é uma API de servidor de som profissional que está disponível em vários sistemas operacionais, por exemplo, FreeBSD e Linux.
CAVA é um cliente JACK com o nome de cliente base cava
e adere ao comportamento padrão de início e parada do servidor, ou seja, CAVA inicia um servidor JACK se nenhum já estiver em execução e a variável de ambiente JACK_START_SERVER
estiver definida, caso em que o servidor também para quando todos os clientes saíram. A source
no arquivo de configuração CAVA especifica o nome do servidor JACK ao qual o CAVA tenta se conectar. O valor padrão é default
, que também é o nome do servidor JACK padrão. O valor pode estar vazio e, nesse caso, implica default
. Portanto, as três entradas a seguir são equivalentes:
; source = default source = default source =
Uma exceção é a combinação de uma entrada source
vazia e a variável de ambiente JACK_DEFAULT_SERVER
. Se a variável de ambiente estiver definida, por exemplo, export JACK_DEFAULT_SERVER=foo
, as seguintes entradas serão equivalentes:
source = foo source =
Consulte a página de manual jackd(1)
para obter mais informações sobre configuração e inicialização de um servidor JACK.
CAVA cria portas de entrada tipo terminal de áudio (portanto, sem suporte MIDI). Estas portas podem se conectar às portas de saída de outros clientes JACK, por exemplo, conectar-se às portas de saída de um reprodutor de música e o CAVA visualizará a música. Atualmente o CAVA suporta até duas portas de entrada, ou seja, suporta mono e estéreo. O número de portas de entrada pode ser controlado através da opção channels
na seção de entrada do arquivo de configuração:
channels = 1 # one input port, mono channels = 2 # two input ports, stereo (default)
O nome abreviado da porta é simplesmente M
para mono e L
e R
para estéreo. O nome completo da porta de entrada de acordo com o nome do cliente base é cava:M
para mono e cava:L
e cava:R
para estéreo.
A opção autoconnect
controla a estratégia de conexão das portas do CAVA com as portas de outros clientes:
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)
As estratégias de conexão automática examinam as portas de entrada do terminal físico, ou seja, o dispositivo de áudio real que realmente emite o som, e aplicam as mesmas conexões às portas do CAVA. Desta forma, o CAVA visualiza o áudio reproduzido dos clientes JACK por padrão.
Para controlar e gerenciar a conexão entre as portas do CAVA e as portas de outros programas clientes, existem programas de gerenciamento de conexões para JACK. Alguns gerenciadores de conexão bem conhecidos com interface gráfica de usuário são QjackCtl e Cadence. O próprio pacote JACK geralmente vem com ferramentas CLI. Dependendo do sistema operacional pode ser necessário instalá-los separadamente, por exemplo, no FreeBSD:
$ doas pacote instalar ferramentas de exemplo jack
Entre as ferramentas estão os programas jack_lsp
e jack_connect
. Essas duas ferramentas são suficientes para listar e conectar portas na linha de comando. O exemplo a seguir demonstra como configurar conexões com essas ferramentas:
$ jack_lsp sistema:captura_1 sistema:captura_2 sistema: reprodução_1 sistema: reprodução_2 cava:L moc:saída0 moc:saída1 cava:R
Esta listagem mostra todos os nomes de portas completos disponíveis atualmente. Estes correspondem a dois clientes JACK externos, cava
e moc
, e um system
cliente JACK interno. Os tipos e conexões ativas atuais entre as portas podem ser listados com as opções -p
e -c
para jack_lsp
. Para conectar as portas CAVA e MOC, jack_connect
é usado:
$ jack_connect cava:L moc:output0 $ jack_connect cava:R moc:output1
Agora o CAVA visualiza o áudio de saída do MOC.
squeezelite é um dos vários clientes de software disponíveis para o Logitech Media Server. Squeezelite pode exportar seus dados de áudio como memória compartilhada, que é o que este módulo de entrada usa. Basta adaptar sua configuração:
method = shmem source = /squeezelite-AA:BB:CC:DD:EE:FF
onde AA:BB:CC:DD:EE:FF
é o endereço MAC do squeezelite (verifique a GUI da Web do LMS (Configurações> Informações) se não tiver certeza). Nota: o squeezelite deve ser iniciado com o sinalizador -v
para ativar o suporte do visualizador.
Observação: o Cava não é renderizado corretamente no terminal padrão do macOS. Para obter uma exibição ideal, instale o Kitty. Cuidado, pois você pode se deparar com o problema apresentado no nº 109; no entanto, isso pode ser resolvido com isso.
Música de fundo
Instale música de fundo que fornece uma interface de loopback automaticamente. Depois de instalado e funcionando basta editar sua configuração para usar esta interface com o portaudio:
method = portaudio source = "Background Music"
Flor Sonora
Soundflower também funciona para criar uma interface de loopback. Use Audio MIDI Setup para configurar uma interface virtual que emite áudio para os alto-falantes e para a interface de loopback, seguindo esta receita. Ao criar um dispositivo de múltiplas saídas, você perde a capacidade de controlar o volume do teclado. Por isso, recomendamos o aplicativo Música de fundo, que ainda oferece controles de teclado.
Em seguida edite sua configuração para usar esta interface com o portaudio:
method = portaudio source = "Soundflower (2ch)"
Deve capturar o áudio do dispositivo de saída padrão automaticamente.
Para executar via ssh em um monitor externo, redirecione a saída para /dev/console
:
~# ./cava <> /dev/console >&0 2>&1
saia com ctrl+z e execute 'bg' para mantê-lo funcionando após o logout.
(Você deve ser root para redirecionar para o console. Sudo simples não é suficiente: execute sudo su
primeiro.)
Provavelmente o problema nº 399. As configurações de localidade precisam ser definidas corretamente para que o cava funcione.
Este é um problema conhecido com pipewire. Experimente a solução alternativa descrita aqui
Isso é um problema com a fonte ou com o espaçamento entre linhas ativado no emulador de terminal. Tente alterar a fonte ou desativar o espaçamento entre linhas.
Como os gráficos são baseados simplesmente em caracteres, tente diminuir o tamanho da fonte.
Alguns emuladores de terminal são apenas lentos. Cava ficará melhor em um terminal baseado em GPU como kitty ou alacritty. Você também pode tentar aumentar o tamanho da fonte
Se você executar o cava em um TTY (como ctrl+alt+F2), o programa alterará a fonte para o cava.psf
incluído (na verdade, um "unifont" ligeiramente modificado).
Nas fontes do console, parece que apenas 256 caracteres Unicode são suportados, provavelmente porque são fontes bitmap. Não consegui encontrar uma fonte com caracteres Unicode 2581-2587 (os blocos 1/8 - 7/8 usados na parte superior de cada barra para aumentar a resolução).
Portanto, em cava.psf
, os caracteres 1-7 são substituídos pelos caracteres Unicode 2581-2587. Quando o cava sai, ele altera a fonte de volta. Se o cava sair de forma anormal e você notar que 1-7 foram substituídos por blocos parciais, basta alterar a fonte com setfont
.
Na verdade, setfont
deve retornar a fonte padrão, mas isso geralmente não é definido. Não encontrei outra maneira de obter a fonte atual. Portanto, cava define a fonte como "Lat2-Fixed16" quando interrompida. Todas as principais distros deveriam ter isso. Ele reverterá para sua fonte padrão na reinicialização.
O Konsole simplesmente não suporta isso. #194
Usage : cava [options] Visualize audio input in terminal. Options: -p path to config file -v print version
Saia com ctrl+c ou q.
Se o cava for encerrado inesperadamente ou for encerrado à força, echo deverá ser ativado manualmente com stty -echo
.
Chave | Descrição |
---|---|
para cima / para baixo | aumentar/diminuir a sensibilidade |
esquerda / direita | aumentar/diminuir a largura da barra |
f / b | alterar a cor do primeiro plano/fundo |
R | Recarregar configuração |
c | Recarregar apenas cores |
q ou CTRL-C | Sair do CAVA |
A partir da versão 0.4.0 todas as opções são feitas no arquivo de configuração, sem mais argumentos de linha de comando!
Por padrão, um arquivo de configuração é criado na primeira inicialização em $XDG_CONFIG_HOME/cava/config
ou $HOME/.config/cava/config
, mas cava também pode ser feito para usar um arquivo diferente com a opção -p
.
Enviar ao cava um sinal SIGUSR1 forçará o cava a recarregar seu arquivo de configuração. Assim, ele se comporta como se o usuário pressionasse r no terminal. Pode-se enviar um sinal SIGUSR1 usando pkill
ou killall
. Por exemplo:
$ pkill -USR1 cava
Da mesma forma, enviar ao cava um sinal SIGUSR2 apenas recarregará as cores do arquivo de configuração, o que é o mesmo que pressionar c no terminal. Isso é um pouco mais rápido do que recarregar toda a configuração, pois o processamento de áudio não precisa ser reinicializado.
$ pkill -USR2 cava
Exemplos de como funciona o equalizador:
[eq] 1=0 2=1 3=0 4=1 5=0
[eq] 1=2 2=2 3=1 4=1 5=0.5
O mecanismo de processamento principal do cava foi dividido em uma biblioteca separada cavacore
. Consulte CAVACORE.md para obter detalhes.
Você também pode usar a saída do Cava para outros programas usando o modo de saída bruto, que gravará dados de barra em STDOUT
que podem ser canalizados para outros processos. Mais informações sobre esta opção estão documentadas no arquivo de configuração de exemplo.
Um exemplo de script de ponto de partida útil escrito em python que consome dados brutos pode ser encontrado aqui.
Leia CONTRIBUTING.md antes de abrir uma solicitação pull.
Obrigado a:
Morsa Celestial
anko
viver melhor
pelas principais contribuições no desenvolvimento inicial deste projeto.
Agradecemos também a dpayne por descobrir como encontrar o nome do coletor padrão do pulseaudio.