MAO (Musique Assistée par Ordinateur)

Vous trouverez une excellente documentation en français sur LinuxMAO.

Il existe de nombreuses applications de musique sur GNU/Linux. De plus, le serveur de son nommé JACK permet d'utiliser et de router (lier ensemble) beaucoup d'entre elles en audio et/ou en MIDI.

On trouve aussi de nombreux effets et instruments virtuels en plugins de logiciel hôtes : standards LADSPA pour les effets et DSSI pour les instruments, le format LV2 se présente comme le successeur à la fois du LADSPA et du DSSI, et des VST sont aussi maintenant portés ou développés nativement pour GNU/Linux.

Avant tout il est important de comprendre le fonctionnement du son sous GNU/Linux.

Pour résumer, les applications se connectent au driver de la carte son (généralement ALSA, anciennement OSS, FFADO pour les cartes FireWire) via un serveur de son (PulseAudio pour le multimédia, JACK pour la MAO). Cela permet à plusieurs applications d'utiliser le son en même temps. ALSA dispose également de son propre serveur de son.

Dans le domaine de la MAO, JACK est un serveur de son bien plus puissant que ne l'est PulseAudio (utilisé par défaut dans ubuntu). Il est donc indiqué de remplacer PulseAudio par JACK. Il est cependant possible de continuer à utiliser PulseAudio (et donc lire les sons d'Ubuntu, et des applications compatibles) : il faut pour cela installer pulseaudio-module-jack et choisir "jack sink" en périphérique de sortie par défaut dans Pavucontrol.

Pour jouer plusieurs sons en même temps il faut utiliser ALSA, JACK ou PulseAudio. Si une de vos applications utilise OSS, il faudra installer le paquet alsa-oss, et lancer votre application avec la commande aoss (par ex. aoss gtick).

Optimisation audio

La durée du calcul entre le déclenchement d'un événement (note d'un contrôleur MIDI par ex.) et la reproduction du son qui lui est associé est appelée "temps de latence". Cette durée peut être gênante pour un musicien (au delà de 30 ms environ). Heureusement, Linux intègre maintenant de base un noyau optimisé pour le temps réel, qui réduit cette durée tant que possible.

Une autre manière de réduire cette durée est de diminuer la taille du tampon audio ("buffer" en anglais) dans les réglages audio de sa config (les réglages de JACK en général). Cela se fait au détriment des ressources processeurs qui sont plus sollicitées. Si le processeur est surchargé, cela se traduit au niveau sonore par des craquements audibles appelés "Xruns".

L'utilisation d'une bonne carte son dédiée à la MAO est évidemment aussi un gros atout à ce sujet.

Pour les cartes sons USB, certaines combinaisons de framerate / buffer sont préférables à d'autres : voir sur cette page (en) les combinaisons indiquées en gras.

