It appears that, currently, simultaneous note offs and note ons are processed not with all note offs first, followed by all note ons, but per track, starting from the left. What this means is, for instance, If there are notes playing in two separate tracks and new notes come in their columns simultaneously, the messages are sent as follows: Track 1 Note Offs, Track 1 Note Ons, Track 2 Note Offs, Track 2 Note Ons, with Track 1 being farther left than Track 2. This becomes an issue when these notes are being sent to the same instrument.
Now, this is purely a formality for normal samples and XRNI instruments. As the Renoise sampler treats each note as an individual unit, order of note offs and note ons in the instant of change doesn’t matter. The problem comes with VST and MIDI instruments. Since they are only communicated with through MIDI messages, this can lead to the cutting off of a note. The problem is best illustrated by example.
This is an example note sequence. Notice how all notes are being sent to the same instrument. In this case, that instrument is an external MIDI instrument. At the instant that the second note cluster is played, MIDI messages are sent as follows:
Because of this ordering, the C-5 on the left is instantly cut off by the note off from the second track! To avoid this sort of counter-intuitive behavior, it seems that only processing note ons after all note offs, at least for VST/MIDI instruments, would be best.
EDIT: Example uploaded.
Thanks for the very detailed description.
We’re indeed dealing with MIDI note triggering per track and not globally per song. This is hard to change the way things in Renoise work internally.
Question is why you need to place the notes on separate tracks at all?
The equivalent in other DAWs would be if you assign the same MIDI device and channel on two separate tracks. Notes in both tracks will (very likely) start conflicting with each others.
There is one more important reason why at least for VST instruments, you should stick to one dedicated track: Audio routing. Most synth vsti’s do not support multi audio output which also means that you cannot apply two different processing chains to one plugin.
If plugins do support multi audio output channels, they usually also handle the midi across separate channels that prevents midi messages from being mixed up (meaning that you usually have to assign a different midi channel to the other patch in order to be able to control it).
Mostly for convenience in editing - I can alias the chord pattern in the left track while allowing the right track to play freely (http://puu.sh/7dsu8.png). If it’s rooted so deeply in Renoise’s structure, though, I suppose it’s not too much of a hassle to work around.
I’ve also noticed this problem. In my instance I want to apply effects separately to the two different notes (I’ve got a boiler plate instrument with drum samples and then the track I’m working on may demand something extra or somesuch, that I like to do in the track FX) without modifying the instrument FX chains. It’s a very small deal obviously but I was super confused when I first separated all my kick notes and suddenly one was chopping the other off at the hilt.
Thanks for your hard work guys. Renoise is a love machine.
Also things get finicky when trying to do LFO stuff with resets for automation on each instrument independently. I’ve been making an empty sample and using keytracker to trigger LFO start times so I’m not actually limited but it is a funny workaround.