Forum : 1 - Le matériel et les pilotes ALSA, FFADO, ...

[RÉSOLU] Focusrite Scarlett 2i2, Raspberry Pi B 2.

Sooncacq utilisateur non connecté
Bonjour,
je débute sur linux
je cherche à faire fonctionner la Scarlett 2i2 et un clavier maître Alesis QX25 sur un Rapsberry Pi pour les utiliser avec Pure data Le but étant de pouvoir utiliser tout cela comme pédale d’effet pour une guitare.

Le problème : l’entrée audio émet un gros bruit (bruit rouge, m’a-t-on dit)
la sortie fonctionne ainsi que les contrôles midi du clavier.


Distribution Raspbian GNU/LINUX 8.0 (Jessie)

0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA
 1 [QX25           ]: USB-Audio - QX25
                      Alesis QX25 at usb-3f980000.usb-1.4, full speed
 2 [USB            ]: USB-Audio - Scarlett 2i2 USB
                      Focusrite Scarlett 2i2 USB at usb-3f980000.usb-1.5, high speed


aplay -l :
**** Liste des Périphériques Matériels PLAYBACK ****
carte 0: ALSA [bcm2835 ALSA], périphérique 0: bcm2835 ALSA [bcm2835 ALSA]
  Sous-périphériques: 8/8
  Sous-périphérique #0: subdevice #0
  Sous-périphérique #1: subdevice #1
  Sous-périphérique #2: subdevice #2
  Sous-périphérique #3: subdevice #3
  Sous-périphérique #4: subdevice #4
  Sous-périphérique #5: subdevice #5
  Sous-périphérique #6: subdevice #6
  Sous-périphérique #7: subdevice #7
carte 0: ALSA [bcm2835 ALSA], périphérique 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 2: USB [Scarlett 2i2 USB], périphérique 0: USB Audio [USB Audio]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0


arecord -l :
**** Liste des Périphériques Matériels CAPTURE ****
carte 2: USB [Scarlett 2i2 USB], périphérique 0: USB Audio [USB Audio]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0


Visiblement Scarlett 2i2 fonctionne sur linux, j’ai visité les différentes pages sur le site. Il y a peut-être une spécificité sur le Raspberry Pi ?

Sur /usr/share/alsa/cards/USB-Audio.conf il y a une ligne au sujet de la Scarlett 2I2 mais je ne sais pas si cela a à voir avec mon problème.

…
# If a device does not use the first PCM device for digital data, the device
# number for the iec958 device can be changed here.
USB-Audio.pcm.iec958_device {
	# "NoiseBlaster 3000" 42

	# The below don't have digital in/out, so prevent them from being opened.
	"Blue Snowball" 999
	"HP Digital Stereo Headset" 999
	"Logitech Speaker Lapdesk N700" 999
	"Logitech USB Headset" 999
	"Logitech Wireless Headset" 999
	"Plantronics GameCom 780" 999
	"Plantronics USB Headset" 999
	"Plantronics Wireless Audio" 999
	"SB WoW Headset" 999
	"Scarlett 2i2 USB" 999
	"Sennheiser USB headset" 999
	"USB Device 0x46d:0x992" 999
}
…


Si quelqu’un à une idée je suis tout ouïe.

Vincent

allany utilisateur non connecté
Hello Vincent !

Le temps de répondre à ta présentation, tu étais déjà sur le forum.

Bien.
Si je te comprends, tout fonctionne sur ta carte sous Linux sauf l'entrée, non ?
Tu branches quoi, en entrée ? Micro ? instrument ? En jack ? En XLR ?
N'as-tu pas un problème avec l'alim' phantom 48 volts ?
Comment se débraye-t-elle, je ne vois pas ? Est-ce juste le fait d'enficher un XLR qui l'active ?
Ca ressemble (bruit rouge) plus à un souci électronique que de compatibilité Linux, on dirait...
Est-elle commune aux deux canaux d'entrée ? Aurais-tu 2 sources connectées simultanément dont l'une déclencherait le 48 volts sur l'autre ?
Sur la carte, j'ai vu qu'il y avait aussi un sélecteur line/inst qui pourrait agir sur la sensibilité d'entrée.