Voir en préliminaire la page Multimédia (particulièrement ce qui concerne l'édition et la compression du son).

La plupart des applications dédiées à la MAO implémentent la norme MIDI qui permet aux machines (virtuelles ou non) de communiquer entre elles. Pour plus d'informations, consultez la page concernant le MIDI.

Certaines distributions ou variantes d'Ubuntu sont plus à même de remplir vos besoins en MAO.

DistributionOrigineBureauCommentaires
Ubuntu Studio Ubuntu XFCE Variante reconnue d'Ubuntu, Ubuntu Studio est livrée avec des logiciels pour le graphisme, la vidéo et la MAO. Pour monter un studio virtuel il faudra par contre configurer JACK manuellement et les applications dans les dépôts officiels sont généralement moins à jour que dans les dépôts KXStudio. (voir aussi : paquets audio de UbuntuStudio)
AV Linux Debian XFCE Distribution conçue pour déployer un studio audio / vidéo / graphique sur un matériel d'ancienne génération ou sur des configurations modestes.
Musix Debian KDE Musix, développée en Argentine est dédiée à la production audio, vidéo et graphique avec des logiciels exclusivement libres.
LibraZik Debian Mate Vous trouverez une excellente documentation en français sur son site officiel, et de l'aide également sur LinuxMAO.

Des listes plus complètes de distributions orientées audio :

KXStudio était l'une des meilleure distribution dédiée à la MAO. Il s'agit maintenant d'un dépôt à ajouter à Ubuntu (ou Debian) sur lequel vous trouverez des logiciels dédiés à la MAO plus nombreux et plus récents que sur les dépôts officiels d'Ubuntu ou Ubuntu Studio.
Nom Description Plugins Environnement Installation
Ardour puissant studio d'enregistrement et de mixage (DAW) LADSPA LV2 VST JACK ALSA PulseAudio ardour3
Audacity éditeur audio LADSPA LV2 JACK ALSA PulseAudio OSS audacity
Mhwaveedit éditeur audio LADSPA mhwaveedit
wavesurfer éditeur audio wavesurfer
Rezound éditeur audio LADSPA rezound
Jokosher (abandonné) enregistrement et mixage LADSPA jokosher
ocenaudio puissant éditeur audio (propriétaire) VST JACK ALSA PulseAudio paquets deb
Nom Description Plugins Environnement Installation
mixxx pour mixer et scratcher comme avec des platines (proche de Traktor) LV2 JACK ALSA mixxx / mixxx 2 disponible sur ces dépôts
TerminatorX pour mixer et scratcher comme avec des platines LADSPA JACK ALSA terminatorx

Une liste plus complète de logiciels de djing sur linux : (en) http://linux-sound.org/ddj.html

Traditionnellement les DAWs (Digital Audio Workstations) sont des logiciels qui tendent à reproduire l'environnement qu'on peut trouver dans un studio d'enregistrement physique.

Elles intègrent la plupart du temps un séquenceur, qui joue le rôle de "chef d'orchestre" et automatise les différents instruments et effets virtuels. Ces séquenceurs proposent en général d'assembler et de jouer de courtes séquences ou des boucles appelées "patterns". En fonction du séquenceur, ces patterns peuvent être édités de différentes façons : piano roll (une représentation des notes de piano sous forme de frise chronologique), tracker (édition des notes en hexadécimal au clavier texte, pas très intuitif mais extrêmement rapide, hérité de la scène démo), step sequencer (suite de boutons, plutôt pour des parties rythmiques), partitions musicales traditionnelles, etc. Le protocole utilisé pour commander les instruments et les effets est généralement le MIDI. On parlera donc généralement de séquenceurs MIDI, par opposition aux séquenceurs audio, qui permettent d'organiser dans le temps la lecture de samples audio.

Les instruments génèrent les sons (il s'agit de synthétiseurs ou de sampleurs) et les effets les modifient. Ces instruments et ces effets contrôlés en MIDI peuvent être des machines externes (via une interface MIDI), des logiciels standalone (via JACK), des extensions LADSPA, DSSI ou LV2 (voir plus bas), ou être partie intégrante de la DAW. C'est donc souvent un autre paramètre à prendre en compte dans le choix du bon logiciel.

Ces studios peuvent être modulaires, dans ce cas chaque séquenceur, instrument ou effet dans l'application est un "module" qui peut être relié à un autre par des liens graphiques (qui transmettent généralement des données audio ou MIDI). C'est une représentation virtuelle des différentes machines qu'on peut trouver dans un studio d'enregistrement, avec leurs câbles audio et MIDI. Dans le cas contraire les DAWs reproduisent généralement les fonctionnalités d'une grosse table de mixage multi-effet, donc plus simple à prendre en main mais avec des possibilités de routage un peu moins poussées.

studios virtuels orientés "live"

Nom Description Plugins Environnement Installation
LMMS Linux MultiMedia System : studio complet et intuitif, assemblage de patterns (proche de FruityLoops) LADSPA VST JACK ALSA lmms
Giada séquenceur audio et midi / loopmachine (système de clips, proche de Ableton Live). Interface soignée. VST (support du LV2 prévu) JACK ALSA paquets deb ou giada via les dépots KXStudio ou via docker
Luppp séquenceur audio / loopmachine. Samples synchronisées par time stretch. Interface soignée proche de Ableton Live. JACK luppp via les dépots KXStudio
SuperBoucle séquenceur audio / loopmachine JACK binary sources
Seq24 séquenceur midi simple basé sur des boucles JACK seq24
ossia score séquenceur de partitions interactives OSC, audio et MIDI LV2 VST JS JACK ALSA binary sources
Radium tracker modulaire, audio et midi. Intègre Pure Data (démo). LADSPA VST JACK radium via les dépots KXStudio
beast tracker modulaire (proche de Jeskola Buzz) LADSPA ALSA beast
buzztrax (ex buzztard) tracker modulaire (proche de Jeskola Buzz) LADSPA JACK ALSA sources
aldrin (abandonné) tracker modulaire (proche de Jeskola Buzz) LADSPA DSSI VST JACK sources
neil (fork de aldrin) tracker modulaire (proche de Jeskola Buzz) LADSPA DSSI VST JACK sources
Machina séquenceur midi basé sur des automates finis JACK svn
Jost (abandonné) studio modulaire / séquenceur LADSPA VST JACK ALSA binary
Bitwig Studio (payant) studio complet, séquenceur audio et midi (proche de Ableton Live) VST JACK propriétaire
energyXT2 (payant) studio modulaire complet / séquenceur audio et midi VST JACK propriétaire
renoise (payant) studio complet construit autour d'un tracker audio et midi particulièrement efficace LADSPA DSSI VST JACK propriétaire

studios virtuels orientés "composition"

Nom Description Plugins Environnement Installation
Ardour séquenceur audio et midi : depuis la version 3, Ardour intègre un séquenceur midi, ce qui en fait l'une des DAWs les plus puissantes sur linux, équivalent libre de Pro Tools, Cubase ou Logic Pro LADSPA VST LV2 JACK ALSA ardour pour la version 4.6 ou via les dépots KXStudio pour la version 5.5
Qtractor séquenceur audio et midi, plus facile à prendre en main que Ardour mais très complet également LADSPA DSSI VST LV2 JACK qtractor
Muse séquenceur audio et midi avec éditeur de partition LADSPA DSSI VST LV2 JACK muse
Rosegarden séquenceur audio et midi avec éditeur de partition LADSPA DSSI JACK rosegarden
Aria Maestosa séquenceur midi simple, édition par piano roll, step sequencer, partition et tablature JACK ALSA ariamaestosa via les dépots KXStudio
Jacker séquenceur midi / tracker JACK jacker via les dépots KXStudio
shaketracker trackers midi JACK shaketracker / cheesetracker
Wired (abandonné) séquenceur audio et midi LADSPA JACK paquet deb
Tracktion (propriétaire) séquenceur audio et midi intuitif LADSPA VST (en version payante) JACK propriétaire

hôtes simples

Nom Description Plugins Environnement Installation
Carla station hôte, supporte de nombreux formats, y compris les banques de samples GIG, SF2 et SFZ, et contrôlable via MIDI ou OSC LV2 LADSPA DSSI VST AU JACK ALSA LV2 VST OSC carla-git via les dépots KXStudio
jack-rack station multi-effets pour plugins LADSPA LADSPA JACK jack-rack
zynjacku station multi-effets (lv2rack) et synthés (zynjacku) pour plugins LV2 LV2 JACK zynjacku

JACK et les gestionnaires de session

Dans la mesure où JACK permet de relier en audio ou en midi tous les logiciels compatibles, il peut être considéré lui-même (avec l'ensemble du parc logiciel) comme un studio virtuel modulaire. Le problème dans ce cas est que toutes ces applications standalone doivent être chargées indépendamment, reliées entre elles, et pour chacune de ces applications il faut charger la sauvegarde ou le preset sur lequel on souhaite travailler. Ça peut devenir très lourd logistiquement. Heureusement, on a mis en place des protocoles qui permettent de gérer tout cela automatiquement, sous forme de session qu'on peut sauvegarder et réouvrir. Le gestionnaire de session s'occupe alors en principe de relancer les différentes applications, de les connecter, et de recharger les settings correspondants.

Malheureusement il existe plusieurs protocoles de session différents et toutes les applications ne sont pas uniformisées. JACK session est le protocole le plus récent, et probablement définitif, mais il n'est pas implémenté partout. Et il existe du coup plusieurs gestionnaires de session différents :

  • QJackCtl permet de gérer les applications compatibles JACK session
  • LADISH permet aussi de gérer les applications compatibles JACK session, mais en plus les applications compatibles LASH, protocole plus ancien, et aussi dans une certaine mesure les applications compatibles JACK qui n'implémentent aucun protocole
  • Non Session Manager peut travailler même indépendamment de JACK
Nom Description Protocole Installation
QJackCtl QJackCtl est une interface graphique pour le serveur de son JACK. Il permet entre autre de connecter entre elles les différentes applications compatibles JACK et de sauvegarder leurs états sous forme de sessions uniques, à condition que celles-ci implémentent le standard JACK session. JACK-session qjackctll
Gladish Interface graphique pour LADISH. Permet de router les différentes applications compatibles, et évidemment de gérer les sessions LADISH. LADISH JACK-session LASH gladish
Claudia Application issue du projet KXStudio. Proche de Gladish, elle permet de router les différentes applications compatibles JACK et fournit en plus un inventaire détaillé des applications disponibles. LADISH JACK-session LASH claudia via les dépots KXStudio
Non-DAW Non Daw reprend à son compte ce concept de jack comme studio modulaire global et propose ainsi des modules sous forme d'applications standalone : Non Timeline (enregistreur multipiste) Non Sequencer (séquenceur MIDI), Non Mixer (console de mixage), Non Session Manager (gestionnaire de session). NSM non-daw non-mixer non-sequencer non-session-manager via les dépots KXStudio

Un comparatif plus détaillé des protocoles de session : (en) https://www.linuxmusicians.com/viewtopic.php?p=39846#p39846

On trouve de nombreux instruments virtuels soit en standalone JACK, soit en plugin de studios virtuels (voir au dessus) au format DSSI, LV2 ou VST.

synthétiseurs

Les synthétiseurs sont des instruments qui génèrent du son à partir de fonctions mathématiques. Les premiers synthétiseurs étaient analogiques (le signal sonore était généré directement par de simples composants électroniques) et en informatique beaucoup de synthétiseurs essaient encore de conserver cette approche (on parle alors de "modélisation analogique").
Il existe plusieurs techniques de synthèse, pour les plus connues :

  • synthèse additive (on ajoute des ondes sinusoïdales les unes sur les autres, ce sont généralement des orgues)
  • synthèse soustractive (on filtre des fréquences à partir d'un son riche en harmonique - bruit blanc ou onde en dent de scie par ex.)
  • synthèse FM (frequency modulation, diverses oscillations influent entre elles, plus complexe à appréhender)
  • synthèse à table d'onde (proche d'un sampleur : on joue en boucle une portion extrêmement courte d'un sample afin de définir une forme d'onde)
  • synthèse granulaire (aussi proche d'un sampleur : on joue de courtes portions de samples, qu'on appelle alors des grains, et on influe sur leurs durées, leurs positions, etc.)

La plupart des synthétiseurs mélangent plusieurs de ces techniques.

Nom Description Environnement Installation
calf studio gear une collection complète d'effets et instruments virtuels de qualité, entre autre 3 synthétiseurs : un orgue (synthèse additive), un synthé monophonique (synthèse soustractive à modélisation analogique), et un synthé à table d'onde. JACK LV2 calf-plugins
Ingen synthétiseur modulaire JACK LV2 OSC ingen via les dépots KXStudio
Helm synthétiseur polyphonique à l'interface soignée et aux sonorités modernes. démo JACK LV2 VST paquets deb ou helm via ces dépôts
Sorcer synthétiseur polyphonique à table d'onde. orienté dubstep / dnb. interface minimaliste et soignée. LV2 sorcer via les dépots KXStudio
Aeolus Un émulateur de grand orgue, peu vorace en ressources. JACK aeolus
amSynth synthétiseur à modélisation analogique JACK amsynth
Zynaddsubfx synthétiseur évolué JACK zynaddsubfx
bristol émulation de nombreux synthétiseurs vintages JACK bristol
freebirth synthétiseur de basse inspiré de la TB-303 (très utilisée en techno pour les sons acid) ALSA freebirth
nekobee autre émulateur de TB-303 DSSI nekobee
timidity Timidity sert aussi de synthétiseur virtuel JACK timidity
hexter synthèse FM : émulateur du Yamaha DX7 DSSI hexter
whysynth synthétiseur très complet DSSI whysynth
Xsynth synthétiseur à modélisation analogique simple DSSI xsynth-dssi

sampleurs

Les sampleurs sont des instruments qui génèrent du son à partir d'échantillons (de courts enregistrements audio). Ils trouvent leur application dans beaucoup de domaines et peuvent par conséquent être de type très variés :

  • Pour reproduire des instruments traditionnels, on utilisera souvent des banques de samples au format SoundFont. Les SoundFont players permettent de jouer différents samples en fonction de la "vélocité" (la force avec laquelle on joue une note), et de maintenir ou non des notes. Donc très utile et efficace pour reproduire fidèlement un piano par ex.
  • S'il s'agit d'instruments de percussion (type batterie), on utilisera plutôt un sample player qui permet de charger un drumkit ou directement des samples individuels.
  • Les loopeurs permettent d'enregistrer en temps réel un riff ou une phrase et de la rejouer en boucle. On s'en sert beaucoup pour le live, ça permet de jouer toute une orchestration en étant tout seul.
  • Les beat slicers permettent de jouer des fragments d'un sample (par ex. une boucle rythmique) dans le désordre. Très utilisés pour le breakbeat et la jungle par ex.
Nom Description Environnement Installation
LinuxSampler sampleur, éditeur de banque (gigedit), interface graphique : qsampler (qt) ou jsampler (java) JACK ALSA VST LV2 qsampler
Hydrogen boîte à rythme avancée : step sequencer et lecteur / éditeur de samples JACK hydrogen hydrogen-drumkits
FluidSynth soundfont player (interface graphique : qsynth) JACK ou DSSI fluidsynth et qsynth ou fluidsynth-dssi
calf studio gear une collection complète d'effets et instruments virtuels de qualité, entre autre un player de soundfont sf2, implémentation du FluidSynth. JACK LV2 calf-plugins
swami éditeur et player de soundfont sf2 (implémente FluidSynth) JACK swami
Specimen (abandonné) sampleur simple JACK specimen
Petri-Foo (fork de specimen) sampleur simple JACK LV2 petri-foo
freewheeling enregistrement et jeu de boucles pour le live JACK freewheeling
sooperlooper enregistrement et jeu de boucles pour le live JACK sooperlooper
Fabla lecteur de samples, orienté rythmique LV2 fabla via les dépots KXStudio

On trouve beaucoup d'effets soit en standalone JACK, soit en plugin de studios virtuels (voir au dessus) au format LV2, LADSPA ou VST.

Nom Description Environnement Installation
calf studio gear une collection complète d'effets et instruments virtuels de grande qualité : traitements dynamiques (dont compresseur multibande), filtres, eqs, delays, distortions, harmonic exciter etc. LV2 (JACK via calfjackhost) calf-plugins
MDA-LV2 une collection complète d'effets (36) de très bonne qualité, port des MDA-VST en LV2 LV2 mda-lv2
ArtyFX une autre collection d'effets, à l'interface soignée, plus minimalistes et orientés live LV2 artyfx via les dépots KXStudio
Guitarix Multi-effets de qualité pour guitare (copie de Guitar Rig) : simulation d'ampli et reverb à convolution, distortion, flanger, phaser, tremolo, etc. hôte LADSPA et LV2 JACK LV2 guitarix
Rakarrack Multi-effets pour guitare : distortion, flanger, phaser, tremolo, echo JACK rakarrack
IR reverb à convolution (effet de reverb basée sur des "empreintes" sonores, "impulse responses" en anglais) LV2 ir.lv2
EQ10Q suite de filtres et d'equalizers LV2 EQ10Q
freqtweak outils originaux de manipulations spectrales (FFT) : equalizer, compresseur, gate, delay, etc., tous "massivement multibandes" JACK freqtweak

Une liste considérable de VST natifs pour Linux : (en) http://linux-sound.org/linux-vst-plugins.html
Et pour plus de LV2, DSSI et LADSPA : (en) http://linux-sound.org/plugins.html

Nom Description Plugins Environnement Installation
Pure Data pure data est plus qu'un logiciel de MAO : c'est une interface de programmation graphique pour la création multimédia (au sens large) en temps réel. Sans mettre forcément les doigts dans le développement, on peut utiliser des applications de mao sous forme de patches prêts à l'emploi comme le très graphique HackTheDj! par exemple. DSSI LADSPA JACK, OSC puredata
csound langage de programmation (et compilateur) dédié a la création sonore et musicale introduction LADSPA JACK, OSC csound csound-doc
DarwinTunes les participants influent sur la musique générative et le robot apprend (intelligence artificielle). exemple

Voir aussi codelab, excellent forum d'entraide autour de la programmation multimédia temps réel (Pure Data, Processing, SuperCollider, etc).

Nom Description Environnement Installation
Noteedit éditeur de partitions simple (n'est plus en développement) noteedit
Canorus NoteEdit refondu avec de nouvelles fonctionnalités canorus
LilyPond éditeur de partitions lilypond
Denemo Interface graphique GNOME pour Lilypond denemo
Frescobaldi Interface graphique KDE pour Lilypond frescobaldi
MuseScore édition de partitions. Utilise QT4, et les ressources midi de votre carte son. JACK ALSA
scolily Convertit l'entrée microphone en MIDI (lilypond…) scolily
gtick métronome gtick
vkeybd clavier midi virtuel JACK vkeybd
ll-scope oscilloscope DSSI ll-scope
tuxguitar création, édition de tablature pour guitare
impro-visor création d'accompagnements MIDI et de solo (interface utilisateur)
JChordBox création d'accompagnements MIDI (interface utilisateur + ligne de commande)
mma création d'accompagnements MIDI (ligne de commande) mma

Certains logiciels développés pour Windows fonctionnent correctement sur Linux via Wine. C'est le cas par ex. de FruityLoops (studio virtuel) et de Wavosaur (éditeur audio). Cette solution n'est cependant pas recommandée, principalement parce qu'elle offre une faible intégration dans l'environnement Linux : pas de support ou support limité pour JACK, le matériel audio (interfaces audio, contrôleurs, machines externes), pas de support pour des plugins LADSPA, DSSI ou LV2 etc.

Carla (avec carla-bridge-win32) et FeSTige permettent aussi d'utiliser la plupart des VST compilés pour Windows (au format DLL) dans Linux (grâce à FST).

Ressources

  • www.linux-sound.org, une base de donnée impressionnante sur tout ce qui concerne la MAO et l'audio sur Linux : distributions, applications, plugins, hôtes, hardware, samples, outils pour guitaristes, etc.

Applications

  • apps.linuxaudio.org : base de donnée collaborative des applications dédiées à la musique sous Linux.
  • awesome-linuxaudio : Liste de logiciels et ressources pour la production audio/video/live sous Linux.

Samples

MIDI Files

MAO en ligne

Instruments libres de droit

La philosophie du logiciel libre fait parfois des émules dans d'autres secteurs, en particulier dans celui de l'électronique et du hardware (matériel physique). Dans le contexte de la MAO, de nombreux instruments électroniques ont été développés en suivant le concept de matériel libre.

  • Arduino : microcontrôleur avec port USB, permet par ex. (entre énormément d'autres choses) de fabriquer un contrôleur MIDI avec une boîte de conserve et 3 potards.
  • MOD Duo : multi-effets / synthé sous la forme d'une pédale qui tourne sous un linux léger et permet de faire tourner des effets et instruments LV2.
  • Axoloti : microcontrôleur audio (utilisable comme synthé, sampleur ou multi-effets) qui permet d'exécuter en standalone des patches modulaires créés sous une interface java (compatible linux)
  • Monome : contrôleur MIDI USB, grille de boutons.
  • Reactable : table réactive et interactive, sorte de tablette géante qui invite (par captation et projection) un ou plusieurs utilisateurs à manipuler des objets afin de créer de la musique.
  • Nui group : groupe de recherche ouverte autour des interfaces homme-machine dites "naturelles" (qui ne requièrent pas d'apprentissage)

Informations, Documentation, Tutoriels

  • L'excellent LinuxMAO, site francophone qui traite de tout ce qui concerne la MAO et les logiciels libres. Propose aussi des tutoriels.
  • Le guitariste libre, blog francophone qui vous guide pas en pas dans le monde du logiciel libre et freeware dédié à la MAO sur Ubuntu.
  • (en) planet.linuxaudio.org : fil d'actualité autour de l'audio sous Linux.
  • BlueDid29 - MAO libre : blog autour du multimédia sous Linux.
  • mao.txt
  • Dernière modification: Le 14/10/2019, 20:23
  • (modification externe)