Why Is Transport.Loop_Pattern Not Observable ?


since renoise.song().transport.playing is observable I actually don’t understand why
renoise.song().transport.loop_pattern is not.

Background: I’d like to observe both for propagating state to FaderPort Controller

Or have I overseen something ?


All the realtime, playback states are hard to make observable, thats why some of them are not - yet. This is in my TODO queue and I’ll try to add them till the end of the 2.6 beta.

For now you can poll them manually in the idle_notifier - observe them by your own:

local last_loop_pattern_mode = nil  
function on_idle()  
 local loop_pattern_mode = renoise.song().transport.loop_pattern  
 if (last_loop_pattern_mode ~= loop_pattern_mode) then  
 last_loop_pattern_mode = loop_pattern_mode  
 -- loop mode changed...  

oki …very helpfull :slight_smile:

Duplex FaderPort development makes progress and really is fun to do :).
Devel speed could be higher, but I just can’t spend more time right now. I’ll release another alpha/beta ASAP.

Came back to this one.

What about observable-support for renoise.song().transport.edit_pos and maybe renoise.song().transport.playback_pos ?

Right now I’m polling edit_pos in on_idle() handler for recording fader values into automation envelopes (no CPU intensive operations I guess ?). I support write and latch modes and it works great despite one thing: when speed or LPB setting is high some positions are omitted / jumped over. For the first draft I can live with that, but observer support would really be cool.

Maybe a stupid question, but is this why my loop button doesn’t work on my Novation Nocturn 25?
all the other MMC controls seem to function fine.

I think it actually should work at least in “control->Renoise direction”. Means: if you press loop-button etc. off the Novation the state should be toggled inside Renoise. BTW: this should work for any midi controller.

My problem/request was related to the opposite “renoise->control direction”. The FaderPort has a LED light which should alway be enabled whenever loop pattern is activated. Right now this only works by continuously polling the state via idle() function.