Éditeur polyrythmique pour Batterie et Percussions fondé sur Lilypond +Interface graphique pour traitement aléatoire du timing et/ou du volume midi.
À sa naissance ce projet visait à fournir une ressource définitivement libre de patterns de batterie sur le modèle d'une boîte à rythme.Il s'appelait alors l'Art Libre du Batteur et était édité sous Licence Art Libre. Avec le temps c'est devenu une petite application, éditée désormais sous licence GPLv3 ou + et ses possibilités se sont élargies. Il pourrait avoir comme sous-titre: La Batterie par le texte, ce qui devrait faire mourir de rire tous les batteurs. Rira bien qui rira (Kyrié!), une édition de certains cahiers du Puzzle pour un batteur réel est également en projet. Mais ceci est une autre histoire.
Il y a 2 façons d'utiliser le Puzzle:
1. Sans installation (et sans lire le tutoriel) (Hein? Qui a dit: Ouf!?)
Téléchargez et décompressez l'archive tar.bz2. Ouvrez un séquenceur et importez un des fichiers midi+veloc de la Bibliothèque. Ensuite faites tout ce que vous voulez dans votre séquenceur.
2. Avec l'installation (et le tutoriel) (Ah! Tiens! Qui a dit: Ouf!?)
INSTALLATION
1.1. PAQUETAGES.
Vous devez installer :
GNU Lilypond >= 2.14.1
http://lilypond.org
midicomp 0.0.4
http://midicomp.opensrc.org/midicomp-0.0.4.tar.gz
Télécharger midicomp 0.0.4 puis, en console root, le déplacer vers
/usr/local (ou même /usr) :
- mv /TON/CHEMIN/... /midicomp-0.0.4.tar.gz /usr/local (ou
Aller, toujours en root, dans /usr/local (ou même /usr)
- cd /usr/local (ou /usr)
- tar -zxvf midicomp-0.0.4.tar.gz
- cd /usr/local/midicomp-0.0.4 (ou /usr)
- make
En choisissant /usr le fichier binaire devrait être installé dans
/usr/bin automatiquement mais je crois que dans le cas de /usr/local
il faut déplacer ce fichier dans /usr/local/bin après la compile :
- mv /usr/local/midicomp-0.0.4/midicomp /usr/local/bin
Python 2.6.x avec l'option Tk activée à la compilation.
Installé par défaut dans votre distribution de Linux.
ou http://www.python.org/
GNU Bash, GNU awk and GNU sed
Par défaut dans votre distribution de Linux.
J'utilise Timidity++ 2.13.2 avec eawpatches comme config par
défaut et surtout sans reverb à l'audition des fichiers midi.
******
1.3. Le fichier INSTALL.sh
Décompressez l'archive. (tar jxvf ....)
Dans un terminal allez dans le répertoire Drummer-s-Gigsaw :
cd /home/....../Drummer-s-Gigsaw
et lancer le script bash :
sh INSTALL.sh
L'installation est terminée.
******
TUTORIEL POUR COMMENCER.
2.1. VOTRE "ATELIER".
Dans votre terminal aller vers MA-BASE.
Taper :
cd "YOUR... /PATH... "/Drummer-s-Gigsaw/MA-BASE
Puis taper :
lilypond MY-SONG.ly
Le ?chier n’était pas vide. En fait c’est une démo de mise en route, la Demo-01 du Grenier.
Avez-vous véri?er que la compilation était bonne dans votre terminal ? Essentiel.
Vous êtes dans votre "atelier". Ouvrez le pdf et écoutez le midi.
Tsss ! Comme tout semble plat ! Et quelquefois il y a des sons mal faits.
2.2. OBTENIR LES VALEURS DE VELOCITÉ POUR LE FICHIER MIDI
En console lancez :
sh /home/....../Drummer-s-Gigsaw/MA-BASE/0-run-process-TOTAL-
RECALL.sh
NOTE : Une interface graphique apparaît après les compilations de
Lilypond. Pour le moment, double-cliquez sur Exit puis répondez en
tapant : n dans votre console.
Alors regardez dans MA-BASE. Vous avez 2 nouveaux fichiers midi,
dont :
MY-SONG-TOTAL-RECALL+veloc.midi
Cette fois c'est un fichier midi plus clair et avec des valeurs de vélocités pour chaque note !
Savourez-le.
2.3 TRANSFORMER LA DÉMO.
Maintenant vous voulez transformer la démo. OK. Dans MA-BASE ouvrez MY-SONG.ly
Par exemple mettez le curseur sur la ligne vide juste au-dessus de
% DUMMY-BASE mes37.
Cliquez et glissez jusqu’à la ?n de la mesure (?n de ligne avec %| )
Placez le curseur sur la ligne vide juste au-dessus de
\tempo 4 = 110.
et recopiez 3 ou 4 fois votre mesure. Sauvez votre ?chier.
Si ce n’est pas déjà fait dans votre terminal allez vers MA-BASE.
Puis taper :
lilypond MY-SONG.ly
Avez-vous véri?er que la compilation était bonne dans votre terminal? Essentiel.
Si ce n’est pas le cas, n’allez pas plus loin, ce serait inutile.
Corrigez votre ?chier. Aidez-vous des messages de compilation pour comprendre, du pdf et du midi sans vélocités. Si vous ne réussissez toujours pas, lisez la Documentation de Lilypond et inscrivez-vous sur la liste de diffusion française. Ou bien envoyez un message sur le forum dédié de Linux MAO.
Maintenant vous connaissez le refrain.
En console lancez :
sh /home/....../Drummer-s-Gigsaw/MA-BASE/0-run-process-TOTAL-RECALL.sh ...
Ayez du plaisir.
2.4 CRÉER VOTRE "SONG"
2.4.1 Mettre en place un nouveau ?chier
Maintenant vous voulez créer votre propre chanson. OK. Copier le ?chier vierge du Grenier dans MA-BASE. (Renommez d’abord votre ancien MY-SONG puis renommer MY-SONG-blank en MY-SONG. Le ?chier sur lequel vous travaillez doit toujours s’appeler MY-SONG)
2.4.2 Importer et arranger les patterns
Allez dans la Bibliotheque, ouvrez
Le-Puzzle-du-Batteur-DUMMY-BASE.ly
et copiez les mesures de votre choix de la DUMMY-BASE. dans, j’insiste, la "piste" pulse de MY-SONG.ly, pas une autre pour le moment (copy and paste).
Vous pouvez copier la balise
% DUMMY-BASE mes(num)
avec votre mesure. Vous saurez ainsi retrouver sa place dans une BASE. Pratique quelquefois pour ajouter un peu plus tard des variations déjà toutes faites du même pattern.
Et de nouveau vous connaissez la ritournelle.
En console lancez : sh /home/....../Drummer-s-Gigsaw/MA-BASE/0-run-process-TOTAL-RECALL.sh
2.4.3 Transformer les patterns
Vous pourrez évidemment transformer les patterns déja existants dans votre ?chier ou les supprimer. Mais faites ATTENTION à la syntaxe de Lilypond ou au changements de chi?rage des mesures (time signature) (voir le Long Tutoriel). Dans tous les cas, tant que vous jouez dans votre "atelier", la console est votre amie.
Ne touchez à rien en dehors de l’espace réservé de travail à moins que vous ne sachiez vraiment ce que vous faites ! Les mises en garde en haut, au milieu et en bas de MY-SONG.ly vous le rappelle.
Vous pouvez renommer le ?chier MY-SONG-TOTAL-RECALL+veloc.midi comme vous voudrez UNIQUEMENT après tout le processus.
P.S. : Si vous voulez pousser un peu plus loin il y a encore trois autres ?chiers MY-SONG-Demo.ly dans Le-Grenier.
Tandis que Demo-01 n’utilise que la "piste" pulse, la seule où vous pourrez écrire des accords et où toutes les vélocités seront prises en compte, (jusqu’à 47 instruments simultanés , la Demo-02 exploite aussi les "pistes" Polyun, Polydeux et Polytrois.
La première chose à remarquer est qu’il n’y a pas d’accords dans ces 3 nouvelles pistes. En e?et, dans le Puzzle les pistes Poly ne sont pas traitées de la même façon que pulse. Les accords génèrent donc des vélocités tronquées, les fameuses notes "siamoises". (voir LISEZ-MOI Long Tutoriel, page 10) Pour vous en souvenir associez dans votre esprit une piste Poly à un instrument monocorde ou à un chanteur : une seule note à la fois. (Pas de mélodie "siamoise"
La Demo-03 ajoute encore la piste "\melodiques " dont l’utilisation nécessite l’écriture en notes réelles. (voir tableau des correspondances)
Mêmes remarques que pour une piste Poly.
En écrivant des mesures di?érentes dans chaque piste l’a?chage du pdf peut devenir défectueux. En e?et Lilypond ne coupe les ?ns de lignes des systèmes que si ces derniers sont synchrones. Vous trouverez dans les Démos quelques astuces pour remédier à ce problème. La première chose à essayer est de décommenter (set-global-sta?-size) au tout début de MY-SONG.ly. Dans Démo-02, lorsque les agogos de la piste Polyun expansent leurs mesures
(4/4 => 5/4 => 6/4 => 7/4...) j’ai volontairement morcellé l’écriture des changements de mesures justement pour synchroniser les ?ns de lignes et obtenir une mise en page lisible.
La Demo-04-GNU-socket est un exemple de patterns construits par superpositions de "nolets". Un petit travail d’indépendance pour un vrai batteur, non ?
Ayez du bonheur !
******
QUELQUES ÉTAPES DANS L'ÉLABORATION D'UN MORCEAU.
1. Quelle rythmique? J'en sais rien!
Lorsque vous voulez travailler un morceau avec une batterie alors que vous n'êtes pas vous-même batteur, les premières questions qui se posent sont: Quel style de rythmique vais-je utiliser? A quel tempo? A combien de temps? En partant d'un fichier BASE.ly vers MY-SONG.ly, tout d'abord vous copiez-collez un \time (n\n) et un tempo = (n), vous pouvez bien sûr ajuster les (n), puis au sein de la structure suivante une mesure de votre choix:
\repeat unfold (nfois) { ici vient votre mesure }
(voir Long Tutoriel 3.8. RÉPÉTITIONS.)
Vous voilà avec une boîte à rythme de base.
2. C'est ce pattern que je veux!
Une fois que les choses sont plus précises dans votre tête, supprimez cette structure de répétitions et copier-coller sur chaque ligne du dessous votre pattern. (Il peut être judicieux d'espacer des blocs de 8 mesures les uns des autres, mais tout dépend de votre morceau). Avec un peu de savoir-faire cela prend très peu de temps. Mais c'est encore la même boîte à rythme de base.
3. C'est trop monotone! Faut que ça change!
Si vous avez pensé à copier la balise numérotée qui précédait votre mesure vous êtes alors capable de retrouver très facilement son origine et surtout d'aller grappiller tout autour des variations déjà toutes faites, ou des proches parents, puis des démarrages de mesures, des breaks, des descentes de toms qui sont plus disséminés dans le Puzzle. Servez-vous toujours des numéros de mesures, sur le pdf des BASES ils sont entourés d'un cercle. Comme expliqué dans le Long Tutoriel (3.4 UTILISER POUR SOI-MÊME LA DUMMY-BASE), une DUMMY-BASE personnelle peut énormément vous aider à concentrer le matériel nécessaire à votre création.
4. Y'a pas assez de variations!
Vous avez déja essayé de transformer votre mesure mais vous n'avez plus d'idées. Alors le besoin se fait sentir d'aller encore plus loin dans le Puzzle. Mais je vous conseille de n'aborder cette étape qu'à partir du moment où vous vous sentirez un utilisateur avancé. Les VIRTUAL-BOOKS sont des "miroirs" des BASES. Les numéros des balises correspondent exactement à la BASE d'origine. Donc vous allez très facilement retrouver votre(vos) mesure(s) dans ce cahier virtuel. Il ne faut surtout pas perdre de vue que, dans ces cahiers, vous travailler en 5/4, en 7/4, en 15/8, etc... donc premièrement vous traitez ces transformations dans un MY-SONG séparé, et deuxièmement gare aux erreurs de compilation, GNU Lilypond ne se trompe jamais dans le décompte des temps.
Mais alors rien ne vous empêche de transformer en un coup de cuillère à pot tous les r8 de votre mesure par des hhc8_\ff par exemple, (ah! oui! l'éditeur de texte!), de triturer les temps de la mesure dans tous les sens, puis d'en extraire des mesures à 4/4, par exemple. (Çà par exemple!) Et les plus perspicaces auront sans doute déjà entrevu les possibilités polyrythmiques sous-jacentes.
(voir aussi le Long Tutoriel 3.3. CHANGER UNE MESURE COPIÉE. LES ERREURS À NE PAS FAIRE.)
5. C'est pas encore assez fin!
Comment utiliser l'interface graphique.
La barre de menus du haut
About
- Help: Ce chapitre.
- License: le texte de la GPLv3+
All Notes
En cliquant sur ce menu l'affichage se change en "Tout est sélectionné". C'est l'option par défaut, celle qui fonctionnera si, malencontreusement, vous oubliez de faire votre choix dans cette barre de menus. Toutes les notes du fichier seront traitées sans exception selon le(s) paramètre(s) sélectionné(s) plus bas, Time ou Volume ou bien les deux ensemble.
Choose Notes
En cliquant sur ce menu l'affichage change pour "Choisir dans la liste". En choisissant cette option vous pourrez sélectionner dans 4 listes le ou les instruments (= une note) qui seront affectés par le traitement à l'exclusion des autres. En cliquant sur l'une de ces 4 listes:
Batterie
Percus
Mélodiques Down
Mélodiques Up
s'affiche une liste des instruments disponibles dans cette catégorie. Elle est conforme au mapping midi. Cliquez alors sur le ou les instruments qui vous intéressent les affichent sur fond blanc. Cliquez de nouveau sur un instrument sélectionné le dé-sélectionne. Vous pouvez ouvrir chaque liste et cumuler vos choix comme vous l'entendez. Cependant il ne faut pas oublier de cliquer sur le bouton Fetch au bas de chacune de ces listes sinon votre choix dans une liste ne sera pas enregistré.
Exit
Il vous faut cliquer 2 fois pour sortir de l'interface.
|--------|
Les paramètres: Time et Volume.
Tous les paramètres sont désactivés (grisés) par défaut. Si vous oubliez de sélectionner un de ces 2 paramètres le fichier sortant sera identique au fichier d'entrée, car à l'initialisation de l'interface toutes les RandomValues sont égales à 0.
Time
Pour modifier le 'timing' de chaque note
Cliquez sur Time: toute la ligne s'active.
Puis choisissez une valeur de 'randomisation' en cliquant sur la petite boîte jaune dans la ligne. Une boîte de dialogue apparaît. Entrez votre valeur puis taper sur <Return>. Vous verrez alors cette valeur s'afficher à gauche de la boîte jaune. Les valeurs possibles vont de 1 à 99.
Ensuite choisissez une direction pour le traitement. Par défaut c'est Up and Down qui est actif.
Up and Down: les 'timing' sont déplacés soit avant ou après le temps.
Up: seulement poussés après le temps.
Down: uniquement déplacés avant le temps.
Volume
Pour modifier la dynamique de chaque note.
La même chose que Time mais appliquée aux volumes des notes.
Les valeurs possibles vont de 1 à 70.
|--------|
Quelques remarques importantes.
Vous pouvez revenir à tout moment sur vos choix, changer la direction d'un traitement, modifier la RandomValue en faisant réapparaître sa boîte de dialogue, supprimer complètement le traitement Time ou Volume en recliquant sur son 'widget', toute la ligne étant alors de nouveau désactivée, et même changer l'option principale du menu du haut. Bien sûr, si vous désélectionnez "Choisir dans la liste" vous perdrez toutes les sélections dans vos listes.Ce que vous ne pouvez pas faire c'est de sélectionner 2 fois une même liste dans "Choisir dans la liste". Un message d'erreur vous préviendra si cela se produit.
Les 'randomisations' successives:
Lorsque vous quittez l'interface en double-cliquant sur Exit, le traite-
ment s'effectue et un nouveau chier midi, ...-RANDOMIZED-1.midi,
est créé dans MA-BASE. Dans la console
(Randomize again ? (y or n)
Type y(es) or n(o))
apparaît alors pour vous proposer une nouvelle 'randomisation'. Si vous tapez : y vous relancez alors l'interface graphique et c'est reparti pour un tour, comme précédemment. La grande différence est que cette fois-ci le fichier d'entrée est celui de la précédente 'randomisation'. Lorsque vous quitterez l'interface un deuxième fichier midi, ...-RANDOMIZED-2.midi sera créé dans MA-BASE et ainsi de suite jusqu'à ce que vous tapiez n dans la console.
Vous pouvez même écouter le résultat obtenu avant de décider d'une nouvelle 'randomisation' ou bien de terminer définitivement la session en tapant 'n'.
N'étant pas censés vous souvenir exactement des paramètres choisis dans la succession de ces opérations, vous pourrez consulter un historique de votre traitement dans le fichier Z-variables-pour-Random-Gigsaw.txt. Après la phase d'Initialisation chaque traitement choisi y est délimité par la balise:
\# Exit
\#
ATTENTION! Une fois que vous avez quitté définitivement la session, rappelez-vous que le prochain 0-run-process-TOTAL-RECALL.sh
effacera tous les RANDOMIZED.midi, MY-SONG-TOTAL-RECALL+veloc.midi et l'historique. Donc sauvegarder sous un autre nom ce qui vous intéresse.
Ça y est! C'est assez! FIN.
Si vous voulez participer.
Comment pouvons-nous organiser cela?
Créer un cahier "Les Grooves de LinuxMAO" avant de les intégrer dans le Puzzle?
Que celui/celle qui a utilisé le Puzzle pour un morceau publie le source MY-SONG pour que d'autres en profitent?
Vous pouvez bien sûr participer en proposant des patterns inédits. Il vous faut avoir compris la puissance des VIRTUAL-BOOKS pour ne pas fournir des variations à l'infini. L'important serait plutôt de créer des patterns de base pour chaque style.
Ainsi des patterns de musique latino-américaine restent à faire: Tango, Rumba, Samba, Salsa...
Le Rap, le Hip-hop sont à refaire complètement.
Faut-il faire des percus séparées?
Et le jazz-rock?
etc...
La musique possède deux infinis: le rythme et les notes.
Ayez du bonheur !