R4E-1; Software Groovebox

Hey guys, got a wee thing I’m working on.

I’ve been working on it for the past month and a half, and wanted to grab some feedback from you fine ladies and gentlemen, to help shape it, or rip into it depending on what you feel.

It’s still early stages, but headline notes:

  • 14 Track Synthesis software groovebox, with 2 sends and 1 master track.
  • Both standalone, and VST compatible

Engines:

  • Roughly 41 audio engines machines (30~ have been developed so far, more in the works)
  • Synthesis, Drum Machines, Sample Machines, esoteric weirdo machines, and “shouldn’t sound bad regardless of settings” all included

Tracks:

  • Per track filter, switchable between morphing SV, comb and ladder modes (Switchable between 4 pole, 2 pole, LP, HP and BP) (Extra PS the comb is continously morphable between Positive and negative comb).
  • ADSR Amp
  • 2 FX per track, set to pre-filter, pre amp or post amp
  • 21 FX to pick from
  • Per track EQ (including the FX blocks and master track)
  • Per track SSR, BRR and Overdrive
  • Tracks can be grouped into voice groups for polyphony, layering and voice cycling

Modulation:

  • 3 LFOs per track
  • 2 Mod Envs per track
  • Performance macros for velocity, aftertouch, modwheel, pitch tracking and voice tracking

Master Bus:

  • Master compressor, colour chain and stero width/mono controls.
  • Overview mixer to adjust track levels and sends per

Sequencer:

  • 16 step interface
  • 16 pages per track
  • Per track step resolution
  • Per page step count: Have one page be three steps, the next 6, the next 2 and the last page 8 for whatever reason you fancy. Makes it easier to do odd time signatures instead of calculating your downbeat per page.
  • Sequencer slides
  • Sequencer chance and conditions (Pretty much the full suite of elektron conditions)
  • Parameter slides

General Stuff:

  • Autosaves to temp if you minimise the app, or close it
  • Pattern, kit and track preset saving (this is still work in progress, will proceed to full songmode later on)







It’s still got a fair bit of polish required, but a lot of the bones are in place. Let me know if you guys are interested in giving any feedback to help shaping this thing! UI is sitting at a first pass, just got it to the point where it looks “good enough” to show people it’s intent but there’s usability tweaks till needing done.

I was considering jigging it about and turning it into an 8 track specialised for the Octatrack as a companion at some point in the future, and looking to maybe try to get it on an iPad, but that includes an Apple dev licence ect, when I’m unsure if there’s much traction for it. I’ve always appreciated this community, so would be nice to provide something back, if you’d fancy a “synth companion” to the octatrack prebound to the octas CC params, and machines tuned to the octas 6 midi knobs, or perhaps the digitakts 8.

If anyone fancies giving it a test, let me know, it’s nearing the stage of it being an “alpha”. I’ll try and take a recording of some of it’s current workflow, some of the noises it makes and would appreciate feedback to help push it to a direction people of a elektron disposition would enjoy.

Some of the machines included;

  • 4FM, with morphable algorithm, not enum switched
  • 2 osc analog with crossmod (sync, am, FM, RM) and PWM on all wave shapes and spectral wave morphing
  • Acid emulator, with an inbuilt RAT and acid filter
  • Fold machine, based entirely on the output of a morphable wave folder, feeding back into itself, with some, triangle and square folding
  • Argent, based on Mick Gordon’s parallel processing chain
  • Feedback, a no-input mixer emulator for shaping a small burst of noise into howls, screeches and throbbing bass, can take input from other tracks for excitation.
  • Drums: analog, FM, physical modeling, and my own set of “combined synthesis” drums. Most of these try to capture the machine drums flavour, other than my own machines
  • Chiptune, emulating the SID and Gameboy with internal audio rate arp and chords
  • Wavetable machine, 2 osc, blendable, off-settable and cross modulatable
  • Ghost, generates it’s tones through noise fed into allpass filters and combs. Uncanny strings, glockenspiels, haunted pianos
  • bunch more…

Some in development;

  • Nerve; a neural network of feedback chains that constantly learns and morphs it’s output based on noises fed to it
  • Strange attactor based on chaos modeling
  • Quadrature synth for binaural tones
  • Partical Beam; cross between physical modeling and Wavetable synthesis, with points morphed by the strike excitation

Feature Playlist I’ll try and keep up to date as I add stuff:

4OpFM

RAM Machine

Pattern transition engine with direct jump (UI Rework incoming, just a placeholder)

Runthrough of some of the features

27 Likes

This may rock on the iPad. There are plenty of grooveboxes there, but most seem to have a healthy user base.

7 Likes

All of that in under two months is crazy …
My initial thoughts

Don’t hardcode any midi cc / control for other gear … setup configurable midi cc settings so that it’s not restricted . Pre-made templates would be good though

