Cette page présentera Enregistrer/réécouter au clavier maître. Tu joues sur clavier maître et tu souhaites enregistrer et réécouter ce que tu joues au quotidien pour contrôler ton jeu. Ce tuto est pour toi.
Le but de ce tutoriel est d'expliquer une mise en œuvre logicielle qui permette de s'enregistrer et se réécouter facilement au clavier maître. Je l'utilise lorsque je travaille mes morceaux pour le contrôle. Comme je l'utilise tous les jours, j'ai surtout visé une ergonomie ultra-simple sans installation de matériel d'enregistrement, ni de logiciel a ouvrir qui me coupe du travail musical. Le but est d'utiliser les boutons du clavier maître comme ceux d'un bon vieux magnétophone:
- Un bouton pour l'enregistrement
- Un bouton pour la lecture de l'enregistrement
- Un bouton Stop (pour la lecture et l'enregistrement)
Tu as un clavier maître fonctionnel, qui envoie sa sortie midi sur un séquenceur midi, le tout dans Jack (je prendrai comme exemple un clavier vmk-161 qui envoie le midi sur linux sampler?, et je travaille sous ubuntu studio, mais c'est facilement adaptable aux autres cas ). Les logiciels mididings, jack-smf-recorder et jack-smf-player doivent être installés sur ta machine.
Mididings est normalement inclus dans ta distribution et facile à installer. Pour jack-smf-recoder et jack-smf-player, j'ai du télécharger le paquet jack-smf-utils qui les contient, puis installer ce paquet. Pour cela, télécharger l'archive, la décompresser, la décompacter, ouvrir un terminal, faire un
J'ai choisi d'enregistrer le fichier midi qui sort du clavier plutôt que le fichier audio pcm/wav qui sort du séquenceur : le fichier midi est plus léger que le pcm/wav. Si plus tard, j'ai besoin du .wav, je pourrai toujours recréer ce fichier pcm/wav en envoyant le midi vers le séquenceur.
Les étapes:
Il faut que tu crées les fichiers suivants dans un répertoire:
Tu mets dans ces fichiers le contenu suivant. Dans mon installation, les fichiers se trouvent dans le répertoire
Programme magnetoVmkRecStart.sh:
Programme magnetoVmkRecStop.sh:
Programme magnetoVmkPlayStart.sh:
Programme magnetoVmkPlayStop.sh:
Il reste maintenant à rendre ces fichiers exécutables, soit en ligne de commande
Il faut relier la sortie du clavier maître vers l'entrée de jack-smf-recorder, puis la sortie de jack-smf-player vers l'entrée de ton séquenceur, chez moi linux sampler. Idéalement tu sauvegardes sous patchbay toutes tes connections pour ne pas avoir à les retaper à chaque fois.
Voila, on a les scripts fonctionnels. Il reste maintenant à les associer aux boutons de notre clavier maître.
Dans un terminal, on tape la commande :
puis on crée dans jack, une connexion reliant la sortie midi du clavier vers l'entrée midi de mididings. Toutes les données midi issues du clavier maître sont ainsi affichées dans le terminal.
Chez moi, j'ai ainsi repéré que les boutons que je souhaite utiliser utilisent les CTRL dont les numéros sont 37 à 39.
Chez moi, le bouton d'enregistrement émet le ctrl 37 avec les valeurs 0 et 127 une fois sur deux. La première fois que j'appuie sur ce bouton, la valeur 127 est émise et je déclenche l'enregistrement. Lors de l'appui suivant sur cette même touche, la valeur 0 est émise et j'arrête l'enregistrement. Les boutons émettant les ctrl 38 et 39 lancent et stoppent la lecture. Cela correspond au code suivant, que du dois adapter à ton cas personnel.
Tu sauvegardes ce code par exemple sous le nom "magnetoVmkMididings.py".
En lançant dans un terminal la commande :
Bien sûr, on peut automatiser le lancement de magnetoVmkMididings.py pour qu'on ait simplement à allumer son clavier et lancer une unique commande sur l'ordi. À titre d'exemple, voici le script de lancement que j'utilise lorsque je me mets au piano. Tu l'adapteras à ton propre cas :
Table des matières
attention
Page en cours d'écriture
Ce qu'on veut faire.
Le but de ce tutoriel est d'expliquer une mise en œuvre logicielle qui permette de s'enregistrer et se réécouter facilement au clavier maître. Je l'utilise lorsque je travaille mes morceaux pour le contrôle. Comme je l'utilise tous les jours, j'ai surtout visé une ergonomie ultra-simple sans installation de matériel d'enregistrement, ni de logiciel a ouvrir qui me coupe du travail musical. Le but est d'utiliser les boutons du clavier maître comme ceux d'un bon vieux magnétophone:
- Un bouton pour l'enregistrement
- Un bouton pour la lecture de l'enregistrement
- Un bouton Stop (pour la lecture et l'enregistrement)
Prérequis
Tu as un clavier maître fonctionnel, qui envoie sa sortie midi sur un séquenceur midi, le tout dans Jack (je prendrai comme exemple un clavier vmk-161 qui envoie le midi sur linux sampler?, et je travaille sous ubuntu studio, mais c'est facilement adaptable aux autres cas ). Les logiciels mididings, jack-smf-recorder et jack-smf-player doivent être installés sur ta machine.
Mididings est normalement inclus dans ta distribution et facile à installer. Pour jack-smf-recoder et jack-smf-player, j'ai du télécharger le paquet jack-smf-utils qui les contient, puis installer ce paquet. Pour cela, télécharger l'archive, la décompresser, la décompacter, ouvrir un terminal, faire un
cd
pour aller dans le répertoire où se trouve l'archive décompactée, puis entrer la suite de commandes :./configure make sudo make install
Description de la procédure générale.
J'ai choisi d'enregistrer le fichier midi qui sort du clavier plutôt que le fichier audio pcm/wav qui sort du séquenceur : le fichier midi est plus léger que le pcm/wav. Si plus tard, j'ai besoin du .wav, je pourrai toujours recréer ce fichier pcm/wav en envoyant le midi vers le séquenceur.
Les étapes:
- Écrire un script d'enregistrement de la sortie midi du clavier
- Écrire un script de lecture de fichier midi pour rejouer le fichier enregistré
- Choisir les boutons affectés à l'enregistrement et connaître les événements midi associés.
- Écrire un script mididings pour intercepter les événements midi et lancer les scripts adéquats.
Les scripts
Il faut que tu crées les fichiers suivants dans un répertoire:
- magnetoVmkRecStart.sh
- magnetoVmkRecStop.sh
- magnetoVmkPlayStart.sh
- magnetoVmkPlayStop.sh
Tu mets dans ces fichiers le contenu suivant. Dans mon installation, les fichiers se trouvent dans le répertoire
$dirscripts/musique
. Il faut bien sûr tu adaptes le code qui suit et que tu remplaces $dirscripts/musique
par le nom du répertoire où tu mets tes fichiers.Programme magnetoVmkRecStart.sh:
cd $dirscripts/musique ./magnetoVmkPlayStop.sh jack-smf-recorder /tmp/enregistrement.midi
Programme magnetoVmkRecStop.sh:
killall -s SIGINT jack-smf-recorder
Programme magnetoVmkPlayStart.sh:
cd $dirscripts/musique source ./magnetoVmkPlayStop.sh jack-smf-player /tmp/enregistrement.midi
Programme magnetoVmkPlayStop.sh:
killall jack-smf-player
Il reste maintenant à rendre ces fichiers exécutables, soit en ligne de commande
chmod a+x nomDuFichiersoit par l'interface graphique de ton choix.
Connections dans Jack
Il faut relier la sortie du clavier maître vers l'entrée de jack-smf-recorder, puis la sortie de jack-smf-player vers l'entrée de ton séquenceur, chez moi linux sampler. Idéalement tu sauvegardes sous patchbay toutes tes connections pour ne pas avoir à les retaper à chaque fois.
Voila, on a les scripts fonctionnels. Il reste maintenant à les associer aux boutons de notre clavier maître.
Reconnaître les boutons de ton clavier maître
Quand tu appuies sur un bouton de ton clavier, une instruction est insérée dans le fichier midi. Il s'agit normalement d'une instruction "CTRL" affublée d'un numéro de contrôle et d'une valeur. On veut savoir quels contrôles et quelles valeurs correspondent aux boutons que tu as choisis sur ton clavier.Dans un terminal, on tape la commande :
mididings "Print()"
puis on crée dans jack, une connexion reliant la sortie midi du clavier vers l'entrée midi de mididings. Toutes les données midi issues du clavier maître sont ainsi affichées dans le terminal.
Chez moi, j'ai ainsi repéré que les boutons que je souhaite utiliser utilisent les CTRL dont les numéros sont 37 à 39.
Le script mididings.
Chez moi, le bouton d'enregistrement émet le ctrl 37 avec les valeurs 0 et 127 une fois sur deux. La première fois que j'appuie sur ce bouton, la valeur 127 est émise et je déclenche l'enregistrement. Lors de l'appui suivant sur cette même touche, la valeur 0 est émise et j'arrête l'enregistrement. Les boutons émettant les ctrl 38 et 39 lancent et stoppent la lecture. Cela correspond au code suivant, que du dois adapter à ton cas personnel.
from mididings import * config(client_name="controleMagneto") run( [ Filter(CTRL) >> CtrlFilter(38) >> System("$dirscripts/musique/magnetoVmkPlayStart.sh"), Filter(CTRL) >> CtrlFilter(37) >> CtrlValueFilter(127) >> System("$dirscripts/musique/magnetoVmkRecStart.sh"), Filter(CTRL) >> CtrlFilter(37) >> CtrlValueFilter(0) >> System("$dirscripts/musique/magnetoVmkRecStop.sh"), Filter(CTRL) >> CtrlFilter(39) >> System("$dirscripts/musique/magnetoVmkPlayStop.sh")] )
Tu sauvegardes ce code par exemple sous le nom "magnetoVmkMididings.py".
En lançant dans un terminal la commande :
python magnetoVmkMididings.py, tu vois apparaître dans jack une entrée controleMagneto. Tu relies dans jack la sortie midi de ton clavier maître vers cette entrée controleMagneto. Ainsi, les événements midi émis par ton clavier sont interceptés par le script mididings et déclenchent les scripts adéquats (enregistrement/réécoute...). Idéalement tu sauvegardes les connexions faites dans Jack sous patchbay pour ne pas avoir à les retaper à chaque fois.
Lancement automatique
Bien sûr, on peut automatiser le lancement de magnetoVmkMididings.py pour qu'on ait simplement à allumer son clavier et lancer une unique commande sur l'ordi. À titre d'exemple, voici le script de lancement que j'utilise lorsque je me mets au piano. Tu l'adapteras à ton propre cas :
qjackctl -s -p presetCarteSonExterne -a $dirconfig/jackPianoVmkFocusrite.xml & sleep 1 linuxsampler & sleep 1 cat ~/perso/SalamanderGrandPianoV3_48khz24bit/pianoSalamander.lscp | nc localhost 8888 jack-rack $dirconfig/jackRackReverbAmpli & sleep 1 a2j -e python $dirscripts/musique/magnetoVmkMididings.py
Travail restant à faire
- Améliorer le script magnetoVmkPlayStop pour que le son s’arrête instantanément au lieu des quelques secondes actuelles
- Ajouter deux boutons AvanceRapide/RetourRapide qui décalent la lecture de 10/5 secondes pour sauter un passage/réécouter un passage critique.