[Midi & jack] pas de sortie audible de fluidsynth (en cours)

Applications, problèmes de configuration réseau
Avatar de l’utilisateur
Caocoa
yeomen
Messages : 208
Inscription : jeu. 11 nov. 2010, 16:19

[Midi & jack] pas de sortie audible de fluidsynth (en cours)

Message par Caocoa »

Bonjour à tous !
J'utilise Lilypond et Frescobaldi (un éditeur dédié) pour graver des partitions. Lilypond génère un fichier midi que j'aimerais bien écouter, mais pour l'instant je ne peux écouter que du silence. C'est sympa aussi, mais j'aimerai varier les plaisirs  :lol:

Peut-être que vous pouvez trouver que je montre trop de code. C'est vrai que j'en mets beaucoup mais ce n'est pas pour noyer le poisson ! c'est parce que j'essaie de vous donner toutes les clefs possibles pour comprendre mon problème pour que vous puissiez m'aider.

J'utilise fluidsynth qui se lance en dæmon à chaque démarrage. Il me semble avoir correctement lu la documentation donc mon /usr/lib/systemd/system/fluidsynth.service est :

Code : Tout sélectionner

[Unit]
Description=FluidSynth Daemon
After=sound.target

[Service]
ExecStart=/usr/bin/fluidsynth -is -a alsa -m alsa_seq -r 48000 /usr/share/soundfonts/acoustic_piano_imis_1.sf2

[Install]
WantedBy=multi-user.target
A priori, tout est en place :

Code : Tout sélectionner

[caocoa@C40C04 ~]$ aconnect -lio
client 0: 'System' [type=noyau]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=noyau]
    0 'Midi Through Port-0'
Premier essai : je me place dans le bon répertoire qui contient un fichier midi sans démarrer de serveur jack :

Code : Tout sélectionner

[caocoa@C40C04 Etincelles]$ fluidsynth étincelles.midi
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

JACK compiled with System V SHM support.
loading driver ..
apparent rate = 44100
creating alsa driver ... hw:0|hw:0|128|2|44100|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 44100Hz, period = 128 frames (2.9 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
Type 'help' for help topics.

fluidsynth: warning: No preset found on channel 0 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 0 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 1 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 1 [bank=0 prog=0]
subgraph starting at fluidsynth timed out (subgraph_wait_fd=10, status = 0, state = Running, pollret = 0 revents = 0x0)
bad status (-1) for client fluidsynth handling event (type = 8)


**** alsa_pcm: xrun of at least 0.897 msecs


jack main caught signal 12
> no message buffer overruns
[caocoa@C40C04 Etincelles]$
et là, c'est le drame : je n'entends rien, et aucun message d'erreur ne s'affiche. Je me pose donc des questions sur le fichier *.sf2 mentionné dans /usr/lib/systemd/system/fluidsynth.service mais après vérification, il n'est pas vide et bien lisible pas tout le monde :

Code : Tout sélectionner

[caocoa@C40C04 ~]$ ls -hlsS /usr/share/soundfonts
total 170M
133M -rwxr-xr-x 1 root root 133M  4 févr. 09:30 acoustic_grand_piano_ydp_20080910.sf2
 38M -rwxr-xr-x 1 root root  38M  4 févr. 00:30 acoustic_piano_imis_1.sf2
En utilisant qjackctl je démarre le serveur jack :

Code : Tout sélectionner

15:17:12.723 JACK démarre...
15:17:12.725 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p128 -n2
jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
loading driver ..
apparent rate = 44100
creating alsa driver ... hw:0|hw:0|128|2|44100|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 44100Hz, period = 128 frames (2.9 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
15:17:12.806 JACK a été démarrer avec le PID=2138.
15:17:14.821 Changement des connexions JACK.
15:17:14.823 Configuration du serveur enregistrée dans « /home/caocoa/.jackdrc ».
15:17:14.825 Réinitialisation des statistiques.
15:17:14.840 Client activé.
15:17:14.844 Changement de la taille du tampon (128).
et je recommence :

Code : Tout sélectionner

[caocoa@C40C04 Etincelles]$ fluidsynth étincelles.midi
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

Type 'help' for help topics.

fluidsynth: warning: No preset found on channel 0 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 0 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 1 [bank=0 prog=0]
fluidsynth: warning: No preset found on channel 1 [bank=0 prog=0]
> zombified - calling shutdown handler
fluidsynth: error: Help! Lost the connection to the JACK server
^C
[caocoa@C40C04 Etincelles]$ 
Fluidsynth reste bloqué et je suis obligé de le couper avec ctrl + C. Dans le même temps, du côté de qjackctl, j'obtiens :

Code : Tout sélectionner

15:24:23.384 Changement du graphique des connexions JACK.
15:24:23.387 Changement du graphique des connexions ALSA.
15:24:23.398 Récupération désynchronisation (XRUN) (2).
subgraph starting at fluidsynth timed out (subgraph_wait_fd=9, status = 0, state = Running, pollret = 0 revents = 0x0)
bad status (-1) for client fluidsynth handling event (type = 8)
**** alsa_pcm: xrun of at least 0.936 msecs
15:24:23.430 Changement des connexions ALSA.
Du coup, j'ai l'impression que jack et pulseaudio ont des problèmes de cohabitation. J'ai pourtant suivi cette documentation mais ça ne m'a pas l'air d'être très efficace dans mon cas.


D'autre part, il m'arrive quelque chose de bizarre avec totem. Quand il joue un morceau, je ne peux pas démarrer de serveur jack et j'obtiens ce message dans la fenêtre de qjackctl :

Code : Tout sélectionner

15:38:05.976 Impossible de connecter le serveur JACK comme client. - L'opération a échoué. - Incapable de se connecter au serveur. Veuillez consulter la fenêtre des messages pour plus d'informations.
en revanche, quand je joue le même morceau avec mplayer, le message devient :

Code : Tout sélectionner

15:39:28.583 JACK démarre...
15:39:28.585 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p128 -n2
jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
15:39:28.646 JACK a été démarrer avec le PID=2518.
loading driver ..
apparent rate = 44100
creating alsa driver ... hw:0|hw:0|128|2|44100|0|0|nomon|swmeter|-|32bit
control device hw:0
ATTENTION: The playback device "hw:0" is already in use. The following applications  are using your soundcard(s) so you should  check them and stop them as necessary before  trying to start JACK again:
pulseaudio (process ID 1742)
cannot load driver module alsa
no message buffer overruns
15:39:28.774 JACK a été arrêté avec succès.
15:39:30.688 Impossible de connecter le serveur JACK comme client. - L'opération a échoué. - Incapable de se connecter au serveur. Veuillez consulter la fenêtre des messages pour plus d'informations.
Inversement, quand jack est démarré totem s'ouvre mais reste muet et ne joue rien (on dirait qu'il attend quelque chose) tandis que mplayer reste quant à lui capable de jouer. Bizarre !


Maintenant que vous êtes au courant de tous mes malheurs, savez-vous comment je pourrais fait pour lire du midi ? Comment éviter cette erreur : fluidsynth: error: Help! Lost the connection to the JACK server. Si en plus je pouvais lire des fichiers midi sans bloquer pulseaudio, ça serait super cool :)
Linux un noyau, Windows des pépins :mrgreen: | Manifeste pour la liberté des programmeurs, par Bill Gates.
Ma configuration
Répondre