Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
midi [Le 06/09/2024, 15:40] – [Spécification] krodelabestiolemidi [Le 24/04/2026, 15:58] (Version actuelle) – [Implémentation du MIDI sous Linux] liens internes | détails krodelabestiole
Ligne 25: Ligne 25:
   * 128 **//control changes//** (commandes de modulation) aussi sur 128 pas. On peut contrôler tous types de paramètres : volume, panoramique, //pitch bend//, paramètre d'un effet, etc.   * 128 **//control changes//** (commandes de modulation) aussi sur 128 pas. On peut contrôler tous types de paramètres : volume, panoramique, //pitch bend//, paramètre d'un effet, etc.
   * la **synchronisation**, afin de déclencher toutes les machines (principalement les séquenceurs) en même temps et de les garder synchronisés et les arrêter.   * la **synchronisation**, afin de déclencher toutes les machines (principalement les séquenceurs) en même temps et de les garder synchronisés et les arrêter.
-  * 128 **//program changes//** (changements de programme) pour changer de son en selectionnant différents //presets// ou instruments…+  * 128 **//program changes//** (changements de programme) pour changer de son en sélectionnant différents //presets// ou instruments…
   * l'**//after-touch//** qui permet avec certains claviers et contrôleurs d'envoyer en continu la force d'appui sur chaque touche pendant qu'elle est jouée   * l'**//after-touch//** qui permet avec certains claviers et contrôleurs d'envoyer en continu la force d'appui sur chaque touche pendant qu'elle est jouée
   * et d'autres paramètres assez techniques et plus rarement utilisés   * et d'autres paramètres assez techniques et plus rarement utilisés
 …et le tout sur **16 canaux**. Chaque connexion MIDI permet ainsi de contrôler jusqu'à 16 machines simultanément. …et le tout sur **16 canaux**. Chaque connexion MIDI permet ainsi de contrôler jusqu'à 16 machines simultanément.
  
