Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN
Sujet de la discussion Projet "Modulation sans mal (Micron Safe Modulation!)" - Interface midi de réglage des par
Salut,

Comme tous les possesseurs du micron, quel que soit leur niveau, j'ai été confronté à la difficulté de programmation des paramètres d'un "program" via l'unique bouton du Micron.
Pour ma part, étant très novice dans la synthèse, le fait de ne pas avoir tous les paramètres sous les yeux ne m'a pas permis jusqu'ici, par exemple, d'apprendre par la pratique, en testant des paramètres et en écoutant le résultat à la volée.

C'est ainsi qu'a germé l'idée de créer une interface regroupant tous les paramètres modifiables en "temps réel".

Etant seul pour le moment, le but de ce topic est de permettre de rassembler les forces vives de audiofanzine !! ^^

Dans les prochains messages, je vous présenterai ce que j'ai déjà pû faire, les difficultés rencontrées, le langage envisagé pour la programmation (même si j'ai déjà développé certaines choses).

S'il vous prend l'envie de participer à cet humble projet, vous êtes les bienvenus ;o)

A bientôt.
2
Comme je disais sur l'autre topic, j'ai déjà fais (un peu juste, pas des masses) des interfaçes en .Net et en Java ... je sais pas si je pourrais aider donc, mais peut être ...

(et flag donc)
3
D'avance, merci pour ton intérêt :o)
Je vais déjà essayer de présenter un maximum d'info sur ce que j'ai pû faire.


Le but de l'appli serait en premier lieu - v 0.09 :o) - de modifier les paramètres d'un programme sélectionné au préalable depuis le micron.

Mes prochaines contributions au topic suivront (j'espère) ce plan :

-1- Les paramètres d'un program (leur correspondance en code NRPN, les valeurs associées min et max etc.)

-2- Le problème du <<Modulation routing>>

-3- Les premiers tests en Visual Basic, le choix du langage (Java, portable, mais obligation d'un runtime installé sur la machine "cliente" )

-4- Le développement de controleurs graphiques propres à ces paramètres (potard circulaire, switch etc.)

-4bis- L'interface graphique de l'application (utilisation d'onglets, représentation du tracking generator etc.)

-5- Les évolutions envisageables à plus ou moins court terme (récupération de preset pour initialiser les différents controleurs de l'interface par exemple)

Allez, on va le sauver le "Knob" du micron :D:

4
Voici la correspondance entre les paramètres de la catégorie VOICE (premiers paramètres d'un program du Micron) et les codes nrpn associés. Les codes et les valeurs sont convertis en hexadécimal et représentés par le MSB* et LST*

En effet le message midi qui sera envoyé à chaque modification de valeur d'un paramètre contiendra l'identification du paramètre et la valeur associée (sur 2 octets chacun) .
Je détaillerai un peu + dans mon prochain post quel type de message est envoyé (il est un peu tard), et on verra que certains paramètres prennent comme valeur minimale 16284 et maximale 100...
A plus



*
MSB : Most Significative Byte
LSB : Less Significative Byte
exemple : la valeur 1000 sera représentée sur 2 octets
- 07 en hexadécimal pour le MSB (7 en décimal)
- 68 en hexadécimal pour le LSB (104 en décimal)
en effet 7 x 128 = 896
+ 104 = 1000
On peut dire que le MSB contient la partie entière de la division du nombre par 128 et le LSB contient le "reste".
5
D'avance merci beaucoup pour ton investissement et j'espere vite pouvoir tester ca

Microneur du dimanche.
C vrai que ce bouton...
6
Merki ;o)

Comme vu précédemment, pour modifier un paramètre nous aurons besoin du code du paramètre et d'une valeur comprise dans la plage définie par la valeur min et max.

Faisons un petit test à l'aide de SendSx (https://www.bome.com/midi/sendsx/)

Nous allons envoyer un message midi qui va modifier un paramètre.

1- Choisir un programme quelconque sur le Micron


2- Appuyer sur le bouton pour entrer dans les paramètres et visualiser le paramètre polyphony


3- Lancer SendSx (ne pas oublier de sélectionner votre sortie midi dans MIDIOUT de SendSx)
Dans la zone de saisie nous allons taper les codes suivants
B0 63 00
B0 62 00
B0 06 00
B0 26 00

Les deux premières lignes permettent d'indiquer le paramètre à modifier :
B0 63 doit être suivi du code MSB du paramètre et B0 62 suivi du code LSB.
Ici c'est 00 et 00 (c'est le paramètre polyphony, voir tableau du post précédent)

Les deux lignes suivantes indiquent la valeur à donner au paramètre :
B0 06 attend le MSB de la valeur et B0 26, le LSB.
Ici, là aussi, on envoie 00 en MSB et LSB.

On clique sur SEND


4- Sur l'écran du Micron, on devrait voir le paramètre polyphony à "monophonic" maintenant.



Voilà nous savons maintenant quel type de message envoyer pour modifier un paramètre. Si on se base sur le tableau et que l'on veut, par exemple, mettre à 100% la valeur de AnalogDrift, il faudra envoyer comme "message" :
B0 63 00
B0 62 07
(on indique que le paramètre 7, AnalogDrift...)
B0 06 00
B0 26 64
(...prend la valeur 100)

A plus tard :o)
7
Salut !

Le tableau suivant contient les premiers paramètres des 3 oscilateurs du Micron, paramètres identiques pour les trois et qui, pour certains, possèdent comme vous pourrez le voir quelques particularités que je détaillerai dans le post suivant.
Jusqu'ici, on pouvait se dire << Bon, un paramètre qui prend une valeur comprise entre 0 et 100, le min sera 0 et le max 100 >>... Mais quid des valeurs négatives ??



Je fais court ce soir mais j'ai une fin de mois un peu serrée niveau boulot, alors j'essaie de compresser le temps !! Merci aux quelques lecteurs pour leur patience :o)))

