Message MSB et LSB ?
- 8 réponses
- 5 participants
- 2 582 vues
- 5 followers
pimpampoum
1320
AFicionado·a
Membre depuis 21 ans
Sujet de la discussion Posté le 09/02/2006 à 13:37:12Message MSB et LSB ?
Dans le guide uilisateur il ya souvent ces abreviations dans les tableaux de controle midi. Qui as plus d'infos sur ces lettres, fonction ??? Merci
Peut-on jouer "Jeux Interdits" ???
BellesOndes
380
Posteur·euse AFfamé·e
Membre depuis 21 ans
2 Posté le 09/02/2006 à 15:00:25
Ce sont les informations que tu envoies avec des messages midis plus complexes que les control change classiques. Ce sont les RPN/NRPN (Registered Parameter, Non Registered Parameter). En gros, au lieu de coder l'information sur 7 bits, soit 128 valeurs différentes, tu as acces a des paramètres aux gammes de changement numériques plus larges.
http://www.bellesondes.fr
Anonyme
521410
3 Posté le 09/02/2006 à 17:01:37
J´ajoute que tu ne peux pas en envoyer depuis ton clavier maître et qu´ils sont moins facilement gérés que les CC. par exemple, FL studio ne capte pas les nrpn. ceci dit, tu peux en envoyer facilement depuis FL, et tu peux aussi convertir les nrpn en CC avec mdi ox le cas échéant.
Edouard de Zanzibar
85
Posteur·euse AFfranchi·e
Membre depuis 20 ans
4 Posté le 09/02/2006 à 19:12:30
Ouai ok ! ......................
J'comprend rien ...
En gros ca sert a quoi, allumer le micro-onde, ou dégivrer le congélateur ..?
J'comprend rien ...
En gros ca sert a quoi, allumer le micro-onde, ou dégivrer le congélateur ..?
BellesOndes
380
Posteur·euse AFfamé·e
Membre depuis 21 ans
5 Posté le 10/02/2006 à 10:59:31
Citation : J´ajoute que tu ne peux pas en envoyer depuis ton clavier maître
Ah non! le 449 peux envoyer des NRPN avec ses potars, il est fait pour. C pour ca ue la notice en parle. Pour l'utilité, ca sert à commander des appareils compatibles - donc capables de comprendre quand ils recoivent un message NRPN avec un LSB et un MSB.
Le contexte: imagine le super dernier synthé X5522000 + alpha de l'espace avec 25 oscillateurs 60 filtres et tout. Avec seulement 128 controles midi affectables, on peux pas tout commander dans les oscillateurs. Alors on a ajouté des nouveaux messages à la norme, les RPN/NRPN, pour pouvoir commander les fonctions additionnelles spécifiques à chaque synthé.
http://www.bellesondes.fr
Anonyme
521410
6 Posté le 10/02/2006 à 13:22:58
Oops...ben zavez de la chance, mon clavier est d´une classe en dessous !
linuxer
2
Nouvel·le AFfilié·e
Membre depuis 10 ans
7 Posté le 14/11/2014 à 20:10:18
Bonjour à tous,
En répondant à ce fil vieux de 8 ans, on se croirait un peu dans Hibernatus, non ?
Je me suis récemment mis à la compo sous Linux avec mon vieux MK-449C qui dormait dans mon placard, et je suis en train de me casser les dents sur un problème de NRPN.
Mon objectif est de former un message MIDI qui soit compris par ZynAddSubFX pour piloter ses effets, et il faut utiliser les NRPN comme indiqués dans la doc suivante : http://zynaddsubfx.sourceforge.net/doc_3.html (Descendre jusqu'à la rubrique NRPN).
Il faut pour que ça marche envoyer 4 messages qui sont les suivants (en hexa, tirés de la doc ci-dessus):
B0 63 08 // Select the insertion effects
B0 62 01 // Select the second effect (remember: the first is 00 and not 01)
B0 06 00 // Select the effect parameter 00
B0 26 7F // Change the parameter of effect to the value 7F (127)
Je suis parvenu à configurer le MK pour qu'il utilise bien un NRPN en suivant la doc trouvée ici ( http://c3.zzounds.com/media/050822_Evo4Series_UG_01-7a4d8b4c369368913345a8d3cb2a9851.pdf ) à la page 6 "Assigning RPN/NRPN To A Fader/Rotary Controller".
J'utilise KMidiMon pour espionner ce que m'envoie le MK, et j'obtiens le résultat suivant (en décimal):
20845,43.4286,20:0,1,Control change,98,0,
20845,43.4322,20:0,1,Control change,99,8,
20845,43.4358,20:0,1,Control change,6,125,
20854,43.4495,20:0,1,Control change,6,124,
20862,43.4656,20:0,1,Control change,6,123,
J'observe que :
1) Les deux premières commandes sont bien celles que je veux (99 = 0x63 vaut 8, effets d'insertion OK et 98 = 0x62 vaut zéro premier effet OK), mais sont dans le désordre
2) La seconde partie du message n'est pas de la forme souhaitée (la forme optionnelle expliquée ici : http://artsites.ucsc.edu/EMS/music/tech_background/midi/NRPNs.html ) mais la forme standard, avec la valeur en un seul octet.
Que faire ?
a) La fonction existe-t-elle dans le MK-449C ? Si oui, je n'ai pas trouvé dans la documentation. Pouvez-vous m'expliquer ?
b) Si la fonction n'existe pas, comment puis-je faire ? J'utilise le serveur Jack sur Lubuntu. Quel module utiliser pour traduire en temps réel les messages reçus ? Mididings pourrait-il être un bon choix ?
Je vous remercie par avance de vos réponses.
@ bientôt !
Le linuxer
En répondant à ce fil vieux de 8 ans, on se croirait un peu dans Hibernatus, non ?
Je me suis récemment mis à la compo sous Linux avec mon vieux MK-449C qui dormait dans mon placard, et je suis en train de me casser les dents sur un problème de NRPN.
Mon objectif est de former un message MIDI qui soit compris par ZynAddSubFX pour piloter ses effets, et il faut utiliser les NRPN comme indiqués dans la doc suivante : http://zynaddsubfx.sourceforge.net/doc_3.html (Descendre jusqu'à la rubrique NRPN).
Il faut pour que ça marche envoyer 4 messages qui sont les suivants (en hexa, tirés de la doc ci-dessus):
B0 63 08 // Select the insertion effects
B0 62 01 // Select the second effect (remember: the first is 00 and not 01)
B0 06 00 // Select the effect parameter 00
B0 26 7F // Change the parameter of effect to the value 7F (127)
Je suis parvenu à configurer le MK pour qu'il utilise bien un NRPN en suivant la doc trouvée ici ( http://c3.zzounds.com/media/050822_Evo4Series_UG_01-7a4d8b4c369368913345a8d3cb2a9851.pdf ) à la page 6 "Assigning RPN/NRPN To A Fader/Rotary Controller".
J'utilise KMidiMon pour espionner ce que m'envoie le MK, et j'obtiens le résultat suivant (en décimal):
20845,43.4286,20:0,1,Control change,98,0,
20845,43.4322,20:0,1,Control change,99,8,
20845,43.4358,20:0,1,Control change,6,125,
20854,43.4495,20:0,1,Control change,6,124,
20862,43.4656,20:0,1,Control change,6,123,
J'observe que :
1) Les deux premières commandes sont bien celles que je veux (99 = 0x63 vaut 8, effets d'insertion OK et 98 = 0x62 vaut zéro premier effet OK), mais sont dans le désordre
2) La seconde partie du message n'est pas de la forme souhaitée (la forme optionnelle expliquée ici : http://artsites.ucsc.edu/EMS/music/tech_background/midi/NRPNs.html ) mais la forme standard, avec la valeur en un seul octet.
Que faire ?
a) La fonction existe-t-elle dans le MK-449C ? Si oui, je n'ai pas trouvé dans la documentation. Pouvez-vous m'expliquer ?
b) Si la fonction n'existe pas, comment puis-je faire ? J'utilise le serveur Jack sur Lubuntu. Quel module utiliser pour traduire en temps réel les messages reçus ? Mididings pourrait-il être un bon choix ?
Je vous remercie par avance de vos réponses.
@ bientôt !
Le linuxer
linuxer
2
Nouvel·le AFfilié·e
Membre depuis 10 ans
8 Posté le 16/11/2014 à 18:34:30
Bonsoir,
On n'est jamais aussi bien servi que par soi même
Finalement, je pense que le MK-449C ne possède pas cette fonctionnalité. En revanche, mididings est d'un grand secours pour arriver à quelque chose qui marche !
Je suis tombé sur ce message de forum https://groups.google.com/forum/#!msg/mididings/t8V5MItcfoc/r_OuM7N38HIJ
En l'adaptant un tout petit peu (il suffit de rechercher/remplacer param par ctrl) on obtient le code suivant :
On n'est jamais aussi bien servi que par soi même
Finalement, je pense que le MK-449C ne possède pas cette fonctionnalité. En revanche, mididings est d'un grand secours pour arriver à quelque chose qui marche !
Je suis tombé sur ce message de forum https://groups.google.com/forum/#!msg/mididings/t8V5MItcfoc/r_OuM7N38HIJ
En l'adaptant un tout petit peu (il suffit de rechercher/remplacer param par ctrl) on obtient le code suivant :
# nrpn_fixer.py
from mididings import *
import mididings.event as _event
class NRPNFixer(object):
def __init__(self, *nrpns):
self.nrpns = nrpns
self.cur_nrpn = None
self.cur_nrpn_msb = None
self.cur_nrpn_lsb = None
def __call__(self, ev):
if ev.type == CTRL and ev.ctrl in [98, 99]:
if ev.ctrl == 98:
#print "NRPN LSB:", ev.value
self.cur_nrpn_lsb = ev.value
if ev.ctrl == 99:
#print "NRPN MSB:", ev.value
self.cur_nrpn_msb = ev.value
if None not in [self.cur_nrpn_lsb, self.cur_nrpn_msb]:
self.cur_nrpn = self.cur_nrpn_msb * 128 +
self.cur_nrpn_lsb
#print "NRPN:", self.cur_nrpn
return ev
elif (ev.type == CTRL and ev.ctrl == 6 and
self.cur_nrpn in self.nrpns):
return [
_event.CtrlEvent(ev.port, ev.channel, 6, 2),
_event.CtrlEvent(ev.port, ev.channel, 38, ev.value)
]
else:
return ev
if __name__ == '__main__':
import sys
run(Process(NRPNFixer(*
pimpampoum
1320
AFicionado·a
Membre depuis 21 ans
9 Posté le 16/11/2014 à 20:14:46
Moi je dis BRAVO
Tu devrais donner des cours!
Tu devrais donner des cours!
Peut-on jouer "Jeux Interdits" ???
- < Liste des sujets
- Charte