Forum Replies Created
-
AuthorPosts
-
Thank you DNalDoog, that code should save me a lot of time. I’ll get back on it..
Unfortunately they are all being used. To be honest, I noticed a small delay (3 to 5 seconds) between the sysex and the modulators all being updated. This might explain why. I’m curious if it makes a difference. Couldn’t hurt to try it out.
Thx. Ok, clear. More memory usage but faster lookup. I have a lot of modulators (1500+) so might be interesting to give it a go.
How/ why is it faster to pre-define the modulators in a “panel finished loading” script? I read somewhere it had to do with lookup time for a certain modulator. I get that. But how much faster is it? Are we talking miliseconds? Is it more CPU friendly? What are the benefits?
Because if that’s the case I have to go over 50 lua scripts to do that. Not that much of a problem, the panel (a librarian/ editor for the Roland SH-201) is almost done. Well, to be released as beta after 6 months in the making. Learning lua, juce and Ctrlr at the same time.
But.. as I’m tempted to make another panel (for Roland Gaia SH-01) it gives me the chance to do it the proper way from the start.
Take the modulatorvalue 0 or 1. Might be you have to take 1 for off and the 0 for on because you use a mouse event. Noticed in my own panel I had to do it in reverse..
Or put it directly with sysex.. where in the sysex 0x00 = off or 0x01 is on, usually. There are cases when 0x00 is off and then there is a value 1-127. But it’s hard to tell without an example.
modulators{[1]=value,[2]=value, and so on}
if modulators[2] == 0 then
Do something..Hope this gives you a headstart..
Double post, I know.. but I noticed messages disappear when edited too much.
For sending/ receiving. See page 7 of the midi implementation. “Enable all Midi Send/ Receives.
Send: F0 01 7E F7This forces all send/ receives to be enabled, including wheels, program changes and parameter changes. Should be harmless to send it anyway at panel loaded. Right?
For the key tracking? Can this be done with an else/ if statement in the midireceived?
if byte(A) == 0 and byte(B) == 0 then
set slider to off
elseif byte(A) == 1 and byte(B) == 0 then
set slider to half
elseif byte(A) is 0 and byte(B) is 1 then
set slider to full.To check if the midi sending/ receiving is enabled, you could send a system id request. If the synth sends an id back, the sending/ receiving should be on. If it doesn’t it’s turned off. Should be doable with an easy if then else statement.
You will have to put the Korg Monologue in “Global Edit Mode” (p.28 in the manual). When put in global edit mode, check the settings which are described at page 42/43 (Button 6 and 7) in the manual that deal with receiving and sending midi/ sysex to and from the synth. This might solve some problems when not getting any data from or to your synth. Also check the settings under “Midi” in CTRLR, they should match.
Then on page 46 in the manual, there’s the “All Dump” (Button 15) which gives you all the parameters in system exclusives in one dump. Download the midi implementation (It’s not in the manual..) from the next addres: https://www.korg.com/us/support/download/manual/0/733/4231/
and that’s when the fun begins..
Don’t know if it’s of any help but I saw a program somewhere written in basic (it’s from the eighties) for the six trak that deals with this problem if I remember correctly. I have to search for it so I’ll get back on it.
Can’t remember it had to do with midi cc or with the sysex.. so don’t hold your breath.
I’m working on a chordBuilder and was in need of some symbols for chords like O,Ø,¯5,_ (diminished, half diminished, -5,flat)
See “right one.jpg” for typing a alt-code(0216) or “Ø” directly in the uiLabelText window. See “faulty one.jpg” when I insert the same alt-code through lua in a uiLabel.
Did some reading and found out it had something to do with “string.char”. In this case, when I type: (“C”string.char(0216)) in lua, it shows CØ correctly.
So, thnx for the heads up. Found out already. But typed the answer to my problem here anyway in case someone else might have the same problem as I did.
Attachments:
You must be logged in to view attached files.andy..
the link is dead indeed. But Goodweather wrote a how to guide for Ctrlr. See this topic: https://ctrlr.org/forums/topic/ctrlr-step-by-step-guide/
It helped me a lot getting started with ctrlr.
Whew, guess I solved my own problem.
i = tonumber(labelNr) for i = labelNr,31 do i = i + 1 if panel:getComponent(row..i):getProperty("uiLabelText") == "Tie" then panel:getComponent(row..i):setText("") panel:getModulatorByName("vel"..row..i):setModulatorValue(0, false, false, false) elseif panel:getComponent(row..i):getProperty("uiLabelText") == "X" then break end end
Now it doesn’t delete all the ties in the 1st or 2nd bar when i delete the ties in the third. This works when the clicked label is a Tie, now to make it work when the clicked label is an “X” followed by a Tie or Ties.
Noticed the binary stuff too. But you know, 2 at night. Mind working at half capacity. Thought it was a fun thing to work out with a fresh mind on christmas morning. But you beat me to it DnalDoog. Thnx!!
Now back to my never ending sh-201 panel.
Been looking into it as well. Haven’t figured out the msb/ lsb part you are asking for, unfortunately. But I noticed a pattern that might get you a little bit further.
Channel 1 settings, according to the 20.3 table in the manual it’s 02H. When every setting is set on on its own (without other settings on) I get this:
02 01 — front = on
02 02 — hi z = on
02 04 — auto = on
02 08 — locut = on
02 10 — m/s = on
02 20 — phase = on
02 40 — p48 = onThe pattern I noticed is that they all add up.. to get the right data sysex:
02 01 + 02 02 = 02 03 means front and hi z should both be on
02 01 + 02 02 + 02 04 = 02 07 : means front, hi z and auto should be on.
02 01 + 02 04 = 02 05 means front and auto should both be onso to test this:
p48 on + locut on = 02 48
p48 on + locut on + phase on + front on = 02 69for clock and settings it doesn’t seem to work but there is also a pattern:
18 40 clock source internal 44,1
18 48 clock source option
18 50 clock source aes
18 58 clock source wckwith additional settings:
18 41 clock source internal 48
18 42 clock source internal 44,1 DS
18 43 clock source internal 48 DS
18 44 clock source internal 44,1 OS
18 45 clock source internal 48 OS18 05 — Analog Out 13 db
18 25 — Analog Out 19 db
18 45 — Analog Out 24 db19 06 — autoset Limiter -1db
19 0E — autoset Limiter -3db
19 16 — autoset Limiter -6db
19 1E — autoset Limiter -12db19 3E — delay compensation on (-12db)
19 36 — delay compensation on (-6db)
19 2E — delay compensation on (-3db)
19 26 — delay compensation on (-1db)Maybe the autoset limiter and delay compensation may add up ass well, have to take another look. When there’s a pattern, things are easier to understand. There’s some logic behind it all. But I have to admit that the sysex implementation is unnecessary complicated. But the tables for setup1, setup2, channel settings all seem to work up from the bottom.
For Example: (setup 2 table)
lock keys = 01H
peak hold = 02H
fol clock = 04Hand when you set peak hold and fol clock on.. the sysex data is 06H. So they add up as well.
If someone is able to tell what this has to do with MSB/ LSB.. then please.. tell us 🙂
Does the modulatorValue of an uiLabel change at all? I tested this. Static or not static, edit on single or doubleclick, modulatorValue doesn’t change.
If you want something to happen when the content of a label is changed, u need to write a lua script and attach it to uiLabelChangedCbk. At least that’s how I do it.
Correct me if I’m wrong.
-
AuthorPosts