Forum Replies Created
-
AuthorPosts
-
looks nice! Probably most complicated thing to do when you want to store/load presets is to read/write the sysex dump of a complete patch. Some synths are quite easy while others are really challenging. On some devices there is no or incomplete documentation of the dump. Then it gets really hard.
When you have the dump in a Lua table or in a Lua memoryblock it isn’t very complicated to save/load it to disk. As an example I would look at the panels from Carl Licroy, e.g. this one: http://ctrlr.org/power08-editor-for-dsi-prophet08/
Of course you can just save a bunch of parameters and fire them one by one to the synth, maybe with a delay in between if the synth crashes when hitting with CC’s or sysex too fast. But for a definitive solution you will have to handle the sysex dump.
What do you mean with “Free EG”? A random generator? You can generate random values easily with Lua. Why would you need graphic lines for this? There is no problem generating random lines with Lua though.
Oh yea I see. So the rev500 midi implementation just looks nice, but won’t deliver much… well :[] but Lexicon’s MPX midi isn’t very glorious either. There must be a reason why there is not one single editor for the MPX series, I mean apart from the Ctrlr MPX100 panel. Maybe the MPX 100 is less complex and therefore less prone to crash.
It would be interesting to see if the knobs “algorithm” and the “program select” listbox of my modified panel are doing anything sensefull. If you would know which algorithm you must select for e.g. the Chamber tab it would be possible to make a script which changes the algorithm automatically when you select the corresponding tab.
I have to say that the midi implementation of the MPX series is a big mess. E.g. Yamaha REV-500 is much more thought-out: https://jp.yamaha.com/files/download/other_assets/9/318469/REV500E.pdf
It even responds to a bunch of easy cc’s – anyway let’s look at the Lexicon:Yes that’s right: When you want to edit e.g. “Chamber” a program using the chamber (algorithm?!) has to be selected otherwise the MPX will crash. That leaves me to the question – what are algorithms in th MPX context? There are 11 algorithms selectable by midi-sysex (0 to 10). There is explained nowhere what these algos are… wtf?! There are much more program families:
Plate • Gate/Inv • Hall • Chamber • Ambience • Room • Tremolo • Rotary • Chorus • Flange • Detune • Pitch • Peak Expansion • Compression • Tape Saturation…
So this is does not match. Maybe you can read on the display which algorithm is active. As this all isn’t properly documented it’s all just guesswork. I attached a modified panel. There are some fixes in the graphics but note that it is very hard to rearrange tabs in Ctrlr so I left it as is. I added a tab “system/misc” with altered values. No idea if it works – just try it out.
I would change all ModulatorCustomIndex’es to the following format:
If the first “quartet of numbers” is 0003 it tells you that three quartets will follow, like this:0003 0004 0000 0005
If the first “quartet of numbers” is 0004 four quartets will follow. Delete everything after the correct number of quartets. E.g. this one is faulty:
0003 0004 0001 0006 0000 0000 0019
It should look like this:
0003 0004 0001 0006
I cannot not test this as I don’t have an MPX device to try it out so maybe I am wrong.
Attached the panel and a modified midi documentation, cut down to the mpx550, all other mpx addresses deleted. Without a comprehensive documentation it does not make much sense if I do some more work trying to help you on the panel – alas.
Attachments:
You must be logged in to view attached files.Ah, it seems there is a problem which is not as easy to fix. According to the midi implementation manual here:
https://3e7777c294b9bcaa5486-bc95634e606bab3d0a267a5a7901c44d.ssl.cf2.rackcdn.com/product_documents/documents/1099_1340212952/MPX_MIDI_Sysex_Inst_Rev1_original.pdfParameter identifier bytes must correspond to a parameter that is appropriate for the currently-running program. Sending the unit a Query Message for an inappropriate parameter will cause it to respond with a Data Message that contains a garbage value. Sending the unit a Data Message for an inappropriate parameter will cause unpredictable results, and may even cause the unit to crash. If this occurs, power cycle the unit. To avoid these complications, remember the algorithm for the currently-running program or send the unit a Query Message asking for the value of the parameter “Algorithm.” Note that some algorithms are dual programs with an additional option (see Number 6 in the next column).
So if you edit a parameter that is NOT available in the current selected alogithm the mpx will crash. To avoid problems you would need a procedure that will check which algorithm is selected. The panel should then only display “legal” parameters. When selecting algorithms from the panel it should also run a script that hides unused parameters.
If you don’t feel like programming all this you might just select parameters “wisely”: Remember the selected algorithm and only touch its viable parameters.
If you post a .bpanelz file I could have a look. Ctrlr-Tabs are a bit rickety. When you do the wrong thing you can mess them up, like e.g. it does not show the label of the selected tab. When you change to other tabs it does activate the script, which I think is a bug.
So when you set Predelay to zero it crashes the mpx? Then there may be a bug in the script. As said it would be much easier if you post a .bpanelz file here.
And yes E7 is a typo of Lexicon – it should be F7.
At first sight this all looks ok but maybe there are some bugs in the panel. The manual tells that if there are sent wrong values, e.g. an out-of-range value for the corresponding parameter the mpx could crash.
I would check the ModulatorCustomIndex and the ModulatorCustomIndexGroup for errors. Note that system parameters usually have 1 byte, so ModulatorCustomIndexGroup = 01.
Another thing: to exchange the panel use the menu
File -> Export -> Export compressed binary + ressources.
This way you get a .bpanelz file where all ressources are packed and compressed together. A .bpanelz file is so small it should be no problem to upload it here.- This reply was modified 4 years, 9 months ago by Possemo.
If the panel is too big to upload it here put it on a google-drive or someting similar. The first 15GB at google-drive are free of charge. Then you have to make links for people to download the file. The whole process is not very complicated.
I am not sure what you are asking. Are you using the the MC-505 editor and you want that the Ctrlr knobs react to the hardware knobs of the MC-505? Due to a bug in Ctrlr this is not possible on most editors.
All Notes Off / All Sound Off is solely a “panic” feature. With lousy midi cabling a “note off” could be lost in transmission. If a synth does not receive a “note off” message corresponding to the former “note on” the voice will hang forever. So this is a way to reset all voices – that’s all. It’s not a way to permanently mute voices/channels.
There are some devices where you can set the midi-mode (omni on/off) via midi messages but I have never seen that you can set the channel via midi. On most devices the midichannel has to be set in the header of the sysex messages. It will only react to the message if the midichannel is set correctly – so no way changing it remotely.
Hi CleverMonkey, this is a nice find – though there is still a problem.
I first want to say that this discussion in solely related to the Reaper DAW. The other DAW’s I know (Ableton and Cubase) are not working anyway. On these DAW’s you have to dedicate the midi ports to Ctrlr. You have to disable the ports on the DAW – in the case of Cubase: it does not assign ports as long as you don’t use them on a track. This configuration is working fine – no doubly messages, just set the ports in Ctrlr as you would in standalone Ctrlr. Meanwhile I prefer this config to the one with “input/output to plugin host”. First, there is no doubly-message-bug and second you have no problems with midi feedbacks because you don’t have to set midi thru-options in Ctrlr. Only drawback: you cannot use the keyboard of the synth as a masterkeyboard for entering notes into the DAW – the input-port is dedicated to Ctrlr.
The other prob with CleverMonkeys find: when you disable midi out with this checkbox it won’t send data twice via modulators – but it won’t send data at all via Lua scripts.
Hmm yea I think this will be quite difficult. “SYSEXC_INTERNAL_DUMP” probably means that it will send the entire memory of the DSP – so every parameter of all patches. The names must be somewhere coded in the dump but you will have to find the relevant bytes, extract them and put them into the combo-component.
This would be all feasible if there is a comprehensive sysex implementation chart from Eventide. Ultimatively you could decode the whole dump and display all parameters of the actual patch..- This reply was modified 4 years, 10 months ago by Possemo.
I see. Does the panel use simple CC’s (MIDI Control Changes)? Probably – because there is a bug in Ctrlr which prevents the faders to react to incoming CC’s. You would have to program that yourself with Lua scripts. Or, some devices allow both CC’s and sysex for controlling. With sysex-messages faders should react correctly.
What do you mean by “populate another uiCombo”? Do you want to select patches within the bank?
Lots of questions…
1.) menu titles: you can change the colour of the menu titles. Maybe you set a transparent colour or a colour that lacks contrast to the background? If the whole menu bar isn’t there: you can enable/disable the menu bar with the checkbox “Is menu bar visible for this panel”.
2.) truncated display: when you export a panel (whatever – Export XML, Export Binary…) you have to add 24 pixels to the height, it’s a common bug of Ctrlr. Does that fix your issue?
3.) grab current state: I don’t know the DM4800 but I guess it is possible by coding a Lua script. You would need some knowledeg about Sysex of the DM4800 and about Lua programming language.
4.)DAW automation: I probably don’t understand your question. Why would you wan’t to see movements when it does not playback?
I hoped to get a bit more technical explanation… well, so you want to change banks on a DSP4000, right?
I found this small sysex docu which shows how to change banks:
https://s3.amazonaws.com/com.eventide.downloads/Discontinued+products/MIDISysexDSP4000.pdfAccording to this document a bankchange would look like this in Ctrlr:
F0 1C 70 00 03 00 00 ms ls F7
the last two bytes before F7 are nibbles. It is not explained which one is first, maybe you have to interchange ms and ls, so maybe ls before ms.
Use this on a slider with max 99 value and min 0. Of course you have to set SysEx as message type.
- This reply was modified 4 years, 10 months ago by Possemo.
You are probably trying inserting it in the expression field (“Expression to evaluate when… etc.”). This does not work. Not all math expressions are working in exp. field. You would need a small Lua script which does what you want. This should be an easy job if you know the syntax. If you tell us what you are trying to achieve we may be able to help you.
I don’t think this is possible. You would need an option, like the one for hiding the menu bar but there is no such option for scroll bars.
you mean a “learn” feature like some apps/controllers do have? No, Ctrlr just stores the incoming midi message into a memoryblock which is acessible very easily by using the Lua script language. I think a learn feature wouldn’t work well with most sysex messages anyway. E.g. many of them have the midi-channel included in some byte, but as it is sysex (system exclusive) it is free for every manufactuer to choose on which byte he places the midi-channel. Moreover, e.g. the 05/RW breaks big 14-bit numbers into two 7-bit bytes for the parameter address. Some of the 05/RW parameters do need big 14-bit vaules as well. It would be impossible to “learn” such composite sysex strings automatically.
AFAIK a learn-feature can just learn standard control change which is very easy to insert by hand into Ctrlr modulators anyway. But nevertheless it would be a nice feature to have. It could even be able to learn RPN and NRPN CC’s which are standardized by midi specs. RPN and NRPN do allow a big amount of controller adresses (14-bit = 2-exponent-14 = 16384) and do have 14-bit resolution for the value. Enough for even the most complex device. It’s a shame that almost none of the manufacturers makes use of these great hi-res CC’s.
You mean it plays some patch when you play the keyboard of the N364? Most keyboards have a “local on/off” switch. When set to off it will disconnect the keys from the sound engine and keys will only go to midi-out socket (and eventually back via midi-in).
Btw. in Combi mode midi channels /program change do work as expected on the 05R/W, I just had to leave combi-edit mode – it must stay in normal combi mode.
-
AuthorPosts