Experimantal 'strum' generator
This is a relatively simple module that buffers incoming MIDI and sequences it with a minimum delay between notes. The only control is the delay time.
It was built partly as an exercise - ie. will it be useful? - and partly as a demonstration of how achieve this type of functionality in Reaktor - someone on the forum was asking.
The internals are way more complex than the GUI. In order to make the thing useable, it is important that it is responsive when notes are released before a strum is complete. This requires the use of dreaded (in Reaktor) data structures.
Here I've used a (home brewed) doubly linked list to be used as a FIFO buffer. MIDI note-ons are pushed onto the top of the buffer. When the buffer is empty, the first note is played immediately - from the bottom of the buffer, and a timer is started after which, any other notes found are played in sequence from the bottom of the buffer and the timer is reset for each note.
If a note-off arrives for a note that is currently in the queue, it is removed immediately (hence the need for a doubly linked list).
If/when the final note being held is released, the timer is zeroed so that new notes are played immediately - for this a simple counter keeps track of how many notes are active.
There is no velocity functionality - this is experimental after all :). Velocity could be added easily from a technical point of view, although the design would be more difficult in terms of deciding what velocity to use... I suppose it would be either the first new velocity... or just store each notes individual velocity...
I've found to be more useful than I expected - not so much as a 'strummer', but with time set to 20-25ms, it thickens up some sounds nicely.