Fusionner deux morceaux Hydrogen music

Editer le code xml des fichiers .h2song

Les fichiers H2song sont des fichiers xml avec des balises assez facile à lire. On peut donc les éditer avec un éditeur de code ou de texte (geany ou wordpad etc.)

Après les en-têtes définissant la fonte sonore et les instruments utilisés, le matériau musical proprement dit se trouve dans deux sections :

1. Les patterns

Ils sont délimités par les balises
<patternList> </patternList>

Tout ce qui se trouve entre ces deux balises contient les notes, les effets et les sons choisis pour chaque pattern. Ils sont nommés ainsi :

<name>Pattern 1</name> (notez la majuscule)
etc...

2. La séquence (mode song - mode morceau)


Elle est délimitée par les balises
<patternSequence> </patternSequence>

elle contient des groupes de Pattern qui se suivent

<group>
<patternId>Pattern 1</patternId>
<patternId>Pattern 4</patternId>
</group>

Dans un premier essai j'ai testé l'assemblage de deux morceaux qui utilisent la même fonte sonore.
Pour assembler deux travaux ils faut commencer par les distinguer l'un de l'autre.

Rechercher / remplacer

On renomme donc toutes les occurence du mot "Pattern " (notez la majuscule) dans chaque morceau d'un nom différent des autres (exemple morceauun et morceaudeux )

Vous pouvez utiliser n'importe quel mot à la place de "Pattern " à condition que tout les mots "Pattern " d'un fichier .h2song soient remplacés par le même mot, différent pour chaque autre fichier à fusionner.


Dans le morceauun

renommer tous les "<name>Pattern " en "<name>morceauun "
renommer tous les "<patternID>Pattern " en "<patternID>morceauun "

et pareil pour le morceaudeux

renommer tous les "<name>Pattern " en "<name>morceaudeux "
renommer tous les "<patternID>Pattern " en "<patternID>morceaudeux "
Attention au nombre d'espaces après les noms : un seul sinon on a une erreur de syntaxe.

Copier / coller les sections de code

Les patterns

Une fois renommé on copie le bloc délimité par les balises <patternList></patternList> du morceaudeux à la suite du morceauun
(juste avant la balise </patternList> )
C'est donc toute la série de blocs <pattern></pattern> qui est ajoutée au morceauun
On a donc fusionné les listes de pattern des deux morceaux

Les séquences

Pour fusionner les séquences on copie le bloc délimité entre les balises
<patternSequence></patternSequence>
du morceaudeux , juste avant la balise </patternSequence> du morceauun
C'est donc toute la série de blocs <group> </group> qui est ajoutée au morceauun

On sauvegarde le code obtenu d'un autre nom "nouveaumorceau.h2song" et on l'ouvre avec Hydrogen music.

Limites

Tout cela ne fonctionne bien que si la liste des instruments, la section <instrumentList> </instrumentList> est rigoureusement la même dans tous les morceaux à fusionner. En partitulier, la paire
<id> </id>
<name> </name>
Doit être la même. Si le numéro d'<id> ne correspond pas au son, c'est un autre son qui sortira de la fusion.

Et en mode graphique ?

On peut copier-coller une sélection de la grille de morceau (song) d'un endroit à l'autre et d'une fenêtre Hydrogen à l'autre mais cela ne copie pas les patterns correspondants.
La solution est de cliquer du bouton droit sur chaque pattern du morceauun et d'exporter chaque pattern.
Ensuite, dans le morceaudeux on ajoute autant de lignes de patterns que nécessaire
avec le + situé en haut à gauche (nouveau motif - new pattern)
Ensuite, on clique du bouton droit sur chaque nouveau pattern pour charger chaque motif sauvegardé.
Enfin, on peut alors, en mode graphique, copier la sélection du morceauun dans le morceaudeux. Ouf!



retour