along with sample editing of course, what i'm mainly concerned about here is more modularity. not just module plugins, but also a framework that would allow connecting plugins and other modular mixer objects in a more modular way. the pd and faust integration are nice, but not many people would want to bother learning either of these two advanced things if they just want to do some wiring, and they shouldn't
quick note, when i say "object", i mean the container for instruments, plugins, and other things in the modular mixer
first off, the framework for connecting objects should be adjusted a little: it should expose all of an object's possible inputs and outputs, and an object should be able to accept and output not only audio but also midi and control data. this would allow you to control all aspects of an object and to send any needed data to it
secondly, what there should be is some kind of subpatch object. basically, it should let you contain an enitre modular mixer patch within a single object. this would be analogous to sunvox's metamodule. it should have a configurable, unlimited number of inputs and outputs, and it should also be able to contain subpatches within itself. whether it's simply an extra modular mixer canvas or possibly even an enitre instance of radium with the included sequencer is up to you. in the subpatch, the system output would be replaced with a patch output, or possibly multiple outputs
lastly, there should be some other new objects intended to be used for patches. i think the bare minimum would be:
- an oscillator. it should have all the basic waveforms (saw, pulse, triangle, and sine), pulse width modulation, input for fm/rm, sync, and the ability to set the starting phase of the oscillator. additional waveforms are optional
- an object to send midi data. it should be able to accept midi input from an external keyboard or from radium's sequencer and output pitch, velocity, and phase. it should also be able to output to multiple objects at once
- an object to convert midi data to control data. for example, it could accept pitch data and output a control value to be used in, say, a pitch tracking filter. it should have an adjustable minimum and maximum output
- an envelope follower, which converts audio to control data. this would basically allow you to turn any audio generator into a modulator
- an envelope generator. whether this is adsr or something else is up to you
- an object to convert control data to a pitch. along with being an alternative to using midi data, this would also allow a dc signal or something else to control pitch when paired with an aforementioned envelope follower
- a filter. what type of architecture it implements is up to you
- a feedback object, which would allow data or audio from an object or set of objects to be sent back into itself. a controller for latency is optional and would probably be helpful
- a sample/wavetable oscillator. the sample player already exists, and it could be upgraded to fit within the framework. it could also have the same controls as the regular oscillator, but this is up to you
- an oscillator that implements paul nasca's padsynth algorithm
- a compressor
- an eq
- a delay, which could delay the input by a set amount of time
- a waveshaper
- a frequency/pitch shifter