Latest version:

ERU: A lightweight, configurable and holistic MIDI+CV DAW


Core design

  • Holism: In ERU you interact with your arrangement as a holistic entity, not one isolated instrument at a time.
  • Configurable grids: ERU makes polyrhythms and non-linear structures simple with its own grid notation format, and provides different levels of pitch filters.
  • Responsive: Designed for speed and responsiveness, an ambition has been to make using ERU feel more like playing an instrument than using a traditional DAW.
  • Native control voltage support: Integrate your Eurorack modular or other analog equipment with 1V/Oct, gates, oscillators and high-resolution functions.
  • Lightweight: No bloat; ERU does not have any bundled audio effects, instruments, samples or loop libraries. This allows it to have a tiny footprint both on disk and in RAM. It is also portable; no installation required.

Requirements

  • Windows 10 (64-bit) or macOS (arm64, 13.3+)
  • Audio interface with ASIO, DirectSound or WASAPI drivers for Windows or Core Audio for macOS
  • [Optional] MIDI interface for MIDI controlled instruments
  • [Optional] DC coupled outputs for voltage-controlled instruments

Features


Completed

  • MIDI: Editing, playback, recording and monitoring
  • Audio: Playback, recording and monitoring
  • CV functions: Editing, playback
  • CV gates: Editing, playback
  • Instrument types: MIDI Device, 1V/Oct and Oscillators
  • Automation: Volume, pan, BPM
  • MIDI-file: Export and import
  • PCM Wave file: Save and import
  • Undo history
  • macOS support

Major milestones coming up

  • Audio editor
  • Resource window
  • VST/VSTi support
  • Mixdown

QuickStart


This guide will introduce you to the fundamentals of ERUs workflow. If any component names are unclear skip ahead to the Viewports section.

Quick Settings check: Go to Options → Preferences and make sure that ASIO is selected under Audio Device if available, as well as the device you plan to use. You might also want to check that Direct2D is used as renderer. Use touchpad scrolling is not necessary on Windows, even if you are using a touchpad. It mainly affects how mouse wheel scrolling/macOS gesture scrolling is interpreted. Then switch to the Audio Out tab and verify that the output(s) you plan to use are enabled. Typically, the 1-2 stereo pair map to your speakers and/or headphones.
  1. Start a new project with Ctrl + N, or simply launching the program.
  2. Next, we create a couple of extra Instrument channels, hit Ctrl + I once or twice.
  3. We need to assign these Instrument channels to outputs if we want to hear anything, so Left-click on No output on each Instrument channel in the Tracklist and assign them to the Sine oscillator. An audio output field will appear directly to the right of the device field, again showing No output, change this to Master.
    Tip: If you prefer to use a MIDI instrument instead, you can do so and skip the next step. It will not matter for the rest of the guide.
  4. Three oscillators at peak volume into the master is going to clip a fair bit, so press F5 to show the Mixer if it was hidden, and drag the volume faders on the Instrument channels down to around -12 dB each. Alternatively, you can double click the volume fields near the top of the mixer, and type in -12 instead.
    Last thing before we leave the Mixer; verify that the Master channel is routed to the right output stereo pair.
  5. Time to create some notes; Left-click anywhere in the Note editor. Not only do we have a note, but a sequence has been created for us automatically! With Left-click + drag you can create longer notes, so add some of varying lengths. You can remove existing notes by clicking on them, and if you used the Sine output above, you may notice that old notes are removed automatically when you insert a new note on the same beat and that longer notes get cut off by the first following note; this is because the monophonic nature of the instrument is reflected in the Note editor.
    Troubleshooting: If nothing happens when you click in the Note editor, it is probably because ERU is in select mode, hit Tab once, make sure the mouse cursor is an arrow, and try again.
  6. To initiate playback, press Home or 0 (zero) to return the marker to the start of the loop (optional), and then either click on the play button or hit Space or Enter. This will start playback and play the entire looped section on repeat until stopped (same keys).
    Tip: There is an alternative way to start playback, intended for quickly auditioning changes, press and hold the D key; playback will start from just ahead of the mouse cursor and stop the moment the key is released.
  7. Next, we will create some harmonies. We can quickly move the focus between channels with the Mousewheel ↕ or Ctrl + [/Ctrl + ], or simply by clicking them in the Tracklist. Try that and add some notes to each of the channels. The background notes are rendered dimmer and semi-transparent, while the foreground/focus notes are solid and brighter.
  8. Let us switch into edit mode next, hit Tab, the cursor should change into crosshairs.
  9. Using Left-click + drag; draw a rectangle around some notes in the active channel, they should get white outlines as they are caught by the selection rectangle. Click in an empty space to deselect everything. Now try it again, but this time use Shift + Left-click + drag, you can now select events from the background channels too.
  10. Use the arrow keys to move the selected notes in increments, and see how they stay locked in the chosen key (default C major) when moved vertically, and wrap around when moved sideways beyond the edges of the loop. It is also possible to move the selection freely with the mouse using Left-click + drag on the middle of any of the selected notes, or you can resize them by clicking on the left or right edges. Finally, try Shift + ↑ and Shift + ↓, this moves the selected notes to the channels above and below respectively, and the channel focus along with it. But only if there is a sequence there to receive them.
  11. By default, the first four bars of the project is selected and in frame. To proceed to the next four bars, find the Loop selector with the long grey rectangle above the Overview area, and click and drag from the current end of the rectangle until it stretches from bar 4 to 8. There is also a quick way to move the loop without dragging, just clicking the Timeline, moving the white marker to the end of the current loop and then pressing the L key, this moves the start of the loop, while preserving the length of it.
  12. That covers the basics. There are some more novel features that you can read about in the Reference section, but a lot should feel familiar if you have experience with any other DAW.

