Anyone mod/hack the shruthi firmware?

im a total unix/linux geek and am new to the world of Mulable Instruments, but not new to the realm of firmware. i’ve been programming, re-programming,
hacking, and flashing custom versions of the Android OS (i know, i know, it’s totally different from the MI’s firmware). I’d like to know if anyone’s done any
mods or hacks to the firmware to change it look wise? can you change the fonts or is that set by the LCD?

The Shruthi only sends ASCII character codes to the LCD, which reads the data from its font ROM.

The font data is in the ROM of the LCD controller, which is in a chip-on-board package (the black blob) at the back of the LCD module. It’s difficult to find something less hackable than that (even for Schrab and nicoo).

Shruthi firmware hacks include fixing minor personal pet peeves in the UI, like the debate about whether patches and sequences should be saved/loaded together - and there’s a guy who post here frequently about pushing the synthesis engine into all kinds of weird directions (yet to see a release though…).

i haven’t looked into the source code for the Shruthi yet, but what is it written in? once i get a Shruthi i’ll have to screw with the code a bit and see if i cant get more evil, horrible, and terrifying sounds out of it.

The Shruthi code is very well written C++ (apart from a tiny bit of assembler), but goodness me, there is a huge amount of functionality that gets compiled into just under 64k of object code. Significantly improving the code is well beyond my skills. The whole thing is space constrained - the object code has to be somewhat less than 64k - and CPU constrained - there are very few spare cycles - the Atmel is working very hard indeed. That makes hacking the code a very interesting challenge. Just don’t expect to be able to make revolutionary changes, unless you’re even more of a genius than Olivier.

Code

Is the 0.98 code saved somewhere?

For the time being I have no time to invest into it, but I may later.

Yes, a different branch is created for each version, all are hosted on github. Currently “master” = v0.98 - since this is still what I flash on the new chips that come with the kits. And “xt” = v1.0

Click on the “branch: master” drop-down menu on the github page to see all the other branches.

Of course, you can also rewind through all the changes with git.