Forum Replies Created
-
AuthorPosts
-
It’s like digging for gold.If you find it you are very happy, but few people are willing to share the gold they have found. Luckily not everybody is like this and that’s what’s keeping these forums interesting and a source of gold. That is what open source software is all about!
Here is the attachment.
Attachments:
You must be logged in to view attached files.I don’t own a Virus, but looked at the manual (Access Virus Manual v4 as pdf) and on page 255 you will find the information about which sysex command to send to the Virus to request a Single Dump (for one preset). On page 258 all the parameters are explained. With CTRLR you can put a button on the canvas and assign the single dump sysex command to this button. Click this button and Virus will send the requested data. The incoming data you can monitor with the Midi Monitor window of CTRLR. The next step is writing a Lua script for the incoming midi data. This script will be called when CTRLR receives midi messages (see attached screenprint) and should analyze and assign parameter values to modulators. BUT it will be a heck of a job to assign each parameter value within the dump to a different modulator! (I hope I’m right about this, otherwise please correct me!) So the most important thing is to study the Virus manual and learn about MIDI (sysex) and then learn about scripting in Lua. All this took me about 2 months (and still learning and making mistakes!), mainly because you’re pretty much on your own in this matter.
There is no tutorial about how to start with CTRLR and Lua. All you can do is study the demo panels, the threads on this forum and ask questions (as specific as possible). The author of CTRLR (he calls himself ‘atom’) answers most of the time these questions, as a few other forum members do occasionally.
The main problem (IMHO) is that everyone has his own device for which he/she wants to develop a panel and each device (especially the older/retro ones) are sometimes unique in the way they have implemented MIDI, so the questions about these devices are most of the time only of interest for a very few people on this forum.
check this thread: crashing hell on Mac, please help! apart from the program issues discussed in this thread, i advice you to stay away from rev 1312 for mac. that’s why (i assume) atom added rev 1315 for mac. since then no more crashing on my mac (10.7.5).
use midi monitor window (option m). you have the choice of monitoring incoming and outgoing midi messages .
Put your panel in edit mode (option e), activate the “offending” fader (it will show a orange rectangle) and look for the property ‘Mouse cursor’. Set it to ‘normal’. You have to do this for all the faders/modulators etc. 😉
Downloaded nightly r1315 for Mac and Lua warnings for errors are back and no more frequent crashes (knock on wood…)! Great job atom, hope you did sleep well 😉 Now I can finally concentrate on writing good Lua scripts ;-)!
OK. Wish I could help, but all this is way above my head. Anyway, again many thanks for the help and all the luck with these compile issues. I personally don’t mind though developing on Windows, provided a finished panel will work on a Mac. Still need to find a way to get my Midi setup working on my windows computer . I’m using VMWare Fusion to run Win 7 on my Mac. Strange I can’t get it to work… Good night.
Thanks for pointing all this out!
1) I just used code from other panels. Nowhere can I find information to know I can also/have to write: ‘mt = CtrlrMidiMessage.ProgramChange’
2) I tried using getValue(), but then I’m only getting the value of the second byte (the preset number) which I already got by using getByte(1). For my purpose I need the channel information (getByte(0)) to distinguish between the presets on those channels.
3) I’m not getting any feedback on errors while using Ctrlr on Mac. So no error message on ‘count = count + 1’ (BTW an old Visual Basic habit, won’t make that mistake again ;-)…) I need the counting because if the count is 2 (which means there are preset names received on two channels) then I need to display two preset names in the LCD panel, otherwise only one name.
4) You’re right, this can be programmed much more efficient, but not yet a concern to me at this stage.
I seems all to boil down to the problem that ANY Lua(-related) error (and in the process of learning Lua scripting I make a lot of mistakes!) on the Mac doesn’t trigger the error feedback as on Windows, but immediately crashes Ctrlr.
Thanks very much for all your help!
Well, I’m not really sure what you mean by this, but the crashes appear since I analyze (and use) incoming Midi data, so I have attached a screen print of those data. I hope this is what you mean, otherwise let me know what else you need.
Attachments:
You must be logged in to view attached files.OK, I have attached the panel.
Attachments:
You must be logged in to view attached files.Thanks again. I will try this!
Thanks. See attached screen print. If needed I can send also the crash report, but I guess it is not of much use to you. I wished I could offer more help, but I can’t, this is a bit too much over my head! (I thought this guy ‘TK’ (Thorsten?) was quite experienced in compiling for Mac…).
Attachments:
You must be logged in to view attached files.I found the cause of the problem. When the function soundtable() receives the value ‘0’ (zero) then Ctrlr (on Mac) crashes. Of course I could have known this, but thought the crash had other reasons and not this ‘simple’ cause of calling an array with a wrong value ‘0’… So what could be the reason why this version of Ctrlr (r1312 on Mac) crashes on errors instead of telling me which method is causing the error and then let me continue? (I asked this several times now…)
Thanks for confirming this! Now that I know it works, I will try to find out why somewhere in the process an error comes up which crashes Cltrlr on my Mac. (I’m not able to check this code on Windows, because I cannot get my Midi to work on Windows :-(. Thanks again for your help, as always much appreciated!
soundtable(index) calls the function soundtable() and passes the value of ‘index’ to this function. In this function I use the value for ‘index’ as an index to an array of preset names. In my script I actualy don’t use ‘index’ as a variable name, but I thought to make it more clear by using this name.Yes, it is sloppy code up to now, but this was just an example. When testing this code I’m 100% sure ‘mt’ and ‘index’ get values (using the input midi monitor to verify this).
This is the code for the soundtable() function, with the idea of displaying preset names in the lcd-component:
function soundtable(index)
sounds = {“Piano1″,”Piano2″,”ElGrand1″,”Rhodex1″,”Wurlitz1″,”DXPiano1″,”Clavin.1″,”Vibes”,”Harpsi1″,”Organ1″,”Pipe1″,”Strings”,”Choir”,”Mutesynt”,”StrBell”,”A.Bass”,”RockPian”,”HonkyTnk”,”ElGrand2″,”Rhodex2″,”Wurlitz2″,”DXPiano2″,”SynClavi”,”Marimb”,”Harpsi2″,”Organ2″,”Pipe2″,”Atkstrin”,”AtkChoir”,”SlowSynt”,”SlowBell”,”E.Bass”}
lcd_basic_text1 = “1.”
lcd_basic_text2 = “2.”
panel:getComponent(“LCD”):setComponentText(lcd_basic_text1..sounds[index]..” -Pg “..”\r”..lcd_basic_text2..sounds[index+1])
end
That was also what i understood from your earlier answers to similar posts, BUT Ctrlr crashes on my Mac with this script. Only when I hard code a (integer) value to this variable ‘index’ then the code executes OK.
Yes, that did the trick! As usually the most simple approach works the best. Thanks!
You’re right, my windows version (just downloaded the latest nightly exe r1305) says build 1300 and the option is not on the panel. For the Mac (also r1305) though it is…
February 23, 2013 at 11:04 am in reply to: how to handle more then one received midi messages? #6622That is indeed a way to get data contained in a midi message, but doesn’t solve my issue. Thanks anyway!
I further analyzed the “problem” and it can be solved if I can dynamically change (using a loop) the midi channel called midi input channel (from device) of the panel. But when the code loops I need also to be sure that Ctrlr still has the incoming midi messages from the other midi channels in memory, otherwise looping is of no use. You can see in the attached screen print from the midi input monitor of Ctrlr (in my first message of this thread) that it receives midi messages from three channels, channel 1, 2 and 3 (or c0, c1 and c2). So the Lua script needs access to the midi data of those three channels.
So the question boiles down to this: how can I dynamically change the midi input channel (from device) in a Lua script and does Ctrlr ‘remember’ incoming midi messages from several channels?
-
AuthorPosts