Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Ajouter ce produit à
  • Mon ancien matos
  • Mon matos actuel
  • Mon futur matos
Roland JV-1010
Photos
1/364
Roland JV-1010

Expandeur de la marque Roland appartenant à la série JV

Sujet Tempo jv1010.le point (presque final)

  • 16 réponses
  • 4 participants
  • 1 052 vues
  • 1 follower
Sujet de la discussion Tempo jv1010.le point (presque final)
Salut

suite à ce topic: https://fr.audiofanzine.com/apprendre/mailing_forums/index,idtopic,55383.html j'en rouvre un nouveau histoire de clarifier l'affaire.

Voici la chose:
Comment changer le tempo d'une performance sans Sound Diver par les system exclusive.

La solution proposée (après appel chez Roland France) est la suivante et se passe en trois étapes:
1. Mettre le System Clock sur externe:
F0 41 10 6A 12 00 00 00 0C 01 73 F7 (1)
2. Mettre la Performance sur Clock System:
F0 41 10 6A 12 10 00 00 41 01 2E F7 (1)
3. Configurer le séquencer pour qu'il envoie du MIDI CLOCK au JV.

(1): F0=SysEX / 41=Roland / 10=ID Appareil / 6A=ID modèle / 12=ID Commande / aa bb cc dd=adresses commande / 01=valeur / 73 ou 2E=checksum / F7=fin SysEx

Cette solution ne fonctionne pas chez moi.


Pourtant, après lecture approfondie des tableaux de commandes MIDI, il apparait clairement qu'il existe une commande qui s'appelle Performance Tempo et qui permettrait, à mon avis, de régler le tempo de la Performance de la même manière qu'on le faisait avec SoundDiver. Evidemment, si changement de tempo il y a au cours du morceau, le JV ne suivra pas. C'est l'inconvénient de cette méthode par rapport à la précédente. Je dois dire pourtant qu'elle m'interresserait ici.

Mon problème est que je ne sais pas du tout construire un SysEx, et encore moins calculer le checksum.
Voici ce qu'il y a dans le manuel concernant le Performance Tempo:

Adresse systeme:
00 00 00 00
Adresse de décalage:
00 2D
Valeur
00 00 aa aa
00 00 bb bb 20-250 (2)

(2) ces valeurs doivent etre envoyées en deux paquets. Exemple, ab doit etre envoyé en 0a puis 0b. Etant donné que les valeurs midi vont de 0 à 128, cela voudrait-il dire que pour un tempo de 130, il faille envoyer une 1ere valeur de 128 et une 2eme de 2?

Le début du message SysEx ne change pas: F0 41 10 6A 12
Pour l'adresse, si j'ai tout compris, il faut additionner la valeur de l'adresse de départ et celle de décalage, ici on aura donc 00 00 00 2D.
C'est là que ca se gate, pour envoyer la valeur de tempo, ainsi que pour le calcul du checksum!
Et, à la fin F7. Ca c'est pas dur :)
Et dernière question, ce parametre s'applique-t-il à toutes les performances, ou bien celle en cours? (d'ailleurs quelle est la perf en cours quand on allume le JV. La user1?)

Si une ame charitable voulait bien me dire si mon raisonnement est bon, si mon message SysEx est correctement construit, et m'apporter les valeurs manquantes (ainsi qu'une explication concernant le clacul du checksum), ca serait bigrement gentil :)

Merci de m'avoir lu jusqu'au bout.

Alex

PS: j'ai les neurons qui chauffent :)
2
Ca y est, a force de faire chauffer les neurones, j'ai compris l'histoire du checksum!!! C'est déjà ca.

En fait un de vous m'avais dit:
80-(données+valeurs). Mais pourquoi 80? Parce que cela correspond à 128 en héxa!!!

Et pour les ignares comme moi: https://www.mamosa.org/jenfi.home/home.html?detail/midichecksum.html&util
C'est un calculateur de checksum!

Mais pour l'envoi de la valeur du tempo, je sèche toujours.

Alex
3
|>
|
:lol:

S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

4
Pour l'histoire des deux paquets, tu brûles. :clin:

