Visualiseur audio multiplateforme
par Karl Stavestrand
Vidéo de démonstration
Qu'est-ce que c'est
Installation
De la source
Gestionnaires de paquets
Capturer du son
Pulseaudio
Fil de tuyauterie
ALSA
MPD
Sndio
OSS
JACK
squeezelite
macOS
Fenêtres
Exécuté via ssh
Dépannage
Usage
Contrôles
Configuration
Utiliser le cava dans d'autres applications
cavacore
Sortie brute
Contribution
Cava est un visualiseur audio à spectre à barres pour terminal ou ordinateur de bureau (SDL).
fonctionne sur :
Linux
GratuitBSD
macOS
Fenêtres
Ce programme n'est pas destiné à un usage scientifique. Il est écrit pour paraître réactif et esthétique lorsqu'il est utilisé pour visualiser de la musique.
Composants requis :
FFTW
outil lib
fabrication automatique
autoconf-archive (nécessaire pour configurer OpenGL)
pkgconf
les essentiels de la construction
analyseur initial
Composants recommandés :
La bibliothèque de développement d'un de ces frameworks audio, en fonction de votre distribution :
ALSA
Pulseaudio
Fil de tuyauterie
Portaudio
Sndio
JACK
Composants optionnels :
Fichiers de développement SDL2
Fichiers de développement ncursesw (regroupés dans ncurses dans arch)
Seuls FFTW, iniparser et les outils de construction sont réellement requis pour la compilation de CAVA, mais cela vous donnera uniquement la possibilité de lire à partir de fichiers fifo. Pour capturer l'audio directement à partir du pipeline de votre système, des fichiers de développement pulseaudio, alsa, sndio, jack ou portaudio sont requis (en fonction du système audio que vous utilisez).
Ncurses peut être utilisé comme méthode de sortie alternative si vous rencontrez des problèmes avec celle par défaut. Mais ce n’est pas obligatoire.
Toutes les exigences peuvent être installées facilement dans toutes les principales distributions :
GratuitBSD
pkg install autoconf autoconf-archive automake fftw3 iniparser jackit libglvnd libtool pkgconf psftools sdl2 sndio
De plus, exécutez ces commandes sur FreeBSD avant de construire :
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
ouvertSUSE :
zypper install alsa-devel fftw3-devel libpulse-devel libtool autoconf-archive pkgconf
Feutre:
dnf install alsa-lib-devel fftw3-devel pulseaudio-libs-devel libtool autoconf-archive iniparser-devel pkgconf
macOS :
Installez d'abord homebrew si vous ne l'avez pas déjà fait :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Installez ensuite les prérequis :
brew install fftw libtool automake autoconf-archive pkgconf portaudio iniparser
L'emplacement d'installation des packages Homebrew est différent entre les Mac Intel et les Mac Apple Silicon. En tant que tel, les commandes seront un peu différentes. Vous pouvez découvrir quel type vous avez ici
Pour les deux machines, exécutez ces commandes pour réparer macOS ne trouvant pas libtool :
export LIBTOOL=`which glibtool` export LIBTOOLIZE=`which glibtoolize` ln -s `which glibtoolize` /usr/local/bin/libtoolize
Notez que le nom du fichier peut être un peu différent selon les versions, mais le répertoire doit être le même.
De plus, exécutez ces commandes sur les Mac Apple Silicon afin que ./configure puisse trouver les packages Homebrew :
export LDFLAGS="-L/opt/homebrew/lib" export CPPFLAGS="-I/opt/homebrew/include"
Instructions Intel Mac testées sur macOS Big Sur.
Instructions Apple Silicon testées sur macOS Ventura.
Fenêtres :
voir le fichier Lisez-moi séparé dans le dossier cava_win
.
Tout d'abord, clonez ce dépôt et installez-y un cd, puis exécutez :
./autogen.sh ./configure make
Si vous avez installé un composant recommandé, mais que vous ne souhaitez pas l'utiliser (peut-être si vous construisez un binaire sur une machine pour l'utiliser sur une autre), alors la fonctionnalité correspondante peut être désactivée lors de la configuration (voir configure --help pour plus de détails).
Pour Windows, il existe un fichier de solution VS dans le dossier cava_win
.
Installez cava
par défaut /usr/local
:
make install
Ou vous pouvez modifier PREFIX
, par exemple :
./configure --prefix=PREFIX
make uninstall
Toutes les sources d'installation spécifiques à la distribution peuvent être obsolètes. Veuillez vérifier la version avant de signaler tout problème ici.
pkg install cava
Les utilisateurs de Tumbleweed ont du cava dans leur dépôt. Ils peuvent simplement utiliser :
zypper in cava
Les utilisateurs de Leap doivent d'abord ajouter le référentiel multimédia:apps :
zypper ar -f obs://multimedia:apps/openSUSE_Leap_42.2 multimedia
Si vous utilisez une autre version, remplacez simplement openSUSE_Leap_42.2 par openSUSE_13.2 , ajustez-le à votre version.
Cava est disponible dans Fedora 26 et versions ultérieures. Vous pouvez installer Cava en exécutant :
dnf install cava
Le cava est en AUR.
pacaur -S cava
sudo apt install cava
Harshal Sheth a ajouté CAVA à son PPA, il peut être installé avec :
add-apt-repository ppa:hsheth2/ppa apt update apt install cava
le cava est en homebrew.
brew install cava
Assurez-vous simplement que vous avez installé les fichiers de développement pulseaudio et que cava a été construit avec le support pulseaudio (cela devrait être automatiquement si les fichiers de développement sont trouvés).
Si vous avez de la chance, tout ce que vous avez à faire est de faire couler du cava.
Si rien ne se passe, vous devrez peut-être utiliser une source différente de celle par défaut. La valeur par défaut peut également être votre microphone. Regardez le fichier de configuration pour obtenir de l'aide.
Ensemble
method = pipewire
La source par défaut est auto
et sera très probablement votre sortie actuellement sélectionnée. Si vous exécutez wireplumber, vous pouvez utiliser wpctl
pour obtenir le object.path
ou object.serial
du périphérique souhaité à visualiser.
par exemple
source = alsa:pcm:3:front:3:playback
Ensemble
method = alsa
dans le fichier de configuration.
ALSA peut être difficile car il n'existe aucun moyen natif de récupérer l'audio d'une sortie. Si vous souhaitez capturer l'audio directement à partir de la sortie (pas seulement du micro ou de l'entrée ligne), vous devez créer une interface de bouclage ALSA, puis émettre l'audio simultanément vers le bouclage et votre interface normale.
Pour créer une interface de bouclage, exécutez simplement :
sudo modprobe snd_aloop
Espérons que votre aplay -l
devrait maintenant contenir une interface de bouclage.
Pour le rendre persistant pendant le démarrage, ajoutez la ligne snd-aloop
à "/etc/modules". Pour l'empêcher d'être chargé en tant que première carte son, ajoutez les options snd-aloop index=1
à "/etc/modprobe.d/alsa-base.conf", cela la chargera à "1". Vous pouvez remplacer « 1 » par ce qui a le plus de sens dans votre configuration audio.
La lecture de l'audio via votre interface Loopback permet au cava de le capturer, mais il n'y aura aucun son dans vos haut-parleurs. Afin de lire de l'audio sur l'interface de bouclage et sur votre interface actuelle, vous devez utiliser le multicanal ALSA.
Regardez le fichier d'exemple inclus example_files/etc/asound.conf
pour savoir comment utiliser le multicanal. J'ai pu faire fonctionner cela avec une carte son HDA Intel PCH, mais je n'ai pas eu de chance avec un DAC USB.
En savoir plus sur la méthode ALSA ici.
Si vous rencontrez des problèmes avec la méthode alsa sur Rasberry PI, essayez d'activer mmap
en ajoutant la ligne suivante à /boot/config.txt
et redémarrez :
dtoverlay=i2s-mmap
@reluekiss, a pu faire fonctionner le cava avec dmix. Consultez l'exemple de configuration dans example_files/etc/asound_dmix.conf
et le numéro 534.
Ajoutez ces lignes dans mpd :
audio_output { type "fifo" name "my_fifo" path "/tmp/mpd.fifo" format "44100:16:2" }
Décommentez et changez la méthode de saisie en fifo
dans le fichier de configuration.
Le chemin du fifo peut être spécifié avec le paramètre source
.
J'ai eu quelques soucis de synchronisation (le visualiseur était en avance sur le son). La réduction du tampon ALSA dans mpd a corrigé le problème :
audio_output { type "alsa" name "My ALSA" buffer_time "50000" # (50ms); default is 500000 microseconds (0.5s) }
Ensemble
method = sndio
Sndio est le framework audio utilisé sur OpenBSD, mais il est également disponible sur FreeBSD, NetBSD et Linux. Jusqu'à présent, cela n'a été testé que sur FreeBSD, mais c'est probablement très similaire sur d'autres systèmes d'exploitation. L'exemple suivant montre comment configurer CAVA pour sndio sur FreeBSD (veuillez consulter la section OSS pour une explication plus approfondie des différents périphériques audio pcmX
et des périphériques audio /dev/dspX
correspondants dans cet exemple).
$ cat /dev/sndstat Appareils installés : pcm0 : <Realtek ALC1220 (analogique arrière)> (lecture/enregistrement) par défaut pcm1 : <Realtek ALC1220 (micro analogique avant)> (enregistrement) pcm2 : <audio USB> (lecture/enregistrement) Aucun appareil installé depuis l'espace utilisateur.
Sndio fonctionne sur les descripteurs d'appareils. En général, pour chaque périphérique audio /dev/dspX
il existe un descripteur de périphérique brut rsnd/X
sndio correspondant. Dans cet exemple, il y a rsnd/0
, rsnd/1
et rsnd/2
(ils ne sont pas répertoriés dans /dev
, sndio utilise ces descripteurs pour accéder aux périphériques audio correspondants en interne). Sndio gère également le descripteur de périphérique default
implicite, qui agit comme un lien symbolique vers le descripteur de périphérique brut correspondant au périphérique audio par défaut /dev/dsp
. Dans cet exemple, il agit comme un lien symbolique vers rsnd/0
car le périphérique audio par défaut /dev/dsp
crée un lien symbolique vers /dev/dsp0
. Sndio évalue également les variables d'environnement AUDIODEVICE
et AUDIORECDEVICE
. Si l'un d'entre eux est défini ( AUDIORECDEVICE
remplace AUDIODEVICE
si les deux sont définis) et qu'un programme compatible Sndio tente d'ouvrir le descripteur de périphérique default
ou un descripteur de périphérique non spécifié, alors le programme utilisera le descripteur de périphérique spécifié dans la variable d'environnement.
Maintenant, afin de visualiser l'entrée micro dans CAVA, la valeur source
dans le fichier de configuration doit être définie sur le descripteur audio correspondant :
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
Avec source = default
on peut changer la visualisation sur la ligne de commande sans changer à nouveau le fichier de configuration :
$ AUDIODEVICE=rsnd/0 cava $ AUDIODEVICE=rsnd/1 cava $ AUDIODEVICE=rsnd/2 cava
Sndio ne peut pas enregistrer l'audio lu avec uniquement les descripteurs bruts du périphérique, c'est-à-dire que les sons d'un lecteur de musique ou d'un navigateur qui sont lus sur les haut-parleurs stéréo externes via rsnd/0
ne sont pas visualisés dans CAVA. Pour que cela fonctionne, le serveur sndio doit être démarré et un sous-périphérique de surveillance doit être créé. L'exemple suivant montre comment démarrer le serveur et créer un sous-périphérique de surveillance snd/0
à partir de rsnd/0
, puis démarrer CAVA avec AUDIODEVICE
pointant vers le nouveau sous-périphérique de surveillance :
$ sndiod -f rsnd/0 -m jouer,mon $ AUDIODEVICE=snd/0 cava
Basculez entre les haut-parleurs et le casque USB :
$ sndiod -f rsnd/2 -m play,mon -s usb -f rsnd/0 -m play,mon -s haut-parleurs $ AUDIODEVICE=snd/usb cava $ AUDIODEVICE=snd/enceintes cava
Consultez la page de manuel sndiod(8)
pour plus d'informations concernant la configuration et le démarrage d'un serveur sndio.
Ensemble
method = oss
Le système audio utilisé sur FreeBSD est l'Open Sound System (OSS). L'exemple suivant montre comment configurer CAVA pour OSS sur FreeBSD :
$ cat /dev/sndstat Appareils installés : pcm0 : <Realtek ALC1220 (analogique arrière)> (lecture/enregistrement) par défaut pcm1 : <Realtek ALC1220 (micro analogique avant)> (enregistrement) pcm2 : <audio USB> (lecture/enregistrement) Aucun appareil installé depuis l'espace utilisateur.
Le système dispose de trois périphériques audio pcm
, pcm0
, pcm1
et pcm2
. pcm0
correspond à la prise de sortie analogique à l'arrière, dans laquelle sont branchés des haut-parleurs stéréo externes, et à la prise d'entrée analogique, dans laquelle on pourrait brancher un microphone. Parce qu'il encapsule à la fois la sortie et l'entrée, il est marqué comme play/rec
. Il est également défini comme périphérique audio default
. pcm1
correspond à une autre prise d'entrée analogique pour un micro sur la face avant et est marqué rec
. Un casque USB avec un micro intégré est branché sur un port USB et le système a créé le périphérique audio pcm2
doté de capacités play/rec
.
En général, à chaque périphérique pcmX
correspond un périphérique audio /dev/dspX
. Dans cet exemple, il y a /dev/dsp0
, /dev/dsp1
et /dev/dsp2
(le système les crée en cas de besoin, ils ne sont pas répertoriés via ls /dev
s'ils ne sont actuellement pas utilisés). Le système crée également un /dev/dsp
implicite, qui agit comme un lien symbolique vers le périphérique audio default
, dans cet exemple vers /dev/dsp0
.
Maintenant, afin de visualiser l'entrée micro dans CAVA, la valeur source
dans le fichier de configuration doit être définie sur le périphérique audio correspondant :
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 ne peut pas enregistrer l'audio sortant seul, c'est-à-dire que les sons d'un lecteur de musique ou d'un navigateur qui sont diffusés sur les haut-parleurs stéréo externes via /dev/dsp0
ne sont pas visualisés dans CAVA. Une solution consiste à utiliser Virtual OSS. Il peut créer des périphériques audio virtuels à partir de périphériques audio existants, en particulier il peut créer un périphérique audio de bouclage à partir de /dev/dsp0
et à partir duquel l'audio lu peut être introduit dans CAVA :
$ faire en sorte que pkg installe virtual_oss $ doas virtual_oss -r44100 -b16 -c2 -s4ms -O /dev/dsp0 -R /dev/null -T /dev/sndstat -l dsp.cava $ cat /dev/sndstat Appareils installés : pcm0 : <Realtek ALC1220 (analogique arrière)> (lecture/enregistrement) par défaut pcm1 : <Realtek ALC1220 (micro analogique avant)> (enregistrement) pcm2 : <audio USB> (lecture/enregistrement) Appareils installés depuis l'espace utilisateur : dsp.cava : <Virtual OSS> (lecture/enregistrement)
Il a créé un périphérique de bouclage virtuel /dev/dsp.cava
à partir de /dev/dsp0
. Maintenant, l'audio est visualisé dans CAVA avec source = /dev/dsp.cava
dans le fichier de configuration. Le programme de lecture doit avoir une configuration pour utiliser le périphérique /dev/dsp.cava
. Pour les programmes où cela n'est pas possible, par exemple qui utilisent toujours /dev/dsp
, remplacez -l dsp.cava
par -l dsp
. Virtual OSS peut être configuré et démarré en tant que service sur FreeBSD.
Ensemble
method = jack
Le JACK Audio Connection Kit (JACK) est une API de serveur de son professionnel disponible sur plusieurs systèmes d'exploitation, par exemple FreeBSD et Linux.
CAVA est un client JACK avec le nom de client de base cava
et adhère au comportement standard de démarrage et d'arrêt du serveur, c'est-à-dire que CAVA démarre un serveur JACK si aucun n'est déjà en cours d'exécution et que la variable d'environnement JACK_START_SERVER
est définie, auquel cas le serveur s'arrête également lorsque tout est activé. les clients sont sortis. La source
dans le fichier de configuration CAVA spécifie le nom du serveur JACK auquel CAVA tente de se connecter. La valeur par défaut est default
, qui est également le nom du serveur JACK par défaut. La valeur peut être vide, auquel cas elle implique default
. Les trois entrées suivantes sont donc équivalentes :
; source = default source = default source =
Une exception est la combinaison d'une entrée source
vide et de la variable d'environnement JACK_DEFAULT_SERVER
. Si la variable d'environnement est définie, par exemple export JACK_DEFAULT_SERVER=foo
, alors les entrées suivantes sont équivalentes :
source = foo source =
Consultez la page de manuel jackd(1)
pour plus d'informations concernant la configuration et le démarrage d'un serveur JACK.
CAVA crée des ports d'entrée de terminal à typage audio (donc pas de prise en charge MIDI). Ces ports peuvent se connecter aux ports de sortie d'autres clients JACK, par exemple se connecter aux ports de sortie d'un lecteur de musique et CAVA visualisera la musique. Actuellement, CAVA prend en charge jusqu'à deux ports d'entrée, c'est-à-dire qu'il prend en charge le mono et le stéréo. Le nombre de ports d'entrée peut être contrôlé via l'option channels
dans la section d'entrée du fichier de configuration :
channels = 1 # one input port, mono channels = 2 # two input ports, stereo (default)
Le nom court du port est simplement M
pour mono et L
et R
pour stéréo. Le nom complet du port d'entrée selon le nom du client de base est cava:M
pour mono, et cava:L
et cava:R
pour stéréo.
L'option autoconnect
contrôle la stratégie de connexion des ports de CAVA vers les ports d'autres clients :
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)
Les stratégies de connexion automatique analysent les ports d'entrée physiques du terminal, c'est-à-dire le véritable périphérique audio qui émet réellement le son, et appliquent les mêmes connexions aux ports du CAVA. De cette façon, CAVA visualise par défaut l'audio lu par les clients JACK.
Afin de contrôler et gérer la connexion entre les ports de CAVA et les ports d'autres programmes clients, il existe des programmes de gestion de connexion pour JACK. Certains gestionnaires de connexions bien connus dotés d'une interface utilisateur graphique sont QjackCtl et Cadence. Le package JACK lui-même est souvent livré avec des outils CLI. Selon le système d'exploitation, il peut être nécessaire de les installer séparément, par exemple sur FreeBSD :
$ doas pkg installe jack-example-tools
Parmi les outils figurent les programmes jack_lsp
et jack_connect
. Ces deux outils suffisent pour lister et connecter les ports en ligne de commande. L'exemple suivant montre comment configurer des connexions avec ces outils :
$ jack_lsp système : capture_1 système : capture_2 système : lecture_1 système : lecture_2 champagne:L moc: sortie0 moc: sortie1 champagne:R
Cette liste affiche tous les noms de ports complets actuellement disponibles. Ceux-ci correspondent à deux clients JACK externes, cava
et moc
, et à un system
client JACK interne. Les types et les connexions actives actuelles entre les ports peuvent être répertoriés avec les commutateurs -p
et -c
pour jack_lsp
. Afin de connecter les ports de CAVA et MOC, jack_connect
est utilisé :
$ jack_connect cava:L moc:output0 $ jack_connect cava:R moc:output1
CAVA visualise désormais l'audio sortant de MOC.
squeezelite est l'un des nombreux logiciels clients disponibles pour Logitech Media Server. Squeezelite peut exporter ses données audio sous forme de mémoire partagée, ce que ce module d'entrée utilise. Adaptez simplement votre configuration :
method = shmem source = /squeezelite-AA:BB:CC:DD:EE:FF
où AA:BB:CC:DD:EE:FF
est l'adresse MAC de squeezelite (vérifiez l'interface graphique Web LMS (Paramètres>Informations) en cas de doute). Remarque : squeezelite doit être démarré avec l'indicateur -v
pour activer la prise en charge du visualiseur.
Remarque : Cava ne s'affiche pas correctement dans le terminal macOS par défaut. Afin d'obtenir un affichage optimal, installez Kitty. Attention, vous risquez de rencontrer le problème présenté au n° 109 ; cependant, cela peut être résolu avec cela.
Musique de fond
Installez la musique de fond qui fournit automatiquement une interface de bouclage. Une fois installé et exécuté, modifiez simplement votre configuration pour utiliser cette interface avec portaudio :
method = portaudio source = "Background Music"
Fleur sonore
Soundflower fonctionne également pour créer une interface de bouclage. Utilisez Audio MIDI Setup pour configurer une interface virtuelle qui transmet l'audio à la fois à vos haut-parleurs et à l'interface de bouclage, en suivant cette recette. En créant un périphérique multi-sorties, vous perdez la possibilité de contrôler le volume de votre clavier. Pour cette raison, nous recommandons l’application Background Music qui vous offre toujours des commandes au clavier.
Modifiez ensuite votre config pour utiliser cette interface avec portaudio :
method = portaudio source = "Soundflower (2ch)"
Doit capturer automatiquement l’audio du périphérique de sortie par défaut.
Pour exécuter via ssh sur un moniteur externe, redirigez la sortie vers /dev/console
:
~# ./cava <> /dev/console >&0 2>&1
quittez avec ctrl+z puis exécutez 'bg' pour qu'il continue de fonctionner après votre déconnexion.
(Vous devez être root pour rediriger vers la console. Un simple sudo ne suffit pas : exécutez d'abord sudo su
.)
Très probablement le numéro 399. Les paramètres régionaux doivent être définis correctement pour que cava fonctionne.
Il s'agit d'un problème connu avec Pipewire. Essayez la solution de contournement décrite ici
Il s'agit soit d'un problème lié à la police, soit de l'activation de l'espacement des lignes dans l'émulateur de terminal. Essayez de changer la police ou de désactiver l'espacement des lignes.
Puisque les graphiques sont simplement basés sur des caractères, essayez de réduire la taille de la police.
Certains émulateurs de terminaux sont tout simplement lents. Cava aura fière allure dans un terminal basé sur GPU comme Kitty ou Alacritty. Vous pouvez également essayer d'augmenter la taille de la police
Si vous exécutez cava dans un TTY (comme ctrl+alt+F2), le programme changera la police en cava.psf
inclus (en fait une "unifont" légèrement modifiée).
Dans les polices de console, il semble que seuls 256 caractères Unicode soient pris en charge, probablement parce qu'il s'agit de polices bitmap. Je n'ai pas trouvé de police avec les caractères Unicode 2581-2587 (les blocs 1/8 - 7/8 utilisés en haut de chaque barre pour augmenter la résolution).
Ainsi, dans cava.psf
, les caractères 1 à 7 sont en fait remplacés par les caractères Unicode 2581-2587. Lorsque cava se ferme, la police est modifiée. Si cava sort anormalement et que vous remarquez que 1 à 7 sont remplacés par des blocs partiels, changez simplement la police avec setfont
.
En fait, setfont
est censé renvoyer la police par défaut, mais celle-ci n'est généralement pas définie. Je n'ai pas trouvé d'autre moyen d'obtenir la police actuelle. Cava définit donc la police sur "Lat2-Fixed16" en cas d'interruption. Toutes les distributions majeures devraient l'avoir. Il reviendra à votre police par défaut au redémarrage.
Konsole ne prend tout simplement pas cela en charge. #194
Usage : cava [options] Visualize audio input in terminal. Options: -p path to config file -v print version
Quittez avec ctrl+c ou q.
Si cava se ferme de manière inattendue ou est tué de force, echo doit être activé manuellement avec stty -echo
.
Clé | Description |
---|---|
haut / bas | augmenter/diminuer la sensibilité |
gauche / droite | augmenter/diminuer la largeur de la barre |
f / b | changer la couleur de premier plan/arrière-plan |
r | Recharger la configuration |
c | Recharger les couleurs uniquement |
q ou CTRL-C | Quitter CAVA |
Depuis la version 0.4.0, toutes les options sont définies dans le fichier de configuration, plus d'arguments de ligne de commande !
Par défaut, un fichier de configuration est créé lors du premier lancement dans $XDG_CONFIG_HOME/cava/config
ou $HOME/.config/cava/config
, mais cava peut également être amené à utiliser un fichier différent avec l'option -p
.
L'envoi à cava d'un signal SIGUSR1 forcera cava à recharger son fichier de configuration. Ainsi, il se comporte comme si l'utilisateur appuyait sur r dans le terminal. On peut envoyer un signal SIGUSR1 en utilisant pkill
ou killall
. Par exemple:
$ pkill -USR1 cava
De même, envoyer à cava un signal SIGUSR2 rechargera uniquement les couleurs du fichier de configuration, ce qui revient à appuyer sur c dans le terminal. C'est légèrement plus rapide que de recharger toute la configuration car le traitement audio n'a pas besoin d'être réinitialisé.
$ pkill -USR2 cava
Exemples de fonctionnement de l'égaliseur :
[eq] 1=0 2=1 3=0 4=1 5=0
[eq] 1=2 2=2 3=1 4=1 5=0.5
Le moteur de traitement principal de cava a été divisé en une bibliothèque distincte cavacore
. Voir CAVACORE.md pour plus de détails.
Vous pouvez également utiliser la sortie de Cava pour d'autres programmes en utilisant le mode de sortie brute, qui écrira les données de barre sur STDOUT
qui pourront être transmises à d'autres processus. Plus d'informations sur cette option sont documentées dans l'exemple de fichier de configuration.
Un exemple de script de point de départ utile écrit en python qui consomme des données brutes peut être trouvé ici.
Veuillez lire CONTRIBUTING.md avant d'ouvrir une pull request.
Grâce à:
Morse Céleste
anko
vivre mieux
pour ses contributions majeures au début du développement de ce projet.
Merci également à dpayne d'avoir trouvé comment trouver le nom du récepteur par défaut de pulseaudio.