Home › Forums › General › News and releases › 1278 issues
- This topic has 22 replies, 2 voices, and was last updated 11 years, 3 months ago by dasfaker.
-
AuthorPosts
-
February 9, 2013 at 10:06 am #6279
PatchDataLoaded = midiMessage:getData()
console(""..PatchDataLoaded:toHexString(1))This works fine and I get the dump in the console.
programData = midiMessage:getData():getRange(09,514)
console(""..programData:toHexString(1))But when I use getRange I get this error
Error message: [string “–…”]:28: attempt to call method ‘toHexString’ (a nil value)February 9, 2013 at 8:54 pm #6286Fixed in 1279.
But there is something else wrong, and difficult to debug (present in 1279 and 1278).
When I receive a patch dump, the midiReceived method is executed to assign values to modulators one by one. The problem is that the method isn’t executed till the end and when it reach some point, I see in the log file that the method is assigning values again to the same modulators in a random order. The method seems to enter in a recursive loop calling once and again the same modulators, while others never get its value, and Ctrlr freezes.
Of course the method was working right before rev. 1278
February 9, 2013 at 11:35 pm #6288Have you seen this changelog
“A fix for handling changes to modulators, a case where the same value is set twice with a force == true flag. In this case the propertyChanged() callback does not happen on the CtrlrModulator object, i added a statement that removes the property before re-setting it to the same value, this will cause a change update.”This might be causing different behavior when setting modulator values from LUA.
February 10, 2013 at 12:16 am #6290also, does this mean that the Panel method for receiving messages is called more then once for ONE program dump, one large program dump – many executions of the method ?
February 10, 2013 at 1:12 am #6291Yes, I read the changelog. If I understand correctly, problems will occur if I assign the same value to the same modulator twice with a true flag. I think it’s not the case.
The method is executed only once and there is no loop coded inside, each modulator is called by name one by one to assign them it’s value. But when the method is executed I see in the log file that there’s a point in which some kind of infinite loop appears and a variable bunch of modulators are called once and again. The coded order is broken.
On another modulator I have a similar problem that I have to investigate a bit more, but again executing it’s lua method create an infinite loop that sends program change messages to the synth frozen Ctrlr.
February 10, 2013 at 4:07 pm #6296Finally I found the problem, and as you suggested it was due to double setting the same value to a modulator, it was in another method and it was hard to find it.
I was using the trick of setting twice the same value on uiListBox because it was the way I’ve found to uncheck all rows in the listbox. If the listbox had 15
rows, assigning twice a value > 15 unchecked all rows. How can I get the same effect?February 11, 2013 at 7:49 pm #6310Solved the uiListBox problem.
But there seems to be another one (in fact, the original problem). If I set in LUA the value of a modulator that is linked to another one, the endless loop appears. Both modulators must be linked to each one for this to happen.
Must we return to the old times when linking modulators was buggy and make the linking with LUA or can you fix it?
February 11, 2013 at 9:29 pm #6314It was never my intention to have anything “buggy”, if there is a bug report it, otherwise i won’t fix something i’m unaware of.
I don’t understand how should i replicate a problem, maybe an example panel could help, i don’t know what to link where and where to call LUA and how.
February 11, 2013 at 9:37 pm #6315Here you have. Click twice on the button.
Attachments:
You must be logged in to view attached files.February 11, 2013 at 10:39 pm #6317Try it now.
But i think the idea in the panel is incorrect, you created a feedback loop, you should never do that.
February 11, 2013 at 11:19 pm #6318If I only link mod1 to mod2, moving mod2 don’t move mod1, it’s not bidirectional. I’ve had done modulator links on my panels with lua, testing if the new value was different to avoid feedbacks. Then some day ago a new revision did the double linking possible so the lua method was no necessary, until now.
I’ve not checked the new rev yet, I’ll let you know.
February 11, 2013 at 11:21 pm #6319you should never do that, no matter what else, until a proper modulator matrix is created, for now it’s too simple and might cause problems (it doesn’t do any sanity checks)
February 12, 2013 at 12:35 am #6320I’ve added an example panel on how to work with uiListBox directly.
February 12, 2013 at 6:52 pm #6337Seems fixed, thanks. But as you recommend not to use this kind of linking yet, should we use it or not? (right now it’s working).
Thanks for the example panel. I read yesterday the Juce docs and could find the methods associated with uiListBox and they worked fine.
I’ve seen too a TableListBox class, it could be great to have it in Ctrlr. In fact there are a lot of features there that will be welcomed to Ctrlr.
February 12, 2013 at 7:06 pm #6338I’m sure there are a lot of them, but i need time to type them in, the simple class binding takes time, i need to re-implement the methods that do not work or use some very complicated classes. It’s a lot of typing and a lot of testing.
the TableListBox has a header component like the modulatorList that’s it, nothing more to it.
And yes i don’t recommend linking modulators to each other that way at least not until the modulator matrix is done, i just don’t know what will be some long term consequences for this. I know it works because i worked around the problem and i’m not sure this is a good idea, it’s really up 2 u to do that.
If you have a list of classes/components that you think would somehow improve Ctrlr, please tell me i’ll see what i can do, adding this stuff is really simple, it’s just boring and time consuming.
February 12, 2013 at 7:34 pm #6339I didn’t wanted to put you under pressure, I’m sure there are a lot of things to do more urgent on Ctrlr. Surely any of us will want something different to add.
Anyway I’ll see what could be useful.I talked about TableListBox because now I’m using a fake table of 8 listboxes to show up the patches of a bank and I miss scrolling horizontally between listboxes with the keyboard, and it will be easy to handle.
February 13, 2013 at 12:55 pm #6354After seeing the JUCE demo I realise that the table isn’t what I expected, I wanted that each cell could be selected individually.
Things that would be useful to add to Ctrlr (only a few, you just added a lot of them).
· Popup menus.
· Radio buttons in the JUCE demo: If you click on the selected item, the item doesn’t get unselected, right now in Ctrlr you can click on the selected item to unselect it (bug?)
· I see sliders that have two “pickers”. Is this implemented yet?February 13, 2013 at 2:20 pm #6355Popup menu is already there.
radio buttons behavior is not a bug, and it’s not possible to use the native JUCE code for this.
February 13, 2013 at 3:13 pm #6356Popup menu is already there.
Sorry but I can’t see it.
February 13, 2013 at 3:34 pm #6357Well it’s there i see it just is hard to use since JUCE has changed, i just updated it to make it easier to user, i’m also adding and example panel to the Panels dir for a simple demo.
-
AuthorPosts
- The forum ‘News and releases’ is closed to new topics and replies.