Lier une soundfont à un fichier Instruments.xml

• 27 Mar. 2018 - 16:37

Bonjour,
J'ai une soundfont d'un orgue comprenant 7 sortes de tuyaux échantillonnées (cf capture d'écran).
Je voudrais pouvoir choisir les types de tuyaux dans la fonction "choisir un instrument" pour l'affecter à une portée. Pour celà, il faudrait que les noms des tuyaux apparaissent dans la liste des instruments.
Quelle est la balise xml qui joue ce rôle dans le fichier-instruments (Orgue.1.xml) ?
merci
Pierre

Fichier attaché Taille
Capture d’écran 2018-03-27 à 17.34.19.png 19.15 KB
Orgue.1.xml 2.07 KB

Commentaires

Il faut placer votre fichier "Orgue.xml" dans la liste des fichiers alternatifs des préférences : "Menu>Préférences>Partition>Liste des instruments 2".
instruments.png
Ensuite installer votre soundfont dans le synthétiseur et ceci fait cliquer sur enregistrer dans la partition afin de conserver l'accès à la soundfont de MuseScore sinon déclarez la votre comme soundfont par défaut.
Votre instrument apparaitra dans la liste des instruments ( I ) à condition de sélectionner "Tous les instruments" et non "Instruments courants".
En étudiant le fichier "Instruments.xml" il est sans doute possible de faire apparaître l'orgue dans "Instruments courants" ( il doit certainement y avoir une étiquette spécifique ).
Attention ! l'essai que j'ai fait montre que la registration n'est pas bonne ( soit erreur de clé, soit d'ambitus ).

En réponse à par [DELETED] 16875981

Merci.
J'ai fait tout ça et je tombe toujours sur le même problème, celui que vous avez soulevé : l'adéquation entre la liste d'instruments du fichier xml et celle du fichier sf2.
En important le fichier sf2 dans la partition, on peut ensuite voir l'instrument utilisé à l'aide de la fenêtre du mélangeur. On peut toujours changer le son à cet endroit. L'idéal serait de ne pas avoir à le faire. Remarquez que les sons en question ne sont que les "presets" du fichier sf2.
La question reste de savoir comment forcer un instrument du fichier xml à venir prendre l'instrument que l'on désire entendre et que l'on a choisi dans les instruments ou les presets du fichier sf2.
L'ambitus est, quant à lui, défini dans le fichier sf2.
Enfin, à quoi sert la balise :

Le 17 est-il utilisé par MSC ou correspond-il au n° de l'instrument dans le fichier sf2 et, dans ce dernier cas, comment savoir de quel instrument il s'agit ?
Bien cordialement
Pierre

En réponse à par PIR2

OK, la solution est simple :
Le fichier d'instrument xml ne fait appel qu'aux presets du fichier sf2. Ces dernier sont donnés par un n° au format aaa:bbb, soit, un nombre entier en base 10 de valeur 128*aaa+bbb.
En mettant ce nombre dans la balise "program value", on obtient une registration correcte.
En fichier joint, voici ce que ça donne...

Fichier attaché Taille
RegistrationOrgue.xml 13.11 KB

En réponse à par PIR2

Le numéro dont vous parlez est l'ID du programme MIDI. Il correspond au numéro d'ordre de la sonorité dans la banque (bbb) et le numéro d'ordre de la banque elle-même (aaa) toujours égal à 0 quand MIDI standard ou GM et c'est donc ce qu'il fallait faire.
En banque 0, toutes les soundfonts ont la même ordonnance des instruments ( même si leur dénomination peut changer ) qu'elles soient GM, GS ou XG. MuseScore se sert de cette ordonnance ce qui permet de changer de soundfont sans modifier le fichier Instruments. Le problème rencontré est, bien sûr, que votre soundfont n'est pas "standard". MuseScore n'affiche pas cet ID dans le mélangeur ce qui ne facilite pas la mise en place dans le fichier "Instruments". Il semble que vous en êtes bien sorti... Dommage que je n'ai pas votre soundfont ; )
A noter : vous pouvez placer plusieurs instances pour un même instrument ( sans oublier les < > )
Channel1 name="nom sonorité"
program value="n0"/
/Channel1
Channel1 name="nom sonorité"
program value="n1"/
/Channel1
Channel1 name="nom sonorité"
program value="n2"/
/Channel1>
afin de pouvoir changer d'instrument en cours de portée à l'aide d'un texte de portée comme un organiste peut changer de jeu ou de registre en cours d'exécution. Cela va se traduire par la présence permanente du nombre d'instances déclarées dans le mélangeur ( voir comment sont organisés les violons et trompettes ).

En réponse à par PIR2

Comme vous pratiquez il faut créer un instrument par sonorité ce qui n'est pas vraiment intéressant pour un orgue. Ce que je propose est de construire un orgue avec ses registres et ses jeux et qui permet de différencier la sonorité des voix possibles d'une portée. MuseScore est plein de possibilités, cachées car ce n'est pas sa finalité, mais bien réelles.

En réponse à par [DELETED] 5

J'ai essayé mais n'ai pas pu créer de port midi (sous mac).
Finalement, ne serait-il pas possible de faire en sorte qu'on puisse mettre, DANS MUSESCORE, deux (ou plus) instruments simultanément sur une même portée ?
Ceci dit, il reste un problème de "registration" entre mon fichier xml et mon fichier sf2 : dans la fenêtre du mélangeur, je retrouve les instruments choisis dans la portée mais pas les sons du fichier sf2. Je ne sais pas comment relier dans le fichier xml un instrument au préset correspondant du fichier sf2.

En réponse à par PIR2

Comme dit dans un précédent post, avec une seule instance ( le cas général ) une portée se voit attribuer un seul et unique canal MIDI par MuseScore et donc une seule sonorité. ( voir ci-dessous ).

texte de portée mono instance.png

Il faut donc plusieurs instances "programme value=nx" dans la définition de l'instrument pour accéder à des sonorités différentes sur une seule portée mais pas seulement : il faut aussi utiliser les textes de portée qui permettent d'attribuer un canal à ces sonorités. "nx" est l'identificateur du préset dans la soundfont ce qui pose problème si la soundfont considérée n'est pas en tête de liste dans le synthétiseur. En effet, plusieurs soundfonts impliquent des ID de présets identiques entre elles, le fichier "Instruments" attribue par défaut dans le mélangeur les instruments de la soundfont en tête de liste. Si ce n'est le cas il faut faire cette sélection manuellement à chaque ouverture de MuseScore ( hé oui ! ).

En présence de plusieurs instances, un canal est attribué à chaque instance ( voir ce qui se passe pour un violoncelle ci-dessous )
 
texte de portée multi instances.png
 
Ici la voix 1 se voit attribuer la sonorité de base du violoncelle mais on peut lui attribuer "pizzicato" ou "tremolo", c'est l'usage initial voulu par les programmeurs. En multipliant les textes de portée on peut donc changer la sonorité d'une voix de portée à volonté dans la partition.
On peut aussi, en début de portée, avec un seul texte de portée attribuer une sonorité par voix mais tout de suite apparaît la limite de ceci : il n'est pas forcément pertinent d'avoir une sonorité différente pour chaque voix et c'est même plutôt rare, ce n'est donc valable que pour des cas bien particuliers.
 
texte de portée multi voix.png
 
Ces changements exécutés par les textes de portée sont enregistrés dans le fichier *.xml produit par MuseScore ( le fichier *.mscz est un fichier xml zippé ).

Do you still have an unanswered question? Please log in first to post your question.