Request: waveform select

I have an idea I’m hoping to bounce off the crowd here as a means of addressing a quicker means of waveform selection:

When a unit header (Sine Osc #1 for example) is focused on, pressing shift reveals the function of the unit. What if this button press scenario were to also reveal an “alternate” contextual screen view, wherein a quick-swap to a different waveform were possible? This function would be accessible for all oscillator units, and all parameter settings would carry over to the newly selected waveform.

Potential challenges/deal-breakers:

  • Parameters might need to be uniform across all oscillator units (I don’t have the knowledge to know if this would be the case or not)
  • Holding shift enables the encoder’s highlight/select function, so no encoder scrolling through the alt menu once it is opened

Thanks for reading :evergreen_tree:

1 Like

intuitive idea! kinda like how audulus on the ipad works.

1 Like

I always kind of assumed Brian might consolidate some of the oscillators at some point. Yeah, it would be a handy way to switch, and I do that often enough. :slight_smile: I know right now the sine has parameters the others don’t (phase and feedback), so not sure how much work would be needed to reconcile that.

2 Likes

Perhaps an even more streamlined way to approach this is to have a single oscillator unit which has a waveform selection parameter?

1 Like

Here’s my stab at a custom unit oscillator that morphs between sine, triangle, and saw. I used the morphing technique described in the bump scanner thread. Sounds decent, but I don’t think its quite right, as the 3 oscillators aren’t synced to each other. Does anybody know how I would take an output from one unit inside a custom unit and distribute it to others? I’d like to sync the sine and triangle to the saw.

unfair-sushi.lua (47.9 KB)

2 Likes

Nice!

Insert another linear custom control into your custom unit. For sake for discussion, let’s name it “saw”.

Set the gain on that control to 1.0

Cut the aliasing saw unit from where it is now in the 3rd mixer. To do that, place the selection cursor at the front of the unit, hold shift and roll the encoder over it to select it, when you let go you should see cut/copy/move to mixer.

Go paste it into the “saw” linear custom control’s chain. Your modulators should remain intact when you do this. E.g. your “f0” custom control should still be assigned to f0 on the saw unit in its new location.

You can now reference this custom control (which will be your saw wave form) from anywhere in the custom unit. Just assign it in the same place you’d assign G1, A1, or IN1, etc., but now instead of “Inputs” choose “Locals”. So the first place you’ll want to put it is back in the 3rd mixer so you can hear it again.

I think you’ll have the idea from there. :slight_smile:

3 Likes

If you’re up for more challenge, here are a couple more thoughts:

  • If you turn the feedback on a sine unit all the way up, you’ll get a saw shape. Potentially you could eliminate the aliasing saw unit that way and save ~3% CPU.

  • If you feed a sine into a limiter, set the type to hard, and crank up the pre gain, you’ll have something pretty close to a square wave, so you could potentially get a 4th shape for very little CPU.

Might be kind of tricky to get the gain structure set up right.

Thank you for the tip on sharing an output, I knew I should have taken my rack home w/ me for the holidays! Will try out your suggestions when I get back. A bump scanner should also be able to create some square waves too right? I’d also have better control over pulse width.

Yep, exactly. I posted a video of using the bump scanner to do PWM, I think in the bump scanner thread. It has a DC offset with it when you do that which probably wouldn’t work out so well for control voltage, but for audio rate, shouldn’t really be a big deal.