Reference


The viewports

Generic interactive elements in ERU generally belong to one of three categories, all can be easily identified by their white outline when the cursor hovers over them, but they are changed in slightly different ways:

  • Toggle buttons; changed with single click. Examples: Play, Loop
  • Popup menus; opens with single click. Examples: Scale, Input and Output routing
  • Text values; opens a text input field with double click. Examples: Time signature, Channel and Sequence names

From top to bottom, left to right, the viewports and their subcomponents are:

Transport and global parametersTransport and global parameters
  • Stop button
  • Play button
  • Record button
  • Loop toggle
  • Timekeeper: Marker position in minutes:seconds:milliseconds.
  • BPM
  • Time signature
  • Key signature
    • Root note
    • Scale
    • Key filtering toggle
  • Number of bars shown in the timeline
  • Operation Mode toggle (edit or select)
  • Default Control type (stepped or linear)
Tracklist and timelineOverview
  • Loop selector: Not only does it control what section of the song is being looped during playback (provided that the loop toggle is enabled), but it also controls the boundaries of what is shown in the editors.
  • Tracklist: List of all channels, the first row is generally dedicated to channel name, solo, mute, monitoring and recording toggles. The exact configuration of buttons depends on the channel type, but they are for the most part related to I/O routing.
  • Timeline: Arrangement of Sequences and Audio clips and the Sequence Overlay
Note editorNote editor
  • A ten-octave grid of the active loop, optionally filtered by the active key and range bound by the min/max notes of the focused channel. Notes from the focused channel are rendered solid and in front of the grid, while notes from other channels are rendered semi-transparent and behind the grid. While actions will primarily affect the focused layer, there are many that can operate simultaneously across multiple channels.
Control editorControl editor
  • Similar to the Note editor, the sequences of the focused channel within the active loop are displayed. The grid can be controlled with the sequence Grid parameter. Can be rendered as either unipolar or bipolar (toggled with the polarity button on a Control or Automation channel in the Tracklist), but it is entirely cosmetic and does not affect the output values.
  • Control overlay: Functions much like the Sequence overlay, except that relative differences are maintained when changing multiple events at the same time. Can also be used to change between stepped and linear interpolation, and for muting events.
