Alternative Shruthi firmware with sequencer load hack

From the questions in this discussion I decided to make a small modification to the shruthi code.
Now it also loads the sequencer settings of another patch when the sequencer is running. This way it is possible to kind of make ‘songs’ by loading a new patch to change the running sequencer pattern.
I also made another change that i wanted to do for a while:
In the “Let’s Jam” mode pot 3 now makes a minor scale and pot 4 makes a major scale. Pot one is still octaves and pot 2 pentatonic.

The name for this firmware is Shruthi V1.02S
The midifile is attached. Use at your own risk! (178.5 KB)

1 Like


High 5! Def gonna try this out ASAP!

Can you make a .syx to use with the Shruthi Wave Generator? I am curious to know if that would work. Thanks for making this custom firmware!

hmmm. i must say that i actually don’t know how to make a .syx version of the firmware. I wonder if the .mid or .syx file are the same thing. Maybe you can try it out with the file above be renaming it to .syx
I never tried the wave generator.

> make syx
? :slight_smile:

Or, maybe you could load the midi file into a daw to extract the syx?

ah :slight_smile: make syx indeed!

Thanks! I’ll try that a bit later when I have the time. :slight_smile:

Nice! I am going to give this a go as well.

Nice! Would it be possible to put your source code up on GitHub? Ideally starting with a clone or fork of Olivier’s “official” Shruthi source code, and then adding your modifications, just so it is easy to see exactly what you have done? Failing that, just a copy of your source, and we can run diffs against the official code. I’m just curious, because I’m keen to do some Shruthi hacking myself.

Well I’m really not a programmer…
The only thing I did to the code is remove one "!"
And honestly don’t know if I modified or just broke the part of the code I didn’t want.
It is hacking…

Ah, OK. Could you just post the line which you changed, before and after, here? And which file it is in.

Yes…, i see Olivier sometimes post a link to a specific line in the code how do i do that?

Click on the line number, which adds #Lnn to the URL. Like this:

Code changed here

Only thing i did was remove the “!”

And also in
is this part that does the note shifting on the jam page:

const prog_uint8_t octave_shift[] PROGMEM = {
-24, -12, 0, 12, 24

const prog_uint8_t pentatonic_shift[] PROGMEM = {
-12, -10, -8, -5, -3, 0, 2, 4, 7, 9, 12

const prog_uint8_t bhairav_shift[] PROGMEM = {
-12, -11, -8, -7, -5, -4, -1, 0, 1, 4, 5, 7, 8, 11, 12

const prog_uint8_t chromatic_shift[] PROGMEM = {
-12, -5 , -2, -1, 0, 1, 2, 7, 12

I changed the last 2 series of semi tone shifts too:

const prog_uint8_t minor_shift[] PROGMEM = {
-12, -10, -9, -7, -5, -4, -2, 0, 2, 3, 5, 7, 8, 10, 12

const prog_uint8_t major_shift[] PROGMEM = {
-12, -10, -8, -7, -5, -3, -1, 0, 2, 4, 5, 7, 9, 11, 12

OK, thanks. I’l try those changes when I flash my last two Shruthi (no.s 5 and 6…).

ok here is also the .hex file

I wonder what sort of shruthi hacking you have in mind… I’d still love a firmware that is stripped of a lot of synth functions but has a nice step sequencer with TB-303 like slides and accents…

Nothing specific as yet. Hacking the Shruthi code is much harder than hacking the MI modules code, I suspect - there is so much in such as small space in the Shruthi.

Yes exactly, that’s why i think there is more to win with a simpler firmware and stripping functions than with adding stuf.

Wait, you surely did more than remove a “![](” if you changed the scales in jam mode)

What happens when the sequencer isn’t running? Does the sequence change when the patch changes?