Affichage des articles dont le libellé est Pulseaudio. Afficher tous les articles
Affichage des articles dont le libellé est Pulseaudio. Afficher tous les articles

mardi 18 novembre 2014

Audioconférence, session de mixage à distance et jam à distance maintenant possible dans chromium !

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

aujourd'hui je vous parle d'un site internet que je viens de découvrir qui permet de faire une audioconférence à plusieurs à faible latence. On peut dire que c'est l'avenir proche que l'on touche ! Lorsque tout le monde aura les prérequis réseaux (1MB en upload et en download recommandé) , on pourra jammer à distance au casque, travailler des compositions facilement ... Le site est encore en béta donc il peut y avoir des bugs.

En deuxième partie de cet article, j'aborderai la possibilité de mettre le serveur jack en réseau (local) grâce à NetJack. L'intérêt est d'avoir un ordinateur sur lequel on fait la session de mix et un ordinateur qui calcule le flux réseau internet. Biensûr cela ajoute de la latence mais NetJack n'est pas très consommateur en CPU ... Vous n'aurez sûrement pas besoin de cette solution si vous avez un ordinateur moderne haut de gamme.

En fin d'article, vous trouverez un lien vers un autre article de ce blog qui détaille des logiciels libres utilisant nativement jack et du hardware dont le but est de faire de l'audio par internet à faible latence.

Bonne lecture !

Installation & configuration de votre poste

Cependant, on combinant pulseaudio et jack, vous pourrez connecter tout ce que vous voulez. L'application disponible uniquement sur chromium browser (pour le moment) vous permet de réunir jusqu'à 10 connections simultanées. L'encodage est à sélectionner selon la qualité que vous voulez obtenir, la bande passante dont vous disposez (1MB en upload et en download recommandé) et la capacité des machines connectées.

Voici les étapes de la configuration de votre poste pour parvenir à connecter une application jack dans l'application chrome:

Créez-vous un compte sur http://source-elements.com.

Si vous n'avez pas encore installer jack ni le pont jack/pulseaudio, lisez cet article avant de procéder à la suite de la configuration.

Établissez les connexions dans qjackctl après avoir paramétré et démarré le serveur jack. Pour le test j'utilise le lecteur alsaplayer:
$ sudo apt-get install alsaplayer-jack alsaplayer-common
$ alsaplayer -o jack /chemin/vers/le/fichier/audio


Démarrez Chromium, allez sur la page de connexion du service (source-elements) et identifiez-vous,

Installez pavucontrol:
$ sudo apt-get install pavucontrol

Lancer pavucontrol:
$ pavucontrol

Puis allez dans l'onglet lecture, sélectionnez la source Jack Sink:


Dans l'onglet Enregistrement, sélectionnez Jack Source:



Enfin, dans l'application chrome, sélectionnez l'entrée Jack Source. Activez le monitoring (décaler le slider à droite) pour entendre ce que vous envoyez sur la connexion réseau. Et paramétrez l'application chrome à votre convenance dans l'onglet "Master Controls".


Et le tour est joué !

Remarques / Utilisation d'une deuxième machine avec netjack

Si vous avez un ordinateur récent et puissant et une bonne bande passante (1Mo en upload/download), ce système est fait pour vous !

Une solution technique pour avoir plus de puissance de calcul consiste à utiliser deux ordinateurs:
- un pour l'encodage (avec jack sur le driver alsa et avec jack_netsource de démarré, vous verrez apparaître netjack dans qjackctl et vous pourrez monitorer le signal audio)


- un pour travailler/jouer de l'audio (connecté sur le driver netone de jack), aucun son ne sera audible sur ce poste avec les sorties systèmes jack puisque tout sera envoyé sur l'autre machine.

Je n'ai pu tester que le transfert réseau local entre serveurs jack et ça fonctionne plutôt bien ... C'est praticable de travailler l'audio et de l'envoyer sur un autre poste ! Le poste de réception doit être suffisamment puissant après  (CPU/RAM) pour réussir à ouvrir le navigateur chrome et à encoder l'audio en live (la tâche critique) de l'application www.source-elements.com !

Si vous vous lancez dans la configuration de NetJack, n'oubliez pas de configurer les firewalls des deux machines impliquées pour la connection réseau de jack. Personnellement, j'ai désactivé temporairement les firewalls sur les cartes réseaux utilisées pour le test !

Vous serez peut-être intéressé par l'article suivant: Jouer (jammer) avec d'autres musiciens au casque (localement ou à distance) (solutions hardware & software).

Amusez-vous bien,
Musicalement,

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

