Shruthi v1.0 firmware change list

Available on Shruthi XT.
Availability for “classic” Shruthi: don’t ask.

Features which have disappeared:

  • MIDI split mode. It’s not that I want you to buy more MIDIpals, but it got in the way of all the MIDI processing code and I doubt it was often used.
  • Performance page. This freed 8 precious bytes in the patch data structure.
  • Triggers.
  • Warp modes for the sequencer/arpeggiator. They were partly responsible for some occasional MIDI sync glitches and for making most of the arpeggiator/sequencer code a pain in the ass to handle. They might come back later as a new mode combining the arpeggiator and sequencer.
  • Impro and rec modes for the sequencer.
  • Individual loading/saving of sequences.
  • seq+lt and arp+lt sequencer and arpeggiator modes. Wait, this is not what you think! See below
  • Super fast tempi above 240 BPM. Wait!
  • Ability to sync at /2, /4, /8 and x2 the MIDI clock. Wait!

Changes/improvements:

  • More responsive UI. Can scan 30 knobs at a rate that makes me happy.
  • Arpeggiator, portamento/legato and sequencer settings are now saved with the patch. When an arp or sequence is already running, loading a new patch will only load the synth settings (to keep your sequence running…)
  • The internals of the sequencer/arpeggiator are now that of a reasonable 24 ppqn MIDI sequencer. External MIDI sync is tighter, and the Shruthi can output a MIDI clock to control other devices.
  • Tempo-synchronized LFOs do not have the occasional reset/glitching they sometimes had in the previous version.
  • Duophonic mode behaves in a more predictable way, especially when coupled with the arpeggiator. More importantly, I now understand exactly what is happening under the hood :slight_smile:
  • Single-cycle LFO mode.
  • Individual ADSR parameters are modulation destinations.
  • Layers of accumulated odd user requests made some parts of the code ugly and terrible to maintain. I have removed most of the cruft in the areas that matter the most: UI handling, synth parameters introspection, and note event dispatching (roughly 50% of the code has been touched).

New features:

  • The Warp setting has been replaced by an adjustable MIDI clock divider, which allows the arpeggiator or sequencer to run at other divisions than sixteenth notes, from 1/96 notes to whole notes. This new feature explains the disappearance of “turbo” tempi and dividers in the external clock mode.
  • What used to be the “split point” setting is now an option to choose the behaviour at boot: splash screen on/off and boot on the presets page on/off.
  • Pressing the encoder for 1 second will latch whatever the synth is playing (arpeggio, sequence, or single note), and will put the unit in latched mode unless the encoder is pressed again for 1s. I find this more practical and elegant that the previous design (in particular the way the latched mode were previously too hard or too easy to stop!). It can latch single notes too - like the Anushri “hold” button.
  • Using the latch function when no note is playing puts the synth in “jam” mode - you can scroll through preset scales using the knobs. It works with the sequencer and arpeggiator too, so it effectively replaces the “test note”.
  • The code handling CC/NRPN has been rewritten. Major benefit: knob moves are transmitted as CC rather than as NRPN - whenever possible of course.
  • Screensaver (for OLED displays).

Is it ok to but a bug list here?
I found a potential bug or maybe it’s feature. When using v1.0 with the fcd72 programmmer all the filter control pots stop working when i’m on the modulations page. The funny thing is the resonance knob seems to access the digital volume from this page.

oh crap. I’ll look into that but I don’t have a working fcd programmer to check that…

Question: did you build the v1.0 from code or did you grab it from somewhere?

No hurry …
actually it’s a bit more peculiar the functions of more buttons seem to change according to the modulation slot i’m in. ENV’s are also affected maybe more.
In a weird way it’s kind of nice. All sort of unexpected things happen when i turn knobs. Kind of makes me feel like it’s the first time i touch as synth and being surprised by by everything. :smiley:

I’m not sure where the one i’ve got in here now comes from. It’s maybe not the most recent one.

This looks terribly like a bug I’ve fixed quite some time ago. I’ve uploaded the latest build in this post.

Okay sorry for causing a stir… I uploaded a new version with my AVRisp i compiled a few days ago and the problem is gone…
But there is a new thing now. Update of the programmer seems much much slower now. It’s really steppy. And also i how do i get into the midi firmware update mode now? Pressing S6 doesn’t work anymore and i can’t press the shape+ switch because it’s not there on this one.

Oh and just ignore this if i’m eating up your time. I’m in a kind of testing mood here comparing al sorts of stuff on the new and old programmer filterboards oleds etc…

> Update of the programmer seems much much slower now. It’s really steppy.

It was either that or the “!” of death on some patches. This only affects the fcd programmer though. If i ever find time and have the resources to test, I’ll backport to the fcd programmer the same trick as I used on the new programmer - and which prevents it from feeling steppy.

> Pressing S6 doesn’t work anymore and i can’t press the shape+ switch because it’s not there on this one.

Are you sure you have the bootloader written on the chip? Especially since you mention flashing with an AVRisp…

Yes no bootloader… that was it…
Went back to the old v1.0 now. It dates back to october according to my filesystem. It’s not steppy here. Only maybe has some old bugs then.

curious, where is the screen saver? I’m assuming it’s system pause, but I’ve dialed down to 1 and 0, then saved, but it never starts.

> It’s not steppy here.

Yes but it won’t be hard to find a patch that doesn’t play at the right sample rate because of full CPU use :slight_smile:

> curious, where is the screen saver?

Values with a “s” in the pause settings.

I noticed that the sequence load page was gone. I set up to play seq in “Jam Mode”. I then pressed the far right “Memory” button, but I would only see the patch name. So I can only see the patch memory. I also noticed in the v1.0 user manual sequence memory browsing isn’t mentioned, but you can load sequences…

What’s the deal with sequences in this firmware?

Would you mind reading my post with the list of changes?

Sorry about that. I kind of speed read the list, the lack of bold told me not to read.<:-|

I detected something which I would not classify as a bug but an issue due to the kind of implementation.
When switching patches while the sequencer is running, the sequence will remain the same. Fine, exactly as described above. When I stop the sequence after changing to a new patch and restart it, it’s still the old sequence from the previous patch. So you would have to change the patch again with a stopped sequencer and then again back to the previous one to hear the sequence assigned to that patch.
Hopefully my description wasn’t too confusing.
No issue for me as I’ve my own v1.0 with a non-Combo mode but maybe someone else is not happy with it. Don’t know if it would be really worth spending time on this.

I understand but I don’t know what could be done given that there’s not even RAM to temporarily store the new sequence and copying it back to main memory once the old one has stopped.

O.K., got it. I also started thinking of how to solve this issue but didn’t get any further so far.

Edit: I mean in fact it’s “just” that after every stop command the sequence with the actual patch ID has to be reloaded. Not the best solution as the sequence load then will happen much too

As I said before: maybe not worth spending any of your valueable time on it.

@pichenettes: “Availability for “classic” Shruthi: don’t ask.”

I don’t understand. In another thread you said that the firmware linked here will work on classic Shruthi’s. But that language in the top post of this thread sounds like:

a) it is only going to work on Shruthi XT
b) classic users need to shut up and not wonder when they will have (for instance) CC access to their specific filter board features, etc

I’ll follow your instructions and not actually ask the obvious here.

@ceasless … The file in the first post was not initially there… Olivier posted it because i was asking stupid questions about a pre-v1.0 version of the firmware.

I think it’s not officially released yet because v1.0 needs to be tested some more. All the new XT user are actually fully testing it as we speak.
The file above will probably work just fine on a normal shruthi… But keep in mind it’s in a sort of beta stage and maybe not tested on all models.