Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Ajouter ce produit à
  • Mon ancien matos
  • Mon matos actuel
  • Mon futur matos
Roland JD-990 Super JD
Photos
1/240
Roland JD-990 Super JD

Synthétiseur numérique en rack de la marque Roland appartenant à la série JD

Adressage pour SysEx

  • 15 réponses
  • 4 participants
  • 1 795 vues
  • 4 followers
Sujet de la discussion Adressage pour SysEx
Bonzour,

Y'a-t-il des cadors en SysEx dans le coin ?

C'est rapport à ceci.

Merci. :-D

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)

Afficher le sujet de la discussion
11

Oui oui Xab, j'ai vu ça après avoir répondu mon premier message. icon_wink.gif

Ça me semblait utile de faire un petit résumé des valeurs types en SysEx. Après on peut encore trouver d'autres codages (packed bits pour plusieurs paramètres on/off dans un même octet, etc) mais c'est à chercher dans la partie implémentation SysEx de la documentation de chaque machine.

12
Citation :
100 se code parfaitement sur 7 bits, en non signé, tout simplement.

100 c'est 64h : heureusement que ça se code sur 7 bit. :langue:

Merci pour tes explications exhaustives, mais le problème était de calculer une adresse avec un offset > 7F et de parvenir à l'exprimer sous une forme compréhensible par le JD-990. Ce que xab a démontré, et que je trouve confirmé sur ce lien.

Citation :
Not quite sure what your question exactly is but i'll walk you though the 7 bit encoding process

Lets encode 234235 (which i randomly chose) lets start by turning this into binary (windows calculator is a great help there)

111001001011111011

Next group them up into groups of 7 bits and pad the left over bits so you have 3 groups of 7.

0001110 0100101 1111011

Il suffit de convertir en septets. :-D

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)

13

Effectivement c'est le cas du mode performance par exemple, qui tient sur 144 octets :

00 00 00 Performance

00 00 30 Partie 1

00 00 3C Partie 2

...

00 00 78 Partie 7

00 01 04 Partie 8 ( 01h 04h est en fait le codage de 78h+0Ch = 84h sur 2 valeurs de 7 bits )

 

[ Dernière édition du message le 25/01/2011 à 22:58:18 ]

14
Bonjour,

Je suis tombé sur ce fil car je voudrais justement pouvoir contrôler le cutoff et la résonance de mon JD-990.
Je dois avouer être totalement à la ramasse question SysEx. Du coup, j'ai quelques questions qui me viennent à l'esprit :


Citation de .: Odon Quelconque :. :
Pour éclaircir la question, je souhaite atteindre le paramètre TVF Cutoff Freq du Tone 1, du Patch 1 en mémoire temporaire.

Si je comprends bien, on ne peut pas contrôler de manière globale le cutoff d’un Patch ? On ne peut contrôler le cutoff que d’un Tone ?
Qu’entends-tu par « mémoire temporaire » ? La banque User ?


Citation de xab :
Ton message est donc pour moi: F0 41 10 57 12 03 00 00 8F dt cs F7 tout simplement.
puis
Citation de xab :
F0h 41h 10h 57h 12h xxh xxh xxh xxh vvh xsh

Que signifie le h minuscule ajouté après chaque valeur du message ?


Citation de xab :
Cas pratique:
on vise le cutoff du tone 1 du patch 1, on prend donc l'adresse de base du bloc "Patch Mode Temporary Patch", qui est "03 00 00 00"
L'offset du "Patch Tone A" est bien "00 00 76" où se trouve un bloc de 5Ch octets, soit 92 octets dont le 27ème (19h) est la valeur du cutoff, codée entre 0 et 100.
La question métaphysique, c'est "est-ce qu'on a le droit de coder un des octets de l'adresse sur plus de 7 bits", sinon "comment fait-on pour coder une valeur d'offset supérieure à 7Fh.
Si on regarde le "Patch Tone A" a un offset de "00 00 76", et le "Patch Tone B" a un offset de "00 01 52", sachant qu'entre les deux sont codés 92 octets.
92 = 9 + 1 + 82 = 09h + 01h +52h
Il est manifeste donc que le passage de 03 00 00 7F à la valeur suivante = 03 00 01 00
Du coup nos 92 octets montrent que 03 00 00 76 + 9h = 03 00 00 7F, on rajoute 1 et on passe à 03 00 01 00 et on rajoute les 82 manquants (52h) et on arrive à 03 00 01 52, l'adresse du prochain bloc.
On applique le raisonnement à l'offset du cutoff et en écrivant 19h = 09h + 01h + 0Fh, on obtient que l'adresse exacte de l'octet codant la valeur du cutoff du tone A du temporary patch est:
03 00 01 0F
Ton message sera donc F0h 41h 10h 57h 12h 03h 00h 01h 0Fh vvh xsh avec vv et xs à renseigner par tes soins.