mardi 15 octobre 2013

M-Audio M-Track sous Linux

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

aujourd'hui je vous parle de ma dernière acquisition: La carte audio USB M-Audio M-Track.

Présentation



Interface audio 2 canaux USB
- 24bit/48kHz
- 2 entrées micro XLR avec alimentation fantôme 48V
- 2 entrées symétriques jack 6,3 mm niveaux ligne et instrument
- Sorties symétriques jack 6,3 mm
- Inserts sur canaux d'entrées en jack 6,3 mm TRS
- 2x sorties jack 6.3 mm- Sortie casque réglable
- Affichage du niveau à LED 4 segments
- Monitoring sans latence
- Entrée et sortie MIDI
- Alimenté via USB
- Dimensions: 155 x 124 x 51 mm
- Poids: 0,39 kg

C'est une carte Audio et MIDI  nomade et alimentée par USB.

Elle fonctionne sous Linux avec le driver ALSA Audio USB générique.

Installation

Brancher votre carte M-Track directement à une prise USB de votre ordinateur ou portable (pas sur un HUB USB ou une rallonge USB pour éviter les problèmes).

Allez dans les paramètres sons du système. Vous devriez voir apparaître les entrées/sorties M-Track comme ceci:



Configuration de Jack

La carte fonctionne parfaitement avec Pulseaudio mais il n'en est pas de même pour Jack. Jack doit être correctement paramétré pour qu'elle puisse fonctionner. Je vous conseille fortement de consulter les articles suivants:
 - l'installation d'un noyau à faible latence,
 - configuration de jack,  et
 - l'optimisation du système pour éliminer les XRUNS
avant de poursuivre.

Une fois que votre configuration de jack est correcte, poursuivez le paramétrage de votre carte M-Audio M-Track.

Cliquez sur le bouton "Réglages" dans qjackctl et fixer les paramètres comme ce qui suit:

- Le paramètre "temps réel" doit être coché
- la priorité doit être fixée. ex: 60 (cf. paramétrage d'ardour2).
- les échantillons/période : 256 (sur ma configuration et avec les optimisations proposées sur ce blog)
- Nombre de périodes/tampon : 2
- Sélectionner le pilote MIDI "aucun" (ardour2 n'utilise pas le MIDI). Cela n'empêche pas de disposer des ports MIDI dans l'onglet ALSA de qjackctl.

Sachez qu'avec ardour, la carte M-Audio M-Track fonctionne correctement quand on le laisse démarrer jack avec ses paramètres.

L'activation du module MIDI de Jack rend la carte M-Audio M-track inutilisable chez moi ... Mais il reste toujours la possibilité d'utiliser les ports MIDI avec ALSA quand on a désactivé la fonction MIDI de Jack.

J'ai fait un test avec ma guitare basse branchée sur une des entrées de la M-Track reliée au plugin VST Guitar Rig 5 (version DEMO) et ça tourne sans XRUNs. (Pour savoir comment démarrer des plugins VST Windows sous Linux c'est par ici)

Je n'ai pas encore fait de tests avec les ports MIDI ...

Amusez-vous bien !
Musicalement,

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

vendredi 4 octobre 2013

Enregistreur stéréo ZOOM H1



Bonjour,

aujourd'hui je vous parle de l'enregistreur stéréo ZOOM H1 que j'ai acquis il y a quelques temps.

Mis à part le fait qu'il fonctionne aussi bien sur pile que sur secteur, il permet également de se connecter à l'ordinateur par câble USB.

L'enregistreur ZOOM H1 permet ainsi un accès
  - à la carte mémoire de stockage (option CARD qui est celle par défaut)
ou
  - à une interface audio USB compatible avec ALSA (et donc compatible avec Jack et Pulseaudio) (option AUDIO).

Pour activer l'interface audio,
 - brancher le ZOOM H1 en USB sur votre ordinateur
   L'afficheur du ZOOM H1 clignote sur les mots AUdIo et CArd ...
 - sélectionner AUdIo
 - puis sélectionner l'échantillonnage de votre choix (par ex 44 Khz 16 bits)

Maintenant, lorsque vous tapez dans la console Linux:
$cat /proc/asound/cards
vous devriez voir apparaître:
 1 [H1             ]: USB-Audio - H1
                      ZOOM Corporation H1 at usb-0000:00:1d.1-1, full speed

Ce qui confirme la reconnaissance de votre ZOOM H1 par Linux en tant qu'interface audio USB (compatible Linux donc).
Elle apparaît également dans les entrées/sorties de Pulseaudio (le serveur de son par défaut d'Ubuntu) Pour les voir, cliquez sur l'icône "son" en haut de l'écran à droite puis cliquez sur réglages sons).



Maintenant que vous savez que votre matériel est reconnu, vous pouvez  démarrer votre serveur jack en sélectionnant l'interface H1 (avec qjackctl par exemple). Sélectionnez la latence qui vous convient (et qui convient à votre hardware). [voir l'article dédié à Jack sur ce blog]

Vous pouvez maintenant jouer des fichiers audio dans le casque branché au ZOOM H1 et entendre en même temps ce que le micro capte. L'enregistrement du micro ne contiendra pas le fichier audio joué.

Vous pouvez l'utiliser avec Audacity ou Ardour par exemple pour faire des enregistrements multi-pistes.

Ce ZOOM H1 est plein de ressources !

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

samedi 26 mai 2012

Améliorer le rendu MIDI grâce à Fluidsynth

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

aujourd'hui je vais vous parler du synthétiseur logiciel MIDI soundfont 2 fluidsynth, une alternative à timidity. La version de fluidsynth utilisée ici est la 1.1.5 disponible sur Ubuntu 12.04.


Préambule

Pour installer fluidsynth:
sudo apt-get install fluidsynth

Vous pouvez également utiliser une interface graphique plus agréable mais non développée dans cet article:
sudo apt-get install qsynth


Discussion

Pour améliorer le rendu MIDI sous Ubuntu 12.04, il faut télécharger une soundfont. Si vous utilisez Java, vous pouvez également utiliser fluidsynth moyennant une petite configuration (voir l'article à ce sujet).

Je vous conseille de télécharger la soundfont Crisis GM 3.01 qui est une perle instrumentale. Elle donne un très bon rendu par contre elle est volumineuse et prend donc beaucoup de RAM ( c-à-d 1.8Go ). Sur un système avec 4Go de RAM, ça tourne très bien.

Cependant, si vous êtes à cours de mémoire, il y a toujours la possibilité d'utiliser une soundfont disponible dans les dépôts Ubuntu Universe (à activer dans le gestionnaire de mises à jour). Pour l'installer, exécutez la commande suivante:
sudo apt-get install fluid-soundfont-gm
Après cette opération, la soundfont installé se trouve dans /usr/share/sounds/sf2/FluidR3_GM.sf2.

Astuce: Lorsque la mémoire peut être vérouillé (grâce à la configuration du serveur jack), fluidsynth peut téléverser la soundfont complète dans la RAM. On peut alors jouer des fichiers MIDI sans crainte qu'il y ait d'accès disque pour charger les instruments.

Nous avons plusieurs options pour démarrer fluidsynth. On peut le démarrer avec pulseaudio ou jack.
Voici les lignes de commandes que j'utilise:
~$ fluidsynth -a jack -m alsa_seq -g 10 -j /usr/share/sounds/sf2/crisis3gm.sf2
~$ fluidsynth -a pulseaudio -m alsa_seq -g 10 /usr/share/sounds/sf2/crisis3gm.sf2
-g 10 : permet d'augmenter le gain (donc le volume) de la sortie audio.
-j : permet de connecter automatiquement la sortie fluidsynth à la sortie système jack.
-a jack : permet d'activer le module de sortie jack.
-a pulseaudio : permet d'activer le module de sortie pulseaudio.
-m alsa_seq : permet de sélectionner le driver MIDI ALSA.
/usr/share/sounds/sf2/crisis3gm.sf2 le chemin d'accès à la soundfont évidemment ;).

Vous trouverez d'autres astuces pour l'audio sur Ubuntu par ici.

Installer Jack, le faire cohabiter avec pulseaudio et éliminer le message "cannot lock down" (vidéo GRATUITE)





Aujourd'hui, un peu d'informatique ... Ubuntu !

Pour commencer, faire de l'audio sur linux est possible. De nombreuses applications existent soit en ligne de commande soit par interface graphique.

Mais le problème sous linux c'est de trouver une carte audio compatible. De nombreux modèles sont disponibles cependant je vous invite à vérifier le niveau de support de votre carte audio (USB, firewire ou PCI). Pour cela, une liste de toutes les cartes supportées par les drivers ALSA est disponible. Un site référençant les cartes audio pro est également disponible si vous avez besoin d'une faible latence (souhaitable pour le serveur de son jack).  On estime que 10 ms de latence est une limite à ne pas franchir lorsqu'on s'enregistre live (avec un monitoring direct - c-à-d un retour mixé avec les effets).

Le DAW, ardour qui fonctionne principalement sous Linux et OS/X, ne recommande qu'un petit nombre de cartes audio faibles latences selon le nombre d'entrées que vous désirez et donne une idée de la configuration minimale nécessaire pour faire tourner ce logiciel sous Linux (Ardour requirements).

Le serveur de son Jack permet de connecter les flux audio d'une application vers une autre. Jack est un serveur de son dont le but est de fournir de l'audio temps réel.  Son architecture permet de transformer votre ordinateur en véritable table de mixage virtuelle. Avec des logiciels de qualité comme Ardour (DAW - Digital Audio Workstation) et Rosegarden (Séquenceur MIDI), vous pourrez réaliser vos prouesses musicales avec de l'open source !

Vous trouverez à la fin de cet article, une petite playlist de vidéos introduisant à jack et qjackctl.

Jack est un serveur de son utilisé sur Linux, Mac et Windows, voici quelques astuces de configuration pour Ubuntu.

NB: Si vous utilisez une distribution de type Linux Audio Pro (prévu pour la production musicale), jack sera installé et configuré par défaut. Vous n'aurez donc pas à pratiquer les différentes étapes de configuration de jack de cet article. Vous pourrez vous concentrer sur l'apprentissage de l'utilisation de qjackctl détaillé dans cet article et dans les vidéos, ou de cadence.

Configurer ALSA


Avant toutes choses, si vous n'avez pas de son avec ou sans jack, cela peut être un problème lié aux drivers ALSA (carte muette, configuration de la carte audio, problème de compatibilité, ...) . Afin de résoudre ce problème, vous pourrez vous rendre sur ce billet consacré aux problèmes de sons sous Ubuntu. Ce billet vous donne une méthode pour analyser le problème et surtout pour le résoudre !

Si vous avez plusieurs cartes audio, vous pouvez connaître l'index de la carte à initialiser en lançant la ligne de commande suivante qui affiche l'index et le nom de tous les périphériques ALSA (cartes sons) disponibles.:
~$ cat /proc/asound/cards

La ligne de commande suivante affiche pour chaque index de périphérique son le nom du driver utilisé.
~$ cat /proc/asound/modules
Une fois l'index trouvé, le nom du périphérique (donc de l'interface audio) se déduit facilement: hw:0  pour l'index 0, hw:1 pour l'index 1 ... C'est ce périphérique que vous utiliserez dans le paramétrage de qjackctl.

Si une de vos cartes son branchée est manquante ou que vous avez tout d'un coup un soucis avec une carte son en cours d'utilisation sans que vous puissiez le résoudre autrement, essayez la commande suivante:
sudo alsa force-reload
ou moins violent
sudo alsa reload

Installer et configurer Jack

Je considère ici que vous avez déjà installer un noyau à faible latence (type de noyau temps réel nécessaire à l'utilisation optimale de Jack). Si ce n'est pas le cas, je vous conseille de lire cet article.

Installer les paquets Jack

Pour installer jack, procéder de cette façon :
~$ sudo apt-get install jackd qjackctl

Régler les paramètres limites pour le groupe "audio"

Lorsque vous installez Jack, un fichier de configuration audio est créé: /etc/security/limits.d/audio.conf

Si ce fichier n'existe pas sur votre système Ubuntu, vous pouvez soit le créer manuellement en exécutant sudo gedit /etc/security/limits.d/audio.conf et en y écrivant ceci:
@audio - rtprio 95 
@audio - memlock unlimited
soit automatiquement, en exécutant la ligne de commande suivante:
~$ sudo dpkg-reconfigure -p high jackd
petite explication: @audio - memlock unlimited permet au programmes démarrés par des utilisateurs du groupe audio de vérouiller de la mémoire (c-à-d empêcher qu'elle ne soit mise dans le swap disque ceci afin d'optimiser les performances).

Configuration grâce à QJackCtl

Le programme qjackctl est une interface graphique permettant de paramétrer, démarrer, stopper et surveiller le serveur de son jack.



Pour paramétrer le serveur jack cliquer sur le bouton réglages, une fenêtre d'options apparaît.


L'essentiel dans un premier temps est de sélectionner la bonne interface audio (la flèche à côté du champ "interface" vous permet de visualiser toutes les interfaces disponibles), le bon driver (en général ALSA sauf si c'est une carte firewire), Cochez la case temps réels et sélectionnez une période. Le logiciel calcule et affiche automatiquement la latence déduite. Faite plusieurs test en influant sur la période jusqu'à ce que vous obteniez un résultat sans trop de désynchronisation (XRUNS). Pour les cartes audio qui ne sont pas ASIO (faible latence), il ne faut espérer de miracles. Pour les autres, la latence devrait être inférieure à 10ms en général.

Enfin, lorsque vous aurez démarré le serveur jack 
en utilisant l'interface graphique qjackctl (bouton démarrer),  vous pourrez tester le serveur jack en démarrant un lecteur audio comme Audacious ou Clementine (qui se paramétre tout deux facilement vers la sortie audio jack). Il est conseillé d'arrêter vos lecteurs audio lorsque vous voulez arrêter le serveur jack.


Votre compte utilisateur dans le groupe audio

A ce stade, il est probable que vous obteniez le message suivant:
cannot lock down 82241434 byte memory area (Ne peut allouer de la mémoire) 
ou
Cannot lock down memory area (Cannot allocate memory)
Il vous faudra alors ajouter votre nom d'utilisateur au groupe audio :
~$ sudo adduser mon_login audio
après un redémarrage du système, le warning ne devrait plus apparaître.

Réglage ou configuration du RTC (real time clock)/ HPET (High Precision Event Timer) pour le MIDI

Nous allons paramétrer le real time clock et le High Precision Event Timer pour les faire passer en haute résolution (nécessaire pour le MIDI).
Editer /etc/rc.local (exécuter à chaque démarrage):
~$ sudo gedit /etc/rc.local
Pour que le contenu du fichier contiennent ce qui suit:
#!/bin/sh -e
# ...

# Increase the rtc timer granularity
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
# Increase the hpet timer granularity
echo 2048 > /proc/sys/dev/hpet/max-user-freq

exit 0

Afin que les applications MIDI du groupe audio puissent utiliser le rtc (real time clock) et/ou le hpet (high precision event timer), nous allons créer une règle sur les périphériques UDEV. Créez un fichier dans /etc/udev/rules.d/40-timer-permissions.rules à l'aide de la commande:
~$ sudo gedit /etc/udev/rules.d/40-timer-permissions.rules
dans lequel vous metterez les lignes suivantes:
KERNEL=="rtc0", GROUP="audio"
KERNEL=="hpet", GROUP="audio"
Après un redémarrage du système, les paramètres devraient être appliqués:
~$ ls -l /dev/rtc0 /dev/hpet
crw-rw---- 1 root audio  10, 228 mai   28 01:06 /dev/hpet
crw-rw---- 1 root audio 254,   0 mai   28 01:06 /dev/rtc0

 

Faire cohabiter jack avec pulseaudio

Vous pouvez rediriger les entrées et sorties de pulseaudio vers le serveur jack. Sachez qu'il est fort probable que pulseaudio ajoute de la latence à votre serveur jack (plus de XRUNS donc ...).

Pour cela, il faut installer le module jack de pulseaudio :
~$ sudo apt-get install pulseaudio-module-jack
Normalement, des connexions audio Pulseaudio devraient apparaître comme ci-dessous:


Si ce n'est pas le cas, tapez les commandes suivantes pour les initialiser:
~$ pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2
Il vous faudra également sélectionner la sortie Jack Sink Pulseaudio dans les réglages sons de pulseaudio pour que les sons de pulseaudio passe à travers le serveur jack:


Alternative à QJackCtl : Cadence de KXStudio

Alternativement, vous pouvez utiliser le logiciel cadence + catia à la place de qjackctl qui intègre mieux les différents aspects de la station de travail audio numérique dirigé par le serveur de son Jack (gestion des performances CPU, configuration Jack, Pulseaudio bridge, ...).



Pour cela, activer le dépôt KXStudio (voir l'article sur le sujet)
Puis installer le logiciel et ses dépendances:
$ sudo apt-get install indicator-cpufreq cadence catia

Enfin ...

Votre configuration jack devrait être opérationnelle avec plus ou moins de XRUNS (désynchronisation c-à-d retard ponctuel du système à délivrer l'audio dans le temps impartie), Vous pourriez envisager d'abord l'installation d'un noyau à faible latence si ce n'est pas déjà fait et ensuite l'optimisation du système pour éliminer les XRUNS.

Vous pouvez consulter ces vidéos (en anglais) qui présente jack & qjackctl sous Linux:



Vous serez peut-être intéressé(e) par un logiciel libre du nom d'ardour qui est une station de travail numérique (DAW) reconnue et disponible sur Linux et Mac OS/X et utilisée par certains professionnel de l'audio aujourd'hui.

D'autre part, un article sur la compilation du driver générique wineasio est disponible sur ce blog. Il vous permettra d'utiliser des applications audio pro  windows avec jack sous Ubuntu (par exemple: Reaper).

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.