Comme les valeurs MIDI sont limitées à 7 bits (le huitième indique si c'est une commande ou une donnée), la valeur maxi est 127 (soit h7F ).

Quand une valeur supérieure doit être transmise, il faut couper la donnée en paquets de 7 bits. Une valeur de 200 se décompose en 1 x 128 + 72. Cela s'écrit en deux paquets, le premier valant 1 (h01), le second 72 ( h48 ).

Maintenant, Roland à très bien pu décider de décomposer en deux paquets de 4 bits...
Cela done : 200 ( soit C8 en hexa ) -> 1 paquet = 0C et 1 paquet = 08. Là c'est plus simple puisque on a un paquet pour les unité et un paquet pour les "seizaines".

Dernière question, dans quel ordre faut-il envoyer les paquets... aa = hC et bb = h8, ou l'inverse ? Il ne te reste plus qu'a essayer...

Quant au check-sum, la formule h80 - (donnée+valeurs) n'est valable que si donnée+valeurs ne dépasse pas 128 et est différent de zéro. La vrai formule serait plutôt :
(h80 - ( (donnée+valeurs) modulo 128)) modulo 128
5
Petits commentaires:
 
"Quand une valeur supérieure doit être transmise, il faut couper la donnée en paquets de 7 bits. Une valeur de 200 se décompose en 1 x 128 + 72. Cela s'écrit en deux paquets, le premier valant 1 (h01), le second 72 ( h48 ). "
-> Ce qui voudrait dire qu'on envoie une valeur 172 en 1 puis 72. Donc les centaines d'abord et le reste après. J'ai bon?
 
"Maintenant, Roland à très bien pu décider de décomposer en deux paquets de 4 bits... "
-> Vraisemblablement, je dirais oui. C'est pour ca que le tempo est "0000aaaa" et "0000bbbb". J'ai bon?

"Cela donne : 200 ( soit C8 en hexa ) -> 1 paquet = 0C et 1 paquet = 08. Là c'est plus simple puisque on a un paquet pour les unité et un paquet pour les "seizaines". "
-> Bon voila je comprends plus. parce que h0C ca donne 12 et 08, donne 8. Alors .... Je m'interromps parce que je crois avoir compris. En fait, pour les valeurs supérieures à 128, il faut découper en deux. Donc si je prends par exemple 150, ca donne 96h, il faut donc envoyer deux valeurs, une de 09h et une de 06h.
Pour reprendre ton exemple, 200 donne C8, donc deux valeurs 0Ch et 08h.
Et pour les valeurs inférieures à 128, on l'envoie quand meme sur deux valeurs ou pas?
 
"Dernière question, dans quel ordre faut-il envoyer les paquets... aa = hC et bb = h8, ou l'inverse ? Il ne te reste plus qu'a essayer... "
-> C'est ce que je vais faire :)
 
"Quant au check-sum, la formule h80 - (donnée+valeurs) n'est valable que si donnée+valeurs ne dépasse pas 128 et est différent de zéro. La vrai formule serait plutôt : 
(h80 - ( (donnée+valeurs) modulo 128)) modulo 128"
-> J'avais remarqué que pour les valeurs supérieures à 128, c'etait plus bon. Mais grace au grand Jenfi, y'a le calculateur de checksum :)

Donc au final, pour un tempo de 200 (et pour voir si j'ai bien tout compris), le sysex ressemblerait à ca:

F0 SysEx
41 ID
10 ID
6A ID
12 Commande

00
00 Données correspondant
00 au PerfTempo
2D

0C Tempo
08 Tempo (mais ne faut-il pas rajouter 00 00 au début pour que ce soit sur 4 bits?)

3F Cheksum

F7 Fin SysEx

J'ai bon?

En tout cas merci de votre aide.

Alex
6
Tu te rapproche de la Vérité !

Attention, ne confond jamais valeur décimales et hexadécimales... Mets un h devant les chiffres en hexa pour être sur.

Citation : mais ne faut-il pas rajouter 00 00 au début pour que ce soit sur 4 bits?



Rien à voir, il ne faut pas confondre les bits et les bytes : un octet, c'est un byte de 8 bits et un quartet c'est un byte de 4 bits.
( Y en a qui ont fini figurants dans un film x pour moins que ça... :clin: )

Un dernier tuyau pour la route. Quand une donnée est découpée en plusieurs bytes, on désigne celui qui représente la plus grosse partie par MSB et le moindre par LSB.
MSB : most signifiant byte, LSB : least signifiant byte.

Dans le cas de ta valeur hC8, le quartet (4 bits) MSB c'est le hC, le quartet LSB c'est le h8.

Ca t'aidera peut-être à déchiffrer les documents midi des constructeurs qui sont tous aussi clairs que du jus de boudin.
7
Non s'il vous plait, j'veux pas finir figurant dans un film x.....:)

Bon ceci dit, c'est bien compliqué tout ça et j'avoue qu'il faut du temps pour que je percute, ce qui aide pas :)

Mais bon...j'ai essayé avec le sysex que j'ai donné plus bas et ca ne fonctionne pas. J'avoue que je commence a plus rien comprendre et j'ai envoyé un msg à Roland en leur donnant le lien de ce forum, afin qu'ils nous viennent en aide.

Alex
8
Ton message à Roland dans lequel tu lui demandes d'aller sur le forum AF, ils ne vont pas y aller. Roland France est assez nul. Pour les questions techniques MIDI et plus spécifiquement SysEx j'ai eu recours à Roland Canada (english only). Eux, ils ont la doc MIDI sur le Boss SX-700 et ont pu me répondre. Mais d'après ton post, il semble que Roland France ait les infos MIDI de ton JV-1010 et qu'ils t'ont donné une explication que tu n'a pas réussi à mettre en oeuvre. L'explication comme ça à l'air très obscure. Déjà que les SysEx c'est pas simple... Avec quel logiciel séquenceur veux-tu envoyer ta requête? Si c'est avec Cubase, tu as la ressource d'un Mixermap. Et en plus, avec ce mixermap tu pourras enregistrer en dynamique les variations de ton tempo.

S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

9
En lisant la notice que tu m'as envoyé, l'info Roland a l'air correcte.

Citation : La solution proposée (après appel chez Roland France) est la suivante et se passe en trois étapes:
1. Mettre le System Clock sur externe:
F0 41 10 6A 12 00 00 00 0C 01 73 F7 (1)
2. Mettre la Performance sur Clock System:
F0 41 10 6A 12 10 00 00 41 01 2E F7 (1)
3. Configurer le séquencer pour qu'il envoie du MIDI CLOCK au JV.




Et en mettant manuellement ton JV en mode Clock externe, c-à-d MIDI comme c'est dit dans le manuel:

Citation : Groupe Setup

Setup
Paramètre Nom complet du paramètre Valeur
Patch Remain Commutateur Patch Remain ON,OFF
Clock Source Source d'horloge INT,MIDI
System Tempo Tempo système 20 -- 250


Est-ce que ça fonctionne? Je ne connais pas le JV et je ne sais pas si la manip est possible car elle ne l'ait peut-être pas pour le 1010 et c'est OK pour un 80 par exemple (Roland aime bien faire ce genre de blague dans les documents génériques du style "JV family Guide").

Citation : J'ai fait envoyé à mon Cubase SX 1 (Mac) du midi clock au JV (qui
apparemment le recoit, car diode midi allumée en permanence et pas de
message d'erreur), mais rien n'y fait.



Lorsque tu changes le tempo dans Cubase, est-ce que ta LED pulse en suivant le BPM ou reste invariablement allumée?

S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

10
Salut

"Et en mettant manuellement ton JV en mode Clock externe, c-à-d MIDI comme c'est dit dans le manuel"

-> Tu ne peux pas faire ca. En fait, le JV 1010 est réduit au minimum sur les actions externes. Le principe était de faire une boite pas cher (sans écran, sans trop de commandes) car elle était entièrement pilotée par SoundDiver. On peut agir du panneau de controle sur certains éléments (comme le canal midi global, le tune ou encore les effets), mais pas sur les parametres de synchro.

"Lorsque tu changes le tempo dans Cubase, est-ce que ta LED pulse en suivant le BPM ou reste invariablement allumée?"

-> Elle reste allumée en permanence.

Alex