Est-il nécessaire de vous préciser que je n’ai rien compris ?
Connaissez-vous des tutos pour comprendre – à défaut d’apprendre – les SysEx ?

Sans musique, la vie serait une erreur. (F. Nietzsche)

Matos à vendre

15
Citation de Pevets :
Si je comprends bien, on ne peut pas contrôler de manière globale le cutoff d’un Patch ? On ne peut contrôler le cutoff que d’un Tone ?


Pour le JD, il est possible d'assigner le cutoff à la molette de modulation ou à l'aftertouch.

A partir des JV, Roland a complété cette sorte de matrice de modulation avec plusieurs contrôleurs système assignables (Sys Ctrl), qui permettent de moduler simultanément certains paramètre des Tones avec des offsets par rapport à la valeur pivot stockée dans le patch pour chaque Tone.

Dans les deux cas, seuls les SysEx permettent d'attaquer directement la valeur du paramètre pour chaque Tone. Les SysEx sont surtout destinés à être utilisés pour du stockage externe (dump ou send MIDI des patches ou performances) ou par les éditeurs/bibliothécaires logiciels.
Utiliser les SysEx comme messages temps réel en cours de jeu peut poser des problèmes de ralentissements sur des arrangements un peu chargés sur ces machines anciennes et peu puissantes en terme de CPU.

Citation de Pevets :
Qu’entends-tu par « mémoire temporaire » ? La banque User ?


Chaque patch ou performance qu'on sélectionne est monté(e) en mémoire vive, donc temporaire pour être joué.
C'est cette mémoire vive qu'on édite lorsqu'on modifie les paramètres du patch ou de la performance en cours de jeu (apparition du caractère * devant le nom du patch pour indiquer qu'il a été modifié par rapport à la version stockée).
On les sauvegarde ensuite dans une banque user si on le souhaite.
Ou on peut les transmettre en SysEx dans un séquenceur ou un enregistreur MIDI.

En SysEx, on peut aussi atteindre les valeurs de paramètres des patches stockés en mémoire utilisateur, mais cela veut dire qu'on modifie un patch sauvegardé, pas celui en cours de jeu, ce qui n'a pas de sens en terme d'usage ou d'efficacité, sauf pour un éditeur/bibliothécaire.

Citation de Pevets :
Que signifie le h minuscule ajouté après chaque valeur du message ?


Que les valeurs sont exprimées en hexadécimal (base 16), qui est le format de codage utilisé en informatique (et donc dans les transmissions MIDI) pour plus de commodité que le binaire.

https://fr.wikipedia.org/wiki/Syst%C3%A8me_hexad%C3%A9cimal

Citation de Pevets :
Connaissez-vous des tutos pour comprendre – à défaut d’apprendre – les SysEx ?


Le fondamentaux numériques du MIDI sont les mêmes pour tous puisqu'il s'agit d'une norme qui décrit comment l'information est codée et transmise.
Mais chaque fabricant fait ensuite un peu ce qu'il veut avec les informations codées en SysEx, puisque comme le nom l'indique elles sont Exclusives au Système (i.e. la machine compatible MIDI) considéré.
Le meilleur tuto pour la manière dont Roland les utilise, c'est l'implémentation MIDI documentée dans les manuels des synthés de la marque.

http://www.chromakinetics.com/handsonic/rolSysEx.htm

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)

[ Dernière édition du message le 22/09/2022 à 11:15:06 ]

16
Un grand merci .: Odon Quelconque :. pour tes réponses détaillées et le partage de ta science. C'est toujours passionnant et enrichissant de te lire. :bravo:

Sans musique, la vie serait une erreur. (F. Nietzsche)

Matos à vendre