The ERU Mixer displays Instruments and all channel types that
 use audio outputs, including CV Control and Gate channelsMixer
  • Header (all except Peaks are interactive and can be changed with single or double clicking)
    • Channel name
    • Volume
    • Pan
    • Input: Audio input for Audio channels or MIDI input for Instrument channels.
    • Output: Audio output for Audio channels, MIDI device + channel for MIDI Instruments, or Generator + Audio output for Oscillators.
    • Range: Min + max note, provides a visual aid in the Note editor for sample libraries or external oscillators with limited ranges.
    • Peaks: Peaks in dB, keep under 0 to avoid clipping.
  • Solo, mute, monitor and recording toggles
  • Pan fader: Range -1 to +1
  • Volume fader: Range -inf to +12dB.

Operation modes

ERU operates in two different modes; edit and select - toggle between them with the Tab key.

In edit mode, (left-)clicking on empty spaces in the Note, Gate and Control editors creates new events, and clicking on existing events removes them. The exception being in the Control view, where clicking or dragging over existing events updates their values instead of deleting them.

In select mode the mouse is used to rectangle-select groups of events or sequences, that can then either be deleted, transposed, time shifted, resized, or moved between channels (see the key binding reference). In the Note editor, you can also hold down the Shift key while selecting to grab notes from all channels, not just the focused one, which can then be modified with all the same operations.

Sequence properties overlay

