| project name: | eterna |
| project url: | https://github.com/etsuko-fm/eterna |
| author: | etsukofm |
| description: | six-voice sampler and sequencer |
| discussion url: | https://llllllll.co/t/eterna/73584/ |
| documentation url: | https://github.com/etsuko-fm/eterna |
| tags: | sequencer sampler |
Eterna is a 6-voice sampler and sequencer for creating rhythmic textures and patterns from a single audio file.
Eterna is designed to have a fast and enjoyable workflow for users with just a Norns, yet future support for other hardware may be considered.
The encoder/knob mapping is the same for every page:
| K2 | K3 | E2 | E3: Change corresponding parameter as displayed in footer |
Eterna consists of 12 separate pages, which may be browsed using E1.
Load a sample from disk with K2; the file path becomes the title of the window and shows the duration of the sample. Drive (E2) is available to boost the amplitude of all channels in parallel.

Cut the sample into 1-32 slices with E3. There are 6 voices; each of them is assigned 1 slice for playback. If the number of slices is smaller than 6, one or more slices are used with multiple voices.
When a mono sample is selected, the selected start slice (E2) is assigned to voice 1, while each next slice is assigned to the next voice. See the screenshot below: slice 2 to 7 are assigned to voice 1 to 6.

When a stereo sample is selected, each next slice is taken from the alternating channel:

The graphic doesn’t explicitly indicate which slice is assigned to which channel, but when the sequence triggers a voice, the slice flashes according to its envelope, which helps to identify which slice is being played back.
When a multichannel sample is selected (up to 6 channels), each next slice is taken from the next channel, wrapping around back to channel 1 when each channel has provided a slice.
For an example with a 4-channel file:

Applies an A/D envelope of adjustable duration (E2) and variable curvature (K3) to the amplitude of the slice. A single button, shape (E3), controls how attack and decay relate to each other. The envelope times can be modulated by the sequencer’s velocity using the MOD parameter (K2). When Lowpass Gate (LPG) is selected as MOD option, a lowpass filter is enabled for each voice, and the envelope controls not only amplitude, but also cutoff frequency. In this mode, the envelope time is also modulated by the sequencer’s velocity.

Controls the playback rate and direction (FWD/REV/BI) of all voices. The rates are quantized to octaves. All playback rates are changed are linked to each other as if they form a sine wave together. Center (E2) controls the offset of the wave from the center, while spread (E3) controls the height.
From this follows that if spread is zero, the playback rate for every voice is equal. Range (K3) aids in limiting the total range to 3 octaves if desired.

Controls the levels of all voices via a Gaussian distribution (Bell curve). An LFO is available to automate movement; this affects the position parameter.
There’s also a metering visualization: when playback is active, the current amplitude of each voice is shown realtime inside the bar graphs.

Controls the panning of all voices. The position of the voices in the stereo field is spread within the available width (E3), and can be continuously cycled using twist (E2).

A Perlin noise-based sequencer which offers 2 parameters to control the entire 6-track sequence: seed (E2) and density (E3). The velocity of each step is based on the perlin noise value and indicated by the brightness of a step.

Controls transport, BPM, and sequence length.

The pages for lowpass and highpass are identical except for their filter type. Each is based on Supercollider’s 12dB/octave SVF filter.

A dedicated page to control the LFO for the lowpass filter.

frequency * 2^range.A delay effect with a selectable feedback path (K2); MIST feeds the delay buffer into a series of allpass filters for a reverb effect, while DUB saturates the signal. Echo time (K3) is synced to BPM. Feedback (E2) controls how much of the output is fed back into the delay input. Mix (E3) is really a control for the wet signal only; the dry signal always fully passes.

A simple mastering chain to control the final output of the mix. The processing chain includes a Bass Mono stage, which uses a Linkwitz-Riley filter to split the signal at a specified frequency and make it mono up to that frequency, as inspired by Ableton Live’s utility device. After the Bass Mono stage, a compressor with three presets is available (soft/medium/hard) - or it may be turned off.
The history of the last few samples is used to display a lissajous curve.

The settings of each compressor preset are as follows:
Soft:
Medium:
Hard: