Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

V0.3.x Firmware Workout: Better late than never



Ok thank you Brian
So I prefer before with clickcs
Because in live perfomance I bypass all mixer then when I want to play with the unit I put it on then after that I bypass it…
And now I can’t do anymore live performance with the 301…


switching from v3.19 to v3.20 seemed to have sorted it without any other intervention

strange behavior I’ve not seen before :man_shrugging:


CC[quote=“odevices, post:907, topic:1003”]
:fire: All slice players can now sustain slices by looping (a user-specified) portion while gate is high. To enable this behavior just set the Play Duration setting to “sustain”:

By default the entire slice is looped unless you go into the Slicing View and set your own loop points (per slice):

I’m a little confused with how to play the nested loops between slices. I’m using a clocked stretch unit and set play duration as sustain. I’ve sliced the sample and inserted many nested loops but unable to trigger them. I’m triggering the clock and trigger with the same trigger and using cv to select a different slice but it keeps resetting and playing the first sliced sample. I’m pretty sure I’m doing something wrong. When I stop playback and change cv the playback jumps to the correct slice. When I start playback it doesn’t do that - it jumps and plays slice one like its resetting on every trigger. Any ideas?

Ok I think I get it - gate high. I tried an attenuator simulate a gate. My sequencer i can adjust to gate high and triggers and triggers with various lengths. When I change to gate though I need to trigger the sample at the same time so have adjusted the threshold. Its still not doing what I want though.

What’s the best way to use the sustain function - do you have any examples I can play about with my set up?


I didn’t fully understand your description of the issue, so allow me to describe the intended behavior.

The slice will sustain as long as the gate signal (that is also triggering the slice to select and start) is kept high. The sustain is achieved by looping the user-indicated portion of the slice when (and-if) the play head gets that far before you let the gate go low.

Edit: That was a great bunch of instagrams you posted today, by the way :heart_eyes:


I think I’m confused in what the sustain function is. I’m not thinking sustain, I’m thinking nested loop (within the slice) and you can trigger that inner loop to play. I’m watching the graphic display thinking this isn’t doing what I think its doing when I didn’t understand the function. The next thing I was going to try was hit the trigger with pulse wave modulation thinking that could trigger the start and end points of the inner loop to play (but its sustain!). thanks for clearing that up. Brilliant update - my sample slice mangling was already fulfilled since 0.5 firmware and this new stuff is the icing on the cake! Thanks for checking out my Instagram:slight_smile:


Think ADSR.
You trigger the sample, and while the gat is up (like holding the key down) it loops the small section you identified within your sample, until the gate goes down, when the last portion of the sample plays out.


Just checking back in on the CPU spikes with Clocked Stretch (and probably Clocked Player also). I’ve found the problem and working on a fix now. Basically, it is possible with a combination of a long sample (or slice) and a fast clock to get an effective playback speeds that are in the tens of thousands. For example, if you load up a 4 minute sample and feed it a 50Hz clock, then that translates to 4min x 60sec/min x 50Hz = 12000x speed. Hehe.

The fix is nontrivial so give me a day or two.


Great stuff in v03.19/20. It has addressed so much stuff I personally wanted. Brian you could have easily shipped this as v04.0 with all the extra stuff :slight_smile:


Citation @odevices I suppose I can customize the behavior for when you are muting mixer units so the parent chain is not affected since it is not really necessary in this case.

I don’t use the mute function
I alaways use bypass function for disable the units in the mixer channel
then when I bypass a mixer I engage another one… It’s perfect for live performance and the CPU !


Can you do something for me quickly ?
Because I play this week end and I can’t load my quicksave in 0.3.18 (I load them with the new firmware and after that they won’t load in previous firmware)
So… At this time my live session is dead… :tired_face:


Thank you for the option to REPLACE!!! :heart_eyes:

Edit: I actually have no idea at which point this was introduced, as I haven’t patched in a couple months, but this addresses my desire to switch osc waveforms on the fly. Tytytytytytyty


Captain @odevices!

I have a few thoughts/ideas … and as always these are just take it or leave it thought bubbles… :blush:

V0.3.20 48K

I’m just playing around in the Vari-speed player (and this suggestion would apply to any sampler / grains using slices)

Play Duration
The terminology may be a little confusing under “Playback Options - Play Duration” as it’s slightly mismatched with the Looping functionality in the Slicer Editor area.

I feel like it would be clearer if the 3 options were:

Once (same as current)
Slice Repeat (instead of Loop)
Gate Hi Loop (instead of sustain) - I’m sure there’s a better name, but as long as “loop” is in there for consistency with the editor.

Honestly, for a few minutes I was scratching my head trying to figure out why my Loop markers weren’t repeating until I finaggled various options.

