Last time we looked at sending random notes from Reaktor, everything was hunky dory except the ensemble didn’t send note-off signals to its destination.
Note-offs are required because otherwise you end up with stuck and hanging notes. If you’re sending to a synth patch you could inadvertently create drones. If you’re sending to a drum synth or other percussion instrument, you might not hear a drone when the note fades but it might still be active, consuming CPU. This has happened to me when I’ve tried to trigger Drumspillage from Reaktor.
The fix is very simple and uses part of the same structure we used to send MIDI out from Krypt – a note-off macro.
There’s also a NoteLen control, unlike the earlier version in Krypt. This control determines the length of the triggered note, so it doesn’t require a new note to turn off the previous one.
Now let’s have a look inside the NoteOff macro:
It’s a bit complex, but the gist of it is – the Value modules on the right, just before the merge modules and P and G terminals, hold the value of the previous note and a zero. The Order module is wired up so that when a new note is received, the macro first sends out the pitch of the previous note with a zero velocity. That’s one way to send a note-off. The macro then sends out the new note with whatever velocity came in through the G terminal.
The Hold module holds the note on for however many milliseconds you’ve set as the length of the note, then drops the value to zero, which again sends out a note-off.
You can download the updated ensemble here and experiment with it yourself.
Update: here is a version of the note off macro that is more suitable for popping into other sequencer ensembles, which often have trouble with stuck notes when sending to external synths and hardware.