lundi 28 juillet 2014

Synchroniser un séquenceur MIDI avec ecasound

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

Bonjour,

Il est difficile aujourd'hui de faire de la musique sans passer par les fichiers MIDI car ils peuvent servir à piloter votre hardware et/ou à jouer de la musique.

Tout cela est bien beau, cependant ecasound ne supporte pas nativement la synchronisation Midi avec le monde extérieur. Il est seulement capable d'envoyer start/stop à un périphérique MIDI.

Pourtant il existe une application qui permet de transformer les informations de transport Jack en Messages Midi Clock si vous utilisez un seul tempo dans votre chanson.

Nous allons voir comment synchroniser midish avec ecasound grâce des messages Midi Clock.

Installation

Dans cet article, l'installation de jack et la configuration de votre Linux pour la MAO n'est pas abordé. Cependant, vous trouverez sur ce blog les articles nécessaires à la réalisation de cette tâche (voir lien en à la fin de cet article).

Pour les besoins de cet article, il vous faudra installer:
$ sudo apt-get install ecasound midish a2jmidid fluidsynth fluid-soundfont-gm

et téléchargez jack_midi_clock et le compiler:
$ bzip2 -d jack_midi_clock-0.4.0-bad61589.tar.bz2
$ tar xvf jack_midi_clock-0.4.0-bad61589.tar
$ cd jack_midi_clock-0.4.0-bad61589
$ sudo make install 

Vous pouvez aussi à la place de la version ci-dessus, utiliser la version suivante d'un autre mainteneur (travail plus récent):
$ git clone git://github.com/x42/jack_midi_clock.git
$ cd jack_midi_clock
$ sudo apt-get install libjack-dev libjack-jackd2-dev
$ make
$ sudo make install

Démarrer les programmes

1/. Démarrer jack avec qjackctl par exemple.

2/ Démarrer le pont entre port MIDI jack et alsa:
$ j2amidi_bridge

3/ Démarrer la traduction du transport jack en évenements MIDI Clock avec le tempo que vous désirez (ici 110 bpm)
$ jack_midi_clock -b 110

4/ Connectez les ports MIDI jack de jack_midi_clock vers j2a_bridge.

5/ Démarrer fluidsynth (synthétiseur logiciel avec banque son pour votre fichier MIDI):
$ fluidsynth -j -a jack -m alsa_seq -p fluidsynth /usr/share/sounds/sf2/FluidR3_GM.sf2

6/ Démarrer rmidish
$ rmidish

Saisissez le script suivant et adaptez le à votre environnement:
# ajoute les périphériques MIDI ALSA
#
# device 0
dnew 0 "131:fluidsynth" wo

# device 1
dnew 1 "134:j2a_bridge" ro

# déclare le device 1 comme master clock
dclkrx 1

# active le métronome
m on

# importe un fichier MIDI
import "batterie.mid"

# convertit le fichier MIDI au clock rate standard
setunit 96

# play (attend les informations de transport jack_midi_clock avant de commencer à jouer
p

NB: les lignes avec dièse devant peuvent être ignorées lors de la saisie ...

7/ Démarrer ecasound. Ce qui est important c'est qu'il soit initiateur du transport (-Gjack,ecasound,send)
$ ecasound -c -s projet.ecs

NB: le fichier projet.ecs est à remplacer par votre fichier projet ou une ligne de commande plus simple du style:
$ ecasound -c -i fichier.wav -o jack,system -G:jack,ecasound,send
une fois dans le mode interactif, saisissez:
 engine-launch
 t

NB: t pour start, s pour stop. ecasound contrôlera midish également. Vous devriez entendre un click de métronome, votre fichier MIDI (grâce à fluidsynth piloté par midish), vos pistes audio dans ecasound et tout ceci synchronisé.

L'idéal serait que midish implémente le support du serveur de son jack pour avoir la possibilité d'utiliser des ports midi jack mais à ma connaissance, ce n'est pas à l'ordre du jour.

Articles connexes


Voici d'autres articles sur ecasound qui pourront vous intéresser.
ecasound / nama le multitrack recorder léger !
Métronome avec ecasound


Voilà,
Amusez-vous bien,
Musicalement,

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

Aucun commentaire:

Enregistrer un commentaire