Any chance of mutable instruments stuff ? They typically sound good

2 Likes

Cheers, appreciated! Pretty much consumed my life outside of work, lot of 2am sessions and weekends burned haha.

On CC map defaults: Sounds like plan. Everythings currently mappable in something like bitwig, and basically every parameter is modulatable with parameter smoothing to avoid zippering, but I’ve not broached external midi CC controls at the moment. I guess I was more looking at making a more constrained version of it (the UI is a layer above the audio engine) for fellow elektronauts for easier integration if they were interested in such a thing.

It does respond to external midi notes; you can play each of the tracks with a keyboard externally (currently hardcoded T1 → Midi Channel 1), but I don’t have midi recording into the sequencer functioning yet. It does respond to external modwheel, aftertouch, velocity though, which is nice! You can also sync to an external clock using a toggle, tested it with the keystep.

On mutable instruments; no reason why I couldn’t, it’s built in C++ and I think mutable’s stuff is also C++ and open source. I’ll defo take a look into it to expand the pallette if people are interested in them :smile:

4 Likes

I think this is a banger idea. Super tightly integrated MI with a midi groovebox would be a blast.

I’m also one of those iPad crowd. I would love to see this on iPad.

2 Likes

I’d also like to see something like this on the iPad. The iPad is still awaiting the perfect groovebox IMO.

2 Likes

Looks very impressive! That must be so much work

I wonder if you have considered a sampling/slicing machine?

i had a quick look at the images, the only thing i noticed was how spread apart the dials were for amp envelope … might be nicer to tighten them up more centrally to that panel .

theres a lot in there …

1 Like

I think this is a banger idea. Super tightly integrated MI with a midi groovebox would be a blast.
I’m also one of those iPad crowd. I would love to see this on iPad.

I’d also like to see something like this on the iPad. The iPad is still awaiting the perfect groovebox IMO.

Only snag I might hit for the iPad people is that I’m using a React UI bridge to render the interface, as I’m fairly comfortable with React. Not to say I can’t shimmy it, as the engine and the frontend are decoupled, but I haven’t looked into what JUCE provides in iPad land.

I’m partially thinking of moving away from JUCE and building some of the library parts myself, as I’m not really utilising all that much of it outside of the VST wrapper, parameter bridge, parameter smoothing & oversampling functionality. My missus has an iPad floating about somewhere, and it does compile for OSX, so it’s entirely possible with a bit of dicking about I can get it running on an iPad, I’d just likely need to write an entire frontend for it again.

The juice is probably worth the squeeze though, as people seem more interested in it running on iPad than desktop. I’ll take a look into it and see what I can find.

i had a quick look at the images, the only thing i noticed was how spread apart the dials were for amp envelope … might be nicer to tighten them up more centrally to that panel . theres a lot in there …

Yeah, you’re right. I just moved to a resizable app, rather than fixed scale, so flexboxes are slipping and sliding things everywhere. I’m going to look at doing a more reactive UI for this, the current layout is a halfway house I think; I had entirely tabbed interface, but jumping between screens was pissing me off so I knew it would frustrate users. This is a little bit more usable, but has ended up losing some of the tighter layout I had. I’ll drop wireframes here in future with possible layout changes if anyone wants to pitch in!

Looks very impressive! That must be so much work

I wonder if you have considered a sampling/slicing machine?

Ah cheers man! Yeah there’s a fair backlog of code for this, I need to do a refactoring sweep to tidy some bits up, and looking at doing some SIMD optimisation on the audio engines, but I’ve got it running at about 3-4ms at 48kHz, 512 samples, so about 30-40% of the timing headroom used for a 512 sample buffer with all 14 tracks running a machine, with LFOs and 2FX per track, so it’s not too sluggish! Would be nice to clean it up and squeeze a bit more out of it, as I’ve got a fairly powerful PC, uses about 3-5% CPU for me in dev mode

image

On the sampling machine, yes! You can load samples in, but no slicing currently, just start, end, reverse, pingpong, speed, root note, and a shitty granular I need to rework.

Future sample machines on the backlog I’ve documented:

Machine: RAM

Category: Sampler
Status: Finalised v1.1
Param count: 11 (7 continuous + 2 enum + 1 integer + 1 modulatable integer)
stepMode: buffered
Display channels: combined, buffer (slot occupancy visualiser)

Concept

A per-step buffer recorder and playback machine driven by the track sidechain. Audio is received from a target track via the sidechain system (the same mechanism as the Feedback machine). Each step can be flagged Record, Play, Overdub, or Mute — the step sequencer UI shows this directly on the step grid rather than requiring access to the lock menus (see stepMode: buffered). Eight independent buffer slots store captured audio; the Slot parameter selects which slot is active for record or playback and is fully modulatable — an LFO sweeping Slot creates autonomous buffer routing across all eight slots. Buffer length per slot is derived from the number of consecutive record steps at the current tempo — no explicit Length parameter needed. Designed for rhythmic sidechain sampling, pitched buffer remix, and live performance buffer manipulation.

