Forum Replies Created
-
AuthorPosts
-
Thanks Atom, gonna mess with this some more now π
Also good to know about the getModulatorByName being too taxing @ runtime, i do that all the time…
Knowing stuff like this will make building the next revision of my panel waaaay smoother!
As for the “general” picture:
You can access the properties of a modulator’s parts by “grabbing” the part you want to manipulate and the (try to) get/set the individual properties.
The above example gets you inside the “MIDI” part of the modulator, if you want to access the component properties you need to type:
x = panel:getModulatorByName("yourModHere"):getComponent()
And then you can do stuff like
x:setPropertyString("componentVisibleName", "WhateverYouWantTheNameLabelToDisplay")
x:setPropertyInt("componentVisibility", 1) -- to make a modulator visible
x:setPropertyInt("componentVisibility", 0) -- to make a modulator invisible
Good luck!
Your question made me curious on how this can be done , fooled around a bit and managed to get midi message types to change π
Changing the values of the other properties did not work through Lua at this time, probably because i am not using the exact correct syntax of the properties, I always end up with extra properties attached to the component π
I guess i have to use escape characters to skip the spaces in properties like “MIDI Controller number”? Time to study those…But setting the values of the properties by hand and the switching between types works.
Here’s an example of a combobox Β changing the midi-message type of another modulator:
switchMidiType = function(mod, value)
sel = panel:getModulatorByName("modulator-2"):getValue()
modToChange = panel:getModulatorByName("modulator-1"):getMidiMessage()if sel == 0 then
modToChange:setPropertyInt("midiMessageType",9) -- none is 9th option
elseif sel == 1 then
modToChange:setPropertyInt("midiMessageType",0) -- CC is 0th option
elseif sel == 2 then
modToChange:setPropertyInt("midiMessageType",5) -- sysex is 5th option
elseif sel == 3 then
modToChange:setPropertyInt("midiMessageType",1) -- aftertouch is 1st option
end
endI do have to say i can’t see why you would want to do it this way though. I guess you you want a modulator on one spot to “change” types, it would be easier to make multiple modulators stacked on top of eachother and switch their visibility. Imo, of course.
Cool, thanks Atom
Kinda in the same boat here so i get ya.
Started a fulltime class for network admin last month, and when i get home my son is priority 1. When he goes to sleep i am usually too tired to bother getting behind the computer – especially because i have been behind one all day, rather spend some time with the misses.
Sometimes i get a day off from the class and then i make some time to work on my panel, but these moments are scarce.
Bottom line – i don’t mind the wait π
Ok, thanks for clearing this up for me.
Did you get around to doing this Atom? I ask because using the what() command in rev 1320 i found a great number of midi-related functions that look very interesting, but i cannot seem to get them functioning…
Examples of the functions i found for MidiMessage that i suspect i can use for this:
isMidiStart
isMidiStop
isMidiContinue
setTimeStamp
addToTimeStamp
etc...Yeah some weird bug, i was here on my phone and the submit button did not show up…
For the knob you need to use a UIFixedSlider, and put your values in the slider contents pane like this:
16'=1
8'=2
4'=3
If the values you need to send out are different than 1,2,3 etc…you just change them to the ones needed.
16'=105
8'=110
4'=120
If the sysex formula has only one variable – i suppose this is the case here – you can set it up in the midi properties of the slider. Β Set the midi message Β type to sysex, Β put in the sysex string you want to send in the sysex formula pane, and put xx where you want the slider’s value to go.
For more complicated stuff you will need to use Lua. This might seem daunting at first but once you get the hang of it you can setup really cool stuff.
Good luck!
I think this will do the trick for you. I have used some of this code for the binary stuff i encountered.
http://www.math.ntnu.no/~stacey/documents/Codea/Library/BinDecHex.lua
You will have to rip out some parts to make some custom functions of it, then you can use them for constructing your binary messages and convert to hex.
*edit*
link dissapeared on posting, put it as flat text instead.V 1.2.6 now available – maintenance update.
Minor bugfixes to problems pointed out by various users:
Welcome message should be ok now (some hosts made an endless loop of this window…)
Multimode selectors setting ch1 to preset 1 on panel loaded fixed, it is now muted during startup so won’t shoot out it’s command anymore.
Version numbering corrected.
Keyrange graphics script error message fixedRevised list of supported devices:
E4
E64
E64FX
E4K
E4XT
E4X
E6400 (aka βclassicβ)
E4XT Ultra
E6400 Ultra
E-synth
E5000 (ultra)New features will be on hold atm, first i need to fix the “sysex flooding” that sometimes occurs.Β This is due to the panel sending too much data in a short timeframe, somehow locking up the sysex interpreter in the sampler, resulting in non-responsiveness to parameter changes made in the panel.
Saving your preset and rebooting the sampler is the only workaround at this moment. Β My advice is to take the precaution of saving to a “temp” preset in case of possible data corruption. I have not (yet) encountered messed up presets but better safe than sorry.
I propably forgot to disable the multimode selection knobs on startup , this needs to be done to prevent it from shooting out its values when the panel is loading.
Thanks for pointing this out, will fix it for the next update.Yes, the e5000 ultra also runs eos so it should work. Also the e-synth apparently runs eos so this can also be added to the supported devices. Will make a revised list on next update.
Cheerz,
HecCool, thanks Atom!
The device, all is fine @ the Ctrlr end.
what does it mean βknocked outβ ?
It stops responding, propably the software on the device hangs when too much data is received in a short timeframe.
Other midimessages still get handled though so cc and note data is still reacted to.My guess is that the sysex interpreter is limited to a certain data rate, not the full midi-standard 31250 baud bandwidth, and limiting the data rate of the sysex messages Ctrlr spits out at certain moments would keep the device from dropping out.
I know i could use loads of cascaded timers to spread out the load, but this would be a very “clumsy” and inflexible way imo because alot of different messages are being sent.
Wow Atom this really adds alot of extra value to Ctrlr, and i think it will make alot more people interested in Ctrlr. From what i see (and with my very limited programming skills) this list looks pretty complete for preset management, and the customContainer will no doubt be able to fill in specific needs.
Thank you for reporting these findings tech22.
Sorry about the late reply, i somehow managed to overlook your update to this thread.1-Will pay attention to numbering in the next update.
2-My bad, the call for this has to be moved, will be fixed in next update.
3-Do you mean that when the panel loads it sets the device to P001 on ch1 in multimode setup?I also have a question for you:
It seems that sometimes the sysex interpreter on the emu locks up, presumably because i am flooding it with too much data in short succession – still researching the limits for when this occurs & hope to be able to fix it soon. Have you encountered this also sometimes?
Note messages still work in this scenario, but no reaction to parameter changes on the panel occur, althought the “midi received” indicator on the device reacts as normal.cheerz,
Hec
February 11, 2013 at 2:52 pm in reply to: Newbie to ctrlr, not sure how to route the MIDI to my Virus? #6304Set midi in and out to the ports your virus is connected, set controller to your keyboard.
If in a daw as plugin disable the mididevice the virus is hooked up to, Ctrlr needs direct access. Then just point a midi track to the track containing the Ctrlr plugin, Ctrlr will handle the midi-routing to your device.
Also, after disabling the mididevice in your daw restart it, to make sure the device is not hogged by it anymore.
Finally had some time to try this out and got it working, big thanks Atom π
-
AuthorPosts