-<note>Toutes ces caractéristiques sont revues (très) à la hausse avec l'arrivée en 2020 du [[[[:https://midi.org/midi-2-0MIDI 2.0]] chaque message passant de 7 bit à 32 bit, mais son implémentation est encore loin d'être universelle.</note>+<note>Toutes ces caractéristiques sont revues (très) à la hausse avec l'arrivée en 2020 du [[https://midi.org/midi-2-0|MIDI 2.0]]chaque message passant de 7 bit à 32 bit, mais son implémentation est encore loin d'être universelle.</note>
  
 Par extension on a développé la norme **[[https://fr.wikipedia.org/wiki/General_MIDI|General MIDI]]** qui attribue à chaque "programme" MIDI un instrument précis (par ex. le piano en 1 et la batterie sur la canal 10). La plupart des fichiers MIDI qu'on peut trouver en ligne respectent cette nomenclature (en version 1 : GM1 ou 2 : GM2).\\  Par extension on a développé la norme **[[https://fr.wikipedia.org/wiki/General_MIDI|General MIDI]]** qui attribue à chaque "programme" MIDI un instrument précis (par ex. le piano en 1 et la batterie sur la canal 10). La plupart des fichiers MIDI qu'on peut trouver en ligne respectent cette nomenclature (en version 1 : GM1 ou 2 : GM2).\\ 
Ligne 39: Ligne 39:
 ===== Implémentation du MIDI sous Linux ===== ===== Implémentation du MIDI sous Linux =====
  
-Sous Linux, c'est le serveur de son qui s'occupe de router les signaux MIDI entre les applications et les drivers des interfaces. +Sous Linux, c'est le [[:audio#les_serveurs_de_sons|serveur de son]] qui s'occupe de router les signaux MIDI entre les applications et les pilotes des interfaces. 
-ALSA propose une très bonne solution multimédia, et il est disponible de base sur quasi toutes les distributions Linux (et évidemment sur Ubuntu).\\  +  * [[:ALSA]] propose une très bonne solution multimédia, et il est disponible de base sur quasiment toutes les [[:distributions]] Linux (et évidemment sur Ubuntu). 
-Pour de la [[:MAO]] on peut aussi utiliser [[:jackd|JACK]], qui permet aussi de router le MIDI. Il est (//était ?//) possible d'utiliser ensemble le MIDI //ALSA// et le MIDI //JACK// au moyen du bridge [[apt>a2jmidid]] qui s'occupe de les relier. +  Pour de la [[:MAO]] on peut aussi utiliser [[:jackd|JACK]], qui permet aussi de router le MIDI. 
-La question ne se pose plus grâce à [[:PipeWire]], qui gère les deux protocoles.+Il est (//était ?//) possible d'utiliser ensemble le MIDI //[[:ALSA]]// et le MIDI //[[:jackd|JACK]]// au moyen du bridge [[apt>a2jmidid]] qui s'occupe de les relier. 
 +  La question ne se pose plus grâce à [[:PipeWire]], qui gère les deux protocoles (et qui est installé par défaut).
  
-En plus de ceux des interfaces audio, ALSA fournit les pilotes des interfaces MIDI. Une fois branchée, un rapide <code>aplaymidi -l</code> devrait donc vous indiquer si votre interface MIDI est reconnue ou non.+En plus de ceux des interfaces audio, [[:ALSA]] fournit les pilotes des interfaces MIDI. Une fois branchée, un rapide <code>aplaymidi -l</code> devrait donc vous indiquer si votre interface MIDI est reconnue ou non.
  
 ===== Lecture de fichiers MIDI ===== ===== Lecture de fichiers MIDI =====
Ligne 96: Ligne 97:
 <code>sudo apt install fluidsynth fluid-soundfont-gm</code> <code>sudo apt install fluidsynth fluid-soundfont-gm</code>
 Vous pouvez ensuite lire votre fichier MIDI en lançant : Vous pouvez ensuite lire votre fichier MIDI en lançant :
-<code>fluidsynth -a pulseaudio /usr/share/sounds/sf2/FluidR3_GM.sf2 fichier_midi.mid</code> +<code>fluidsynth -a pipewire /usr/share/sounds/sf2/FluidR3_GM.sf2 fichier_midi.mid</code> 
-(Remplacez "fichier_midi.midpar le nom de votre fichier MIDI.) +(Remplacez ''fichier_midi.mid'' par le nom de votre fichier MIDI.) 
-Dans ce cas on utilise le serveur de son **[[:pulseaudio]]**, utilisé par ubuntu par défaut. On peut aussi utiliser **alsa****oss** ou **[[:jackd|jack]]**.\\  +Dans ce cas on utilise le serveur de son **[[:pipewire]]**, utilisé par Ubuntu par défaut. On peut aussi utiliser ''[[:pulseaudio]]'', ''alsa''''oss'' ou ''[[:jackd|jack]]''.\\  
-Tapez "quitpour arrêter la lecture, vous pouvez aussi taper Ctrl + C ou simplement fermer la fenêtre du terminal.+Tapez ''quit'' pour arrêter la lecture, vous pouvez aussi taper ''Ctrl'' ''C'' ou simplement fermer la fenêtre du terminal.
  
 Certains [[:lecteur_audio|lecteurs audio]] comme [[:Audacious]] permettent de lire les fichiers MIDI. Pour cela il faut généralement installer et configurer des plugins (voir [[https://redmine.audacious-media-player.org/boards/1/topics/1143|ici]] pour Audacious).\\  Certains [[:lecteur_audio|lecteurs audio]] comme [[:Audacious]] permettent de lire les fichiers MIDI. Pour cela il faut généralement installer et configurer des plugins (voir [[https://redmine.audacious-media-player.org/boards/1/topics/1143|ici]] pour Audacious).\\ 
Ligne 110: Ligne 111:
 Vous pouvez ensuite effectuer la conversion en lançant : Vous pouvez ensuite effectuer la conversion en lançant :
 <code>fluidsynth -F fichier_audio.wav /usr/share/sounds/sf2/FluidR3_GM.sf2 fichier_midi.mid</code> <code>fluidsynth -F fichier_audio.wav /usr/share/sounds/sf2/FluidR3_GM.sf2 fichier_midi.mid</code>
-(Remplacez "fichier_midi.midpar le nom de votre fichier MIDI.)+(Remplacez ''fichier_midi.mid'' par le nom de votre fichier MIDI.)
 Vous obtiendrez ainsi un fichier audio que vous pourrez écouter facilement avec n'importe quel lecteur multimédia. Vous obtiendrez ainsi un fichier audio que vous pourrez écouter facilement avec n'importe quel lecteur multimédia.