Ambika "Character" firmware mod

Hi all

First time poster here, although long time lurker since the Shruthi years :slight_smile:

I would like to start this discussion about the possibility to modify the Ambika firmware.

I am a long time Ambika user and I love it as it is but I’m sure a small firmware (and hardware) mod will make it have even more character.
To understand what I’m talking about the easiest way would be to read the article in the following link.
The observations in the link are similar to my conclusions about what makes old analog synths have a distinct and live character (compared to the modern analogs)

After decades of owning and using old analog synth it became clear that the “classic vintage sound“ of those synths is not about perfection but about imperfection.
Many people who had the chance to use side by side the old poly analogs and the modern ones discovered that the old ones have an organic continuously moving character while most of the modern analogs are mostly static and sometimes a bit boring.

A step in the right direction was when DSI implemented the OSC SLOP as a way to make the VCOs less stable. Unfortunately it turns out, that after a vintage analog synth is powered up and it stabilises thermally, the parameters are relatively stable so changing parameters by a slow LFO is not the right emulation.

The live character of vintage analog synth is mostly about each individual voice card has slightly different static values for parameters:

  • VCO tuning is a few cents above or below the ideal calibrated values (not only between the oscillators in a voice but also between all voices)

  • VCF filter frequency is a bit below or above the ideal calibration value on each voice

  • VCAs have small deviations from the ideal calibrated values on each voice

If you check the table of parameters for the MOOG MEMORYMOOG in the above posted link you will understand what I am talking about.

What I propose.

I know that the Ambika firmware is so large that there is very little room to make some changes and fit into the current processor.

I would suggest two possible ways to implement the “Vintage character table”

The best solution would be to have a page where you can define the base tuning for each of the 12 oscillators on all the voice boards.

If there is no space to implement this, a second simpler option would be to implement individually different tune settings for the individual firmwares for the six voices.

This second version would not be as flexible as the first one where you could set to your liking the basic tuning of each oscillator, but at least it is an option.

I did not mention VCF and VCA because the variation between voices can be implemented in the hardware analog domain. VCF freq calibrated slightly different for each voice. VCA level could be changed by replacing relevant resistors with trims, etc .

So by a little change in the firmware (and hardware) we could have a more characterful Ambika.

What do you think?

You can achieve a lot of what you’re describing if you dive deeper into the mod matrix.

Thank you for your response :slight_smile:

Even without the modmatrix you can achieve a lot.
Using the Spread parameter and switching Mode to Cyclic it makes it closer to what I would like.
But it is still not like having a different static tuning at each individual voice.

Cyclic is essential because most vintage polys works like this (with some exceptions). This way every time you hit the same 3 or 4 note chord it will sound slightly different because each note of the chord will be played by a different voice card with a different set of tunings (and different VCF & VCA settings).

In my view if it is impossible to implement in the main firmware (because there is no space) the easiest way to make a static initial tuning table would be to create six different voicecard firmwares with different initial tunings, something like:

VOICECARD1 osc1 0cent / osc2 +1cent (1cent difference)
VOICECARD2 osc1 -1cent / osc2 +1cent (2cent difference)
VOICECARD3 osc1 -2cent / osc2 0cent (2cent difference)
VOICECARD4 osc1 -1cent / osc2 +2cent (3cent difference)
VOICECARD5 osc1 -3cent / osc2 +1cent (4cent difference)
VOICECARD6 osc1 -2cent / osc2 +3cent (5cent difference)

This way you can rename them as you wish (for firmware update) and combine them till you have a more or less precise behaviour to your liking.
I suppose this would not be a difficult firmware mod. Am I right?

I think the issue is not that there isn’t enough space in the firmware (there definitely is space), but just that there aren’t many people still working on Ambika firmware mods, myself included.

But if you know how to program, feel free to try it yourself. My my fork of the Ambika firmware creates a lot of space in the controller firmware so you can do whatever you like :slight_smile: