Historique: Enregistrer son clavier maitre
Aperçu de cette version: 5
note
Cette page présentera Enregistrer son clavier maitre.
Table des matières
attention
Page en cours d'écriture
Ce qu'on veut faire.
Le but de ce tuto est d'expliquer une mise en oeuvre logicielle qui permette de s'enregistrer et se réécouter facilement au clavier maitre. 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 nous coupe de notre musique. Le but est d'utiliser les boutons du clavier maitre 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. Pour jack-smf-recoder et jack-smf-player, j'ai du les télécharger, puis les installer. Pour cela, télecharger l'archive, la décompacter, ouvrir un terminal, faire un cd pour aller dans le repertoire où se trouve l'archive décompactée, puis entrer la suite de commandes
Copy to clipboard
./configure make sudo make install
Cette suite de commandes doit etre saisie dans un terminal depuis le répertoire ou se situe
Description de la procédure générale.
J'ai choisi d'enregistres 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:
- Ecrire un d'enregistrement de la sortie midi du clavier
- Ecrire 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.
- Ecrire 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 que dans le code qui suit, tu adaptes le code et que tu remplaces
$dirscripts/musique par le nom du répertoire où tu mets tes fichiers.
Programme magnetoVmkRecStart.sh:
Copy to clipboard
cd $dirscripts/musique ./magnetoVmkPlayStop.sh jack-smf-recorder /tmp/enregistrement.midi
Programme magnetoVmkRecStop.sh:
Copy to clipboard
killall -s SIGINT jack-smf-recorder
Programme magnetoVmkPlayStart.sh:
Copy to clipboard
cd $dirscripts/musique source ./magnetoVmkPlayStop.sh jack-smf-player /tmp/enregistrement.midi
Programme magnetoVmkPlayStop.sh:
Copy to clipboard
killall jack-smf-player
Il reste maintenant à rendre ces fichiers exécutables, soit en ligne de commande ("chmod a+x nomDuFichier") soit par l'interface graphique de ton choix.
Voila, on a maintenant les scripts fonctionnels. Il reste maintenant à les associer aux boutons de notre clavier maître, et à effectuer les connections dans jack.
Connections dans Jack
Il faut relier la sortie du clavier maitre vers l'entrée de jack-smf-recorder, puis la sortie de jack-smf-player vers l'entrée de ton
Reconnaitre les boutons de notre clavier maître
Quand on appuie sur un bouton de notre 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 controle et d'une valeur. On veut savoir quel contrôle et quelle valeur correspond à notre clavier.Dans un terminal, on tape la commande:
Copy to clipboard
mididings "Print()"
puis on crée dans jack, une connection reliant la sortie midi du clavier vers l'entrée midi de mididings. Toutes les données midi issues du clavier maitre 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 premiere 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. Cela correspond au code suivant, que du dois adapter à ton cas personnel.
Copy to clipboard
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 lancant dans un terminal la commande
Travail restant à faire
- Ameliorer le script magnetoVmkPlayStop pour que le son s'arrete instantanement au lieu des quelques secondes actuelles
- Ajouter deux boutons AvanceRapide/RetourRapide qui decalent la lecture de 10/5 secondes pour sauter un passage/réecouter un passage critique