Machine: Spectral Freeze

Category: Sampler
Status: Finalised v1.1
Param count: 11 (9 continuous + 1 path + 1 enum)
Display channels: combined

Concept

A granular-approximation spectral freeze machine. Rather than a true phase vocoder, the machine captures a short audio buffer from a loaded file and continuously granularises it — spawning overlapping grains from within a configurable window around a Position point. The frozen texture emerges from grain density and overlap. Freeze is a continuous modulatable parameter: at 0% the machine scans the file like a sampler, at 100% it is fully frozen at Position. Intermediate values produce slow drift through the file while partially granularising. This approach avoids the metallic artefacts common to FFT-based freeze implementations while producing an equivalent perceptual result. External audio files loaded via the OS file browser.

Machine: Paulstretch

Category: Sampler
Status: Finalised v1.1
Param count: 7 (5 continuous + 1 path + 1 enum)
Display channels: combined

Concept

Extreme time-stretching synthesis using the Paulstretch algorithm — very large FFT windows with phase randomisation, producing the characteristic infinite shimmer and sustain quality. Distinct from standard time-stretching: at high Stretch values individual grains become so long they lose all rhythmic identity and dissolve into pure spectral texture. The Randomness parameter controls phase coherence within each FFT window — the primary tonal control beyond stretch amount. Designed for ambient pads, infinite sustain textures, and dissolving source material into a new timbral identity. External audio files loaded via the OS file browser.

And a half baked one based on auto slicing:

Machine: Bloom

Category: Sampler

Concept: A concatenative “re-organizer.” It breaks a file into slices based on transients and spectral similarity, then re-orders them based on velocity and “Entropy.”

Section Parameter ID Type Range Default Bipolar
Source File file Path — — No
Source Slice [M] slice U 0–100% 50% No
Engine Entropy [M] entropy U 0–100% 0% No
Engine Bloom [M] bloom U 0–100% 0% No
Engine Grain [M] grain U 0–100% 0% No
Playback Jitter [M] jitter U 0–100% 10% No
Playback DNA [M] dna B ±100% 0% Yes
Playback Velocity Map velmap E Power/Linear/Reverse Linear No
5 Likes

The specs and images for your groovebox look awesome mate.
Looking forward to see how it progresses and trying it out when it’s released.

I’ve been looking for something similar to the Elektron Digitakt and Polyend Play but in software form and this looks like it’s ticking all the right boxes man.

Will it have sample locking per step, being able to pull from a curated sample pool? this is what I love about the Digitakt and the Play devices, especially the Polyend Play, where you can create a sample pack per project and the randomisation algorithms can randomise all selected steps with samples from all folders or from the current folder the sample is located in. The problem with the Polyend Play is it’s poorley implemented project memory of just 32mb, you can’t use very long samples, the Digitakt 2 is perfect with 480mb per project.

Will a track be able to be used an audio track with automatic inbuilt timestretch so audio loops adjust to project bpm?

Edit: just seen the sample player machine, will there be a timestretch algorithm for this to keep a sample automatically adjust to the project bpm?

1 Like

First of all, this is an awesome feature set. It feels like you’ve picked up all the coolest items from every wishlist and combined them into one massive powerhouse. Hats off! :tophat: :clap:

