Shruthi-1 Firmware - Programmer Mod


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!

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?

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


Will this be in the official os?

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!

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?

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

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

“Chapeau bas” flip :wink:

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

Awesome. I will test when I get back home.

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 :slight_smile:

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.

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 :wink:

@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…

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!