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

V0.4.x Firmware Workout: Goofing off never felt this hard



I think that’s the way they’ve always been, and these values make pretty good sense if you’re going for audio rate modulation - linear FM.

I was going to suggest that you go into the control editor, and you could specify your own gain amounts and save that as a preset so that you could have a version of the Sine Oscillator with a gain movement that’s more naturally conducive to drift or vibrato. But I do notice that the f0 control is greyed out in the control editor.

I wonder what disqualifies a control from being available in the control editor… :thinking:


That’s exactly right. That oscillator units and their parameter ranges are currently optimized for audio rate stuff. Perhaps it is worth considering the design of low-frequency versions? I was hoping to avoid this particular specialization.

That’s because the f0 bias fader uses an exponential curve (octaves to be exact). Please don’t be confused by this statement. The f0 control affects the frequency of the oscillator in a linear fashion but the relationship between the bias value and the encoder is exponential.

Currently only the linear faders are customizable.


Although, now that I think about it, the gain fader is linear so maybe I should allow the editing at least of that part. Currently the decision to allow editing is based on the linearity of the bias control which is now looking to be a bit heavy-handed.


From my perspective, the tools are already there to build a customized version pretty easily. E.g. you could drop a VCA into the subchain and set it’s gain to be 0.1. Then if the gain on the f0 is set to 10, you’re really only getting 1/10th of that (1.0). And you can also add a custom control to control the gain of the VCA you inserted from the top level of the unit. To me this is preferable to “Unit creep” with multiple specialized versions of various units to wade through and try to remember what’s different about them. :slight_smile:

I do like the idea of allowing editing of what parts of the control are linear though!


Probably also worth noting that by focus pressing the gain control, you bring up the big/numeric data entry screen and can set whatever specific value you want.

One thing I notice about the big/numeric (what are we calling it?) screen is that the new value doesn’t seem to take effect until you hit enter. Is it possible to have changes here take effect immediately? Is there a reason we wouldn’t want it to?


There are still some remnants of unlinking a stereo channel to mono in the local assigns. I had linked a set of channels, then unlinked them (with no chain contents). It’ll say (left) below the name even though there was never stereo version of this set of units. Should it?

check out around 45:43…


am i going crazy or i don’t see any oscillators apart from joe’s bespoke pulse on 0.4.08??? i rebooted two times after update!

not only oscillators, a lot of the basic units are missing.
can anyone confirm?


tried installing both normal and low latency:
-normal version: all ok
-low latency: a lot of units missing


I was about to answer you on the normal version. Brian did say something about removing a unit or two from the low latency version.


yes i read about the convolution, but this seems more a bug, no vcos except the bespoke one :slight_smile:


suggestion for @odevices:
can you implement a way of copying and pasting words in the text editor? the mpc and octatrack (for comparison) have this and it renders the naming of units\samples\sessions quicker. maybe it’s already there and i don’t know about it tho, it wouldn’t surprise me :smiley:


Hi Brian!

I have a question about custom controls using non-custom units.

I understand being able to tweak some of the current ranges, but I’m still confused as to adding new controls into existing units, as they don’t appear to do anything.

Unless I’m missing something obvious, and these added controls can’t really do anything (such as injecting signal), then should adding new controls to non-custom units be made illegal?



Thank you for .4.08. A lot of fixes that i’ve noticed immediately.

I apologize in advance for what might be my misunderstanding with how the toggle custom control functions but, as previously mentioned, I’m noticing some funny behaviour. I fully admit that it could be user error, and if so, i’m sure some of the more experienced users can correct me.

Here are a couple of screenshots that describe my experience with 48khz .4.08

I had setup a toggle to engage a band in a multi band unit. My first impression with the “invert” toggle in the custom control menu would mean that when it was “off” it would send 1 and “on” would send 0.

The next 2 screen shots are the result “on” and “off” (band 1=A{invert=on… notice glyph}, Band 2=B, etc.) which shows the confusing behaviour:
0001 0002
I try toggle B to confirm consistent behaviour:
Here are the custom control setting for toggle A and B:
0005 0006
Here I revert toggle to invert = “no,” which shows what i expect to be the correct behaviour, but the exact same as if invert was toggled “on”:
0007 0008

Also, a minor issue I’ve noticed when changing System Settings >> Display value for unit control readouts. [bias/actual]. The setting won’t be respected until a custom unit is reloaded. e.g. load custom unit, change system setting, no change. reload custom unit, see change.


I think the idea is if you build a subchain inside a built in unit’s control, you could add a control to control, say, a VCA that lives 3 layers down right from the top of the unit.


Hi Brian,

I hope you are having a good weekend and sorry for constantly bugging you but i think i’m still getting routing issues with 0.4.08 48khz. My routings at the deepest nested level will reset to empty after saving or trying to copy.

I have attached the unit i’m trying to make to provide better context. Here is a description:

I’m trying to make a 3+1 (3 internal sin osc + 1 external in) op FM synth with flexible routing matrix so i can easily program some of my favourite dx7 patches. I know there already exists some emulations on the forum but I find I learn a lot better if i just do it myself. It has really helped me get a better grasp on FM synthesis (thank you). It looks like this in structure:

topology (by depth):

  1. Custom Unit (meta controls and external signal)
  2. [4-band unit “fm 4op end”] (toggle “on" if op is a “root” of a branch)
  3. for each band in “fm 4op end": [4-band unit “FM Mixer ~> A"][sin oscillator]


  1. Top container
  2. acts like the END of a typical FM algorithm (e.g. dx7 algo1 op 1 and 3)
  3. acts like a FM index routing mixer into the internal sin oscillator phase

I think the multi band units enable flexible transitions between algorithms. I can route everything very easily and send the avg of these units to each sin oscillator’s phase. However, if i try to copy the deepest multi band unit "FM Mixer ~> A” to another, it will forget all the routing. It would not be so bad if it eventually saved all routings on “save preset” but it forgets this too.

Let me know if i’ve found a hiccup or I’m just going about it wrong. Thanks again for your time.
lazyfm 3 1op.unit (94.9 KB)


aha! Derp. Thanks… I totally missed something obvious! :blush: :blush:


Curious though, if you’re toggling on/off behavior using a VCA at the end of the Band’s chain to cut the signal, why are you needing to invert a control’s output?

The Bipolar VCA would be placed at the end of the Band. Bias set to 0, Gain set to 1. The VCA levels subchain source would be the Toggle control, with the toggle control’s gain set to 1.

The control would either be:

on/filled circle (value high to open the VCA)


off/unfilled circle (value 0 to fully close the VCA).


i’d suggest ‘doomsday device’:sunglasses:

i would opt for both:

  • the existing committing process allows the change to take effect after editing the value.
    This is great for recording and/or live situations when you’d like to make a discrete jump
    in a given value at a desired point in time.

  • the method Joe suggested would be also great for live in case you want to make
    continuous changes.

  • But sometimes you just want to wiggle with the doomsday device while listening
    to the results in real time. this would also be great for figuring out at which decimal point
    you’d like to set a corresponding local control e.g. for the coarse tuning value…

i’m not sure how a switch for both methods could be implemented since the screens of
the DD (doomsday device) are already full.
system settings is too far away. it would really be usefull if we could flick the switch
while in doomsday mode!



Ohhh! Dang I feel silly. Invert means 0 to -1 (from 0 to 1) not 1 to 0 (from 0 to 1). I guess this behavior would be called “reverse” instead of “invert”. My mistake.

What I was doing most likely was setting the VCAs to open at -1 * signal and not double checking the scope. To replicate what I thought invert meant (actually reverse). I would setup a +1 offset and then send the inverted toggle.

Thank you for your reply. The use of toggle in my patch didn’t need to be inverted, I was just puzzled by the behavior. Bug was between chair and module. Thanks Neil!


Maybe double clicking the ‘Grab Decimal Point’ or the Mx button under the digit you want to edit would toggle live edit mode?