The more possibilities people have with Workbench the bigger the probability will be that they want additional agents to reach their goals. Starting a thread to collect some ideas what would be nice (perhaps some things could make it on the open source developer proposal list?)
low level agents that allow to build easy logic components without having to go down to programming level:
* a selector: one of several inputs is chosen based on a "chooser input" (a value input that determines the input that is routed to the output)
* clock: measures the time between two input signals (e.g. key presses)
* timer: send a trigger after a specified period of time
* variable: just outputs a specified value (can also be used as "sample and hold")
* comparator: compares values coming from two inputs and outputs e.g. -1 0 or 1 depending on the values being equal/left bigger/ left smaller
* key stream and midi stream creators/extractors (build key or midi streams out of individual integer/float values)
* what would be cool: low level components that are put into a special rig which are not agent themselves but compiled to sample-rate optimized machine code on the fly, so you don't have the call overhead and can essentially build smaller realtime DSP schematics directly in Workbench)
high level agents:
* fingerer agent for playing with "mode keys" to add accidentals or reaching a bigger playing range on Pico. E.g. transpose by a semitone when pressing a mode key or having three mode keys that encode which octave is played (as far as I understood this is already in the pipeline)
* coding agent: an agent with a Workbench gui that allows to use Python and a compiled language (e.g. TransLucid?) to write small agents directly in Workbench (for Python it should be a "simple agent" approach where you essentially only define the process method).
* an additive synth component that can resynthize existing sounds and morph between them in several dimensions (or even better: real time resynthesis and morphing between several inputs, so you could morph between a synth sound from the modular components, a sample instrument and a voice from the microphone - whatever)
* a collection of (or one monolithic, configurable) "physical modelling" agent(s) that can be used to build possible or impossible instruments (e.g. strings, resonators, bow, pluck, blow attractor etc. but perhaps also crazy things like tree-with-leaves that can be blown or shaked). Optimally there is a dedicated "3D editor" in workbench that allows to graphically build instruments - take a box, span strings accross it, put a membrane on it, make a whole so sound can exit, put strings on a stick to build a bow, define axis on a "hand" that plays the bow, define fingers/hammers that touch/pluck/strike the stings etc. Ok, in full scope this might be more challenging and time consuming to implement than the whole EigenD package together by itself - but it would be cool! (Perhaps as a first step one could use e.g. just launch Blender as an external application to build the physical instruments - Blender has a Python interface, so an exporter/agent controller could be written) (Perhaps it would be worthwhile to look into programming the new multi purpose GPUs for the physical simulation.)
* "section agent": instantiates another selectable agent n times and provides the "instance number" to the contained agent (if it supports this property), so the contained agent can vary the sound slightly based on the instance number. The outputs of all instances are summed up. That way you can build sections of instruments (e.g. for building synth orchestras)
* an audio unit agent that can hold several instances of the same plugin, dispatching midi events based on channels to the instances and controlling all instances with the same gui (so you can have per key expression for plugins that do not support a multi mono mode without having to manually synchronize changes between the instances). (Geert meant this is already on his agenda.)
* a filter agent that can filter keys, midi events, values etc. based on intervals, type etc.
to be continued :)