Chargement...
 
Skip to main content

5 - Les serveurs son : JACK, PipeWire, PulseAudio et autres...


Darkice sur raspberry pi3

Bonsoir,

Confinement oblige, j'ai mis en place une diffusion en Streaming à certaines heures de la journée.
Le matériel est un raspberry3 qui gère déjà le programme horaire.
Aux heures voulues, il lance darkice qui récupère le son d'un Behringer Xenyx 302USB.Cette carte son usb n'est pas reconnue par alsa mais bien prise en compte avec pulseaudio, j'ai donc installé pulseaudio et la capture se fait bien.

Deux petits problèmes :
Il n'y a personne à surveiller la diffusion :
un compresseur serait bien pour éviter la saturation
un gate pour élimer le bruit d'une lampe !

Je suppose que je dois passer par jack pour cela.
J'ai suivi les indications de Comment rediriger le son de pulseaudio vers jack et je trouve bien un Jack source, pas en sortie mais cela ne me gène pas puisque la sortie sera darkice...
La page Darkice ne renseigne pas quand à la configuration
j'ai essayé jack et jack_auto avec le même résultat :

Copy to clipboard
Using config file: /etc/darkice.cfg Using JACK audio server as input device. Using POSIX real-time scheduling, priority 98 jack_client_new: deprecated Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock DarkIce: JackDspSource.cpp:216: JACK server not running? [0]


pulse :
Copy to clipboard
Using config file: /etc/darkice.cfg Using ALSA DSP input device: pulse Using POSIX real-time scheduling, priority 98 ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused


plughw:1,0 :
Copy to clipboard
Using config file: /etc/darkice.cfg Using ALSA DSP input device: plughw:1,0 Using POSIX real-time scheduling, priority 98 DarkIce: DarkIce.cpp:1187: can't open connector [0]


donc pour l'instant pas la peine d'essayer d'insérer un filtre entre l'entrée et darkice...

après redémarrage sans jack, darkice marche bien avec plughw:1,0

Mes recherches sur le net pour la configuration jack/darkice n'ont rien donné
Quelles pistes me conseilleriez-vous ?
Désolé d'avoir été un peu long et peut-être pas assez précis

Merci
Gérard
Bonsoir,

Chez moi, icecast2/darkice fonctionne sans problème et sans pulseaudio, uniquement avec jackd, sur un vieil Intel Pentium 4 ... et 1 Go de ram (Debian Stretch). Je te recopie la config de Darkice que j'utilise, tu y trouveras peut-être une solution :

Copy to clipboard
# sample DarkIce configuration file, edit for your needs before using # see the darkice.cfg man page for details # this section describes general aspects of the live streaming session [general] duration = 0 # duration of encoding, in seconds. 0 means forever bufferSecs = 5 # size of internal slip buffer, in seconds reconnect = yes # reconnect to the server(s) if disconnected realtime = yes # run the encoder with POSIX realtime priority rtprio = 3 # scheduling priority for the realtime threads # this section describes the audio input that will be streamed [input] device = jack_auto # OSS DSP soundcard device for the audio input sampleRate = 44100 # sample rate in Hz. try 11025, 22050 or 44100 bitsPerSample = 16 # bits per sample. try 16 channel = 2 # channels. 1 = mono, 2 = stereo jackClientName = DarkIce_toto # this section describes a streaming connection to an IceCast2 server # there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7] # these can be mixed with [icecast-x] and [shoutcast-x] sections [icecast2-0] bitrateMode = cbr # average bit rate format = mp3 # format of the stream: ogg vorbis bitrate = 128 # bitrate of the stream sent to the server server = localhost # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = a # source password to the IceCast2 server mountPoint = myradio # mount point of this stream on the IceCast2 server # c'est aussi le nom de la "radio" à afficher dans # audacious, après le port 8000/ name = nonono # C'est le nom de la "chanson" qui va s'afficher # par défaut dans audacious # name of the stream description = This is only a trial # description of the stream url = http://192.168.1.16:8000/myradio # URL related to the stream genre = my own # genre of the stream public = yes # advertise this stream? #localDumpFile = dump.ogg # local dump file

Merci pour la réponse, malheureusement, sans pulseaudio je n'ai pas d'entrée sur le raspberry. Cela me rassure quand à la ram.
Fais-tu des filtrages avant diffusion ? J'ai essayé le lowpass de darkice qui est très efficace dans les silence mais cela crée des artefact qui le rende inutilisable dans la partie un peu forte.

Gérard
France
Bonjour,

Est ce que tu es allé poser la question sur le site (ou github ou mailing list) de darkice ?

Pour ton inteface audio usb, je pense que tu parles de la Behringer Xenyx 302USB.
Donc, dans ton fil de discussion il y a deux questions/problèmes complètement distinct.

En tant que modérateur, je vais te demander de bien vouloir ouvrir un fil de discussion pour qu'on puisse t'aider à la detection et au bon fonctionnement de ton interface audio USB et le Raspberry pi 3 dans un premier temps. Cela permettra de mettre en place jack sur cet engin.

Pour darkice sur raspberry pi, il faudra donc ouvrir jack et le pont pulseaudio jack et inclure les greffons (plugins) que tu veux avant d'envoyer le tout vers la sortie son physique de l'engin.

Merci par avance. Jujudusud, modérateur du forum.
ok,
Si on résoud le problème de la Behringer Xenyx 302USB sans passer par pulseaudio, je suppose que darkice reconnaîtra jack.
Je vais faire un test avec une carte C-media(entrée mono) qui n'a pas besoin de pulseaudio pour voir si darkice accepte la connexion avec jack

Merci
France
Est ce que tu peux ouvrir un fil de discussion pour la résolution de la connexion de l'interface audio sur le raspberry pi s'il te plait ?
Comme ça on avance sur ce point.

Merci par avance. 😊
France
Bon, donc ici ? on en est où ?

on à l'interface audio Behringer qui est connectée avec Alsa et Darkice qui peut prendre un flux de Alsa.

Est ce que tu sais un tel branchement avec l'interface CLI fgland ?

Sinon il existe une interface GUI pour darkice qui s'appelle darksnow.
darkice sera lancé en ligne de commande par un programme horaire journalier déjà géré par le raspberry. L'interface graphique n'a donc pas d'intérêt.
Maintenant je voudrais pouvoir insérer un filtre et une amplification avant l'envoi sur darkice, je suppose avec jack...
France
Ok, oui très bien !

Pour comprendre ce qu'est jack et comment il fonctionne, le mieux est d'aller lire la page qui lui est dédiée.

Au passage je conseille d'installer jack2 et non jack (c'est presque la même chose mais pas tout à fait... bref ... tu peux chercher sur le net si tu veux des explications précises)

En gros, il va router le son entre les entrées, sorties, les logiciels, les greffons (plugins) et va permettre de créer des ponts pour recuperer ou injecter du son dans pulseaudio. Les greffons doivent être chargés par un hote de greffons. les deux familles de greffons principales de Linux sont le LADSPA et le LV2. l'hote de greffon va ouvrir des ports entrée et sortie de son pour chaque greffon ou pour la totalité et so'ccuper du routage interne entre les greffons.

Voilà.
alors, si après avoir installé pulseaudio et jack2 tu as des questions. on les gère dans le fil de discussion que tu vas ouvrir. 😊