Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

Buchla Music Easel Inspired Custom Units

So I got it in my head recently to start recreating all of the parts of the Buchla Music Easel in the ER-301. My initial goal was to have a full quicksave that was a complete Music Easel.

As I started working on it today, I got most of the way done with the Sequential Voltage Source (the Easel’s 3-to-5-step sequencer) and realized that it was using ~61% of the CPU. I tried to finish the SVS by adding the only thing that was missing (toggleable triggers per step) and was getting pretty bad lag with the CPU load getting up to 91% before giving up for now, and leaving at a simple 5-step sequencer with a selectable sequence length. When loading the preset, “Trig Src” needs to be assigned to a pulse/trigger/gate of some source, either internal or external.

I also began work on the one-shot mode of the Envelope Generator, which I think I’ve got finished, save for a bug in Joe’s Bespoke Timed Gate Unit, which he said he’ll be having a look at. Once that gets sorted I’ll see if I can’t get that finished as well.

My current plan, now that I have a sense of what the CPU can handle, is to make each chunk of the Easel as a Custom Unit preset, that I can load up when I want to use them. Perhaps at some point I’ll dive into the Middle Layer SDK and see if I can’t optimize the units to be able to use more of them concurrently in the 301.

This first unit relies heavily on Joe’s Bespoke Units, so I would assume you need to have those installed for these to work. I also did a lot of grabbing of sources using the scope mode, so I’m not sure they’ll be backwards compatible at all. Safe to assume they won’t be. These were made in FW v0.4.11.

Here’s a short demo on my instagram of me using the SVS unit (loaded as a global chain) to sequence a simple wave-folded oscillator: https://www.instagram.com/p/BszUGDUhwtP/

And here’s the SVS unit: SVS.zip (4.6 KB)

Any and all feedback is appreciated! If it’s not working for anyone, I’ll try my best to help.

EDIT: Latest versions of the units, and a quicksave showing an example of some Buchla Bongos.
EaselR-301.zip (667.0 KB)
slot6.zip (10.3 KB)

11 Likes

So I’ve been doing some more reading and it looks like the Bump Scanner does exactly what I was using a handful of Joe’s Bespoke Logic and Compare units to do…for each of the five steps… :man_facepalming:

The good news is that we can rebuild it. Better than it was before. Better, stronger, faster. Or, at least with less of a CPU load, hopefully…

Guess it’s back to almost square one!

EDIT: So I remade the Custom Unit from scratch, and was able to make some serious improvements in CPU usage. Using the Bump Scanner I was able to recreate the unit I previously posted while only using 9% of the CPU. This new version of the “voltage”-only sequencer uses only stock units.
I then implemented the toggleable triggers per step, as is on the Buchla Music Easel, using a number of Joe’s Bespoke Logic units, and was able to get the Custom Unit functioning with only a 63% CPU load. Much happier with these results than my initial version.

Additionally, just as a test, I tried expanding the “voltage”-only version with no per-step triggers to 16 steps, and the CPU load was only 34%. I haven’t finished up adding all the controls to that unit, but for now I’m gonna call it a night!

Here are the newer versions of the two units. The preset with triggers needs Joe’s Bespoke Units, the version without does not.

SVSv2.zip (7.8 KB)

Enjoy!

7 Likes

Very cool, nice work!

I think you could definitely make some optimizations in the middle layer. You can eliminate some of the extra objects that are baked into the units. E.g. controls that you would most likely want there in a standalone unit but aren’t really needed in a larger network with its own controls. Plus whatever overhead each individual unit container itself consumes. These things are smallish, I think, but in larger networks they can start adding up.

I think part of what you run into when building an application like a CV seqeuencer with the ER-301 is that its design is a “Sound Computer”. Many of the units/objects that you use to build it are updated at the sample rate of 48/96kHz, so that they can support audio rate applications. which is of course overkill for something like sequencing, where something like 96ppqn is probably sufficient. So the CPU is working harder than it has to in order to support that application.

I don’t mean for that to be discouraging in any way, of course! Anything you can build can be fun, useful, and educational to help you learn the 301’s huge capabilities.

Personally I’ve been trying more recently to conceptualize the ER-301’s role as a key component in a larger system. I guess this is the anti-“ER-301 microsystem” approach. :smiley: So, offloading tasks that don’t require audio-rate processing to another module, and reserving the ER-301 CPU for tasks that it can do uniquely well. That’s not a hard and fast rule or anything - just more of a paradigm shift to my mental map.

Hmm, I think I got off on a tangent there. Nice work - you are off to a huge running start!!

2 Likes

Thanks Joe!

I can definitely see how what I’m doing maybe isn’t the most ideal use of the module, or doesn’t totally align with the intended use case. That’s kind of part of the fun of solving these problems! I also don’t have many other eurorack modules to use with the 301 at this point, coming from Buchla world.
I’m currently brainstorming what to fill the rest of my case with to compliment the 301 without making my eurorack system redundant to any other musical instruments I have, which I suppose is a puzzle in itself to solve haha.

I’m sure as time goes on I will come up with uses that the ER-301 excels more at than sub-audio rate things. Though, reading you sequential switch posts made me realize that the way I’ve got the sequencer built right now, any of the steps could be assigned to one of the inputs, allowing it to work as a combination of a voltage sequencer and sequential switch. Like a tiny baby Buchla MArF in a way!

And thanks for such a speedy bug fix on that Timed Gate unit! Looking forward to continuing down this Music Easel 301 road.

2 Likes

