PreenFM3

Nice! Can’t wait to try!

1 Like

Just because I want to get people’s eyes on this thing, I’ll have an beta version available by the end of the month. i need to write some sort of manual before then though. I’m not looking forward to that part, lol.

1 Like

If nobody has seen it so far, this sounds more like an alpha, not a beta.

The good news: You don’t need a manual for alpha. What you need is a reference sheet — one page listing what each knob/button does. That’s all testers actually need to know what to expect and spot what’s broken or confusing.

A manual comes after you’ve iterated based on their feedback. Right now, a reference sheet gets you the feedback faster, and you’ll write better documentation once you know what people actually struggle with.

But maybe even then you won’t have to write the manual, or at least not all of it. I have plenty experience writing manuals, and I enjoy doing it. If my schedule allows, I could help you write it.

That is nice. What might make this even better is some kind of EQ plus a dedicated delay per part.

An EQ makes it simple to separate the parts so they don’t interfere with each other, while keeping the filter free to shape the character of a sound (Elektron’s base-witdh filter is the simplest workable implementation of that).

Delays are IMHO more part of the design of an individual sound, and not so much part of the whole. I would never put the same delay on a snare and a hihat, or on a rhythm part and a lead part, but I would in most tracks put a delay on each of them.

1 Like

This is useful feedback, and you’re right that it’s an alpha.

A one-page reference sheet should come first, and I’d love your help with the manual when it’s time. (Manuals are such a hard thing to nail correctly.)

An EQ makes it simple to separate the parts so they don’t interfere with each other, while keeping the filter free to shape the character of a sound (Elektron’s base-witdh filter is the simplest workable implementation of that).

EQ per part: agreed, and it’s planned. Elektron-style BASE/WIDTH, so the filter stays free for sound design.

Delays are IMHO more part of the design of an individual sound, and not so much part of the whole. I would never put the same delay on a snare and a hihat, or on a rhythm part and a lead part, but I would in most tracks put a delay on each of them.

Delay per part: the catch is the CPU. Everything runs on one Cortex-M7 (single core), and audio has a fixed budget per sample. The master delay is a send: one delay, processed once, however many parts feed it. (You can send each part separately ) Per-part delays are six delays processed six times every sample. Their length only costs memory, which we can split. Their count costs CPU, which we can’t.

So one solution is a switch. MASTER gives you one long tape delay, around 2 s. PER PART splits the same tape/delay into six short delays of about 330 ms each. The memory is identical, but six delays cost roughly six times the CPU, so I’m benchmarking it on the hardware before I promise it. If six full tape delays are too heavy, the per-part version gets a lighter tape model.

Effects are extremely expensive from a DSP stand point.

There’s also a note-echo effect planned per part: it repeats the notes themselves in tempo, so each echo goes through that part’s filter and envelope. That costs almost no CPU, and on a synth it’s often the more interesting delay anyway. basically trigger + time + velocity + volume. The original Squarp Pyramid had this feature.

3 Likes

I got the sequencer working :slight_smile: sorry about the background static, quick video from the phone.

6 Likes

I’m really excited to try this out!! Thank you for your time and effort.

1 Like

Another way to get more delays is to make the effect algorithm selectable for send effects. So instead of chorus, delay and reverb, a user can also select 3 delays. Since reverb typically costs more CPU than a chorus or delay, choosing reverb might be limited to third slot. Such an architecture also allows for different types of chorus, delay or reverb to be added later.

A MIDI delay, like on the Pyramid, triggers a full synth voice, oscillators, filter, overdrive, all modulations for each repeat. So while the CPU load of an audio delay is constant, the CPU load of a MIDI delay is a function of delay time, number of repeats, number of voices played, and release time. I’m surprised that rendering a delay would take more CPU than even a single note, especially for MODAL.

With the 8 voice polyphony a MIDI delay would also be limited to 8 repeats before it starts stealing voices, less if anything else goes on. You could implement it to only allow for one instance of each note, which would make it sound more like an arpeggiator or chord retrigger. So this, too, has limitations to be aware of.

Anyways, wherever that goes, this firmware of your’s is already awesome as it is…

1 Like

How close are we to be able to test a version of this?

Just saw your comment about it being ready closer to the end of the month. …roger roger :sunglasses:

With Elektron’s new policy around custom firmwares, I fear we will not be able to discuss that stuff here much longer. :frowning:

Yeah I know. Crazy times for the synth world. Although I need someone to rewrite the LXR -02 firmware so that there isn’t a master global midi channel so I can individually adjust CC parameters on the first 3 drum tracks. Very annoying limitation :laughing::space_invader:

PreenFM3 is open source, both hardware and software, so I’m confident I’m not doing anything wrong here. Chimera is completely new firmware, written from scratch in Rust. It doesn’t use any of the original code or algorithms. The only thing I’ve kept is the bootloader, which makes switching between the original firmware and Chimera pretty straightforward.

I know there’s a lot of excitement around hacking new features into existing firmware, and that’s great. But one concern I have with that approach is that you’re modifying a codebase you might not fully understand, sometimes without the testing infrastructure to know what you’ve broken or how those changes affect everything else.

Chimera is a different approach. It’s an entirely new system, with around 8,000 tests covering everything from DSP algorithms to screen rendering and performance. I’m treating it like a serious software engineering project (I’m a software Engineer by trade.), even though it’s completely free and something I’m doing in my spare time.

Really, I started this because I wanted to learn more about DSP, and I had this incredibly powerful synthesizer sitting on my shelf that I felt wasn’t being used to its full potential. It’s also very much built around my own tastes: filters I like, reverbs inspired by hardware I own, and FM techniques I’ve always been interested in. Essentially, I’m building the synthesizer I wish the PreenFM3 had been.

There are obviously limitations. We’ve only got 12 buttons and six encoders, so some menu diving is inevitable. But underneath, it’s a completely different instrument.

As for the alpha, I’ve got a couple more things I want to finish, but my biggest concern right now is stability. I want to make sure nobody loses data on their SD cards and that switching between firmwares is painless.

One feature I’m working on is a tape engine that samples sounds internally and maps them across the keyboard in half-octave intervals, a bit like a Mellotron. That introduces some additional complexity around SD card storage, which I want to get right before releasing anything.

I’m also testing against both processor revisions. Some PreenFM3 units have the Y revision running at 400 MHz, while others have the V revision at 480 MHz. I’ve built a simulation environment to model the load on both, and I’m adding CPU identification to the About screen.

Anyway, that’s where things stand. I’m excited to get this into people’s hands, but I’d rather take a little longer and make sure it’s solid. This whole thing started because I love synthesizers, wanted to get deeper into DSP, and thought this particular piece of hardware deserved a little more attention.

8 Likes

Nobody knows, Elektron’s policy is ambiguous and can be read either way. When the discussion about the policy reopens, I’ll raise that topic there.

My preenFM3 will arrive sometime next week, if all goes well.

From what you write it looks like it’s not so simple to switch the SD card? I was planning to have one for the “old” and one for your OS.

1 Like
1 Like

It depends who made your PreenFM3. Mine has a metal case and I need to remove the bottom to access the SD card.

1 Like

Ah. Mine apparently has a plastic case that is open at the sides.

I’m working on factory Patches right now. I uploaded a few to demo the different engines.

  • Virtual analog: the idea came from Mutable Instruments’ Ambika: two oscillators through an operator (mix, sync, ring, XOR, bit-crush) with a sub underneath. Ambika ran on a tiny 8-bit chip, so only the architecture came along, none of the algorithms. Ours are written from scratch, with continuous wave morphing and STABILITY drift on every voice.
  • FM: “what if a TX81Z had six operators?”, plus ideas from the FS1R, chiefly formant operators that sing vowels. Operators 5 and 6 can also drive the filter at audio rate, which is how the talking sounds are made.
  • Modal: nothing exotic, a collection of resonator models. The string work is mostly homegrown, with some ideas borrowed from Elements and Rings, and far more parameters than either.
  • Filters and modulation: a lot from the Intellijel Cascadia: patch points, its approach to frequency modulation, and its modulators. The envelopes follow the Cascadia’s two envelopes, alongside the LFOs and modulation matrix. Filters run from a clean state-variable to a 2040-style four-pole, a dirty one and a ladder.
  • Effects: reverbs inspired by the Alesis MidiVerb II and Quadraverb; the delay modelled on classic tape delays; plus a chorus.
4 Likes

This isn’t a great demo. This is just me talking about different features on the Chimera firmware.

8 Likes

This is looking really great so far!!!

1 Like

Presets in the Claude artifact do not play for me, when I press the button it says „Error“. Tested on desktop and mobile, so it’s not the browser and not the connection.

1 Like