Forum Replies Created
-
AuthorPosts
-
Hi Daslicht – the code in that panel is either too clever for my understanding and on another level, or way off mark – I’m really not sure, but it’s probably a waste of time looking at it. My panel is known to work for the JD-990, but I’m not familiar with the JD-800 (ie don’t have one). I tried to PM you; didn’t work, but you can find my email address listed on the panel if you go to panel author email.
This post lists the differences, but I think the sysex is all different if I remember correctly – It might be possible to just change over the sysex to start with and then add and (mostly remove?) certain features of the panel
https://www.gearslutz.com/board/electronic-music-instruments-and-electronic-music-production/239173-roland-jd-800-jd-990-a.html
Cheers,
※ I tried re-editing the post, but it got nuked, so I am reposting it here!
Hi Jsh,
You can create a callback function for a uiLabel using:
Called When the Label Content changes
and you can mask user input using the field Allowed characters the user can input
That should work!
note:
With askForTextInputWindow() it seems you can’t tell whether Okay/Cancel was clicked, so AlertWindow() is probably more useful
https://ctrlr.org/forums/topic/ctrlrluautils/#post-6489
For an example of how to use AlertWindow() see:
https://ctrlr.org/generic-sysex-dump-editor/
Regards.
- This reply was modified 3 years, 6 months ago by dnaldoog.
You can get it here†, but it is very broken and always was in super alpha state. Certainly not even close to working with the JD-990.
You would be far better off modifying my JD-990 panel for the JD-800. http://ctrlr.org/roland-jd990-super-editor/
†
https://web.archive.org/web/20150504211804/http://ctrlr.org/panels_deprecated/
Regards,
FYI, I made a long reply but don’t see my text after an edit…
Will wait till tomorrow to see if it gets published. If not, I’ll redo it (I did a copy /paste of the text)Hi Goodweather,
When that happens, it probably means it’s gone forever (did you edit and save a third time?) – so you would have to now paste/re-submit that saved message.
Regards,
John
- This reply was modified 3 years, 7 months ago by dnaldoog.
Do you mean last item clicked on or last item in the uiListBox? It seems to me if you click on an item it stays highlighted when unfocused.
Hi Jsh,
If you’ve got as far as detecting Mouse Events on uiComponent, you can embed the images directly into the uiComponent with code like: (this is for if the image size is exactly what you want otherwise use drawImage()). You could dynamically change opacity depending on which image was clicked on.
Does this help?
frResource=resources:getResource("myImage") if frResource~=nil then frImage = Image() frImage = frResource:asImage() g:setOpacity(1.0) -- 0.0 - 1.0 g:drawImageAt(frImage,0,0,false) -- x,y position in uiComponent --g:drawImage(frImage,A,B,C,D,E,F,G,H,false) end -- image found end
UPDATE 2/19/2021
I realised there’s some redundancy in the code:
frResource=resources:getResource("myImage") if frResource~=nil then frImage = Image() frImage = frResource:asImage()
Better to do:
local frImage = Image(resources:getResourceAsImage("myImage")) if frImage ~= nil then
re: github.com/RomanKubiak/ctrlr/discussions/173
- This reply was modified 3 years, 2 months ago by dnaldoog. Reason: changed the old code github.com/RomanKubiak/ctrlr/discussions/173
September 23, 2020 at 2:02 am in reply to: what do you need to know in order to make panels? #119991At line 5:
midiMessageReceived = function(midiMessage)
Instead of
midiMessageReceived = function(midi)
??
✓
If you go here: (see image) and you can delete any attachment. It will disappear from the post:
It is better to create a function in “‘Called when the panel has finished loading” and assign a lua variable to each panel object:
eg AMP_ENV1_ATTACK=panel:getModulatorByName(“AMP ENV1 ATTACK”)
so in your function, you can just set the value on the variable, not loop through the panel looking for AMP ENV1 ATTACK and friends.
For example:
panel:getModulatorByName("AMP ENV1 ATTACK"):setModulatorValue(programData:getByte(2),false,true,false)
becomes:
AMP_ENV1_ATTACK:setValue(programData:getByte(2),true)
(I don’t fully trust setModulatorValue())
Regards,
JG
I have no idea about Logic, so no idea why I am replying!!! … but the ‘logic’ could be the same for connecting to Reaper or Cubase (under Windows)
Instructions under the area Connect to JD-990 – PANEL AS VST
https://ctrlr.org/roland-jd990-super-editor/
September 22, 2020 at 1:36 am in reply to: what do you need to know in order to make panels? #119962Hi BAUS,
Here are two scripts for 4 bit nibble conversion/creation!
Regards,
JG
function make4nibbilize(n) -- convert integer into two 4 bit nibbles local bv = BigInteger(tonumber(n)) return bv:getBitRangeAsInt(4, 4), bv:getBitRangeAsInt(0, 4) end --f function de4nibbilize(a, b) -- convert two 4 bit nibbles to a single integer local n = 0 local m = bit.lshift(a, 4) local l = b return m + l end --f
The make4nibbilize function makes use of lua’s amazing ability to return two values (or more) from a function, so to use this assign the return value to two variables.
local msb, lsb = make4nibbilize(value)
September 22, 2020 at 1:25 am in reply to: Need a simple way use uiImageButton to send CC on/off #119960Hi there J_Klitzke,
One way to do it is to set
modulatorValue*127
in the Expression field.See attached panel.
Attachments:
You must be logged in to view attached files.Will release version 0.97 in that case!
That’s a good idea Tedjuh, just set the max characters to a really large value
Hey Proton and others,
I finally got around to trying to use SVG in a panel (using the zipFile class as mentioned).
Here is an example panel, which is probably at the very limit of my knowledge about this topic!!
Version 0.1
Attachments:
You must be logged in to view attached files.Hi BAUS,
Yes I too noticed that uiLabel can’t seem to be edited if the already existing string is too long.
Did you try the minimilist panel with and added small orange square button? It is attached in the post above.
https://ctrlr.org/wp-content/uploads/2020/09/GSDR_0_9_7_test_forum_version.bpanelz
That seems to work for large dumps although the editor window is rather small.
Regards,
- This reply was modified 3 years, 7 months ago by dnaldoog. Reason: added url
Thanks Tedjuh,
I added a zoom feature, but left the icons the same size. Version 0.95 (you can download the panel) won’t post/attach it here. ctrlr.org/generic-sysex-dump-editor/. Everything should scale on a 4K display as there are no images in the panel.
The uiLabel field on the original ‘big brother’ design didn’t actually do anything.
It would be possible to add to the minimalist version
modalWindow:addTextEditor("Request_Data", dump_request, "EDIT SYSEX STRING", false)
… to a separate modalWindow that allowed editing and which modified the MemoryBlock() contents.
Or add it to the big brother Version.
I could do that if you like, unless you would like to try, I don’t mind?
That would suit BAUS’s request too.
You could upload it under your own name if you like!
I released the panel:
To Dnaldoog:
I was just wondering if the record and dump request buttons needed to be separate. Wouldn’t it make sense to Record straight away and do the dump request by pressing just one button? Maybe put a little delay with a timer on the “Dump Request” to make sure all data is being recorded?
@Tedjuh – Just noticed this post – yes it’s a good idea and possible – I kind of committed to the two button approach with the uiComponent and I like the look of those three primitive shapes together, but very possible using global switching variables.
@BAUS – this panel should work with any MIDI device – Let me know if it works?This is a new minimilist version using uiComponent
Am calling it Version 0.9.
Please let me know if there are any issues.
I released this as a panel.
@tedjuh – that is an excellent adaption and addition!Just one thing to beware of:
In the head of many functions in that GSDR_1_3_beta.bpanelz panel is the code:
if panel:getBootstrapState() then return end if panel:getRestoreState() == true or panel:getProgramState() == true then return end
This will break a standalone instance. Actually, because all functions are called through MouseDown on Component and not Called When Modulator Value Changes it is not necessary anyway.
※ see ctrlr.org/forums/topic/standalone-images-not-loading/Attachments:
You must be logged in to view attached files. -
AuthorPosts