-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Buses proposal #114
Comments
A more concrete buses spec: We make a new parameter We also make a new parameter Ignoring audio in for now, imagine a Juno-6 patch that has Now, I want the audio in to go through an echo. I send AMY Not giving To mix buses, we can use volume. To send buses to other outputs, we can use Buses are stereo pairs. I could imagine a future bus parameter that breaks apart stereo pairs and allows you to address channels individually but we shouldn’t worry about that now. Buses can be a list of buses. |
I feel like a bus is a bus and an output is an output. Oscs are assigned to buses, each bus has effects parameters. Then outputs are mixed down from buses. I think this is pretty much your syntax, it's just the terminology. In this view, external audio-in could be another bus as you suggest (instead of an osc). I'm not sure how to pan a mono external input - right now pan is a property of an osc, and I think of buses as all stereo. I'm not crazy about a pan parameter in the final mixdown, but it's possible, then another flag to make a bus mono? |
Oh I think maybe there's a difference in how we specify the final mixdown. Your For me, that would be My approach allows the precise mix level on each output to be set differently, a bit reminiscent of ControlCoefs vs |
We have a couple of quality of life issues that a "bus" could help us obviate
Let's add a bus construct, where oscillators are rendered into a bus and effects can be added after summing into that bus.
If this sounds complicated, never fear, we already have two buses!
fbl
is used on multi core hardware to render a group of oscillators. We then sum those and add effects to them together. What iffbl
could be, say, up to 6, instead of two, and you can assign oscillators to a bus number. By default, they would be set up like they are now, into two buses by their osc #,(0-AMY_OSCS/2, AMY_OSCS/2-AMY_OSCS)
. But a parameter, say,U
/bus
, can be added to the oscillator to override this bus.Then, synth wide "effects" like (currently) chorus, reverb, eq can also have
U
/bus
set alongside them (with default being all active buses), e.g.chorus_level=1, bus=0,1,3
. And (for example) juno patches can have bus numbers pre-set into ones that need chorus / eq / etc and those that don't. Then dx7 and juno voices could be played simultaneously with chorus only on the appropriate ones.(Future) a bus can be indicated as non-audible, or have its volume set per bus for mixing. Other C code could peek into a bus to, for example, send the bus output to a non-audio sink, like a i2c DAC on Tulip for modular synth ramps.
The text was updated successfully, but these errors were encountered: