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

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



Happy to report I played 3 shows this weekend with 3.02 - no issues at all moving between 4 pretty big quick saves :black_heart:.

@odevices I don’t have a solution but in a live setting having the quick save load selection close to the save button is a bit nerve racking.


Risk taker!


Awesome, awesome stuff @odevices!!

@trickyflemming, thanks a bunch for the idea starters and how-to’s!



With settings in admin for “bypass disables plug-in”", bypassing a mixer or custom unit does not appear to disable anything contained within.

BUG v0.3.04

Same as @kilchhofer
Freeverb, the moment I add it on a mono strip (48k firmware), sound cuts out on that chain. Re-init doesn’t bring it to life either, If I bypass it, it comes back. Works fine in stereo. Oddly, when I changed the strip back to mono, and added the verb again, it worked. Hrmm. Output meter also display no signal.

Admin Area Comment

Wondering if the same concept of the new and improved unit select could prove useful in the admin list?

Such as “Global Audio” heading with:

  • 6 Track recorder
  • Global Chains
  • Sample Pool
  • Pre-amp settings
  • Channel Setup

And “System Utility” for:

  • Settings
  • Firmware
  • Card Console


Possible bug 3.04

Trimming a sample in sample scanner shows no waveform, seems to work ok in the normal sample player.


Good morning! :coffee:

v0.3.05 CHANGES

  • FIXED: Freeverb > Uninitialized comb filter state variable causing havoc (no audio, broken level meters) downstream of this unit. :bowing_man:


Darn. I couldn’t replicate this. How are you determining that the units contained within are not being disabled?


I’ll bet @NeilParfitt is about to make a video!


Hello, first post here! I’m very much enjoying all the reports on the new firmware. My er301 is scheduled to be shipped on 22 dec, can’t wait to receive it :slight_smile: … ah, realised 22nd is a Friday and it’s being delivered to my work so I’ll hve to wait til after Boxing Day to receive it. Oh well, I waited 2 years for my cirklon so 8 weeks isn’t too bad :slight_smile:
Cheers all.


In v.0.2.x when selecting samples one could preview sample and scroll, leaving preview engaged. This no longer occurs, with a scroll to next sample turning off preview. Is this a bug or design decision?


POSSIBLE BUG in 0.3.05?

Have a sliced sample playing in sample player with slices selected using CV coming in from a sequencer.

After playing for a good while (maybe 5 minutes) it suddenly selects different samples and jumps around.

Am also listening to the CV as is driving pitch of an oscillator (not in ER301). There is no change to its tune when the sudden changes happens so don’t think it’s the incoming CV.


I think it was always like this (i.e. scroll away and preview stops). I went back to v0.2.27 and checked too. It was a design decision by the way.


Ok, faulty memory :blush: I thought it was implicated in the audio preview bug I had earlier in 0.2.x


Haha! I’m waiting a title bit until the GUI solidifies.


there was no drop in cpu usage. I’ll be in the studio tomorrow and test again.


Hmm. I’ve had the same 3 (of 100) slices looping via an external CV sequencer for a few hours now and no weirdness so far. I’ll keep stress testing but if you have any other clues I’m all ears. :vulcan_salute:


Possible bug :

Admin —> 2x 2 stereo ----> unlink the last two channels so it’s 1 stereo and two mono

On channel 3 ( mono ), I have an audio signal coming at channel 3 IN. Select the source at channel 3 as channel 3 IN and you will see as usual that the audio meter works after adding a source signal. Just add a freeverb —> sound dies on that channel out and meter stops working.


Possible Bug v0.3.05 48.0kHz

With the Clocked Delay, when I mount the feedback above 0.000dB the audio stops and you must remove the unit to restart audio.


Some take it or leave it workflow ideas…

Global Chains
Space for Rent… Bypass Chain?

Conditional Paste or Paste Abandon
There’s been a few moments (absolutely my error), where I’ve had a bigger channel mixer process copied, I’ve pasted it where I needed the duplicate, but then later hit paste by accident. Of course this is when CPU usage is already heavy, so when this paste happens again, it brings the system to its knees and I’ll have to cycle power. Perhaps there should be a safeguard for pasting if CPU is above 80% usage with an added Y/N prompt? Or a way to abandon the paste at anytime when it’s crunching by pressing Cancel?


S3 “load” changed to “clear” function with an “are you sure y/n?” dialogue.

M1 to M6 - loads the quicksave listed above each button

Unit Rename
Feels like this could be on the outmost immediate access S3 menu to quickly rename, and re-init could go into the menu dive?

Bypass / Disable

If system pref is set to disable, maybe this should be consistent when hovering over the unit header, so bypass would instead say “disable”

Also, reporting back on CPU usage while global bypass pref is set to disable:.

I have a single chain up that has 2 x channel mixers, within each, a custom unit with a bunch of processes.

up and running this is all taking 63% CPU (48k 0.3.4)

If I bypass (disable) a channel mixer, CPU drops to 55%.

If I bypass (disable) the sample player WITHIN the custom unit, within that disabled mixer, CPU drops to 29%!

If i delete the same channel mixer along with everything within, CPU drops to 28%

So maybe it’s the sample player/slicer that’s not getting disabled properly?


I was saving a quicksave and then it “oopsed”.

CPU usage was near the glitchy audio ceiling … before I checked it was 85-90% when I started the save.

The last GUI message was that it was ‘encoding data’. It had been on that for about 4 minutes.

Time Since Boot: 2585.106s
Version: 0.3.04 (unstable)
Boot Count: 33
Mount Count: 1
Error Message:
X:/Persist/serpent.lua:90: not enough memory for buffer allocation
stack traceback:
[C]: in function 'table.concat’
X:/Persist/serpent.lua:90: in upvalue 'val2str’
X:/Persist/serpent.lua:85: in upvalue 'val2str’
X:/Persist/serpent.lua:85: in upvalue 'val2str’
X:/Persist/serpent.lua:85: in local 'val2str’
X:/Persist/serpent.lua:105: in function ‘Persist.serpent.serialize’
(…tail calls…)
X:/Persist/Serialization.lua:11: in function 'Persist.Serialization.encode’
X:/Persist/Serialization.lua:40: in function 'Persist.Serialization.writeTable’
X:/Persist/Preset.lua:18: in function 'Persist.UnitPreset.write’
X:/Persist/init.lua:652: in function ‘Persist.quickSave’

X:/Base/Widget.lua:151: in function 'Sample.Pool.Creator.sendUpHelper’
X:/Base/Widget.lua:141: in function 'Sample.Pool.Creator.sendUp’
X:/Context.lua:192: in function 'Context.notify’
X:/Application.lua:143: in upvalue 'notify’
X:/Application.lua:244: in upvalue 'dispatch’
X:/Application.lua:314: in function 'Application.loop’
x:/startup/start.lua:54: in function <x:/startup/start.lua:47>
[C]: in function 'xpcall’
x:/startup/start.lua:57: in main chunk
[C]: in function ‘dofile’
[string “dofile(‘x:/startup/start.lua’)”]:1: in main chunk
Recent Log Messages: