Hacking Shruthi-1 Firmware for CSound


I was wondering if it would be possible to hack the Shruthi-1/Ambika firmware to work with csound? I know it’s possible to get csound to interact with Arduino through PD. I thought it would be interesting to have the csound opcode library on hand for further sound exploration.


what would you do with it? load csound projects onto the shruthi for playback?
There’s one big problem that I can see: there’s no external, removable memory (eg. SD card) and no USB connection for quick&easy data transfer.


In addition to interfacing issues I expect you will encounter severe computational power limitations. The Shruthi firmware is extremely optimized at the very lowest level to achieve what it currently does (dual oscillators, modulation options, and UI/midi interfacing).


Not to mention the very small 64kb footprint


Well, you could load projects for playback, or design projects in the unit itself. I think of it having a sequencer style interface that you can use arrange the code, and be able to choose the value for each opcode.


I may be missing something but I still question that you can run any real (practically interesting) audio DSP Csound projects on the Shruthis Atmega644. Are there any such examples? The only examples I know of, the arduino has merely had only interfaced with actual audio generation code running on Raspberry Pi or similar.


As Bjarne said, the Shruthi/Ambika have 2kb of RAM, 64kb of ROM, and a 20 MHz 8-bit CPU. That make them closer to a (fast) home computer or console from the 80s - not anything modern that could run Csound.

You would need a device running on something much faster like a raspberry pi.

And in any case, it’s so different from anything else available, that it would be engineering a complex project from scratch, not just tweaking or “hacking” an existing product.


The underlying question to it all is: why make your life complicated by using the most unsuitable platform to make something when there is so many things that already do this much better and easier, or that could easily be extended to do so?
for example check this out: http://bela.io there was talk about adding csound to the supported languages. If they haven’t done that yet you could maybe help there. It sounds like the perfect platform to do so.
Also why miss out on the joy of having a perfectly working Shruthi :slight_smile: ?


I just wanted some input on the idea and its viability. I figured what’s the point on spending money on a new platform when I have a working unit that markets itself as being modifiable. But alas, such is not the case. At least within the boundaries of the Atmega.


Maybe try something like the STM32F4 discovery board?


Nice! I’ll look into it.


That’s the processor used by several MI modules (I think), as well as things like the Axoloti so it’s definitely up to modest DSP.


The latest Teensy boards also seem quite capable for audio projects.