CTRLR Panel Editor share & help!
  • Hey all, first post and a new proud owner of a shruthi-1! I absolutely love it!

    I built my Shruthi last week and as soon as it was ready, I began looking for an editor, but all I was finding was mac only editors. So, I decided to give ctrlr a whirl. I had looked at it before when I was looking for alternatives to the StS Editor for the DSI Tetra, but right out of the gate, I was under water. I’m not, by any stretch of the imagination, familiar with MIDI. I am a huge synth buff and have a couple of Moogs and DSI synths, but I do not use MIDI with them at all. But, I sat down the other day and dived in. For the most part, I was able to build a panel and get pretty much everything working. There are a couple of things I cannot seem to figure out:

    1: Being able to go past patch 127 with a program change 2: Being able to get current patch loaded on the Shruthi 3: Having the value on a slider reflect something other than just increments, i.e. Tempo:show BPM as well as “superfast tempos” and multipliers (x2, x4, etc)

    Im sure I had more, but cant think of them at the moment.

    Here is the panel file. If anyone gets in there and looks around, I’m sure you will find some odd entries. Namely the “get patch” button. I was trying everything I could to get that to work.

    So, if anyone out there could help me get these last couple of things going, it would be greatly appreciated. Otherwise, I hope some of y’all will find the editor useful. It’s not the prettiest, but, DIY isn’t supposed to be :P

    and this is what it looks like:

    • To get patches above 127, use the “bank change LSB” CC (0x20). Ok, this is confusing because it should be the CC 0x00. My fault.
    • “0x00 0x20 0x77 0x00 0x02 0x11 0x00 0x00 0x00 0xf7” is the SysEx string for a patch request (from the manual)
    • it’s a CTRLR thing right?
  • Thanks.
    By the way, Pichenettes, is there any plan for an official, crossplatform version a Shruthi VST programer ?
  • Not at the moment, and if there’s an official thing it won’t be a VST but rather a standalone app.

  • @qp – Looks like you covered a lot of the same ground that I did this past summer:


    I haven’t been keeping up with the latest Ctrlr releases, but there was a problem before with the Ctrlr support for inbound NRPN messages in the format that the Shruthi sends, that prevented the on-screen dials from reflecting the hardware ones…

  • @ pichenettes, Thanks for the info! I found the SysEx string in the manual when I was mapping everything out, but, I am a novice at best with ctrlr and MIDI. I have a basic idea of how everything works, but its the details of entering the data in where I get lost. Same with using “bank change LSB” CC (0x00). I am unsure where this data gets entered in in ctrlr.

    @ dnigrin, It was your post that got me started building the ctrlr panel. I was looking at your design to help figure it out. I tried downloading your panel, but when I clicked on the link, Mediafire told me the file was either deleted or broken. Is it possible to get a working link from you? I am really interested in getting some of the sliders to show descriptions rather than value numbers, ie LFO 1&2 attack, LFO 1&2 master/slave. Also, does your’s have a sequencer pattern editor? I would like to build this also, but I could not find any info on it in the shruthi manual.

    Thanks for your help!!

  • Sure, the file is attached. I never got around to the sequencer. Also, mine was built with an older version of Ctrlr, so no guarantees it will still work! Please continue to post your progress!

  • That looks great, qp. Any chance you can host the file someplace a bit less spammy? Github or the Ctrlr DDB would seem like a natural choice. Or even here :)

  • @ dnigrin – Thanks! That helped answer my question about sliders showing descriptions instead of values (as simple as creating a “fixedslider” rather than just a regular slider. I am still unable to get the panel to go beyond 127 presets. I have no idea how to implement this. Also not sure where to enter the SysEx string for a transfer request, which is this: 0xf0 0x00 0x20 0x77 0x00 0x02 0x11 0x00 0x00 0x00 0xf7. Am I correct in the thinking that if I assign this to a button, I can press it and it will put all sliders and selection tabs to the current patch settings? Since it seems that ctrlr does not update each patch at the panel editor, this would be the next best thing. Otherwise, it kinda makes the whole editor thing rather useless except for creating patches from scratch.

    @ jamesmcn – thanks!! I’m tweeking it at the moment as was planning on sending it to the Ctrlr DDB and uping it here as well tonight.

  • I uploaded the updated version to the Ctrlr DDB: http://ctrlr.org/ddb/?action=__download&uid=58342a85e73797df95b1ea816a2b084b

    I made a couple of changes:

    1. Changed the drop down menu in osc 1&2, sub-osc, mixer and lfo 1&2 to rotary sliders with description values
    2. Changed the Tempo rotary slider from standard values to description values (good god, that took a looonnng time!!!)

    The “Patch” buttons still only go to 127. I have not figured how to go beyond that yet. Also, I deleted the “Get Patch” button until I figure out how to get that working. Let me know of any bugs or anything that would make it better. And by all means, make changes, but please post em!


  • Re: where to enter sysex string, I haven’t done sysex in Ctrlr yet, but in looking at it quickly (not at my studio, so can’t test), you change the MIDI Message Type to Sysex, and then below that, you edit the “Sysex Formula” with the necessary string. The “0x” prefix for each value just means hexadecimal, and you don’t enter those characters. So for the string you posted, you would enter f0 00 20 77 00 02 11 00 00 00 f7

  • I downloaded Ctrlr and had a go at messing with this,
    I am pretty new to all this but managed to update it for firmware 0.95 without any issues,
    i also changed the design slightly and added the graphic for my cem filter board,
    I can in no way figure out how to change the patch to go past 127 but it would be lovely if someone could ;)

    I also managed to create a rack in Ableton with the vst and can control some of the parameters with my Novation Nocturn
  • Nice! I like the darker color idea. Decided to darken it up a bit. @ dnigrin, Thanks for the info! Very new to SysEx code, NRPN (and MIDI for that matter :P). I tried it and still no go. I’m starting to think it might be an issue on the ctrlr side.

    Changes in 1.2

    • Made some minor changes to names and color scheme.
    • Added a Master Volume knob
    • Added a Panic Button.


    For whatever reason, when I would download it from the CTRLR DDB on the website, it would load v1.1, but it downloads v1.2 from the DDB in the CTRLR application.

    Eventually I plan on adding glide control, pitch & mod wheels, audio input volume (if possible) and some other things I cant remember at the moment.

  • Cool, Yeah I attempted pitch and glide but like i said i am quite new to CTRLR

    Downloading now
  • How did you implement the Master Volume?

  • Hmm, just asking because i was wondering if its done reducing the bits in the OSC mixer or Reducing the CVs to the VCA....

    Im a bit dazzled cause im drilling the 1500th Hole in Programmer PCBs . . . .

  • @ fdc72 & pichenettes, yep, CC07. Found it on accident ;P

  • Thank you !
    It looks way better with that colorscheme.
  • Thanks snk! Much easier on the eyes.

    Made a couple of more changes. I have been stuck in Fargo ND this week in a hotel and not a lot of work at the job site, so, more time to play! :P

    • Added a Portamento Rate knob
    • Added a Modulation “Wheel” (vertical slider)

    Uploading the panel to the ctrlr ddb was not working very well, so I hosted it on the ctrlr forum. Direct download

    Anything else needed??

  • I am wondering if it would be possible to have one single CTRLR panel featuring every kind of filters ?

    The reason is that i have a Dual SVF version, so i was thinking about making a "dual svf" version of your CTRLR, but i realized that i would have to re-make it each time your CTRLR gets updated (and so is anybody with a "no-standard-filter" Shruthi and lack of programing skills).
    So, having a single CTRLR panel, embedding every kind of filters might make the update process simpler??

    (Well, really it is only my 2cents, as maybe it would require a lot of dirty work under the hood, and also as it seems simpler for updating each Shruthi version's CTRLR, it might not be as simple and straight-forward to use ?)
  • @fcd72: i was wondering about that, too.
    in this thread: http://mutable-instruments.net/forum/comments.php?DiscussionID=898&page=1#Item_6
    it sounded like, there is no master volume controll which controlls the sound to the filter board, not the ccs.
    if cc7 is about the first thing, the thing in this thread is possible with two oscillators at the same time now.

  • @snk, I had thought of that last night. My thought was to make the filter section have tabs to scroll through the different filter boards. I’ll look into it later today.

  • @qp Pitch\Octave would be the final thing ;)
  • @ snk, I added Tabs to the filter section. Right now all I have added is SMR-4 and Dual SFV. I only have an SMR-4 board so I cannot test the SFV. If you could check it out for me and let me know if it’s all good. Nothing like blind programming :P Here’s the panel

    @BobSwanS, I was planning on getting that in there eventually. Right now I am working on getting the codes in order for a patch transfer and, if possible, get the panel to update when a patch is loaded. And, I’d assume you mean the “Master Tune”, right?

  • @qp Yes i mean the Master tune. The panel update thing did spring to mind while i was playing with it ,That would be excellent, Thanks for all your time and effort
  • "Thanks for all your time and effort" => +1, yes thank you, qp.
    I will try the CTRLR Panel.
  • Zut, it crashes Reaper and Live (but i don't know if it is due to this specific panel or this Ctrlr build, or even my midi configuration)...
    I'll report anthing i find.
  • Looks amazing now. I hope I’ll have some time for music making soon!

  • thanks!

    @ snk, after the inital version, I switched from the stable ctrlr to the latest nightly version 5.0.2 rev 915. If your running an older version, maybe this is causing the crash. Let me know what you find out.

  • Errh, i feel a bit dumb : i used to use the old version of Ctrlr (where you would download a .DLL for each Ctrlr, it was v4 i guess), now i don't know how to set it up : with the previous versions, i remember i just turned a knob from the Ctrlr, and it was modifying the hardware device settings as expected.
    Now, when i turn a knob it does nothing.
    I just checked the Device Midi settings, and it seems i can't enable the correct device as it is already enabled in my DAW.
    I'll investigate.

    [but at least it doesn't crash with latest version]
  • @snk I had to download Bomes and Midiyoke to get it working in ableton, I found a post on the ctrlr forum that gives you step by step instructions, I got it set up in ableton in 1 rack device, i then mapped all the pots\sliders to my Novation nocturn, i had to save the channel as a preset by saving it as a live clip by dragging it into my ableton browser clips folder


    If you follow these instructions but use a rack instead of 2 midi tracks you should be fine

    Now i dont even know what platform you are on,so i may have just wasted my time
    but hope you figure it out
  • No, Bob, you didn't waste your time, thanks a lot :)
    I am on Windows, and i am a Live user too.
    Thanks, i will check that link, it shoudl be very useful.

    (But it bugs me out to have to use a virtual midi driver like MidiYoke which ruined my setup a couple of years ago... !)
    Does anyone know any other, more straight-forward solution ?
    How do you all do so far, to control the Shruthi with a VST editor ?
  • Does anyone have any experience with T Erichsen's loopMIDI Midi driver ?
  • @snk

    How is it working out as a VST and in general? When building it I was only using it as a stand alone and the couple times I have used it during creative moments. I did try it in Cubase 5 as a VST and was not having any luck.

    Also, I delved deeper into figuring out how to get the panel to update parameters either with patch change or a “get patch” function and there is a TON of code to do that. I know nothing of C++ and even less of LUA, so, I doubt I will get that implemented. But, if anyone knows how to do this, by all means, DO IT :D

  • Hi, QP. Thanks for caring.
    I will try the standalone, it seems to be the consensus.
    I think it might be because i already have one of my Midi out enabled in my DAW, so it won't output from the VST.
    I think i will need to install a virtual midi cable to be able to use the VST plugin.
  • @qp

    I have no problems with it as a VST on Windows 7 in Live 8.2.7
    Yes you do need to have Bome's and Midiyoke running but it runs great

    Like i mentioned in my earlier post, I have several pages assigned on my Novation nocturn
    to deal with most parameters, The only problem i have is with ableton not remembering the midi mapping every now and then.
  • uploaded V1.4 to the ctrlr ddb (this time it worked) or direct dl here

    • Added “vowel” wave to OSC 1 (apparently I had missed that one)
    • Set all parameters to Shruthi’s default bootup patch, 1 init. This does not mean that the editor updates to patch changes automatically, unfortunately. I just went through 1 init and set all of the parameters to the editor before saving it and uploading it.

    Good to hear Bob. Glad it’s working out!

  • Thank you !
  • There is one thing i still don't get :
    In Reaper, if i insert Gpunk's VST editor (http://mutable-instruments.net/forum/comments.php?DiscussionID=456), it works fine from the start, without having to install any virtual midi cable device or anything else. But CTRLR doesn't seem to work that way and it requires several 3d party stuff...
  • This may already have been covered, but is there any way of integrating some kind of librarian feature into this editor. I’ve not tried it yet, but it occurs to me that a potential problem could be that if you change presets on the Shruthi hardware, the values for the controls in the editor won’t be updated. Some kind of librarian function, so you could store patches on your computer could be a workaround, but then you’d need to be able to simultaneously update all the parameters on the Shruthi-1 every time you changed patches in the editor. I guess the way around this would be to implement sysex patch send-receive, so when you changed patches on the Shruthi hardware, the editor requested a sysex dump of the patch. Conversely, if you loaded another patch in the editor, the editor would dump the patch out to the synth. Is this possible with CTRLR? I started making an editor for my DW-8000 using Max4Live a while back, then realised that without librarian and sysex patch-transfer functionality, it was never going to work properly, so gave up.


  • How about sending a PatchDump Request to the Shruthi and read the Values back?

    See the Reference Manual:

    Transfer request

    For a patch transfer, command is equal to 0x11 and argument is null. The payload is empty. In other words, the full SysEx string is: 0xf0 0x00 0x20 0x77 0x00 0x02 0x11 0x00 0x00 0x00 0xf7 (the last pair of 0x00 being the checksum). Upon reception, the Shruthi-1 dumps the current patch to the MIDI out. For a sequence transfer, command is equal to 0x12.

  • That’s what I had in mind. You’d still need to parse the values from the sysex and map those back to the control values- and obviously do the opposite if you were recalling a saved patch in the editor. CTRLR doesn’t seem to have any documentation (at all!), so I can’t tell if this kind of thing is built in to the software.


  • -PatchDump Request and set all modulators ...finished for patch , sequence will be implemented today
    -Simple Storage for some dumps .. should be done in 1h
    -Morph options between stored dumps should be done in 10 minutes
    -testing 1-2 days
    =>if there are no problems ....comming soon :)
  • @widy75 excellent work!! Just out of interest, did you have to do much Lua scripting to get the sysex dump stuff working? I’m wondering if it’d be worth having another stab at my EX-8000 editor using CTRLR, rather than M4L, but I’d want snapshot send-receive functionality with that, too.


  • @toneburst
    as i know .. sysex dump exchange only work with lua scripting an version 925
    -a button send the sysex request ( no coding)
    -hook a function on panel midi message receive ... there u get all midi messages ... i always do the same with some sdt function i developed for the last synths i did ...taks:
    check für sysex type and size check für sysex
    get der payload of the dump ... e.g only sound dump parameters .(see midi message api get byte array or so )
    find the modulators by get modulators by name and set the value .. thats it
    (better .. u also define a array with all modulators and index as sysex index .. in this case its just a simple iteration over both arrays)
    (u can see the code if i finished it for shruthi or send pm for more infos :)

    save banks:
    i alwayse work with the same sysex dump array .. convert all vales to a hex string with ',' and store it as panel property
    recall them ...only readout the hex array from the panel property ..convert to int values .... and assign the array in the same way as i received a sysex dump .... ( hex convertionis ? ... its better for parsing because all values has the same length :)

    just simple 2 arrays and calc the difference depending on a offset parameter

    lg widy
  • @widy75:

    nice. great work you do there!

  • @widy75: man, yeah! Cannot wait to see it & try it out! I will study the heck outta what you did. Hopefully I can get my brain to wrap around it :P

  • Thanks widy75 – this is what I was hoping to do early on with my Ctrlr experiments as well (see earlier in this thread for link), but at the time the Lua stuff wasn’t ready, and the bi-directional NRPN stuff was not working right. Eager to see your implementation!

  • Wow,This seems to have picked up a little since i last checked,Really looking forward to the next download!!
  • status update:
    -midi sysex receive of a patch data works fine .. for future editing and recalling the parameters
    -added 6 storages for sounddump in the panel ( store , wakeup by sending sysex works fine )
    -add morph option between stored patch 1 + 2 and sending the morphed sysex on the fly by moving the knob works ..hmmm
    need a option do disable morph between the mod matrix and exclude parameters ( will add morph option mod matrix , take from patch 1 or 2 will work better because otherwise i got states of pitch modulations and this is not for music use .. i think to have 3 morph is better :))

    so far so good

    -but i also have 2 big problems :) .. ( i have more .. but with the panel only 2 :)
    sysex sequence did not work .... if i change e.g octave or arp mode via nprn the shruthi reacts on the changes and play a other pattern .. so far so good
    but if i request a sysex of a sequence patch (after changing parameters with nprn) i always get the "same" sysex dump ..... .:( hm ?!*

    shruthi alwayse start with option midi out thru ....
    is there a way to send a cc sysex nprn or whatever .. to switch to midi out ctrl mode
    problem is
    if the shruthis acts as midi thru the shruthi send all incomming data to midi out
    my panel also receive and send ...... => endless loop of traffic ... nice in some case ... but not for my needs :)

    1 can life with problem 1 but not with problem 2
    problem solution for now is:
    start shruthi first switch to midi out ctr and start the panel than its working fine ... but this sucks in case of workflow
    solution 2 .. if i find the firmware src ... hack it compile it and upload it .... but hm .... i will avoid to change the firmware ....

    other solutions ?

    ..now its time to sleep cu widy:)

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion