Me and Jeroen Tel are having a bitch/rage session on Skype.
We’re working on a song which has a lot of note-cuts, and the play-row-under-cursor (ENTER) doesn’t play notes with a note-cut command on it. This is really frustrating.
You can script this in Lua by calling the API function that plays from a certain position to a certain position(one line at the cursor pos) which will include the note-cuts and attach that to “enter”.
A basic and simple lua script that gets you on the way…:
local pos = nil
function start_preview()
renoise.song().transport:start_at(pos.line)
end
--------------------------------------------------------------------------------
function stop_preview()
renoise.song().transport:stop()
end
function play_line ()
pos = renoise.song().transport.playback_pos
start_preview()
if not (renoise.tool().app_idle_observable:has_notifier(check_progress)) then
renoise.tool().app_idle_observable:add_notifier(check_progress)
end
end
function check_progress()
if pos.line ~= renoise.song().transport.playback_pos.line then
stop_preview()
renoise.tool().app_idle_observable:remove_notifier(check_progress)
end
end
--[[
renoise.tool():add_menu_entry {
name = bool_menu[false],
invoke = set_notifier
}
--]]
renoise.tool():add_menu_entry {
name = "Main Menu:Tools:play_line",
invoke = play_line
}
renoise.tool():add_keybinding {
name = "Pattern Editor:Navigation:Play_line_with_note_cuts",
invoke = play_line
}
I’m sure you could perfection the idea… Knowing you also know your way around with PHP, this doesn’t look too hard either doesn’t it?
It’s not too difficult indeed! nice @MickRip: maybe add a remove_notifier inside of a renoise.transport.playing_observable observer for if you stop playback before the script does…
oh and where it says