Force effect column values to trigger on playback even when value has

It seems like Renoise maintains an internal state of all of the track effect column values and when you press play it will only send out the effect column values that have changed within the sequence from the last known value. It won’t redundantly keep sending out the same value every time you press play. Of course this is a really nice optimization for not sending redundant data to things like DSP effects, synths, and MIDI devices. But now this is become an issue for me based on what I am trying to achieve.

I’ve built a custom DMX lighting control system using an Arduino & DMX shield + custom message routing framework + Renoise. In Renoise I create instruments that are only tied to external MIDI devices on various MIDI channels. I then create tracks and put in Renoise’s Instrument MIDI Control device that I then pair with the external MIDI instruments I’ve created. I setup my CC sliders and then drive them in the pattern using effect column values which generates the outgoing MIDI CCs. The MIDI CCs map to DMX lighting controls. When I adjust the CCs on the Instrument MIDI Control effect/device it sends out MIDI through my setup and to the DMX lights. I am now writing DMX lighting patterns in Renoise right next to my music - sweet!

The one issue that is making workflow a nightmare right now is that sometimes it is necessary to send redundant effect column values (and therefore MIDI CC -> DMX messages to the lights). For example the lights might get disconnected/reconnect and their state is now out of sync with Renoise’s state. Different patterns send out different lighting scenes via CC messages, often at the first row of the pattern. What I’d like to be able to do is press play in Renoise and have it blast all of the effect column values all over again so it’s easy to keep the lights and Renoise in sync through pattern playback. But right now if Renoise has already sent the state once on playback - there is no way to make it send it again unless I first change all of the respective effect column values in Renoise first, then hit play and since it now sees changes in the values it will send them out. As you can imagine this is quite nightmare to work with currently, but otherwise the setup is working amazingly well.

Let me know if I wasn’t clear enough of my description of the setup and issue.

Also this is part of a larger message/protocol routing/mapping/adapting framework I’m writing. It currently only works on Windows but should be possible to eventually make it cross-platform. If anyone’s interested let me know and I’ll pass it on when I’ve got good working templates. I’m basically there. You write JavaScript files that define your mapping structures, rules, and message send/receive callbacks. Currently I only have routing from MIDI -> OSC -> DMX (using the Arduino for final DMX hop). But it’s designed as a plug-in architecture for just making things talk across protocols. Adding something else in should be relatively trivial. OSC is my transport language for the messages being adapted.

It’s amazing to be able to now write music AND lighting all right in Renoise in the same pattern! Just need to figure out a solution to this workflow problem.

Thanks for any help in advance.