Chargement...
 
Skip to main content

Historique: Enregistrer son clavier maitre

Aperçu de cette version: 6



Cette page présentera Enregistrer/réecouter au clavier maitre.




 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 me coupe du travail musical. 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 et facile à installer. Pour jack-smf-recoder et jack-smf-player, j'ai du télécharger le pacquet jack-smf-utils qui les contient, puis installer ce paquet. Pour cela, télecharger l'archive, la décompresser, 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




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.



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 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.


Reconnaitre 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 controle et d'une valeur. On veut savoir quel contrôle et quelle valeur correspond à ton 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
Copy to clipboard
python magnetoVmkMididings.py

tu vois apparaître dans jack une entrée controleMagneto. Tu relies dans jack la sortie midi de ton clavier maitre vers cette entrée controleMagneto. Ainsi, les évèments midi émis par ton clavier sont interceptés par le script mididings et déclenchent les scripts adéquats (enregistrement/réecoute...). 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. A titre d'exemple, voici le script de lancement que j'utilise
lorsque je me mets au piano. Tu l'adapteras à ton propre cas.

Copy to clipboard
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

  • 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


Liens et commentaires




Historique

Avancé
Information Version
Mercredi 13 janvier 2016 14:10 olinuxx Intégration dans le portail des tutos et dans la structure faite + maitre -> maître (dans le titre de la page) 10
Afficher
Mardi 12 janvier 2016 15:12 leLama 9
Afficher
Lundi 11 janvier 2016 21:13 olinuxx fautes d'orthographes (surtout des accents) + un peu de balisage + 2 ou 3 trucs 8
Afficher
Lundi 11 janvier 2016 15:40 leLama Quelques modifs de relecture 7
Afficher
Lundi 11 janvier 2016 15:28 leLama Version plus ou moins finale pour ma part. Olivier, tu peux relire, faire les changements qui te semblent necessaires et mettre en ligne. Merci d'avance pour ton aide. 6
Afficher
Lundi 11 janvier 2016 14:55 leLama Sauvegarde de travail 5
Afficher
Lundi 11 janvier 2016 13:56 leLama En cours d'ecriture. sauvegarde de travail. 4
Afficher
Mercredi 06 janvier 2016 20:05 olinuxx + ajout d'un titre à la page + suppression de la balise HTML (tous deux dans l'onglet "propriétés") 3
Afficher
Mercredi 06 janvier 2016 17:16 leLama Debut du tuto. Version alpha. 2
Afficher
Mercredi 06 janvier 2016 16:48 leLama 1
Afficher