Note-Cut Problem

Me and Jeroen Tel are having a bitch/rage session on Skype. :P

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.

Any chance of having this acknowledged?

Regards,
Mick :)

name-dropper ;)

It would only be name-dropping if JT were on this forum and he mentioned my name… :P

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”.

?? wha-wha-whaat?

I’m not really good with Lua - but is there a solution that can be easily implemented? :)

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? :P

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

  
 pos = renoise.song().transport.playback_pos  
  

you can also replace that with

  
 pos = renoise.song().transport.edit_pos  
  

if you un-follow playback and edit a lot