Firmware bugs? [solved]

I just built my first Shruthi, and I’m really happy with it. However, there are two firmware problems I’ve found. First of all, regardless of if legato mode is on or off, the envelopes don’t retrigger when I play a second note (if I have the first note still held down; it’s fine if I let go of the first note before playing the second). So it seems non-legato mode doesn’t work.

Second, the warp modes in the arpeggiator don’t seem to work properly (at least, from my understanding of how they’re supposed to work). I set it to rhythm 1 (which should be just constant 8th notes), but when I put on a warp mode it affects the rhythm, causing some beats to be only half as long as they’re supposed to be. On some warp modes, some beats are longer than they should be too (but only certain modes). The pattern is also in the wrong order, but that just might be me not understanding how it works - for example, playing a 3-note chord, direction up, range 1, warp “><”, it goes up for 8 beats (1 bar), then down for another 8 but starting on the 1 (so, 1 2 3 1 2 3 1 2 1 3 2 1 3 2 1 3 repeated), instead of the expected 1 2 3 2 repeated (I know I could just use the up/down mode to do this, but this is just an example of what isn’t working). However, this may be related, because it seems like in the “>-<” mode the “skips” happen at the end of each bar. In the Philip Glass mode, it just plays a normal “up” arpeggio but with “skips” at fairly random intervals.

Are these known issues? Are they intended behavior? Or is the firmware buggy?

If I’m not mistaken, the first is more or less intended behavior, it took a while for me to realize this though.

What happens is that since the shruthi is a monosynth(single voice), when you press another key the second note can’t be played(unless you polychain several shruthi’s), therefore the first note is “stolen”, this is normal behaviour for all synths : Once you hit the note limit, the synth will start replacing the first pressed notes… (Can usually be changed somewhere in the menus.)
Since the shruthi’s voice limit is 1, when you press a second key while holding the first, the second note will “steal” the first note’s voice, thereby bypassing the envelope…

I didn’t read the documentation for the warp feature, but my guess is that it warps the tempo/length of notes as well?

  • I cannot reproduce the problem here. I boot the unit, set cutoff to 30 (so that I get a fairly distinct “attack” at the beginning of the sound to recognize that the envelopes have retriggered), hold C2, then play C3, here is what I get (see the attachment). Can you do the same procedure and post an audio sample?
  • The “warp mode” setting alters the order of the steps of the sequencer. It affects the arpeggiator only through unpredictable side-effects. Maybe I should have disabled it when the arpeggiator is enabled (this has never been designed for this anyway), but it makes interesting variations of the arpeggiator pattern anyway.

The warp command does not do anything related to tempo and the sequencer has no notion of “note length” (some steps can be rests or ties).

Oh, okay - I was wondering why it seemed there was feature overlap between arpeggiator direction and warp modes. I think having warp modes for the arpeggiator could be really cool actually, to play arpeggiated chords that aren’t just simple up/down progressions (but also aren’t fully random either), or to have choice over whether it repeats the top & bottom notes of an up/down pattern. I suppose I could code that myself, but I’m an engineering student and unfortunately I don’t have much time right now. Maybe I’ll get to that eventually. But anyway, good to know nothing’s actually broken there.

And I’ve looked into the legato thing a bit more, and I think I’ve figured out what exactly causes it, and why it’s not showing up sometimes: it works fine in the decay stage but not in the attack stage. If you trigger a new note after the attack has finished, it retriggers (even if the decay hasn’t finished). If you trigger a new note before the attack has finished, it doesn’t. Maybe this is intended, but I would expect it to behave the same for attack & decay (ideally retriggering either way).

Thanks for the help!

Regarding the envelope, this is not a bug.

In the previous versions of the firmware, the envelope went back to 0 every-time the envelope was retriggered. This annoyed a bunch of people because many analog synths don’t work like that - on an analog ADSR circuit, retriggering the envelope restarts the attack phase, but from the current level of the envelope, whatever it is… So in recent versions of the firmware, the new behavior is “analog-like” - retriggering the envelope means restarting the attack-decay cycle ; but from whatever level the envelope is currently at. If the envelope is currently in the attack cycle, retriggering it won’t create a discontinuity.

  • Second row: envelope is reset to 0 when retriggered.
  • Last row: envelope is not reset to 0 when retriggered (current behaviour).

If you want to change this in the code, add:

|| stage == ATTACK to the:

stage == DEAD

test in this

Oh, okay. That makes sense. I guess I was just expecting it to behave like a typical digital synth. I may have to start messing around with the code one of these days - I have a few other mods in mind too. Thanks!