Shruthi-1 Firmware - Programmer Mod
  • Yo!

    My brother and I took some time with the Shruthi-1 code, and made a little mod for Franks awesome Shruthi-1 Programmer. When you turn a knob on the Programmer, the currently tweaked parameter is shown on the LCD.

    Be aware that it does not work with snap mode! A lot of the code would have to be rewritten to make it work in a nice way.

    Attached to this post are the source code, and binaries (.mid and .syx) in .zip files. I left the design documents out, so the .zip file wouldn’t be too big.

    @Olivier: Thanks so much for releasing this under GPL, otherwise this would not be possible! It would be cool if you could take a look at the source code and comment on the implementation.

    Have fun with this everyone!

    shruthi_xt_firmware_src.zip
    804K
    shruthi_xt_firmware_bin.zip
    99K
  • Did you fork the git repo and push your changes to it? If so you can submit a pull request.

  • I don’t think Olivier would like to implement this into the official firmware, so a pull request wouldn’t make much sense. I hope I understand the git terminology right, don’t have much experience with it ;)

  • @flip, the advantages of using git would be first to make it easy for me to view your changes, eventually merge them with my code, or at least keep a separate branch with your code in my main code repository…

  • Ok, so I had a look at this. I don’t have a programmer, so I had to ground or move to +5V the CV1 pin to emulate parameter changes and it was quite random.

    I have found a bug: after having edited a parameter with the programmer, clicking on the encoder to manually edit a parameter on the main UI side causes the display to show “programmer”, not the parameter that was clicked. That’s because last_external_input_ needs to be reset to 0xff not only when a knob is turned, but also when the encoder is clicked.

    Three other comments:

    • There was a lot of duplication in DisplayEditDetailsPage in your change. It can be made shorter by just changing the part that draws the first line on the LCD.
    • When it’s only a few chars, filling the buffer letter by letter is more compact (yuck). For longer strings, and without dealing with my dodgy resources system, strcpy_P works better.
    • Spacing and indentation :)

    Besides that, very good approach, and it makes WAY MORE SENSE to have this special “programmer” display than switching pages.

    My take on flip’s code is here.

    I have attached the .syx

    @flip, can you verify my code and the .syx? If so, and if other people validate the change, I don’t see any reason why this wouldn’t be part of the main branch given that it’s only a few 200 more bytes.

    shruthi1.syx
    126K
  • Awesome. I will test when I get back home.

  • Ahh, yep we missed the encoder click parameter editing. Thanks for your explanations and optimizations! And thanks for including it in the main branch :) I did not think you would want to include it, because it breaks snap mode if you are in programmer mode.

  • “Chapeau bas” flip ;-)

    (This is a French expression which means congratulations)
    I would try when I have a sound card or programmer

  • Yes, fine job Flip! Thank you very much. This makes using the programmer a lot more fun!

  • Without this change, snap mode is already behaving weirdly with the programmer isn’t it?

    I mean, if you load a patch, the programmer knobs won’t “snap” to the new patch values…

    Anybody using snap mode with the programmer?

  • I’m testing this now… paying specific attention to the encoder.

    The encoder fix works as expected.

    It all looks really good to me.

    Actually, it looks GREAT to me. Brilliant solution and it makes the programmer much easier to use!

    Thank you again both of you!

  • Will this be in the official os?

  • Génialisime …
    Fantastic …
    Great …
    Big …
    Top …
    Thank’s flip & pichenettes. :)))

  • Hi,
    Is it possible to indicate, on the first line of the LCD, the recorded value of the parameter being edited?

  • this is great news! thanks for your effort
    I’m exited

    have you set the tempo to int or ext for default?
  • Is there something odd about the syx file that Olivier attached above? I finally got stubborn enough with it to convince myself that there’s nothing wrong with my setup. When I try to update using this file or the 0.97 beta, the 4 LEDs go dark as the transfer starts and never come back on again. The 0.96 update works fine for me- the problem is only with these two more recent firmwares..

    I’m on a Mac running 10.6.8 and tried dumping with both Elektron’s C6 [using 16 ticks delay] and Snoize’s SysEx Librarian [using 275ms delay]. MIDI Interfaces used were Elektron’s TM-1 and Emagic MT-4.

    Did anybody else get these sysex files to work?

  • Yes the 0.97beta were for the “new bootloader”. I have replaced it with a version that works for both.

  • Excellent- it works great now! Thanks for fixing the file so quickly!!

    Also, thanks to flip for coming up with the idea for this programmer display feature- I really like it..

  • Now that I have a working Shruthi XT and had some time to play around with it, I agree, this mod is totally great! Thanks everybody!

  • I just got my XT to work as well and now I see this ! Awesome, especially when it comes to non-linear parameters such as waveforms or mix op. :)

    Is there a planned date for the official release of 0.97 ?

  • It’ll be released with the delay filter board.

  • I accidently stumpled upon the programmer mode while twiddling around – needless to say that I do not own the programmer. For me it works like the most spaced out value randomiser, constantly changing and giving extremly intersting results sonically. Don’t know what’s going on under the hood but it SOUNDS great. Instant space effect weirdness.

  • On my YME that is.

  • It’s reading a random value in place of each of the parameters since no potentiometers are connected and the input is left floating. You can influence the values by rubbing your finger on the IN1> pad.

  • great tip! will try that.

  • hmmm more and more interesting stuff i’ve missed popping up!
    YAY to you guys! now it’s definitely time to upgrade all firmwares :D

  • Recently updated my firmware on my Shruthi XT and loving it, really helpful ! Thx guys for bringing this up :)

    Yet i am wondering…Would there be a way to implement a “constant randomization of values” mode without disconnecting my programmer board or even better while tweaking some knobs at the same time ?

  • Something to add to the programmer, a randomise button in each section (osc, filter, lfo) of the synth.

  • @dubtoms
    you can route noise as source to the destinations you like in the modulation matrix.

  • Would it be possible to have the value of a parameter displayed in the same way when updated by an incoming MIDI CC ?

  • No because this would make the display very glitchy/annoying when a sequence with automation is played into the Shruthi. While it’s reasonable to think that the programmer is used for… sound programming, CCs serve both for programming but also for automation/performance control.

  • On an average track by me it would be pretty Disco….

  • Holy jumping display Batman!

  • Just like this – im more into Ambient today . . .

Howdy, Stranger!

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

In this Discussion