Yep - keep at it! It definitely wasn’t intended as a finger-wagging or anything of the kind. I’ve built plenty of CV structures myself, and I’m sure I’ll continue to. I really meant it to be more of an explanation of “why does my sequencer-thing require X% of the CPU on this powerful device… :thinking:

And, like I say, may have gotten off on a side tangent.

2 Likes

No worries! I didn’t take it that way. I very much enjoy the tangents about the meta-usage of these super robust instruments!

Back to the topic of this thread, I’ve just finished up the EG now that the timed gate unit is accepting modulation on the gate length, and it’s only using 10% of the CPU as well, so I’m at 24% with the sequencer and EG loaded into their own global chains. With the only remaining components being the pulser, random source, oscillators, and low-pass gates, I’m now somewhat hopeful again that I can get something of a complete Music Easel loaded all at once!

4 Likes

Another day, another set of Music Easel Custom Units!

The list of complete units is now as follows:

  • Complex Oscillator
  • Envelope Generator
  • Lopass Gate
  • Pulser
  • Randoms A, B, C, D
  • Sequential Voltage Source (w/ and w/out per-step triggers)

I think I’m the happiest with the Random units, as I recorded the random voltages from the four random bananas on an actual Music Easel to get each 127 step sequence of “random” voltages, and then used a Counter unit and a Sample Scan unit to step through those recordings when they receive a trigger. These recordings are included in the zip download.

The complex oscillator also turned out pretty well. The one thing I wasn’t able to get was a three-way selection for the waveform (spike/square/triangle) and made individual toggles for each waveform instead. @odevices maybe exclusive toggle options for controls would be cool (i.e., add toggles on a unit to a mute group so when any toggle in that group is on, it turns off all other toggles assigned to that same group). Either that or making multi-option controls a thing, would be cool as well (e.g., the up/down/both mode on the slew limiter).

Another thing I’m going to look into is creating a simple set of samples that are lookup tables in commonly used curves (log, anti-log, exponential, things like that) so that controls on custom units can have a more useful distribution of travel. For example, making a custom control for frequency offset of an oscillator contained within a unit leaves you with a slider that is labeled “Hz” but with linear adjustment steps with the encoder, as opposed to the exponential rate of adjustment that the frequency knobs on the oscillator units themselves have. Maybe this could be an option to toggle when creating a custom control for something? Have a list of curves that you could select the adjustment range to follow.

After spending so much time in the world of logic and sub-audio-rate signals, it was nice to finally work on some things that make noise, and then put them all together!

Download here: EaselR-301.zip (667.0 KB)

Here’s a video of a self generating patch using only the units in the pack (which rely on Joe’s ‘Accents’ units).

16 Likes

Thanks a lot for creating these units: looks and sounds awesome!

Could you perhaps share your example patch as a Quicksave or give some more information on how to combine the OSC, LPG and Envelope Generator? I tried to insert the LPG after the OSC, but I didn’t manage to open it or to modulate it with the Evenlope Generator.

2 Likes

Big encoder. Little cat. :slight_smile:

This looks and sounds great; looking forward to checking it out. I don’t know a ton about Bulcha or West Coast synthesis. These look like a great opportunity to learn some more.

I would welcome any patch examples that you feel like sharing too!

1 Like

Here’s the quicksave from the video in my last post. Once you’ve got it loaded, to start the pulser into self-cycle mode, you have to go into its custom object in the global “P” chain and fire the “trig” a single time to get it started.

slot6.zip (10.3 KB)

Once I get the Mod Oscillator done, I’ll do a write up on how to connect things to each other and some ways to use each of the building blocks.

For the Lopass gate specifically, you have to go in and set the audio input you want for both the lopass mixer channel and the gate mixer channel. There’s probably a better way to do that :sweat_smile:

6 Likes

Thanks a lot, that helped! Now I’m looking forward to the ER-301 CPU upgrade – some day… :wink:

1 Like

I think when I’ve got another chunk of free time I might see if making some of these in the Middle Layer SDK will allow for all of them to run concurrently.

6 Likes

thx a lot for this unit it sounds awesome !!!
quite easy to overload the cpu…

1 Like

How can I make this work on 0.4.11, if Joe’s Bespoke Units don’t work on 0.4.x?

The library was renamed to Accents for firmware version 0.4. You can grab the latest version for 0.4.x firmware here:

2 Likes

Of course! That worked :slight_smile: @Drillionaire, how is this supposed to be set up? If I take the complex osc and put the LPG behind it, nothing comes out even if I gate it…

Check out the quicksave that I uploaded earlier in the thread. It has a self generating buchla bongo patch.

It’s also possible that newer versions of the Accents objects have broken my buchla units.

1 Like

Thanks, got it to load and all, but it doesn’t make any audio by itself, no matter if I trigger a gate to any of its inputs (it outputs if I put the vca level up)

1 Like

The Lopass and Gate toggles are mode settings, turning on or off those parts of the lopass gate. The only amplitude control is the “level” input.

As for the quicksave, it looks like you have to go into the ‘P’ (for pulser) global chain, and manually fire a trigger into the ‘Trig’ input to get it to self cycle.

I’ve got it working on 0.4.11 with the latest versions of @Joe’s accent units.

1 Like

I can’t get this to work at all, I’m sorry, I must be dumb. I load the quicksave slot #6, and there are two channels; the first one has the osc and the lpg, and the second one is empty. If I bring up the level of the lpg manually, it goes through, but I can’t find the pulser chain anywhere

1 Like