YAM - alternative Shruthi-1 firmware

Could it have a new name? all the other alternative firmwares have a name.

@t2k I agree, and I have been quite careful in my edits to keep all options open (totally unofficial version, alternative version, or start of new official version). I wouldn’t want to break too much patch compatibility, especially when going forward with Ambika. I’m probably not the right person to drive a community version though, due to my day job etc.

@6581punk Sure! I’ll fix this.

Does the boot up screen show MI and the name still? (not installed any recent firmware yet), that should probably change if so.

@6581punk Yes. Only difference is my latest build reads “1.02D” instead of “1.02”

1 Like

Hi Bjarne , do you interested to set your firmware to my website ?? Or a link ??


So, I’ve decided to call this alternative Shruthi-1 firmware YAM (Yet Another Mutation), and to restart version numbering from 0.01 (even though it’s forked from the official 1.02 version).

As per usual, the complete source code is available on GitHub . Make sure you read about changes and patch compatibility before updating your Shruthi-1.

Attached is a build of YAM 0.01 that can be uploaded via MIDI.



@tubeohm Hi André! You can absolutely put a link to my firmware on your site. Make sure you not only include the YAM 0.01 build, but also a link to the source code (since it’s got the README). Cheers

1 Like

@pichenettes Feel free to ignore this if you don’t have the time to answer. Is there any reason why it would not be a good idea to port this change in the Shruthi-1 firmware to Ambika in order to shrink footprint? BTW: I’ve currently saved roughly 4kb memory, and I do see your point about refining polyblep lookup tables (Edit:or were you thinking about other wavetables?) but I’m not sure it’s worth it in terms of sound (and I believe it would require more cpu since I will then go from 8 bit multiplications and lookups to 16 bit multiplications and lookups). Cheers

It’s obviously doable to port this change to Ambika to save more space. It’ll impact the performances a tiny bit, but just a very tiny bit.

> but these could be put to good use with more detailed wavetables

The Ambika wavetables are “compressed” compared to those of the Shruthi. In short, I have an ugly program that takes the Shruthi wavetable data, computes the pairwise distance between all pairs of waves, and remove one of the two most similar pairs. The missing data is interpolated during playback anyway. I run this repeatedly until the Shruthi wavetable data (which has to go on a 64k chip) fits for the Ambika’s 328p.

So I was not talking about using more lookup tables for polyblep, but just making the Ambika wavetables more similar to the Shruthi tables.


@pichenettes Ahh, thanks. And once again: sorry for disturbing.

Bjarne, I’d like to try this out ASAP. I wonder, did you replace the original oscillators now (which I would prefer) or did you drop other functionality? I kind of lost track a little.
Oh and btw: Thank you so much for working on this!

@TheSlowGrowth You and me both :slight_smile: ‘square’ and ‘saw’ are now the new polyblep oscillators. The original saw is still available as ‘old saw’. See the README on github for details.


Ah, sorry, I should have checked that in the first place. Thanks, I will try it out very soon. I always found the original “analog type oscillators” a little bit dull, so this is very welcome!

Really like this so far using version 1.02D. i will check out YAM 0.01 when i am back in the studio!
Thanks for taking the time to provide this firmware.

@BobSwans Glad you like it :slight_smile: I’ve checked in an updated version YAM 0.02 on GitHub with (what I think is) an improved saw modulation. I’ll post a build later.

1 Like

I’ve done a first Ambika port of the YAM firmware, also available on GitHub , but since I’m not comfortable with flashing (yet) it is totally untested. Edit: I had forgotten it is easy to upgrade Ambika firmware via SD card, see this .



Attached is a build of YAM 0.02, the latest version of my alternative firmware for Shruthi-1. New in this version is a modified modulation for the (polyblep) saw oscillator. Check the README at GitHub for a summary of changes and notes on patch compatibility before considering an update of your Shruthi-1 firmware.


1 Like

that looks cool, I will try it on my yellow

This is really good news for us dedicated Shruthi users! :slight_smile: I tried the last incarnation of YAM last night. I was really impressed by the qpwm (great for dark, growly pads) and the fmfb oscillators. The PolyBLEP saw and square/pulse sounds nice too. But some of the factory patches still sounds subjectively better with the “oldsaw” to my ears for some reason. Maybe it has to do with the volume difference between the PolyBLEP and the old saw? Would it be possible to somehow match the PolyBLEP volume with the volume of the old oscillators? I also found that both PolyBLEP oscillators has a sort of amplitude flutter on some mid/high notes. I recorded a short snippet of the PloyBLEP square so you can hear what I mean. Unfortunately the soundcloud quality makes it less apparent (there so much noise). Looking at my originally recorded waveform it is very obvious to see. Is this amplitude flutter something inherent with the PolyBLEP implementation or something that can be remedied?

Thanks for sharing you effort!

This was a VERY cool surprise! Square is no question an improvement. I like having both saws too. Doubtful there’s space for something like this but would be cool to have options to apply say a LFO to the envelopes that acted as a VCA, or vice versa. Maybe adding a ‘VCA’ option in the operator Out section? A man can dream…