Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

Enregistrer et réécouter au clavier maître
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.




Avertissementattention
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 nomDuFichier
soit 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.


Liens et commentaires





Collaborateur(s) de cette page : olinuxx et leLama .
Page dernièrement modifiée le Mercredi 13 janvier 2016 14:10:36 par olinuxx.
Le contenu de cette page est licencié sous les termes licence.

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]

William74


Mégaphone [Afficher / Cacher]

calixtus06, 13:16, ven. 27 Sep 2024: Bonjour et bienvenue à tigny :-)
olinuxx, 13:05, dim. 22 Sep 2024: [ANNONCE] Les nouvelles des 7 derniers mois de LibraZiK : [Lien]
olinuxx, 18:46, ven. 20 Sep 2024: Bonjour et bienvenue à manaoxygen cool
calixtus06, 11:24, mar. 17 Sep 2024: Bonjour et bienvenue à PAuf :-)
olinuxx, 21:36, ven. 13 Sep 2024: Bonjour et bienvenue à jearos cool
calixtus06, 18:28, mer. 11 Sep 2024: Bonjour et bienvenue à Fred2024 :-)
allany, 18:33, jeu. 05 Sep 2024: Semi-automnal, cet éditorial ! [Lien]
olinuxx, 22:00, dim. 01 Sep 2024: Bonjour et bienvenue à bo cool
olinuxx, 16:22, sam. 31 Aug 2024: Bonjour et bienvenue à kicknride cool
calixtus06, 20:50, jeu. 29 Aug 2024: Bonjour et vienvenue à Nano2259 et vfs750 :-)
calixtus06, 11:34, ven. 23 Aug 2024: Bonjour et bienvenue à Clark2024,Chancellor2024, William74, fafa15, Arsene :-)
calixtus06, 10:23, mer. 14 Aug 2024: Bonjour et bienvenue à Dimercia, gaelle, paguy74 et humpf :-)