So, is this Windows-based for now? If so, is there any chance of adding PolyTouch implementation (with a controller UI, thinking Bucla here :wink: for a touchscreen operation :smirk:

The Octatrack companion idea is fantastic. It’s already a legend, and being able to sync it with an extension with all this power (auto kit/sample chain options) would be the Burning mans Bananas! :kissing_heart:

whats the ETA?

1 Like

cool!
any plans for Linux version?

1 Like

Also, any plans for Euclidean with modulation options? :wink: Might as well start the wishlist! lol

1 Like

looks very cool!

adding a vote for iPad :slight_smile:

2 Likes

Question on the combining tracks, does this indicate each of the 14 tracks and all machines are mono rather than poly?

Looks amazing and incredibly impressive for how long (or short) you’ve worked on it.

1 Like

Oof that list looks like my wish list for octatrack mk3. :drooling_face:

1 Like

How do u invission that link … 8 MIDI tracks with CC maps for a specially comparable UI overlay? …

Also @Elektron … TV is linux based …correct … ? ond the new Okta mk3 will use the same basis …correct … well then say hello to your new code developer … build this into a new Octa … :kissing_heart:

1 Like

Hey guys, good feedback, cheers!

So, is this Windows-based for now? If so, is there any chance of adding PolyTouch implementation (with a controller UI, thinking Bucla here :wink: for a touchscreen operation :smirk:

cool! any plans for Linux version?

I have Windows and Mac building, Mac is kinda… unsigned for now though. Linux should be easy enough to build, just need to set up the C++ toolchain in windows subsystem for linux and we should be good to go, build should be very similar to Mac as I’m using Ninja.

On polytouch, I won’t discount it and flat out say no, but I don’t have anything to test with or implement this at the moment, perhaps I can dick about with my pixel and expose it as a midicontroller with multitouch? I’ll keep it in mind, but it’s likely way down on the chain of things to get working, will obviously be included if I get traction and build an iPad app, and will backport it to the desktop versions :).

Also, any plans for Euclidean with modulation options? :wink: Might as well start the wishlist! lol

Yes! I’ve actually got a plan for three sequencers; current standard one, a eucilidian one, and another one based off clock pulses and logic gates which is a reinterpretaton of the BitBastard audio engine I’m buillding.

Question on the combining tracks, does this indicate each of the 14 tracks and all machines are mono rather than poly?

Currently, yes, doesn’t need to stay that way, but mashing poly engines internally with a voice management group could get messy, as well as CPU expensive, so I’m deferring it for now. Although I have got the “ghost” engine working with this, as it has a bank of cycling resonators which are technically mulitple voices in single track.

How do u invission that link … 8 MIDI tracks with CC maps for a specially comparable UI overlay? …

Yeah, pretty much; trimmed down version of the full app, with the ability to feed out 4 tracks, and feed in 4 tracks, just like the ABCD/OUT/CUE ports to get them talking organically with eachother. Set of machines tuned with macros to fit the number of CC knobs per track, stuff like that. Is more a high level thought than seriously spec’d out though.

Video, I should have taken time to think about this a bit more, but hey, I don’t really want to spend 4 hours building a polished video for something that’s morphing on a daily basis. I appreciate the shout out to the Elektron boys, but this is the first I’ve touched proper audio DSP code haha. I have done some firmware in the past with sensor fusion, but this is dipping toes into the audio realm for the first time! I think they’re only looking for the best of the best.


Video time, promised a demo, so here’s a crap one. I tried it 4 times and ended up endlessly waffling about features, so I set a goal of trying to replicate a demo pattern so you can kinda see the workflow. Some of it’s changing, parameter locks, and the sequencer lane are about to get a rejig soon to make it more fluid, if you have thoughts on it, let me know.

Also; the machines are getting split into tabs and sections: Synths (tone and texture), Drums and Esoteric

Tried to keep things colour coded. Didn’t talk about the little track volume indicators to the left, of the track, you can see the volume level.

The solo button marks the tracks in yellow. The mute marks them in red. You can group mute holding shift and it won’t mute until you release mute.

The screaming nonsense I added in the middle emulates a no input mixer, possibly not the best idea for a quick demo; if you ever played with a no input mix desk you know how fiddly they can be to not blow up into an insane feedback loop, but I think it’s a pretty cool tone you get out of it. You can spend 30-40 minutes on it alone to find something absolutely nuts sounding, super organic.

3 Likes

Added:

  • Bitwise Machine (3 Squarewaves using logic gates to produce glitched out horrors)
  • Vintage (Unstable analog machine with thermal noise, sag, and drift)
  • Paul Stretch (Take a sample, extend it to hours [1x → 10k slowdown] without losing pitch, also kinda works as granular with some LFOs)
  • Spectral Freeze FX uses logic from the paulstretch to make it much smoother

Currently working on sample machine updates per request; Sample slicing, proper sample pool management (global pool shared between samplers). Aiming for auto slicing working tonight with zerocrossing, then later on an optional manual slice using the sample window.

Quick demo of the paul stretch without me waffling shite over the top of it:

First a cheesemeister free acapella, then a drum loop, then a wavetable being manipulated by the timestretch algo I’ve tried to get as click free as possible. You can choose the sample window and the randomisation factor on it to add a spectral blur giving the shimmer that this type of stretch is known for, almost sounds like a reverb diffusion. Window helps preserve transitents, or tone depending on how large you set it. Set the speed to zero for a spectral freeze.

Vintage:
Unstable oscs, thermal noise, unstable filter, unstable spectral waveshape morph. Added some of the plate reverb and tape machine to it later in the video.

4 Likes

4Op FM Machine

  • Blendable Algos
  • Fixed, Free and Ratios, with Free allowing through 0 FM
  • Feedback, internal Op Envelope
  • Everything modulatable
  • Added some of the space reverb onto it in the later half of the video, along with some LFO action
  • Added a bit of the comb filter too for giggles
  • Level acts as both a mod depth, or operator volume dependant on if it’s targeting a carrier, or OUT
  • I am going to tweak the knobs to display Hz or Ratio number later on

3 Likes