Soundflower et la gestion du son sur Mac
Par Contributeur - Publié le
Suite à cette actualité, je vous propose un petit tuto sur l'utilisation de Soundflower, un utilitaire que j'adore. Ce tuto est destiné à tout le monde. Il n'y aura pas de ligne de commande, et encore moins de programmation.
Mais avant tout, je vous demande de faire attention à vos manipulations. Certaines actions peuvent entrainer la montée du son au maximum, pouvant hypothétiquement abimer vos équipements. Dans le doute, avant toute modification, coupez le son de vos équipements et/ou celui du mac.
Voici la procédure que nous allons suivre :
1 - Le son sur Mac OS X
2 - Modifier le chemin du son
3 - Récupérer le son du Mac avec Soundflower
4 - Enregistrer plusieurs entrées
5 - Diffuser sur plusieurs sorties
6 - Le contrôle du volume
Avant d'expliquer ce qu'est Soundflower, je me dois de parler de la gestion du son de façon plus générale sur OS X. Je vais essayer de vulgariser au maximum. Pour cela, je vais essayer de représenter la gestion du son au travers de "couches".
La première couche, appelons-la couche 0, est la couche matérielle. C'est le micro, l'entrée jack, la sortie jack, les haut-parleurs, une éventuelle carte son USB.
D'un point de vue logiciel, le son est géré par OS X au travers de "périphériques". Ce sera notre couche 1. En général, il existe un périphérique logiciel (couche 1) pour chaque composant matériel (couche 0). La liste complète se trouve dans :
Comme on peut le voir, les périphériques disposent d'entrées et/ou de sorties. La plupart en disposent de deux, car ils sont stéréo (droite et gauche). Notez d'ailleurs que la sortie intégrée regroupe les haut-parleurs et le port jack. Le premier est choisi si le port est libre. Sinon c'est l'autre. On ne peut pas utiliser les deux.
Ensuite, on peut identifier une nouvelle couche (couche 2), qui est le système (Mac OS X). Par définition, le système d'exploitation sur un ordinateur fait le lien entre le matériel et les applications.
Tout naturellement, on va donc retrouver une quatrième couche (la couche 3) qui est l’application. Pour résumer, voici deux exemples pour voir par où passe le son. D'abord, iTunes lisant de la musique, puis vous, en train de parler devant un enregistrement Photo Booth :
Comme on peut le voir sur l'image précédente, on a trois interconnexions (les trois flèches). On va essayer de les modifier. Malheureusement, on ne pourra pas toucher celle entre matériel et périphérique logiciel. C'est réservé aux développeurs.
Occupons-nous alors de la seconde. Comment rediriger les entrées/sorties du système vers d'autres périphériques ? C'est très simple : faire alt+click sur l'icône de son de la barre des menus, et sélectionner... ou alors, passer par les préférences système
Le troisième lien est plus subtil à modifier. En effet, cela dépend des applications. Dans mon 1er exemple (iTunes et Photobooth), on est obligé de passer par le choix du système. On va donc prendre un exemple : QuickTime. Lancez-le, puis faites
Maintenant on va pouvoir parler de cet utilitaire bien pratique qu'est Soundflower. En réalité Soundflower n'est ni plus ni moins qu'un périphérique software.
Il dispose d'une entrée et d'une sortie (ou plutôt 2, pour droite et gauche). On l'appelle "périphérique virtuel" car il n'est lié à aucun élément matériel. Son principe est enfantin : son entrée et sa sortie sont reliées.
Comment s'en servir ? Tout simplement en sélectionnant et en définissant son entrée et sa sortie, grâce aux deux méthodes que j'ai évoqué précédemment. Prenons un nouvel exemple : comment enregistrer le son d'iTunes avec QuickTime grâce à Soundflower ?
Comme je l'ai dit, on ne peut pas choisir vers quoi iTunes émet. Il émet obligatoirement vers le son par défaut du système. On va donc rediriger ce dernier vers l'entrée de Soundflower. Pour rappel, alt-click sur l'icône son de la barre des menus -> périphérique de sortie -> Soundflower (ou via les préf système son).
La 2e étape consiste, dans QuickTime, à sélectionner la sortie de Soundflower.
Schématiquement :
Mais si l'on fait ça, on se rend vite compte de deux problèmes. Le 1er n'est pas tout de suite évident. Mais si vous écoutez l'enregistrement réalisé par QuickTime, vous allez constater un abominable Larsen ! En effet, mon dernier schéma n'est pas tout à fait juste. Correction :
On réinjecte systématiquement ce que l'on a enregistré. C'est le principe de l'effet Larsen. Pour corriger cela, il faut "casser" la boucle en diminuant le son émit par QuickTime jusqu'à le rendre muet.
Le deuxième problème est cependant évident : on a plus de son dans nos oreilles. Il existe plusieurs façons de le rétablir. La plus simple se passe directement dans Soundflower. Ce dernier vous permet de choisir une sortie supplémentaire. Par exemple la sortie intégrée. Pour cela, il suffit de cliquer sur l'icône de Soundflower dans la barre des menus :
Mais il existe d'autres subtilités et façons de faire. Pour cela, il va falloir pousser l'expérience un peu plus loin en créant nos propres périphériques.
Une des premières choses intéressantes que l'on pourrait avoir envie de faire, c'est d'enregistrer plusieurs sources en même temps. Typiquement, si vous êtes en train de réaliser un Podcast, vous avez peut-être envie d'enregistrer le son de votre Mac en même temps que le son du micro. Problème : dans QuickTime par exemple, vous ne pouvez sélectionner qu'un seul périphérique logiciel.
Pour pallier à cela, on va créer un nouveau périphérique virtuel. Je me suis fait couper l'herbe sous le pied dernièrement par ce très bon article de Didier. Mais je vais tout de même le reprendre à ma sauce.
Rendez-vous dans l'utilitaire
Il suffit ensuite de cocher les sources que l'on souhaite fusionner. Dans notre cas ce sera le micro (Entrée intégrée) et le son du Mac qu'on aura pris soin de rediriger vers Soundflower.
Si l'on ne regarde que la couche périphérique logiciel (couche 1), cela se résume au schéma suivant :
On distingue bien deux entrées (Soundflower et le micro) fusionnées en une sortie (Multi-in). Pour l'utiliser, il suffit donc de se rendre dans QuickTime et de sélectionner ce nouveau périphérique pour l'enregistrement. Les deux sources sont donc fusionnées. Schématiquement, cela commence à se complexifier. Je vais même rajouter une 5e couche (couche 4), la couche fichier.
À ce stade, certains pourraient douter de l'utilité de Soundflower étant donné que le périphérique que l'on vient de créer agit presque de la même façon. Mais ce n'est pas le cas. Notez que :
• Un périphérique agrégé ne peut recevoir que d'autres périphériques logiciels (couche 1) en entrée.
• Soundflower ne peut recevoir que le son du système (couche 2) ou le son d'une application (couche 3) ou le son de certains périphériques (voir la suite) en entrée.
Soundflower et les périphériques agrégés sont donc des mécanismes complémentaires.
Comme je le disais, Apple nous empêche d'utiliser simultanément le jack de sortie et les haut-parleurs en les fusionnant sous l'appellation
Un autre exemple. Si Soundflower n'intégrait pas un système de retour comme évoqué précédemment, nous pourrions avoir envie d'envoyer le son du Système à la fois vers Soundflower, mais aussi vers la sortie intégrée.
N'ayant pas de carte son, je vais prendre le deuxième exemple comme illustration.
Pour réaliser cela, nous allons créer un périphérique à sortie multiple. C'est le strict inverse du périphérique agrégé. Sur configuration audio et midi, cliquez sur le bouton "+" en bas à gauche et sélectionnez
Je l'ai appelé "Multi-Out". Pour suivre mon exemple, j'ai donc sélectionné la sortie intégrée et Soundflower.
Comme précédemment, si l'on ne regarde que la couche périphérique logiciel (couche 1), cela se résume au schéma suivant :
Il ne reste plus qu'à choisir quoi envoyer sur notre nouveau périphérique. Celui-ci ne pourra recevoir en entrée que le son par défaut du mac ou le son d'une application. Dans notre exemple, on va lui envoyer le son par défaut du mac. Toujours de la même façon : alt+click sur l'icône de son de la barre des menus, et sélection du "Multi-out". On peut également faire un click droit sur notre nouveau périphérique dans Configuration audio et midi :
Pour terminer notre exemple, voici une illustration résumant tout ce que l'on a fait :
Il y a plusieurs façons de régler le volume sur Mac. Notamment :
• les touches du clavier
• le curseur de volume de la barre des menus
• des logiciels tiers
Si l'on retourne dans l'utilitaire Configuration Audio et MIDI, on se rend compte que la modification du volume entraine directement la modification de celui du périphérique utilisé par défaut par le système. Que ce soit Soundflower, la sortie intégrée, ou n'importe lequel.
Mais pour une raison totalement obscure, les périphériques agrégés ou à sorties multiples n'ont pas de contrôle du volume. Si l'un est sélectionné comme sortie par défaut du système, les touches de volumes n'auront aucun effet. Il vous sera cependant toujours possible de modifier le volume de chaque périphérique indépendamment.
Ainsi, comme je l'indiquais tout au début de l'article, faites attention au volume qui pourrait sortir de votre Mac. Surtout en cas de Larsen.
Merci à Anozer pour ce Tuto.
Mais avant tout, je vous demande de faire attention à vos manipulations. Certaines actions peuvent entrainer la montée du son au maximum, pouvant hypothétiquement abimer vos équipements. Dans le doute, avant toute modification, coupez le son de vos équipements et/ou celui du mac.
Voici la procédure que nous allons suivre :
1 - Le son sur Mac OS X
2 - Modifier le chemin du son
3 - Récupérer le son du Mac avec Soundflower
4 - Enregistrer plusieurs entrées
5 - Diffuser sur plusieurs sorties
6 - Le contrôle du volume
1 - Le son sur Mac OS X
Avant d'expliquer ce qu'est Soundflower, je me dois de parler de la gestion du son de façon plus générale sur OS X. Je vais essayer de vulgariser au maximum. Pour cela, je vais essayer de représenter la gestion du son au travers de "couches".
La première couche, appelons-la couche 0, est la couche matérielle. C'est le micro, l'entrée jack, la sortie jack, les haut-parleurs, une éventuelle carte son USB.
D'un point de vue logiciel, le son est géré par OS X au travers de "périphériques". Ce sera notre couche 1. En général, il existe un périphérique logiciel (couche 1) pour chaque composant matériel (couche 0). La liste complète se trouve dans :
/Applications/Utilitaires/Configuration Audio et Midi
Comme on peut le voir, les périphériques disposent d'entrées et/ou de sorties. La plupart en disposent de deux, car ils sont stéréo (droite et gauche). Notez d'ailleurs que la sortie intégrée regroupe les haut-parleurs et le port jack. Le premier est choisi si le port est libre. Sinon c'est l'autre. On ne peut pas utiliser les deux.
Ensuite, on peut identifier une nouvelle couche (couche 2), qui est le système (Mac OS X). Par définition, le système d'exploitation sur un ordinateur fait le lien entre le matériel et les applications.
Tout naturellement, on va donc retrouver une quatrième couche (la couche 3) qui est l’application. Pour résumer, voici deux exemples pour voir par où passe le son. D'abord, iTunes lisant de la musique, puis vous, en train de parler devant un enregistrement Photo Booth :
2 - Modifier le chemin du son
Comme on peut le voir sur l'image précédente, on a trois interconnexions (les trois flèches). On va essayer de les modifier. Malheureusement, on ne pourra pas toucher celle entre matériel et périphérique logiciel. C'est réservé aux développeurs.
Occupons-nous alors de la seconde. Comment rediriger les entrées/sorties du système vers d'autres périphériques ? C'est très simple : faire alt+click sur l'icône de son de la barre des menus, et sélectionner... ou alors, passer par les préférences système
son.
Le troisième lien est plus subtil à modifier. En effet, cela dépend des applications. Dans mon 1er exemple (iTunes et Photobooth), on est obligé de passer par le choix du système. On va donc prendre un exemple : QuickTime. Lancez-le, puis faites
Fichier / Nouvel enregistrement audio. En cliquant sur le petit triangle blanc à droite, pointant vers le bas, on peut sélectionner le périphérique à utiliser. En d'autres termes, on contourne le choix par défaut du système. Schématiquement :
3 - Récupérer le son du Mac avec Soundflower
Maintenant on va pouvoir parler de cet utilitaire bien pratique qu'est Soundflower. En réalité Soundflower n'est ni plus ni moins qu'un périphérique software.
Il dispose d'une entrée et d'une sortie (ou plutôt 2, pour droite et gauche). On l'appelle "périphérique virtuel" car il n'est lié à aucun élément matériel. Son principe est enfantin : son entrée et sa sortie sont reliées.
Comment s'en servir ? Tout simplement en sélectionnant et en définissant son entrée et sa sortie, grâce aux deux méthodes que j'ai évoqué précédemment. Prenons un nouvel exemple : comment enregistrer le son d'iTunes avec QuickTime grâce à Soundflower ?
Comme je l'ai dit, on ne peut pas choisir vers quoi iTunes émet. Il émet obligatoirement vers le son par défaut du système. On va donc rediriger ce dernier vers l'entrée de Soundflower. Pour rappel, alt-click sur l'icône son de la barre des menus -> périphérique de sortie -> Soundflower (ou via les préf système son).
La 2e étape consiste, dans QuickTime, à sélectionner la sortie de Soundflower.
Schématiquement :
Mais si l'on fait ça, on se rend vite compte de deux problèmes. Le 1er n'est pas tout de suite évident. Mais si vous écoutez l'enregistrement réalisé par QuickTime, vous allez constater un abominable Larsen ! En effet, mon dernier schéma n'est pas tout à fait juste. Correction :
On réinjecte systématiquement ce que l'on a enregistré. C'est le principe de l'effet Larsen. Pour corriger cela, il faut "casser" la boucle en diminuant le son émit par QuickTime jusqu'à le rendre muet.
Le deuxième problème est cependant évident : on a plus de son dans nos oreilles. Il existe plusieurs façons de le rétablir. La plus simple se passe directement dans Soundflower. Ce dernier vous permet de choisir une sortie supplémentaire. Par exemple la sortie intégrée. Pour cela, il suffit de cliquer sur l'icône de Soundflower dans la barre des menus :
Mais il existe d'autres subtilités et façons de faire. Pour cela, il va falloir pousser l'expérience un peu plus loin en créant nos propres périphériques.
4 - Enregistrer plusieurs entrées
Une des premières choses intéressantes que l'on pourrait avoir envie de faire, c'est d'enregistrer plusieurs sources en même temps. Typiquement, si vous êtes en train de réaliser un Podcast, vous avez peut-être envie d'enregistrer le son de votre Mac en même temps que le son du micro. Problème : dans QuickTime par exemple, vous ne pouvez sélectionner qu'un seul périphérique logiciel.
Pour pallier à cela, on va créer un nouveau périphérique virtuel. Je me suis fait couper l'herbe sous le pied dernièrement par ce très bon article de Didier. Mais je vais tout de même le reprendre à ma sauce.
Rendez-vous dans l'utilitaire
configuration audio et midi. Nous allons donc créer un nouveau périphérique qui aura la particularité d'avoir plusieurs sources. Pour cela, cliquez sur le bouton "+" en bas à gauche, et sélectionnez
Créer un périphérique agrégé. Je l'ai appelé "Multi-in".
Il suffit ensuite de cocher les sources que l'on souhaite fusionner. Dans notre cas ce sera le micro (Entrée intégrée) et le son du Mac qu'on aura pris soin de rediriger vers Soundflower.
Si l'on ne regarde que la couche périphérique logiciel (couche 1), cela se résume au schéma suivant :
On distingue bien deux entrées (Soundflower et le micro) fusionnées en une sortie (Multi-in). Pour l'utiliser, il suffit donc de se rendre dans QuickTime et de sélectionner ce nouveau périphérique pour l'enregistrement. Les deux sources sont donc fusionnées. Schématiquement, cela commence à se complexifier. Je vais même rajouter une 5e couche (couche 4), la couche fichier.
À ce stade, certains pourraient douter de l'utilité de Soundflower étant donné que le périphérique que l'on vient de créer agit presque de la même façon. Mais ce n'est pas le cas. Notez que :
• Un périphérique agrégé ne peut recevoir que d'autres périphériques logiciels (couche 1) en entrée.
• Soundflower ne peut recevoir que le son du système (couche 2) ou le son d'une application (couche 3) ou le son de certains périphériques (voir la suite) en entrée.
Soundflower et les périphériques agrégés sont donc des mécanismes complémentaires.
5 - Diffuser sur plusieurs sorties
Comme je le disais, Apple nous empêche d'utiliser simultanément le jack de sortie et les haut-parleurs en les fusionnant sous l'appellation
Sortie intégrée. Mais si nous disposions d'une sortie supplémentaire, par exemple une carte son ? Nous pourrions avoir envie de diffuser simultanément le son du Mac vers des enceintes sur cette carte son et un casque sur le jack du Mac.
Un autre exemple. Si Soundflower n'intégrait pas un système de retour comme évoqué précédemment, nous pourrions avoir envie d'envoyer le son du Système à la fois vers Soundflower, mais aussi vers la sortie intégrée.
N'ayant pas de carte son, je vais prendre le deuxième exemple comme illustration.
Pour réaliser cela, nous allons créer un périphérique à sortie multiple. C'est le strict inverse du périphérique agrégé. Sur configuration audio et midi, cliquez sur le bouton "+" en bas à gauche et sélectionnez
Créer un périphérique à sortie multiple.
Je l'ai appelé "Multi-Out". Pour suivre mon exemple, j'ai donc sélectionné la sortie intégrée et Soundflower.
Comme précédemment, si l'on ne regarde que la couche périphérique logiciel (couche 1), cela se résume au schéma suivant :
Il ne reste plus qu'à choisir quoi envoyer sur notre nouveau périphérique. Celui-ci ne pourra recevoir en entrée que le son par défaut du mac ou le son d'une application. Dans notre exemple, on va lui envoyer le son par défaut du mac. Toujours de la même façon : alt+click sur l'icône de son de la barre des menus, et sélection du "Multi-out". On peut également faire un click droit sur notre nouveau périphérique dans Configuration audio et midi :
Pour terminer notre exemple, voici une illustration résumant tout ce que l'on a fait :
6 - Le contrôle du volume
Il y a plusieurs façons de régler le volume sur Mac. Notamment :
• les touches du clavier
• le curseur de volume de la barre des menus
• des logiciels tiers
Si l'on retourne dans l'utilitaire Configuration Audio et MIDI, on se rend compte que la modification du volume entraine directement la modification de celui du périphérique utilisé par défaut par le système. Que ce soit Soundflower, la sortie intégrée, ou n'importe lequel.
Mais pour une raison totalement obscure, les périphériques agrégés ou à sorties multiples n'ont pas de contrôle du volume. Si l'un est sélectionné comme sortie par défaut du système, les touches de volumes n'auront aucun effet. Il vous sera cependant toujours possible de modifier le volume de chaque périphérique indépendamment.
Ainsi, comme je l'indiquais tout au début de l'article, faites attention au volume qui pourrait sortir de votre Mac. Surtout en cas de Larsen.
Merci à Anozer pour ce Tuto.