Module Duplex.Applications.Navigator

The "Navigator" application allows you to take control of the pattern/block-loop and playback position.

Inheritance: Duplex.Application > Duplex.Application.Navigator

Usage

  • Single press & release to move playback to the indicated position
  • When stopped, press & release will cause the edit-pos to move
  • Pressing two buttons will create a block-loop with that approximate size
  • When a loop has been created, hold any button to cleared it again

Suggested configuration

To take advantage of this application, you need to assign a number of buttons to the "blockpos" - the more buttons, the higher precision you will get. Generally speaking, you want to map either 4, 8 or 16 buttons for music which is based on a 4/4 measure.

Changes

0.98.32

- FIXME When jumping back in pattern, and briefly going to the previous pattern,
  the navigator would break if the previous pattern hadn’t same number of lines

0.98.27

- Should be more solid and support off-pattern updates
- New mappings: “prev_block”,”next_block”

0.98.21

- Fixed: issue when loading a new song while Navigator was displaying nothing
 (playback happening in a different pattern)

0.98

- Reset on new song
- Listen for changes to block-loop size
- Follow block loop enable

0.96

- Fixed: holding button while playback is stopped cause error

0.95

- Interactively control the blockloop position and size

0.9

- First release

Functions

__init (VarArg) Constructor method
start_app () inherited from Application
on_new_document () inherited from Application
_build_app () inherited from Application
_update_blockpos_range () update the looped range of the blockpos control
on_idle () inherited from Application
_obtain_active_index () obtain the current play/editpos, quantized to the number of steps
_get_index_from_line (line) calculate the control index from the provided line using the selected pattern as the basis for the calculation
_get_line_from_index (idx) return the line number for the provided index
_get_lines_per_unit (seq_idx) obtain the number of lines per "unit" (blockpos size) using the selected pattern as the basis for the calculation
_is_inside_pattern () check if edit-pos and play-pos is the same?
_jump_to_index (ctrl_idx) navigate to the line indicated by the index¨ also: carry over loop, if this option has been enabled
_set_looped_range () set the looped range using controller input also: maintain the pattern selection, if this feature has been enabled
_clear_looped_range () clear the looped range using controller input if you clear a block loop, the sequence loop should remain unaffected
_has_looped_range () determine if the song contain a looped range (this can be a sequence loop, a block loop or a custom looped range)

Fields

self._active_index (int), the current control index as determined by the playback position within the pattern, quantized against the number of steps Note: a value of 0 means "no index is selected"
self._edit_line (int), the current line in the edited pattern
self._blockpos_size (int), the size of the blockpos control in units
self._index_update_requested bool, true when we need to update the blockpos index
self._range_update_requested bool, true when we need to update the blockpos range
self._loop_mode enum, one of the LOOP_xxx constants
self._loop_start renoise.SongPos, where the loop starts
self._loop_end renoise.SongPos, where the loop ends
self._jump_pos renoise.SongPos, disallow multiple playback_pos jumps
self._first_pos renoise.SongPos, the first pressed button
self._first_idx (int), the first pressed index
self._second_pos renoise.SongPos, the second pressed button
self._held_event_fired bool, true once the blockpos hold event has fired
self._prev_block UIComponents


Functions

__init (VarArg)
Constructor method

Parameters:

  • VarArg ),

See also:

start_app ()
inherited from Application

Returns:

    bool or nil

See also:

on_new_document ()
inherited from Application

See also:

_build_app ()
inherited from Application

Returns:

    bool

See also:

_update_blockpos_range ()
update the looped range of the blockpos control
on_idle ()
inherited from Application

See also:

_obtain_active_index ()
obtain the current play/editpos, quantized to the number of steps

Returns:

    int (0 to display "no index")
_get_index_from_line (line)
calculate the control index from the provided line using the selected pattern as the basis for the calculation

Parameters:

  • line
_get_line_from_index (idx)
return the line number for the provided index

Parameters:

  • idx (int), 0-blockpos_size

Returns:

    int (0-number of lines)
_get_lines_per_unit (seq_idx)
obtain the number of lines per "unit" (blockpos size) using the selected pattern as the basis for the calculation

Parameters:

  • seq_idx (int)

Returns:

    int (lines per unit), number of lines in pattern
_is_inside_pattern ()
check if edit-pos and play-pos is the same?
note: when not playing, this will always return true
_jump_to_index (ctrl_idx)
navigate to the line indicated by the index¨ also: carry over loop, if this option has been enabled

Parameters:

  • ctrl_idx (int), 1-blockpos_size
_set_looped_range ()
set the looped range using controller input also: maintain the pattern selection, if this feature has been enabled
_clear_looped_range ()
clear the looped range using controller input if you clear a block loop, the sequence loop should remain unaffected
_has_looped_range ()
determine if the song contain a looped range (this can be a sequence loop, a block loop or a custom looped range)

Returns:

    bool, enum (Navigator.LOOP_xxx)

Fields

self._active_index
(int), the current control index as determined by the playback position within the pattern, quantized against the number of steps Note: a value of 0 means "no index is selected"
self._edit_line
(int), the current line in the edited pattern
self._blockpos_size
(int), the size of the blockpos control in units
self._index_update_requested
bool, true when we need to update the blockpos index
self._range_update_requested
bool, true when we need to update the blockpos range
self._loop_mode
enum, one of the LOOP_xxx constants
self._loop_start
renoise.SongPos, where the loop starts
self._loop_end
renoise.SongPos, where the loop ends
self._jump_pos
renoise.SongPos, disallow multiple playback_pos jumps
self._first_pos
renoise.SongPos, the first pressed button
self._first_idx
(int), the first pressed index
self._second_pos
renoise.SongPos, the second pressed button
self._held_event_fired
bool, true once the blockpos hold event has fired
self._prev_block
UIComponents
generated by LDoc 1.4.2