Slicer Menu
Also thinking for the sake of flow, the order of the menu would subliminally be more intuitive to the user if it was laid out left to right mimicking the general order of tasks when slicing a file for the first time.

So left to right:

S. Insert (possibly renamed “+ Slice”??? ) (When I think of insert, it’s something pushing something else out of the way). I feel it’s more important to have the word “Slice” in full, vs being abreviated.

S. Delete ( or maybe “X Slice” or “- Slice” ) ??
L. Start (rename to “Loop In”)
L. End (rename to “Loop Out”)
ZC Snap

Softkey Feature Idea: Double Tap Shift to select all within a slice

Bug or by design? If adjusting the Loop end point while the slice loop is looping, graphically it changes, but audio isn’t reflecting the change. Would be great if it did, to realtime tweak a loop.

Destructive Audio Operations
If there was a (global pref?) for an additional level of safety with an “Are you sure? Y/N” prompt when choosing Trim/normalize/dc/fade etc…

-Would love it if the input monitoring options could always read from a global preference of those same parameters when adding a new Pedal Looper in a chain

Feature request: Additional After Record Option: “Stop”

-(this is probably a bad idea) if upon stop, there was a global pref to automatically push the recorded stuff to a new buffer without having to menu dive.

-if I replaced this unit with a varisampler (or whatever sampler / grains) unit, it would auto-attach the same buffer file used into that new unit.


The level now defaults to .480 instead of .5. Defaulting at .5 was simpler to calculate gain offsets and such if using these for modulating fader parameters. Was there a reason for the change? I know I can go in and re-adjust.




V0.3.20 48K

v/OCT Bug

The V/Oct adjustments on many units using the Encoder are funny… happens on manual grains, Variable Speed Player, SIN, TRI etc… so I’m guessing this is a global thing??

on FINE it’s moving: 0, 10, 20, 30, 49, 60, 70, 80, 99, 109

on COURSE it’s moving: 0, 99, 199, 300, 399799, 899159917993199

Negative range have simular things happening…


I took some hints from your suggestions and updated the soft button labels in the slicing view. Tell me what you think!

Currently, slice data (and by association the loop data) is only consulted on a trigger (or the rising edge of the gate). So, by design in this case.

The current layout puts the most used functions on the most comfortable buttons. The buttons directly above the knob are (IMO) the most awkward to press.

Let me think about this one. If I did this, I would probably have to also support the opposite direction which is a little complicated from the point of view of memory management.

A generic solution to this sort of thing is coming in v0.4.xx.


v0.3.21 CHANGES

  • FIXED: Clocked Stretch > CPU spikes when clocked very fast (>10Hz) and attached to a long sample (> 1min).
  • FIXED: Oscillator units > Level was defaulting to 0.480 instead of 0.5.
  • FIXED: Mixer Unit > Ducking to silence during bypass is now applied to the Mixer’s child chain instead of the Mixer’s parent chain. (@Mooko)
  • FIXED: V/oct Controls > Rounding error in the display of the cents value.
  • ENHANCED: Slicing and Sample Edit Views > Added Yes/No confirmations to destructive operations.
  • ENHANCED: Pedal Looper > Additional After Record Option: stop.


Did you try using slice navigation mode when defining your selection?

Edit: Oh wait SHIFT+KNOB is not working in that navigation mode. Ooops.


thank you so much Brian !!!



Almost! :slight_smile:

v/Oct controls are fixed on the position coarse/fine range, but the negative values still hit a bunch of 99 based values


V0.3.21 48K

Thanks for these subtle changes, really makes it clearer!

The minus sign might be a little too small… might need a few more pixels on the length of it, or a few pixels of black on the left side to separate it from the waveform. Thoughts?

Is it worth squeezing in “Gate” before High (or perhaps “Loop on Gate Hi”… so it’s an absolute no-brainer of what parameter this is related to?

All good thanks!

Understood and makes sense!

Understood - whatever you think is best!


Looks like it made to everything except the most destructive operations : Trim and Cut.

Sidenote: Once you “cut” something, is it pasteable? If not, for clarity should this be called “Delete”?

Also, thanks for the ‘Stop’ option in the Pedal Looper!


V0.3.21 48K

Possible memory bug?

Hmm… I did this once and I can’t find a reliable way to repeat it. But, it did happen somehow… Hmm…

-I recorded some audio into a pedal looper
-Sent it to a new buffer file
-I then assigned this file it to a new variable Speed Player

I changed my mind and instead attached a different file to this player directly from the card.

All was well until i did a cut operation, and then based on how much I cut, at the end of the audio file (loaded from the card) it played (and displayed) the same cut duration of audio from that unrelated pedal looper buffer file.

I’m trying to get it to happen again, so far no luck! ahh!