When one or several sequences are selected, a small floating overlay appears with the title Sequences (# selected). If you cannot see it, it is probably outside the visible frame, and you can use the menu action View → Reset overlays to bring it back.

This widget contains the properties of the sequence; including Name, Grid division, Start and End in the project, and the internal offsets that control what parts of the sequence are used and how it is looped: InSta (Internal start), InEnd (Internal end) and InLen (Internal length). When the Internal length exceeds the Internal end, it will continue from bar 0 for the number of bars that make the difference, so you effectively have two sections of the sequence that are being looped. This is mostly a technicality, and using Shift while (left-)clicking and dragging on a sequence is normally sufficient to control inner looping, but it can provide insight if a sequence is not looping as expected. Clicking on any of the fields opens up a text box where a new value can be set. If multiple sequences are selected, with differing values, the displayed values will be taken from the earliest one. An interesting aspect about changing multiple sequences with the Overlay compared to resizing them with the mouse is that it the change is absolute rather than relative, so any differences will be erased.

The Grid notation format

The sequence grid field controls the vertical grid-lines in all event editors. The default value is based on the global time signature; with the standard 4/4 time signature, sequences are created with a grid value of 4.4. This can be read as each bar being divided into four quarter notes, that in turn are subdivided by four into 16th notes of a darker grey. A grid value of 16 would generate the same number of divisions, but they would all be rendered in the same shade of grey, which would be difficult to use. In reverse, a value of 4.2.2 would also produce 16 divisions, but they would use three color depth levels for quarter notes, eights and sixteenths, which would be a bit overkill.

To get the most out of ERU, it is important to understand that the grid parameter only takes its default value from the global time signature, but it is not restricted by it in any way. Meaning; you can have a project at 4/4, with one sequence grid using 4.4 and another sequence on different channel at 5.4. Both have bars of the same length, but one divides them into four beats and the other into five; this is known as a polyrhythm.

Polyrhythms by combining two different instruments is one thing, but what if we wanted to play a polyrhythm with a single instrument? One way would be to multiply the two time signatures, in this case 4 * 5 = 20 divisions, but that generates a lot of extra division lines that we do not want, and worse; it provides no hints on which ones they are. Using the grid notation format, you can simply input 5:4, and the program does the rest; you now have a non-linear, polyrhythmic grid. Naturally, it can be further expanded using subdivisions (5.2:4.3 gives us 10 over 12, with accented lines on on the 5ths and 4ths). Playing around with the two lets you create immensely complex and fun rhythmic parts.

A 5:4 polyrhythmic gridA 5:4 polyrhythmic grid.
Tip: When using a simple polyrhythm without subdivisions, it can be handy to add a leading 1. to either of the divisions (for example 4:1.3). This adds no lines (division by one) but it makes the program render the 3 lines a little darker than the 4 lines.

Modular integration, Levels and Limiters

To integrate ERU with your modular system you need compatible hardware; that means some type of DC-coupled digital-to-analog converters, ideally something designed for the purpose. Assuming you have the necessary hardware, you also need to make sure that the volume on any channel going to the modular is set correctly, as failure to do so can lead to damage, or at the very least poor tracking. Basically; you want the channel volume set so that the min/max values translate to 10V peak-to-peak (-5V to +5V). In testing, using RME and Expert Sleepers interfaces, -6 dB has been optimal, but you may need to fine tune it to find the right level for your setup. If you do not have the gear to get an exact reading, you can do it by ear; sending a 1V/Oct sequence to an oscillator makes a good indicator, especially if you compare it to the same sequence played by one of the internal oscillators. If it sounds right, you have found the right level. Bear in mind that individual modules can also be built to accept different ranges, it is always best to check the specifications.

To make handling output levels easier, ERU lets you set a hard limiter on each physical output port under the Limiters tab in Options → Preferences. Not only will this limiter be applied as a final stage in mixing, ensuring that the signal does not get too hot, it also automatically applies the same offset to the Channel volume when you assign a Channel to the output, ensuring that the signal scales correctly. Since this is configuration, you only have to do it once and can forget about it after.

To sum it up: Start out low, experiment to find the right volume offset for 10Vpp tracking (in most situations it is probably going to be -6 dB). Once you know it, open the Properties window and the Limiters tab, activate the limiter on all outputs that are going to the modular, and enter the value in the Volume fields.

Channel types

  • Instrument: depending on the type of output used, these can be further divided into:
    • MIDI: Physical MIDI device output, transmits standard polyphonic MIDI data. Clicking the asterisk icon on an Instrument channel in the Tracklist opens up the channel properties window, where some settings unique to MIDI can be assigned, such as MIDI Program and KeySwitches.
    • 1V/Oct: Audio output, transmits control voltages according to the 1V/Oct standard in the Eurorack world. Monophony is enforced in the Grid editor, meaning that if a note is cut off by another, it will be shortened to end where the other begins, and if they begin at the same position, the old one will be fully replaced.
    • Oscillator: Audio output, these translate monophonic notes to a continuous waveform [Sine, Triangle, Saw or Square] akin to a Eurorack oscillator module. These are intended for use as sound generators in a Eurorack system, to be processed by filters and VCAs, but combined with volume automation they can serve as very primitive instruments. Monophony is enforced in the Grid editor same as 1V/Oct.
    • All Instrument channels have an optional note range that can be set either in the Mixer or in the channel properties window. When specified, no note lines outside this range are rendered in the Note editor and clicks in the unavailable ranges are not processed. This is intended as a visual aid for sampled instruments or physical oscillators that only track a limited octave range.
  • Gate: Audio output, transmits control voltages, either ±0V or the maximum positive voltage, depending on whether the gate is closed or open. Gate channels have two source modes:
    • Gate sequence: Generates gates from the gate sequences on the channel. There is a dedicated gate editor that operates in a similar way to the Note editor; single clicks fill the gap in the grid and longer gates can be drawn by dragging.
    • Mirror notes: Bypasses any sequences on the channel and mirrors the notes of the parent Instrument channel instead.
  • Control: depending on the type of output on the parent Instrument channel, these can be:
    • MIDI
      • Pitch bend: Transmits MIDI pitch bend messages to the device and channel of the parent Instrument channel.
      • Control change: Transmits MIDI CC messages to the device and channel of the parent Instrument channel. The CC command can be changed in the Tracklist (0 to 127). Control events can be either stepped (S&H) or use linear interpolation (toggle between them with P).
    • 1V/Oct and Oscillator
      • Control voltage: Audio output, transmits control voltages, otherwise operates very similar to CC.
  • Audio: Record and play audio in mono or stereo. Set recording format in Preferences.
  • Sub Mix: Group channels with audio outputs. The Master Sub Mix is created automatically and cannot be removed or renamed.
  • Automation: Can be used to automate volume and panning on any channel with an audio output. Additional global parameters are available on the Master channel.

Mouse and Keyboard Bindings


Mouse (Note, Gate and Control editors)

  • Left-click (Edit mode) Insert or delete event.
    • + drag draw longer notes/gates or a series of control events.
  • Left-click (Select mode) Select event.
    • + drag on empty space: Initiates rectangle selecting events from focused channel.
    • + drag on an existing note: Initiates move.
    • + drag on the left or right edges of an existing note: Initiates resize.
  • Shift + Left-click (Select mode) Select event / drag to rectangle select groups of events from all channels.
  • Right-click + drag Moves the visible area in any scrollable viewport (Tracklist, Timeline and Grid).
  • Mousewheel ↕ Moves focus to the previous or next channel of the same type.

Mouse (Timeline)

The Timeline does not differentiate between edit mode and select mode, as sequences are created automatically as needed.

  • Left-click in the Timeline: Moves the marker to the clicked bar, selects sequence.
    • + drag in the Timeline: Selects, moves or resizes sequences.
    • + drag in the Loop selector: Sets the loop range, controlling content shown in all editor viewports.
  • Shift + Left-click + drag on a sequence in the Timeline: Sets the inner (loop) length.

General

  • Tab Toggles between the Edit mode and the Select mode.
  • Delete Delete.
  • Ctrl + X Cut.
  • Ctrl + C Copy.
  • Ctrl + V Paste.
  • Ctrl + D Duplicate sequence.
  • Ctrl + Z Undo.
  • Shift + Ctrl + Z Redo.

Transport

  • Home / Numpad 0 Moves the marker to the start of the loop.
  • End Moves the marker to the end of the loop.
  • Space / Enter Starts or pauses playback.
  • D (hold) Starts playback from the bar underneath the mouse cursor, and continues as long as the key is held down. Use to quickly audition changes.
  • L Moves the loop to the marker, while keeping the current length.

Channel

  • Ctrl + [ Select previous track.
  • Ctrl + ] Select next track.
  • F5 Shows the Mixer.
  • F6 Shows the Velocity editor when an Instrument channel is in focus. (*)
  • F7 Shows the KeySwitch editor when an Instrument channel is in focus. (*)
  • Ctrl + I Creates a new Instrument channel.
  • Shift + Ctrl + I Creates a new Audio channel.
  • Ctrl + R Randomizes the color of the focused channel, note that sub-channels inherit their colors from the parent, so it only works on top level channels.
  • Ctrl + J Joins/merges the selected sequences. Can also be used on a single looping sequence to replace all repeating events with copies, that can then be edited individually.
  • Ctrl + K Splits the selected sequences at the current position of the marker.

(*) To show any of the other editors, simply click on a sequence or channel of the type in question.

Event

These commands generally affect the selected events, or all events in the focused channel and loop if no events are selected.

  • Page up Transposes notes one octave up.
  • Page down Transposes notes one octave down.
  • Transposes notes one step up in the selected key.
  • Transposes notes one step down in the selected key.
  • Shifts events one step left to the previous grid divider.
  • Shifts events one step right to the next grid divider.
  • Shift + ↑ Moves selected notes to the channel above, provided there is a sequence there to receive them.
  • Shift + ↓ Moves selected notes to the channel below, provided there is a sequence there to receive them.
  • Ctrl + A Selects all visible events in the focused channel.
  • Shift + Ctrl + A Selects all visible events from all channels.
  • M Mutes the selected events.
  • P Toggles control interpolation mode between stepped and linear.
  • Q Toggles the key signature note filtering in the Grid. Useful when editing drums, for example, when you may need to access notes that are outside the key.

Contact


Cookies


XSRF: This website uses XSRF-Tokens to help prevent Cross-Site Forgery Attacks.