Utilises-tu le serveur audio/MIDI Jack ?
Comment l'as-tu configuré (interface, périph' entrée/sortie) ?

A+,
Jacques

Sooncacq utilisateur non connecté
Bonjour Jacques,

merci de la rapidité de la réponse,
je branche une guitare en jack sur l’un des canaux, mais quand il n’y a rien de branché le gros bruit est toujours présent sur les deux canaux.
L’alimentation phantom s’enclenche par un bouton poussoir en façade. Le selecteur line/inst n’a pas d’influence sur le bruit. Tout cela fonctionne sur un window xp ce qui me laisse penser que ce serait un problème de compatibilité ou configuration des materiels Raspberry/Scarlett/Alsa/Jack.
Au vu de ce que j’ai pu lire sur les différents post sur Scarlett xx cela fonctionne avec linux, notamment Jessie. Il y aurait peut-être une spécificité à Raspberry ?

Avec pure data j’utilise Alsa ou Jack mais cela n’a aucune influence, avec Audacity je dois utiliser Jack mais il y a le même problème.

Vincent

olinuxx utilisateur non connecté France
Et quand tu utilises jack, comment démarres-tu ce serveur ? (et spécialement, sur quelle interface audio le démarres-tu ?)

allany utilisateur non connecté
S'cuse-moi, faut que je reformule :
  • ça marche sous XP,
  • la config' des switches et connecteurs, sur la carte, est OK,
  • il me semble que certains camarades, ici, tournent sur cette gamme de cartes,
  • alsa ou jack, pareil !
C'est bien ça ?

Olinuxx a raison, faut voir ta config' de Jack mais...
A+

allany utilisateur non connecté
J'y reviens... Ca phosphore...

Ouais, au fait, tu n'aurais pas une autre carte à portée de main, juste pour tester le comportement du tandem Raspberry/Linux ?
Et as-tu essayé d'aller voir avec la commande :
alsamixer

si tu n'avais pas un switch ou un curseur qui fichait le bouzin niveau alsa ?
Et pis... au fait, tu n'as donc pas de carte-son intégrée ? Si ? C'est quoi le bcm2835 de ton aplay, du coup ?

A+

