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:

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:
http://mutable-instruments.net/forum/comments.php?DiscussionID=638&page=2
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:
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!
Thanks!!
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
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
http://ctrlr.org/ddb/?action=__download&uid=58342a85e73797df95b1ea816a2b084b
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.

How did you implement the Master Volume?
CC07?
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
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
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??
@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.
@ 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?
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.
@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
uploaded V1.4 to the ctrlr ddb (this time it worked) or direct dl here
Good to hear Bob. Glad it’s working out!
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.
a|x
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.
a|x
@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.
a|x
@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!
It looks like you're new here. If you want to get involved, click one of these buttons!