From O|D Wiki
< ER-301
Revision as of 01:44, 22 October 2019 by Odevices (talk | contribs) (Bugs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Reported but not confirmed crashes

  • Crash when quicksaving a CPU-heavy (or memory-heavy?) patch (50+ units).

Confirmed crashes

  • Unit Editor > Duplicate control names should not be allowed. Doing so could eventually cause a crash.


  • Slice Players > Play Extent setting is getting overridden by change introduced in v0.4.21.
  • Any Player with shift parameter > bugs in shift parameter, only works in slicing mode
  • After X hours, sample playback glitches (reported but not confirmed on my end yet but seems to be power supply related).
  • Discontinuous playback when playing unit shares buffer with another recording unit (play/record head leapfrog bug).
  • Sample Player wave display sometimes does not reflect newly recorded content of a shared buffer. (see Forum: Question about looper/recorders and sample players with shared buffers)
  • Local routing > Feed-forward paths that connect a source higher in the chain hierarchy with destinations lower in the hierarchy will have one frame of delay.

Cosmetic bugs

  • scope traces draw outside of border
  • frequency display on gate/trig parameters sporadically shows incorrect value
  • short triggers do not show up on the bicolor LEDs (frame rate aliasing)

Feature Requests

The majority of the requests listed here were compiled from requests made by users over at the forum.
Please do not purchase the ER-301 only because of something(s) on this list because there is a risk that I might not get all of these features implemented in a time-frame that is useful to you. I will work hard (but not to the point where I destroy my health or my love for modular) and hopefully the upcoming SDK will alleviate some of this time risk but it is still a very real possibility that some of the items on this list will never be realized.

In Progress

        _,'|             _.-''``-...___..--';)
       /_ \'.      __..-' ,      ,--...--'''
      <\    .`--'''       `     /'  in-progress
       `-';'               ;   ; ;
 __...--''     ___...--_..'  .;.'
(,__....----'''       (,..--''
  • hold mode
  • command bus
  • wavetables
  • cherry-picking from list below

Very Likely

                       | \
                       | |
                       | |
  |\                   | |
 /, ~\                / /
X     `-.....-------./ /
 ~-. ~  ~              |  Likely
    \             /    |
     \  /_     ___\   /
     | /\ ~~~~~   \ |
     | | \        || |
     | |\ \       || )
    (_/ (_/      ((_/

Middle Layer

  • View cycling assumes only two views. Allow for more.

Custom Units

  • Promote/demote controls on embedded units to the parent custom unit.
  • Hide controls that are used for implementation only. Differentiation between UI and implementation.

Unit Parameters

  • user bookmarking of specific values for quick selection of often used values (via shift+encoder)
  • parameter recall via stack semantics (push and pop)
  • combine L/R faders and use channel select buttons to determine L vs R vs LR

UI enhancements

  • AIFF support
  • remap Gx and INx when loading a chain preset into a different channel
  • Clearly display buffer/sample assignment in units that have them.
  • Tween GUI animations against wall clock instead of frame clock
  • Give me a list of everything that is connected to source X!
  • Add note display to any unit with a V/oct + f0 controls.
  • Custom/MultiBand > The sub-display is empty for the bands/patch.
  • Setting > Auto-purge unused saved samples from pool when running out of sample memory.
  • Put back unit re-init command.


  • tuning info
  • adjustable time and amplitude scales

Firmware updating

  • implement restore points (copies of files that were changed by the firmware update)
  • add scripts to be executed before and after the installation


  • shareable packaging
  • projects that contain quicksaves and paramsets.


  • Slicing View > Slice on Loudness.
  • Sample Slicer > No way to remove loop points without deleting slice.
  • Global slicing vs local slicing.
  • many slice files for one audio file
  • many audio files for one slice file
  • learn function for slice selection
  • support for WAV cue chunks (see thread)
  • JSON/XML formatted files

File browser

  • ops: rename, delete, move
  • package preset for sharing


  • layering looper (see thread)
  • variable speed recording
  • pedal Looper > double loop length
  • speed control
  • more monitoring options
  • reverse
  • half speed
  • loop volume level
  • option to begin overdubbing immediately after first record pass.


  • Clocked Players > allow use of derived clock for sync.
  • Playlist Player (or add list to Card Player)
  • enhance Card Player to support negative speeds
  • Ping-Pong on gate Hi
  • Better support for clickless playback of shared buffers that are being recorded.
  • next slice trigger
  • more slice types (bounce, jump, random)
  • specializations
    • sampled instrument player (i.e. keymapped ADSR samples, sfz files)
    • drum kit player (i.e. multiple one-shots in parallel)
  • Offer to purge unused samples when sample memory is full. (see thread)
  • end of slice trigger (see thread)
  • end of slice fade
  • play to end of sample even in sliced mode (see thread)


  • add/remove channels
  • specialize mixer into 3 types: insertion, layering, song (see forum post)

Clocking and Timing

  • snap and recall tempo for Tap Tempo



  • freeze/reverse via gate input
  • spectral delay


  • more waveforms
  • sinc-based pulse-trains


  • Grid Quantizer > add ceiling and nearest rounding modes.
  • Envelope Follower > add output gain
  • Envelope Follower > Option to disable rectification.
  • Scrub-a-Dub > A turntable simulator that outputs a speed value given base speed, force (of finger), motion (of finger)
  • Exponential VCA
  • VCA+Envelope quick combo


  • more peaks (or specialized formant filter?)
  • add resonant band pass
  • Exact Convolution > Add "Edit Sample" to menu.
  • Approximate Convolution

Lookup Table (LUT)

  • drawable(?)
  • load/save as WAV


  • basically looper optimized for very short loops with pitch/loudness normalization
  • user sets start and stop points in a source sample
  • (user-assisted) pitch normalization of each wavetable/loop
  • (user-assisted) loudness normalization of each wavetable/loop
  • morph between multiple wavetables/loops
  • phase modulation
  • offset modulation

Unit templates

  • user saves the state of a unit as a special preset that will be used whenever instantiating the unit


  • button bounce time
  • default delay max time
  • default fade time
  • flash message time
  • zoom step for wave displays
  • common default parameter values (mixer gain, VCA level, etc.)

Command and Event Bus

  • command messages broadcast or sent to specific units
  • example of command response: clear buffer to all loopers
  • example of event generation: End-of-Cycle
  • command generation unit that will emit a set of commands when a trigger is received
  • events are efficient (i.e. frame-rate) triggers?

Teletype Integration

  • add SC.PRESET command to load quicksaves

Under Consideration

  |\      _,,,---,,_
  /,`.-'`'    -.  ;-;;,_
 |,4-  ) )-,_..;\ (  `'-'      Considering it...
'---''(_/--'  `-'\_)

More Units

  • spatialization
  • compressor
  • slow random source
  • bytebeat
  • simple step sequencer
  • digital waveguide synthesis (wind and string models)
  • (experimental) data-driven multitap delay: real-time onset detectors feed clock and feedback amount
  • (experimental) non-linear oscillator (driven oscillations)
  • (experimental) automatic loop/wavetable clustering

UI enhancements

  • undo