Sooncacq utilisateur non connecté
Je n’ai pas d’autre carte son à tester (sur https://guitarextended.wordpress.com/ il utilise une carte EMU 0404 qui semble marcher).
Il n’y a pas de contrôle alsamixer pour la Scarlett 2i2.
La carte son intégrée est bien bcm 2835.

Au niveau de ALSA j’ai essayé de voir un peu partout (et d’essayer de comprendre quelque chose à tout ça) notamment de mettre Scarlett en carte par defaut. Je n’ai pas beaucoup avancé mais ça fait un peu découvrir linux.
Mais cela reste flou entre « device, card, hardware, subdevice… » la configuration Alsa,

Vincent.

allany utilisateur non connecté
Bon alors, dans la mesure où tu as bien deux cartes-son, faut impérativement voir ce que tu as comme "interface" et "périphériques E/S" proposés par Jackd (flèches >) et après, voir côté Alsa, en effet.
Mais en tout dernier recours car, comme tu l'as constaté, y nous faudra l'équipement de spéléo, là...
Pour l'instant, il se peut que tu aies les sorties d'une carte couplées avec les entrées de l'autre voire une boucle.

A+,
Jacques

Sooncacq utilisateur non connecté
Bonjour olinuxx,
en ce qui concerne Jack. je le démarre en ligne de commande par qjackctl. Pure data déconseillait de l’utiliser (bien qu’il ait le choix alsa, jack, portaudio). Je ne connais pas très bien les rapports qu’il peut y avoir entre les applications (pure data, audacity), alsa, et jack. Apparamment jack gère les entrée et sortie des applis entre elles. Mais sans jack comment cela se passe ?

Sinon pure data est un peu bavard, lors de mes divers essais il peut me noter : « tried but couldn’t sync A/D/A » ou alors « Alsa input error (snd_pcm_open) No such file or directory » il indique aussi « I/O error ».

Vincent

Sooncacq utilisateur non connecté
Je ne vois pas ce que tu veux dire par Jackd (flèche >) est-ce que c’est dans les paramètres de qjackctl ?

Pour les cartes couplées c’est un peu le sentiment que j’ai. Dans les préférences audio Device Setting du raspberry il n’y a que le bcm2835 Alsa qui apparait avec un seul controle PCM, et cela ne change rien quand je le coupe.

Vincent

allany utilisateur non connecté
Sooncacq écrit :
Je ne vois pas ce que tu veux dire par Jackd (flèche ) est-ce que c’est dans les paramètres de qjackctl ?

C'est bien ça.
La flèche permet de lister aisément tous les périph's d'entrée ou de sortie dont Jackd a connaissance (via Alsa).

Ils apparaissent là sous forme de hw:x,yx est le N° de l'interface (ex. 0 la carte interne, 1 la carte USB) et y le N° du port dans l'interface (ex. 0 pour le port d'entrée, 1 pour le port de sortie).
hw:1,0 sera alors l'entrée 1 de la carte USB, par exemple.
Ca permettrait de mieux repérer ce qui entre et ce qui sort, sur quelle carte de ton système, en comparant avec ton aplay.

Oui, Jackd est bien le serveur central qui permet d'interconnecter tous les flux audio et MIDI, quelle que soit leur origine (E/S des softs, E/S des cartes-son, des surfaces de contrôle, des claviers MIDI, etc...) et leur direction, ce qui peut causer des incohérences dues à la souplesse de l'outil.

A+

Sooncacq utilisateur non connecté
ce que j’ai trouvé dans les réglages de qjackctl, entre autre :

Préfixe serveur : jackd
jackdmp
jackstart

Pilote : Alsa

Périférique d’entrée :
  • hw:Alsa bcm 2835 AlSA (hw:0)
  • hw:QX25 X25 (hw:1)
  • hw:USB Scarlett 2I2 USB(hw:2)
  • hw:USB,0 usb Audio (hw:2,0)
  • (par défaut)

Périférique de sortie :
  • hw:Alsa bcm 2835 ALSA (hw:0)
  • hw:Alsa,0 bcm 2835 ALSA (
  • hw;Alsa,1 bcm 2835 iec958/HDMI
  • hw:QX25 X25 (hw:1)
  • hw:USB Scarlett 2I2 USB(hw:2)
  • hw:USB,0 usb Audio (hw:2,0)
  • (par défaut)

J’ai trouvé très peu de documentation sur l’audio du Raspberry mais quand même ceci :

There is a standard 3.5mm jack for audio out to an amplifier. You can add any supported USB microphone for audio in, or using the I2S interface you can add a codec for additional audio I/O.

Je ne sais pas ce que c’est ce « I2S » interface mais cela a peut-être à voir avec mon problème.

Vincent

allany utilisateur non connecté
I2s semble être un protocole de transfert de données audio qu'utilise le Raspberry, si j'en crois mes lectures .

QX25 étant ton clavier, je ne vois toujours pas de micro USB, en effet.
A moins qu'il s'agisse du hw:USB,0 ?
Ca m'étonnerait un peu vu qu'il est en hw:2 comme la Scarlett... Il aurait été en hw:3, à mon avis.
  • As-tu la possibilité, dans le setup de ton BIOS, de désactiver le chip audio interne ?
  • As-tu essayé de démarrer la machine micro USB branché, faire un aplay puis regarder les hw:x,y dans jackd et, après, de démarrer sans micro, brancher le micro USB à chaud et refaire les mêmes tests pour comparer ?
  • As-tu la possibilité de juste tester le micro USB sur une autre machine Linux ?
  • As-tu la possibilité de brancher un micro en Jack ou XLR sur la Scarlett ?
  • Là, on a les choix pour les périph's E/S mais que te propose Jackd pour "interface" ?
Image
A+
Jacques

Sooncacq utilisateur non connecté
Il n’y a pas à proprement parler de BIOS sur le raspberry pi « Le Pi n’utilise pas un "BIOS" comme dans un PC. Il initialise simplement la puce Broadcom (CPU, mémoire cache, GPU) en utilisant le firmware écrit pour cette puce et passe directement au système d'exploitation. » ici

Il y a une possibilié de configuration de l’audio par raspi-config pour choisir si le son sort par le casque, par le hdmi, ou par défault. Ici il est réglé par défaut un autre choix affiche une erreur.
Il y a aussi les préférences audio qui n’affiche que la carte son bcm2835 ALSA (Alsan mixer)(Default) et un contrôle pcm.

Je n’ai pas de micro USB branché sur le Raspberry pi. Il y a le clavier Alesis QX25 et la carte son Scarlett 2i2.
Quand je débranche Scarlett, les deux hw:USB n’apparaissent pas.

Je n’ai pas de micro à brancher que se soit en jack ou en XLR sur la Scarlett

jackd propose pour « interface » seulement quand le choix de « périphérique d’entrée » est à « (par défaut) » :
hw:Alsa bcm 2835 AlSA (hw:0)
hw:QX25 X25 (hw:1)
hw:USB Scarlett 2I2 USB(hw:2)
hw:USB,0 usb Audio (hw:2,0)
(par défaut)
Sinon quand le « prériphérique d’entrée » est un autre choix que « (par défaut) », interface est grisé « (par défaut) ».

Je ne sais pas à quoi correspond le usb Audio (hw:2,0) le « 0 » voudrait dire que c’est une entrée ?

Vincent

allany utilisateur non connecté
Salut Vincent,

Question 1 : je m'en doutais un peu, pour le BIOS... Pas grave !
2 : J'avais mal compris, pour le micro USB, désolé...
3 et 4 : sans objet, du coup.
5 : normal : quand tu choisis de renseigner "interface", tu n'as plus le choix des périph's et vice-versa.

Mais une chose ressort de tout ceci, c'est que la Scarlett est bien la carte N° 2.
Si tu veux donc l'utiliser, il faudra soit dire hw:2 à Jackd pour "interface" soit hw:2,x dans périph's, le problème, dans ce cas, étant que je ne vois qu'un hw:2,0.
Ce dernier est soit une entrée, soit une sortie mais pas les 2, évidemment.

Quand à ta dernière question, je ne sais pas y répondre à 100%.
C'est loin d'être inhabituel mais, dans la mesure où ce usb-audio est en N° 2 également, tu peux considérer que c'est juste une autre manière d'accéder à ta Scarlett.
Le 0 de hw:2,0 correspond souvent à l'entrée, le 1 correspondant au playback. Mais la règle ne semble pas être immuable...
A ce que j'ai pu observer, l'usb-audio serait le driver Alsa "générique" pour toutes les cartes USB et usb-Scarlett-2I2 une version plus spécifique à ce matos.
Mais quelqu'un de plus pointu que moi sur Alsa infirmera peut-être cette tentative d'explication.

Donc, à ce stade, j'aurais tendance à renseigner juste "interface" avec usb-Scarlett-2I2.

Ah oui !
Pour tes tests, mets une valeur importante dans tampons/périodes de façon à ce que ta latence (bas à gauche dans "réglages" de jackd) tourne entre 10 et 20 ms, au minimum. Tu affineras après les tests.

Quels que soient tes réglages actuels, jackd se lance-t-il sans erreurs ?

A+
Jacques

Sooncacq utilisateur non connecté
Salut Jacques,

jackd se lance sans problème.
Je me demande si Scarlett 2i2 n’a pas une particularité, car elle apparait dans un fichier de config alsa /usr/share/alsa/cards/USB-Audio.conf Je le remet ici.
…
# If a device does not use the first PCM device for digital data, the device
# number for the iec958 device can be changed here.
USB-Audio.pcm.iec958_device {
	# "NoiseBlaster 3000" 42

	# The below don't have digital in/out, so prevent them from being opened.
	"Blue Snowball" 999
	"HP Digital Stereo Headset" 999
	"Logitech Speaker Lapdesk N700" 999
	"Logitech USB Headset" 999
	"Logitech Wireless Headset" 999
	"Plantronics GameCom 780" 999
	"Plantronics USB Headset" 999
	"Plantronics Wireless Audio" 999
	"SB WoW Headset" 999
	"Scarlett 2i2 USB" 999
	"Sennheiser USB headset" 999
	"USB Device 0x46d:0x992" 999
}
…


Est-ce que cela n’empêche pas l’ouverture de l’i/o de Scarlett ?

Je met une image du bruit ici, pour l’inspiration, c’est un site de musique quand même Image

Audacity indique dans les préférences:
« Interface
Hôte: ALSA
Utilisation : PortAudio V19-devel (built Feb 21 2014 …)
… »
ainsi que « Scarlett 2i2 » en lecture et enregistrement.

Est-ce que tu sais ce que c’est ce « PortAudio V19-deve »l ?

Merci de ta patience.

Vincent

allany utilisateur non connecté
Hello Vincent !

Tant que ta Scarlett ne figure pas dans /etc/modprobe.d/blacklist.conf, elle devrait être active.
Quand aux paramètres réellement utilisés par Alsa, tu les trouveras dans /etc/modprobe.d/alsa-base.conf.
Sooncacq écrit :
Est-ce que cela n’empêche pas l’ouverture de l’i/o de Scarlett ?

Donc non, je ne pense pas.

Bon. Le bruit matérialisé sur ta capture est indéniable. Cyclique, apparemment.

Portaudio est un gestionnaire d'E/S audio utilisé par Audacity (et VLC, je crois).
D'habitude, son utilisation est transparente. Si, par exemple, tu décides d'interfacer Audacity avec Jackd, dans les "connexions" de jackd, c'est Portaudio capture/playback qui apparaîtront et non Audacity capture/playback.
Mais le fonctionnement général reste identique à celui d'autres softs.

Pas évident le truc aussi, même si je rabâche, encore quelques questions :
  • As-tu essayé, comme suggéré + haut, de ne déclarer que usb-scarlett-2I2 dans "interface" ?
  • Si je t'ai bien compris, la seule chose que tu souhaites capter en entrée c'est ta gratte ?
  • Au passage, la gratte est-elle passive ou active (préampli avec pile) ?
  • Avec cette configuration (gratte sur scarlett) tu me re-confirmes que ça fonctionne bien sous Win ?
  • Si tu ne connectes rien sur la Scarlett, le même phénomène se reproduit-il ?
Je ne trouve pas de littérature ici sur la 2I2 (juste ceci ) mais il me semble bien avoir vu ailleurs aussi qu'elle fonctionnait bien sous Linux...

A+
Jacques

Sooncacq utilisateur non connecté
Salut Jacques,

  • j’ai bien essayé de mettre « Scarlett » dans interface et cela n’a rien changé.
  • Pour l’instant je ne souhaite que capter la guitare, la guitare est passive, mais je peux passer aussi par un ampli (Line6) qui possède différents effets. Sur xp cela fonctionne, j’ai commencer un patch puredata la dessus. L’objectif est de pouvoir me servir du Raspberry pi comme d’une pédale d’effets. Quand le son fonctionnera (car ça va marcher). Il va falloir lancer pure data au démarrage, ouvrir le patch (j’ai vu que cela se faisait) pour que cela puisse fonctionner sans écran sans clavier. Les réglages du patch se font par les commande midi du clavier maitre. (pour l’éteindre proprement — autrement qu’en débranchant — je ne sais pas encore).
  • Quand rien n’est branché il y a exactement le même bruit. Quelques soient les circonstances le bruit est toujours identique.
  • Scarlett 2i2 fonctionne sur linux si j’ai bien vu.
  • J’ai trouvé pour déconnecter le module bcm2835 en le commentant dans /etc/modules-load.d/modules.conf, mais cela ne change rien au problème.

Des remarques pour essayer d’y voir un peu mieux dans ce fourbis :
  • Le son de la guitare passe quand même derrière le bruit.
  • J’arrive à enregistrer dans Audacity le son produit par un patch puredata, mais dans les connections jack je ne vois pas Audacity (ni Portaudio)
  • j’ai le schema
pure_data_0 output > system playback
system capture > pure_data_0 input

et dans Audacity avec jackd comme pilote, je peux choisir scarlett ou pure data en lecture.

J’ai l’impression que le problème vient avant jackd, et plutôt des config Alsa. (j’espère que ce n’est qu’une histoire de configuration)

Vincent

allany utilisateur non connecté
Salut Vincent,

Depuis que j'ai vu la courbe de ce bruit, bien cyclique, et si tu me dis que tu entends quand même vaguement la gratte derrière, j'aurais tendance, moi, à tester la Scarlett seule.
Je ne connais pas ce matos mais serait-il possible de brancher dessus gratte ou micro et, sans être connectée à l'ordi, de balancer le résultat vers le casque ou les HP's (bouton "direct monitoring"...) ?
Ca éliminerait déjà une cause supplémentaire de bug.
Si ça fonctionne sous xp, ça ne devrait rien donner mais...

Pour voir Audacity (portaudio) dans les connexions de Jackd, il faut lui préciser "Jackd" dans ses "préférences" audio. Mais ça n'est qu'un détail... et je pense que tu l'as déjà fait, non ?

Au moins pour tes tests, c'est bien d'avoir pu désactiver la carte interne.

Sooncacq écrit :
y voir un peu mieux dans ce fourbis

Oui, ça prend bien la tête et c'est assez inédit, ton histoire...

Je pense aussi qu'il faudrait plutôt regarder du côté d'Alsa.
Tu peux regarder du côté de /etc/modprobe.d/alsa-base.conf (drivers audio actifs) et blacklist.conf (pour les drivers audio mis au rencart).

Allez, courage, à+
Jacques

Sooncacq utilisateur non connecté
Salut Jacques,

la Scarlett est alimenté par l’ordi, il y a un bouton direct monitor qui fonctionne.

Sinon j’ai fait fonctionner aplay et speaker-test qui marchent et arecord qui m’enregistre le bruit et la guitare dans le fond comme sur Audatity et Pure data, ce qui tenterait à penser que le problème se situerait vers Alsa et au-delà… Je ne suis pas arrivé à faire fonctionner alsactl qui semblerait agir sur les cartes (par le fichier /var/lib/alsa/asound.state).
Je ne dois pas tout à fait tourner en rond, je trouve encore des fichiers que je n’avais pas encore vu…

Vincent

allany utilisateur non connecté
Hello !

Justement. J'aimerais être certain qu'il n'y a pas de problème en entrée sur ta Scarlett elle-même.
Je voulais donc savoir s'il y avait moyen de la tester seule, sans la connecter à l'ordi. Avec un boitier d'alim' séparé, par exemple ?
Pour localiser ton problème, il faudrait tester tous les maillons de la chaîne dont la carte, bien sûr.
Le bouton "direct monitoring" ne servant, dans ce test, qu'à balancer directement le son en entrée vers les HP's, voir si ça ronfle aussi sans passer par l'ordi, alsa ou jackd.
Si tu avais un micro à brancher dessus, le test serait encore plus parlant, je pense.

D'autant qu'avec les commandes aplay et arecord, tu viens de démontrer que le phénomène persistait.
Bonne idée !
Ce qui signifie que le bug se trouve maintenant localisé en amont de jackd.
Donc on est maintenant certain que ni les HP's ni la carte (en sorties) ni jackd ne sont en cause.
Voilà pour la moitié en aval.
Et donc, si on repart en amont, nous reste à tester, dans l'ordre inverse cette fois et - coup de bol - du plus simple au plus compliqué : la gratte ou le micro avec leurs câbles, la carte (en entrées) puis Alsa et la boucle sera bouclée.

Si on fait abstraction d'un hypothétique problème physique de soudure ou de masse sur cette partie de la chaîne, je te propose là de tester la carte, direct, pour être vraiment certains d'avoir démonté toutes les autres hypothèses avant de nous lancer dans Alsa où, là, ça ne va pas être coton et beaucoup plus risqué...
C'est aussi mon expérience ici qui me pousse à te conseiller dans ce sens car je sens bien, je pense depuis un bon moment que ta config' devrait marcher.
Dans la plupart des cas similaires, Alsa prend au moins en charge 2 entrées/2sorties/16 bits/44100 hz avec le driver usb-audio générique. Je n'ai pas souvenir d'avoir lu que la Scarlett était réfractaire à Linux et il est même écrit le contraire dans le lien que j'ai filé + haut.

En résumé, je cherche à localiser ce salopard tout en ménageant nos forces... cool

A+
Jacques

Page : 1/2