V0.1.6pre: volunteers needed

Before I go to bed, I would like to ask for volunteers to bang on this pre-release candidate. Specifically I want you to bang on the new CUSTOM UNIT which lets you build your own units using other existing units and tell me your thoughts. Download links at the bottom.


  1. Insert a CUSTOM UNIT
  2. Focus press the unit’s header to get the unit’s menu.
  3. Select Edit Controls.
  4. Press and hold “change” (S1) while turning the encoder to set the active control type.
  5. Press “Add Control” (S2) to add a control of the active type to the unit.
  6. Press UP when you are done.
  7. Build the internal chain: Press the CUSTOM UNIT’s “open” button to view the unit’s internal chain. Build something here. The input of this internal chain is the input of the custom unit. The output of this internal chain is the output of the custom unit.
  8. Use the custom unit’s controls to control parameters anywhere inside the custom unit’s internal chain: Whenever you assign an input to a branch of a unit in this internal chain, notice that you have “Local Sources” that you can select (in addition to the usual “External Sources”). These local sources are the controls that you added to the custom unit.

Some of the major things that I would like you to ignore for now:

  • 6-track recorder is disabled (under reconstruction)
  • Lack of UI for renaming for parameters of custom units.
  • Lack of UI for reordering of parameters of custom units.
  • Lack of promised new units. They are coming!

v0.1.6pre CHANGES

  • INVISIBLE: Rewrote the underlying GUI framework to make it more amenable to plugin development.
  • INVISIBLE: Big changes in the audio engine were done to get ready for the upcoming bus units.
  • FIXED: button debouncing time was incorrectly configured resulting in little to no debouncing.
  • FIXED: audio dropout when inserting LIMITER unit
  • FIXED: upon activation, input channel selection UI resets to collapsed state
  • FIXED: SAMPLE PLAYER’s fade time parameter not getting updated when moving fader and stereo sample is loaded
  • FIXED: fixed potential race condition when deleting slices (hard to test though)
  • FIXED: zipper noise when changing modulation gain/bias via knob
  • FIXED: WET/DRY parameters were not clamped to [0,1]
  • FIXED: some obvious parameters were not being set when loading a mono in preset into a stereo context (and vice versa)
  • FIXED: when parameter is focused, pressing CANCEL now restores the original value (rather than zeroing it)
  • FIXED: bouncing cursor does not match selected spot sometimes
  • ENHANCED: slice offset parameter added to SAMPLE PLAYER
  • ENHANCED: scrolling in SAMPLE PLAYER’s slice view now wraps at the begin/end of the sample
  • ENHANCED: added hard sync to SINE OSC unit
  • ENHANCED: you can now undo the following actions: clear chain, delete unit
  • ENHANCED: now in some units, if you can focus press a parameter to get its contextual view
  • ENHANCED: keyword filtering added to the unit selection screen
  • ENHANCED: 24 quicksave slots
  • ENHANCED: OUT1-4 can be routed to chain inputs
  • ENHANCED: units can be renamed
  • QUESTIONABLE TWEAK: replaced SAMPLE PLAYER’s linear fade with a cosine fade
  • NEW UNIT: Custom Unit (encapsulate a chain of units)

v0.1.6pre-patch2 CHANGES

  • FIXED: firmware updater crashes when pressing the update button

v0.1.6pre-patch3 (The Neil Parfitt patch) CHANGES

  • FIXED: focus pressing a control caused it to lose focus
  • FIXED: fixed some visual issues with fonts (0, r, and t)
  • FIXED: sub-chain edits were not being reflected in the parent parameter’s miniscope
  • FIXED: local sources are placed first, in the source selection screen
  • FIXED: accidentally, left out the SINE unit’s level parameter from UI
  • ENHANCED: GUI animation settings added (slow, normal, fast, disabled)
  • ENHANCED: Custom Unit names are randomly generated
  • ENHANCED: Custom Unit control editor, pressing S1 will cycle through options
  • ENHANCED: Unit presets that are saved in ER-301/sc/presets/units/chooser now show up in the unit selection screen.

v0.1.6pre-patch4 (The sunshinelover patch) CHANGES

  • FIXED: Characters were being inserted on button release (should be on the press) in the keyboard screen.
  • FIXED: “Prompt” setting for reloading quicksaves on boot was not working.
  • FIXED: Unit names were not restoring properly when loading presets due to incorrect saving logic.
  • FIXED: Crash when inserting unit and front SD card is not mounted.
  • FIXED: Suggested filenames are no longer erased when typing (press SHIFT+HOME to clear the text box).

v0.1.6pre-patch5 CHANGES

  • FIXED: Crash in sample slice view.
  • FIXED: Disabled wrapping around in slice view.
  • FIXED: Cursor not showing in channel setup.
  • ENHANCED: Focus press unit header to switch between unit’s control view and menu view.
  • ENHANCED: Normal press unit header to left justify the unit.
  • ENHANCED: Unit bypass now implemented.

v0.1.6pre-patch6 CHANGES

  • FIXED: Crash when CPU is overloaded.
  • FIXED: Removed zombie sub-screens in admin menu.
  • FIXED: 6-track recorder is back with cleaner UI (and internals).
  • ENHANCED: 6-track recorder now has presets and it’s state is saved with quicksaves.
  • ENHANCED: file/folder dialogs have been consolidated and improved.
  • ENHANCED: At anytime, SHIFT + channel buttons 1-4 will mute/unmute the corresponding chain.
  • NEW UNIT: I’ve been stress testing the firmware with this CV-able STRESS unit.

v0.1.6pre-patch7 CHANGES

  • FIXED: Mono version of STRESS unit crashed on load.
  • FIXED: Garbage values in frequency measurement display over gate control in the CUSTOM unit.

v0.1.6pre-patch8 CHANGES

  • FIXED: limited pitch modulation range on CUSTOM unit
  • FIXED: In Chain Preset Saving, the button release from pressing “Save” was inadvertently activating the “New Folder” option on the next screen.

v0.1.6pre-patch9 CHANGES

  • FIXED: creating a new folder while saving chain/unit presets caused .lua to be appended to the folder name.

v0.1.6pre-patch10 CHANGES

  • FIXED: Got rid of the intermediate “switch” state on the units.
  • FIXED: 6-track recorder UI behaved weirdly when recording buffers overflowed.
  • ENHANCED: added context-sensitive hints to the 6-track recorder setup screen.
  • ENHANCED: audio is faded out/in whenever you mute/unmute a chain
  • ENHANCED: chain is now auto-muted before you clear or link/unlink channels

v0.1.6pre-patch11 CHANGES

  • FIXED: freeze when automatically restoring (w/o prompt) the last quicksave on boot.
  • FIXED: incorrect “failed to load quicksave” error message when loading quicksaves made before patch 6.

v0.1.6pre-patch12 CHANGES

  • FIXED: Sometimes unit subscreen contents are blank after returning from a menu action.
  • FIXED: When loading a quicksave, 6-track configuration is only loaded if not already recording.
  • FIXED: Track-and-Hold unit was not tracking when used in a mono chain.
  • FIXED: Unit bypass menu item was not working when the unit was collapsed.
  • ENHANCED: Changed default unit settings for MIXER gain and PLAYER speed.
  • ENHANCED: ADSR parameters have been extended out to 10sec.

v0.1.6pre-patch13 CHANGES

  • FIXED: LOOPER’s fade on reset functionality was missing.
  • FIXED: Sequential channel bleed on the G inputs.

v0.1.6p14 (stable)


  • FIXED: SHIFT+HOME (ZERO) now uses the press event rather than the release event.
  • FIXED: LOOPER preset will now restore buffer characteristics (max loop length and # of channels).
  • FIXED: Negative start parameter values in the LOOPER unit didn’t wrap around.
  • FIXED: SAMPLE PLAYER would not stop at previous slice when speed is negative.
  • ENHANCED: LOOPER start parameter has been changed to proportion of maximum loop length (was seconds).
  • ENHANCED: Changed default frequency settings for SIN OSC and LADDER FILTER.


  • FIXED: PLAYER gets stuck if the active slice is at the exact beginning or exact ending of a sample.

There is a possibility that quicksaves and presets made with this new version are not backwards compatible. So to be safe you should make a copy of your ER-301/sc directory before switching firmware.

er-301-v0.1.6p15-48kHz.zip (1.3 MB)
er-301-v0.1.6p15-96kHz.zip (1.3 MB)

Note: If you installed the unpatched version of this firmware, then you will find that the Firmware Update screen has a bug that prevents you from installing another firmware via the FRONT sD card. This bug gets fixed in patch 2 but in order to install it you will need to so via the Emergency Manual Update Procedure (E.M.U.P.):

The Emergency Manual Update Procedure
(This is not the normal firmware update procedure! You only need to do this if the regular updater using the FRONT card fails for some reason.)

  1. Download the firmware archive that you want to install and unzip its contents on your PC.
  2. Unscrew your ER-301 from the case and look at the back. There is a SD card on the back. I will call this the REAR SD card. Take out the REAR SD card and bring it to your PC.
  3. Using your PC, copy the 3 files that were in the firmware archive (MLO, SBL, kernel.bin) to the root directory of the REAR SD card of the ER-301. You will overwrite the 3 files on the card already and that is OK.
  4. Put the REAR SD card back in the ER-301 and power up. You are done.

P.S. Crashes are highly likely.

Cool. On it!

Oooh! nice new visual look Brian. Smooth!

Here’s my observations so far…

New Coloured Tabs:
My only suggestion would be having a thicker or full brightness line at the left-most line of a unit name tab, to help further separate the units when you’re skimming through a large chain. I like the filled B/G unit names… but it still feels like it needs a stronger visual line.

-LOVE the quick category sort!! This will be fantastic when there’s a ton of units.

GUI- the visual sliding to the next area. Having the option to disable or set the timing? Muscle memory of flying around on this module is faster than the animation, (for me anyway). So that could get cumbersome for experienced users.

GUI - wondering - if you area indeed playing with various bold or brighteness levels of fonts… what if when you’re nested within a custom unit or chain, the left most name is a little dimmer… so we know it’s not the parent-most level. (if that makes any sense. But also, I know you’re working on an overview page so this might be irrelevant ).

GUI - did the font change? The new 0 looks kinda like a D as there’s an extra pixel on the lower left side.

Custom Unit:

GUI observations:

-Upon opening a custom unit for the first time, it would be nice if the cursor was placed in the ‘insert’ area… saves a step of having to move the encoder to the empty area for the ‘insert’’ to show up on the lower screen.

-If a custom unit is inserted within the parent custom unit, it’s also named “Custom Unit #1”. I’d suggest having that increment if it’s technically possible to avoid confusion/getting lost.

-If I’m within a newly inserted unit, the top right of the large screen has some pixels that disappear and re-appear in a consistent way.

Custom control Quickstart

-could the S1 ‘change’ button just toggle between the 3 options? I like the concept of the “hold and encode” control, but it would make more sense to be deployed for something with a ton of options. With only three choices, it feels like extra work for a simple parameter change - a user shouldn’t need to use two hands for that. Cycling between the 3 settings with the S1 button would be faster imho.

-would be awesome if there was a 4th option for an audio level control, unlike the +/- CV option. Just something on the surface like that for quick gain staging without having to add further VCA’s and dive and assign for something that should be a quick adjustment.

-for the sake of flow, if I’m building custom controls… it would be nice to optionally assign the CV input here and now at the same time while my mind is thinking about it. As a user would probably be patching in their external controls at the same time.

-If custom controls are created, these would be most likely be the most frequently accessed sources, so I’m wondering if Locals should be at the start of the input select list (but only if custom controls exist).

BUG - if I’m at the outmost level of the custom unit, if i assign a control parameter to IE: CV1, the moment I assign and exit, that setting is forgotten.

I’m stepping out for lunch and then will test away with CV! But so far… excellent!! And no crashes yet.

custom unit presets
if units within are set using presets as well? If I erased the individual presets after the fact, and then went to reload the custom unit… would it still open everything properly? I guess this is my round about way of asking if the custom unit preset relies on these.

-what if custom presets you’ve saved are actually listed in a ‘custom’ category in the browser when you’re quickly inserting a unit? That would be pretty sweet!

Chain Clear
Would be nice if there was one ‘are you sure?’ prompt before blowing out a full chain. At one point I thought I was clearing a chain input… but… poof! whoops! :slight_smile:

Observation about the SIN unit.
-Really missing that level control. How does that affect prior presets? Now that you’ve included a sync feature (woohoo!), maybe the unit should be renamed ‘Oscillator’ and add an option within to select the usual basic waves like tri, saw, square etc… sync isn’t all that interesting on a sine wave.

inter-track audio routing works great!!
-I have an oscillator on track 1, vca control coming from a sin driven to square on track 2, pitch from some VC on track 3… and the result going to track 4 that has a clocked delay clocking from track 2 out. Cool! Works great!!

wish - mixers having the ability to be “grouped” with other mixers in the same chain level, to retain a relative balance. This would be super powerful if the custom unit had a special Custom control to then control ALL those grouped faders at once from a single source.


so far so good - my crashes/lack of UI showing up on the little screen are gone.

24 Quicksave Slots :raised_hands:

UI seems way easier to see, I like the feeling so far

more testing tonight…

1 Like

Using my ER 301 on an important project next Thursday… i 'll have to hold until next week…


I wanted to downgrade firmware to verify something, but if i go into the admin, update firmware area… the moment I press ‘update’ to access the file system, the 301 locks. It locks if i press ‘reboot’, doesn’t matter if there’s a card in the slot or not. I can access the card normally in the file browser (pre-crash).

So I guess the question now is… how do I … update or downgrade firmware now that this has happened?

Unrelated Bug: if i skim over the ‘sample pool’, the small screen populates with the “load / create / clear” menu … but doesn’t work until you’re actually within the sample pool menu.

Oops. What a horrible place to crash. Very sorry about that. Here is a fixed version:

er-301-v0.1.6pre-patch2-48kHz.zip (1.2 MB)
er-301-v0.1.6pre-patch2-96kHz.zip (1.2 MB)

To change the firmware manually, just unzip the firmware archive and copy the 3 files inside (MLO, SBL, and kernel.bin) to the root directory of the rear uSD card.


You’re a lifesaver! Thanks! That fixed it!


Thanks Neil for going where some of us won’t tread yet.


This is really good to know. Mine locked up too on the update page and I brought it back with that.

If I’m being honest, I like the older GUI better with “box” or “outline” around the units. Less confusing, and easier on the eyes for me.

I love 24 QUICKSAVE slots :heart_eyes:

The wrap-around cursor in the Sample Player + the new Zooming behavior kind of makes it tough to set the first Slice marker at the very beginning of a sample. Also, the Zooming locked up on me several time to where I had to reboot.

The naming of Units is a godsend :+1:

I’ve gotta experiment with the Custom Unit more, but for now I’m going back down to v0.1.5p23


It appears channels can’t be grouped anymore?

LOVE the new design! Clean clean clean

Can’t wait to hear what this new insert is?

1 Like

hi brian, thanks so much for sharing this!

after exploring around a bit (looks amazing, no crashes) i decided to jump back down to v0.1.5p23. firmware loaded fine - but now i get a crash as soon as hit the keys to load a quicksave. i hope this is resolvable as i had some pretty sweet patches saved in there.

//// update ////
i was able to fix it. seems my exploratory test quicksave in slot 10 was being requested every time i tried to activate quicksaves. i switched back to v0.1.6, loaded quicksave slot 1 and then switched back to v0.1.5p23. back to normal!

1 Like

This is a very good point and apologies for failing to mention this! There is a possibility that quicksaves and presets made with this new version are not backwards compatible. So to be safe you should make a copy of your ER-301/sc directory before switching firmware.

Note: I’m away from my workshop on a business trip today and tomorrow, so I won’t be able to issue emergency releases during that time.

1 Like

I’m on v0.1.6.
No crashes after some time with it.
The new custom unit is really usefull, thanks for that.

something strange : don’t know if it was the case with older firmwares.
I try to explain : I plug an external sine osc into the in1 and i send it with no other unit into the out1.
There is a little and ( edit : not totally ) constant phase shift between the two signals.

indeed. i’ve been making regular backups of the sd card before every update. also, i’ve noticed that in the quicksave directories there are multiple files - those are previous quicksaves, yes? if so, i’m happy to know that quicksaves aren’t overwritten.

1 Like

I am eagerly anticipating helping in the future as I’ve just recently placed an order
thank you for this module

1 Like

That is correct. A rolling backup is kept of your last quicksave. The idea is to eventually give you access to them in the UI but for now if you want to rollback a save to a particular slot then you would just rename those files (Q02.lua → Q01.lua, Q03.lua → Q02.lua, and so on).


Have given some exploration to 0.1.6. I like the new layout. It took a bit to get used to, but I feel like the workflow is much faster after adjusting.

Custom unit is great. 24 quicksave slots is very welcome. Being able to assign the outputs to chain inputs is extremely welcome!

I did experience a crash when inserting splices on a sample player. The assigned sample was the buffer used for a looper, not sure if that matters, but I’ve done that previously without a crash. I haven’t tried to recreate this again.

I’ll be going back to v0.1.5p23 for a gig on Saturday. Looking forward to playing with this more.

1 Like

for those of us without the module can anyone post what the new layout looks like?