We’ve been thinking out loud a lot on IRC about modularity and DSP chains recently. I for one believe Renoise’s future lies in more modularity and the emergent behavior that results in, and as such will always shout about new metadevices or modulators or routing capability. The #1 argument against this is that the DSP chains become very cramped from a UX point of view.
An example is the chorus device, which has its own native LFO. My instinct at this point, with a separate LFO device and very wide routing options; why can’t i just short-circuit the chorus and use a custom LFO waveform instead, or even a signal follower? This approach would mean every Chorus device would default to a pair of devices, an LFO and an effector.
Bear with me.
Ableton Live does this with “racks”. It’s one of the most powerful features of the way they handle effect chains, which are cosmetically similar to Renoise. The idea is to group several effects under one container, which can be collapsed/expanded on demand. This lets you create rambling effect chains as a rack, collapse it and keep your canvas clear for further work. Racks can also be stored as presets.
MaxMSP does this with “subpatches”. Max patches can become huge, rambling things, and to mitigate this it’s useful to break down the patch into smaller subpatches with a limited interface; If you’ve made your wave shaper effect, why would you want to look at all the wiring when you’re working on another patch aspect?
Additionally, when when you’re working in a live context you want to eliminate every controller that isn’t useful to you. For this purpose, Max patches have two views, one of which is a stripped down user-friendly view of your own design, where you tag which controllers you want visible and put them in your preferred layout.
Renoise could, and IMHO should, embrace this design. I’m imagining creating a chorus unit. I expand it and delete its lfo device, and replace it with a signal follower. I route the follower to the chorus LFO input. In its collapsed state, the device has tagged sliders and controls exposed. I want to control the signal follower better without having to expand the device, so i shift click sliders i want exposed, and they become highlighted. I collapse the device back down and it is given a unique name or is tagged with a character signifying it is no longer a default Chorus device (for instance it could be named “Chorus*”).
Wanting to reuse this device later, i give it a proper name, and click a save widget, which stores it to a Custom Effects table under the effect list. Later, when i want a signal following chorus, I’ll just grab it from there.
The separation of the Chorus effect is just an example and not the purpose of this post. I have no hate for the Chorus native LFO. The point is to create DSP chains that are more modular, more easily managed and stored for re-use, and to clean up the epic clutter of a complex chain and its frontend.
I don’t have Photoshop available so it’s hard to throw down a worthy sketch right now, but i hope it’s at least somewhat clear?