A+
8
Pour en finir (presque) avec les codes NRPN. Parlons donc des valeurs négatives des paramètres qui sont exprimées ici en décimal d'après leur valeur binaire.
Sans trop s'étendre sur le sujet
100 en décimal est égal à 00000001100100 en binaire
la valeur négative de ce nombre binaire est égale à 11111110011100 (16284 en décimal)*

donc pour faire varier une valeur de -100 à 100 comme dans le cas du paramètre waveshape, on devra respecter les "bornes" définies ainsi :



Voilà. Je metterai un lien vers le tableau complet des codes de chaques paramètres, car il risque de prendre de la place si je le poste ici !
La prochaine fois, je parlerai du problème lié aux paramètres "Modulation Routing", peut-être que nous pourrons trouver des infos ensembles.
Jusqu'ici il n'y a pas eu réellement d'échange, je veux pas faire le prof, je veux seulement solliciter les envies d'aller plus loin. La programmation arrive, mais cela passe d'abord par ces aspects théoriques. :o)

A plus (pas obligé de lire ce qui suit, c'est chiant !!)

* Bon je ne sais pas si ce sera clair (de toute façon ce n'est pas très important ici) c'est ce que l'on appelle faire un complément à 1, cela permet de réprésneter les négatifs en binaire est surtout de pouvoir des opérations arithmétiques avec :

Si on prend la valeur 5 en binaire sur 8 bits 0000 0101
la valeur -5 sera calculée ainsi
0000 0101 (valeur 5)
1111 1010 (complément à 1)
+ 1
1111 1011 (valeur négative du nombre binaire de 5)

Si j'applique ce calcul à notre valeur -100 du paramètre waveshape :
00 0000 0110 0100 (valeur binaire de l'entier 100 sur 14 bit)
11 1111 1001 1011 complément à 1
+ 1
= 11 1111 1001 1100 (bien égal à 16284)
9
Salut joyeu fou


Pour ton histoire de binaires négatif, j'avais entendu parler aussi (au lieu du complement a 1) de mettre tout simplement un "1" au debut du codage qui deviendrait "le bit de signe"

exp 3 : 00000011
-3 : 10000011

j'ai pas encore reflechi mais en ecrivant ca il se pose la question de savoir si le premier bit serait ultilisé dans le codage de la valeur absolue

Enfin bref juste un ptit post comme ca, il me semble que le complement a un soit deja tres efficace
.

Microneur du dimanche.
10
Salut, le complément à 1 permet de faire ensuite des opérations sur les nombres, en ajoutant seulement le bit de signe, cela fausse les opérations.

Quoiqu'il en soit, les valeurs négatives ont été implémentées ainsi dans le micron :o)

Bientôt la suite (semaine prochaine ou ce we), j'ai une semaine de fou au boulot, je fini tard et j'évite de me remettre devant l'ordi le soir venu :o)

A plus :)
11
Hello

Oui c la reflexion que je me suis fait après, en relisant bien tes post precedents
C'était en fait surtout pour te tenir un peu companie!
lol
En tout cas bon courage.
12
Sympa ;o)
Je reprends la suite bientôt.
Le fameux problème lié au modulation routing, puis je vais mettre en ligne le tableau complet des paramètres. On s'approche du développement ^^

A plus
13
Voila tous les NRPN trouvés...
j'espère qu'il n'y a pas trop de bêtises!
je pense que tu les connais tous... mais bon...

Voice 0 0 1 switch Polyphony
1 0 3 switch Unison
2 0 100 rotary Usn Detune
3 0 2 switch Portamento
4 0 3 switch PortaType
5 0 127 rotary PortaTime
6 0 1 switch PitchWheel
7 0 100 rotary AnalogDrift
8 0 4 switch OSC Sync
9 0 1000 rotary FM Amount
10 0 5 switch FM Type
OSC1 11 0 2 switch O1 Waveform
12 16284 100 rotary O1 Waveshaper
13 16381 3 switch O1 Octave
14 16377 7 switch O1 Transpose
15 15385 999 rotary O1 Pitch
16 0 12 rotary O1 Pwhlrange
OSC2 17 0 2 switch O2 Waveform
18 16284 100 rotary O2 Waveshaper
19 16381 3 switch O2 Octave
20 16377 7 switch O2 Transpose
21 15385 999 rotary O2 Pitch
22 0 12 rotary O2 Pwhlrange
OSC3 23 0 2 switch O3 Waveform
24 16284 100 rotary O3 Waveshaper
25 16381 3 switch O3 Octave
26 16377 7 switch O3 Transpose
27 15385 999 rotary O3 Pitch
28 0 12 rotary O3 Pwhlrange

x 154 0 10 rotary Prog Category

x CC1 0 127 M1 Modulation
x CAT 0 127 M2 Channel Aftertouch

x CC64 0 127 Sustain Hold
x CC7 0 127 Volume
x CC10 0 127 Pan
Pre 29 0 100 rotary OSC1 Level
30 0 100 rotary OSC2 Level
31 0 100 rotary OSC3 Level
32 0 100 rotary RingMod Level
33 0 100 rotary Noise Level
34 0 100 rotary EXT in Level
35 16334 100 rotary OSC1 balance
36 16334 100 rotary OSC2 balance
37 16334 100 rotary OSC3 balance
38 16334 100 rotary RingMod balance
39 16334 100 rotary Noise balance
40 16334 100 rotary EXT in balance
41 0 100 rotary Series Lvl
42 0 2 switch Noise Type
Filter 43 0 20 rotary F1 Type
44 0 1023 rotary F1 Frequency
45 0 100 rotary F1 Resonance
46 16284 200 rotary Keytrack
47 16284 100 rotary F1 EnvAmount
48 0 1 switch F2 Offset
49 0 20 rotary F2 Type
50 0 1023 rotary F2 Frequency(relative)
158 0 400 rotary F2 Frequency (absolute)
51 0 100 rotary F2 Resonance
52 16284 200 rotary F2 Keytrack
53 16284 100 rotary F2 EnvAmount
Psot 54 0 100 rotary F1 Level
55 0 100 rotary F2 Level
56 0 100 rotary Preflt Level
57 16284 100 rotary F1 Pan
58 16284 100 rotary F2 Pan
59 16284 100 rotary Preflt Pan
60 0 6 switch Preflt Src
61 0 1 switch F1 Sign
Out 62 0 6 switch Drive Type
63 0 100 rotary Drive Level
64 0 100 rotary Pgm Level
65 16334 50 rotary FX Mix
230 16334 50 rotary FX Bal
231 0 6 switch FX1 Type
232 0 100 rotary FX1 Para 1
233 0 100 rotary FX1 Para 2
234 0 127 rotary FX1 Para 3
235 0 127 rotary FX1 Para 4
236 0 1 switch FX1 Para 5
236 0 1 switch FX1 Para 6
245 0 6 switch FX2 Type
246 0 100 rotary FX2 Para 1
247 0 100 rotary FX2 Para 2
248 0 127 rotary FX2 Para 3
249 0 127 rotary FX2 Para 4
250 0 1 switch FX2 Para 5
251 0 1 switch FX2 Para 6
Env 1 66 0 255 rotary E1 Attk Time
67 0 2 switch E1 Slope
68 0 255 rotary E1 Decay Time
69 0 2 switch E1 Slope
70 0 256 rotary E1 Sustain Time
71 0 100 rotary E1 Sustain Level
72 0 256 rotary E1 Release Time
73 0 2 switch E1 Slope
74 0 100 rotary E1 Vel->env
75 0 1 switch E1 Rst Every note
76 0 1 switch E1 Freerun
77 0 3 switch E1 Loop
78 0 1 switch E1 Suspedal
Env 2 79 0 255 rotary E2 Attk Time
80 0 2 switch E2 Slope
81 0 255 rotary E2 Decay Time
82 0 2 switch E2 Slope
83 0 256 rotary E2 Sustain Time
84 0 100 rotary E2 Sustain Level
85 0 256 rotary E2 Release Time
86 0 2 switch E2 Slope
87 0 100 rotary E2 Vel->env
88 0 1 switch E2 Rst Every note
89 0 1 switch E2 Freerun
90 0 3 switch E2 Loop
91 0 1 switch E2 Suspedal
Env 3 92 0 255 rotary E3 Attk Time
93 0 2 switch E3 Slope
94 0 255 rotary E3 Decay Time
95 0 2 switch E3 Slope
96 0 256 rotary E3 Sustain Time
97 0 100 rotary E3 Sustain Level
98 0 256 rotary E3 Release Time
99 0 2 switch E3 Slope
100 0 100 rotary E3 Vel->env
101 0 1 switch E3 Rst Every note
102 0 1 switch E3 Freerun
103 0 3 switch E3 Loop
104 0 1 switch E3 Suspedal
LFO 1 105 0 1 switch LFO1 Tempo sync
106 0 1023 rotary LFO1 Rate (free)
159 0 24 rotary LFO1 Rate (synced)
107 0 4 switch LFO1 Reset
108 0 100 rotary LFO1 m1 slider->lfo
LFO 2 109 0 1 switch LFO2 Tempo sync
110 0 1023 rotary LFO2 Rate (free)
160 0 24 rotary LFO2 Rate (synced)
111 0 4 switch LFO2 Reset
112 0 100 rotary LFO2 m1 slider->lfo
S/H 113 0 1 switch SH Tempo sync
114 0 1023 rotary SH Rate (free)
161 0 24 rotary S&H Rate (synced)
115 0 4 switch SH Reset
116 0 112 rotary SH input
117 0 100 rotary SH smoothing
Mod1 180 0 37 rotary Mod1 Src
181 0 77 rotary Mod1 Dest
182 15384 1000 rotary Mod1 Lev
183 15384 1000 rotary Mod1 Offs
Mod2 184 0 37 rotary Mod2 Src
185 0 77 rotary Mod2 Dest
186 15384 1000 rotary Mod2 Lev
187 15384 1000 rotary Mod2 Offs
Mod3 188 0 37 rotary Mod1 Src
189 0 77 rotary Mod1 Dest
190 15384 1000 rotary Mod1 Lev
191 15384 1000 rotary Mod1 Offs
Mod4 192 0 37 rotary Mod1 Src
193 0 77 rotary Mod1 Dest
194 15384 1000 rotary Mod1 Lev
195 15384 1000 rotary Mod1 Offs
Mod5 196 0 37 rotary Mod1 Src
197 0 77 rotary Mod1 Dest
198 15384 1000 rotary Mod1 Lev
199 15384 1000 rotary Mod1 Offs
Mod6 200 0 37 rotary Mod1 Src
201 0 77 rotary Mod1 Dest
202 15384 1000 rotary Mod1 Lev
203 15384 1000 rotary Mod1 Offs
Mod7 204 0 37 rotary Mod1 Src
205 0 77 rotary Mod1 Dest
206 15384 1000 rotary Mod1 Lev
207 15384 1000 rotary Mod1 Offs
Mod8 208 0 37 rotary Mod1 Src
209 0 77 rotary Mod1 Dest
210 15384 1000 rotary Mod1 Lev
211 15384 1000 rotary Mod1 Offs
Mod9 212 0 37 rotary Mod1 Src
213 0 77 rotary Mod1 Dest
214 15384 1000 rotary Mod1 Lev
215 15384 1000 rotary Mod1 Offs
Mod10 216 0 37 rotary Mod1 Src
217 0 77 rotary Mod1 Dest
218 15384 1000 rotary Mod1 Lev
219 15384 1000 rotary Mod1 Offs
Mod11 220 0 37 rotary Mod1 Src
221 0 77 rotary Mod1 Dest
222 15384 1000 rotary Mod1 Lev
223 15384 1000 rotary Mod1 Offs
Mod12 224 0 37 rotary Mod1 Src
225 0 77 rotary Mod1 Dest
226 15384 1000 rotary Mod1 Lev
227 15384 1000 rotary Mod1 Offs
Track 118 0 111 rotary input
119 0 9 rotary preset
120 0 1 switch Grid 12/16
121 0 200 rotary Tracking Point - 16
122 0 200 rotary Tracking Point - 15
123 0 200 rotary Tracking Point - 14
124 0 200 rotary Tracking Point - 13
125 0 200 rotary Tracking Point - 12
126 0 200 rotary Tracking Point - 11
127 0 200 rotary Tracking Point - 10
128 0 200 rotary Tracking Point - 9
129 0 200 rotary Tracking Point - 8
130 0 200 rotary Tracking Point - 7
131 0 200 rotary Tracking Point - 6
132 0 200 rotary Tracking Point - 5
133 0 200 rotary Tracking Point - 4
134 0 200 rotary Tracking Point - 3
135 0 200 rotary Tracking Point - 2
136 0 200 rotary Tracking Point - 1
137 0 200 rotary Tracking Point 0
138 0 200 rotary Tracking Point 1
139 0 200 rotary Tracking Point 2
140 0 200 rotary Tracking Point 3
141 0 200 rotary Tracking Point 4
142 0 200 rotary Tracking Point 5
143 0 200 rotary Tracking Point 6
144 0 200 rotary Tracking Point 7
145 0 200 rotary Tracking Point 8
146 0 200 rotary Tracking Point 9
147 0 200 rotary Tracking Point 10
148 0 200 rotary Tracking Point 11
149 0 200 rotary Tracking Point 12
150 0 200 rotary Tracking Point 13
151 0 200 rotary Tracking Point 14
152 0 200 rotary Tracking Point 15
153 0 200 rotary Tracking Point 16
14
Salut,

Merci pour les données Clyde :bravo:, j'ai repris ça et je publierai un lien vers le tableau des valeurs histoire de pas trop prendre de place dans le topic.

Alors comme on peut le voir dans un autre topic du forum du Micron, il y a un paramètre qui a une particularité.

En effet pour créer un "mod route" (modulation routing) il faut valider une question que pose le micron, et là aucune commande midi ne permet de simuler cette réponse, aucune adresse connue en tout cas (code nrpn etc.) ne permet de recevoir l'information de création d'un mod path...



Donc pour le moment nous n'avons pas d'autre solution que de créer préalablement le nombre de "mod route" voulu.

Une solution envisageable serait d'utiliser les sysex, c'est à dire envoyer la définition complète du "program" avec, par exemple, 8 "mod routes", ça fera partie d'une évolution du soft, à moins que nous ayons trouvé une autre solution.

Si je ne suis pas clair, ne pas hésiter à me le dire hein ;o)

La suite demain :o) Ciao !!
15
Oui, mais le sysex va "écraser" ton programme....
à chaque utilisation...
16
Oui je n'ai pas précisé qu'il faudrait du coup récupérer toutes les données saisies depuis l'interface, pour les intégrer dans ce sysex. Enfin je précise que l'utilisation du sysex ne concernerait que le modulation routing.

Cela veut dire aussi que le soft doit pouvoir récupérer les données constituant les paramètres d'un program que l'on va éditer...

PS : va falloir modéliser... Clyde tu programmes un peu ? UML tu connais ? Faudra que je demande aussi à absynthminded
17
Na! camarade, je n'ai absolument pas le temps de travailler là dessus... désolé!
je veux bien "aider" comme ça si tu acceptes!
Quant à la requète sysex... vu du micron, c'est aussi une "question"...
alors...
18
Pas de prob.

Il va de soi que certaines action sont à réaliser depuis le micron.

J'imagine, comme ça, tu lances l'appli, tu décides d'éditer un program particulier, tu choisis ce programme depuis le micron, tu te déplaces dans le send sysex, dans l'appli tu cliques sur un bouton de chargement, elle se met en attente et tu "lances" l'envoi etc.
19
La suite! boumboumboum, la suite! boumboumboum, la suite boumboumboum :(((
hiphiphip houraaaaa
20
Salut runm->tu t'y connais en carte mere d'asr :mdr:
21
Bonjour a tous Voila un Soft que j'ai fait apres avoir ,comme vous , trouver que la programmation était forcement difficile avec un seul potar...
Ce soft utilise l'Nrpn..
Et on pilot tout... Voice.Osc.LFO.Filters.Fx.Out.premix.postmix.Modulation..etc.
Tenez moi au courant s'il y ades choses à modifier...
Uniquement pour Mac... si quelqu'un utilise maxMsp, je peux lui envoyer le Patch pour le compiler pour PC...

Voici le lien : http://mapage.noos.fr/martin.rossi/martine/NrpnToMicronFolder.zip

Avoir aussi http://mrbook.org/micronizer

Siroptinmar
MacOS 10.3.9, powerbookG4 12" 1,33Ghz 740M de Ram. Disque ext Firewire 300giga 7200tr Maxtor.
22
On dirait que NrpnToMicron vous convient puisque personne ne repond....
Meme pas un merci ! rien.
Allez ciao
javascript:emoticon(':non:')
MacOS 10.3.9, powerbookG4 12" 1,33Ghz 740M de Ram. Disque ext Firewire 300giga 7200tr Maxtor.
23
Salut Siroptinmar !!!

Moi ça m'interesse beaucoup ton éditeur !! en fait j'essaye tant bien que mal de faire marcher micronizer mais g compris par la suite avec tes messages qu'il fallait autre chose pour le faire marcher sur PC !!!

Micronizer ne marche que dans un sens. J'arrive à envoyer en sysex un prog du micron vers l'éditeur, tout les éléments arrivent impec, mais kan je modifie les éléments et que je veux faire un renvoi vers le micron, aucune réaction de réception de la part du synthé... grrr :oo: :oo: :oo: . ca viendrait de koi ??? du patch manquant ou autre chose ??? g kan meme téléchargé nrpn mais bon je vois pas komment l'utiliser du coup avec micronizer........ (je suis pas trop expert en midi ou sysex :??: ...)

tu crois que tu peux faire passer l'élément manquant ???

Merci d'avance !!!!!!

Camille
24
Donc .... Ce sont 2 choses differentes.... NrpnToMicron Sert uniquement à modifier les parametres du micron sans la molette.. Pour sauvegarder le son obtenu, tu ne pourras le faire que en faisant save dans le Micron..
En ce qui concerne Micronizer, c'est la meme chose mais il fais aussi envoie et reception de Sysex(cela permet d'envoyer et recevoir l'integralité des parametres et de les sauvegarder, normalement)ca s'appelle, "Bulker".
Donc je te filerais NrpnToMicron pour PC, mais pour cela il te faut "MAX/MSP Runtime" sur le site Cycling74.com.... C'est avec ca que j'ai créé NrpnToMicron. Comme ca je te file le programme non Compilé pour Mac et Ca marchera...
PS Il existe de petit utilitaire pour Bulker tes sons entre Tpn Micron et ton Ordi...

A bientot. Je te poste Ca Lundi Prochain.
MacOS 10.3.9, powerbookG4 12" 1,33Ghz 740M de Ram. Disque ext Firewire 300giga 7200tr Maxtor.
25
Ok merci pour ta réponse !!!

bon bé c cool si j'arrive à faire marcher ca sur PC, mais mon doute reste avec micronizer qui ne renvoit pas les sysex sur mon micron... mais peut etre tout s'éclairciera avec ton fichiers !!

@+ ! :P: :P:

Cameuls