-- Same as line_notifier above, but the notifier only fires when the user
-- added, changed or deleted a line with the computer or MIDI keyboard.
renoise.song().patterns[]:has_line_edited_notifier(func [, obj])
-> [boolean]
renoise.song().patterns[]:add_line_edited_notifier(func [, obj])
renoise.song().patterns[]:remove_line_edited_notifier(func [, obj])
I don’t know if I fully understand the usefulness of this notifier (add_line_edited_notifier). Deleting a note from a line does nothing!
Shouldn’t it also run when a note is removed from a line, or a selection is removed?
Because of this, I use add_line_notifier, which allows triggering also when removing data from the pattern editor.
_line_edited_notifier is more aggressive than _line_notifier?
-- Check/add/remove notifier functions or methods, which are called by Renoise
-- as soon as any of the pattern's lines have changed.
-- The notifiers are called as soon as a new line is added, an existing line
-- is cleared, or existing lines are somehow changed (notes, effects, anything)
--
-- A single argument is passed to the notifier function: "pos", a table with the
-- fields "pattern", "track" and "line", which defines where the change has
-- happened, e.g:
--
-- function my_pattern_line_notifier(pos)
-- -- check pos.pattern, pos.track, pos.line (all are indices)
-- end
--
-- Please be gentle with these notifiers, don't do too much stuff in there.
-- Ideally just set a flag like "pattern_dirty" which then gets picked up by
-- an app_idle notifier: The danger here is that line change notifiers can
-- be called hundreds of times when, for example, simply clearing a pattern.
--
-- If you are only interested in changes that are made to the currently edited
-- pattern, dynamically attach and detach to the selected pattern's line
-- notifiers by listening to "renoise.song().selected_pattern_observable".
renoise.song().patterns[]:has_line_notifier(func [, obj])
-> [boolean]
renoise.song().patterns[]:add_line_notifier(func [, obj])
renoise.song().patterns[]:remove_line_notifier(func [, obj])