New Tool (3.1): SliceMate

This is the place for discussing the SliceMate tool.

The tool can automatically determine the playback position of a sample and, with a single shortcut, slice and produce a note at the cursor position in the song.In other words, if you are often using long or sliced samples, it could be quite the timesaver.

The tool was inspired by this topic.

Requirements: Renoise 3.1 or newer.

Download from the tool page:

http://renoise.com/tools/slicemate

Documentation and source code:

https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.SliceMate.xrnx

I must be doing something wrong, but canā€™t seem to have the tool slice anything? Although I have a sample loaded in the instrument list, autoseeked it, I keep getting "Unable to insert slice:

Canā€™t determine position - please enable auto-seek on the sample", if there is a slice marker present in the sample, Iā€™m getting ā€œUnable to insert slice:
Could not resolve sample from noteā€. How is this supposed to work? Will read first post in thread :slight_smile:

Found this in the log;

ScriptingEngine: std::logic_error: ā€˜invalid line range: 65, 64.ā€™

stack traceback:

[C]: in function ā€˜lines_in_rangeā€™

.\source/xLib/classes/xNoteCapture.lua:148: in function ā€˜search_trackā€™

.\source/xLib/classes/xNoteCapture.lua:96: in function <.\source/xLib/classes/xNoteCapture.lua:86>

(tail call): ?

.\source/SliceMate.lua:254: in function ā€˜selectā€™

.\source/SliceMate.lua:503: in function ā€˜on_idleā€™

.\source/SliceMate.lua:126: in function <.\source/SliceMate.lua:125>

Error Message: ā€˜C:\Users\pluge\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.SliceMate.xrnx\main.luaā€™ failed in one of its notifiers.

Error Message: The notifier will be disabled to prevent further errors.

Error Message: Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistanceā€¦

Error Message: std::logic_error: ā€˜invalid line range: 65, 64.ā€™

Error Message: stack traceback:

Error Message: [C]: in function ā€˜lines_in_rangeā€™

Error Message: .\source/xLib/classes/xNoteCapture.lua:148: in function ā€˜search_trackā€™

Error Message: .\source/xLib/classes/xNoteCapture.lua:96: in function <.\source/xLib/classes/xNoteCapture.lua:86>

Error Message: (tail call): ?

Error Message: .\source/SliceMate.lua:254: in function ā€˜selectā€™

Error Message: .\source/SliceMate.lua:503: in function ā€˜on_idleā€™

Error Message: .\source/SliceMate.lua:126: in function <.\source/SliceMate.lua:125>

GraphPort: Trying to load Fallbackfont: ā€˜Arial Unicode MSā€™ (PS-Name: ā€˜ā€™)ā€¦

GraphPort: EnumFontFamilies for font family ā€˜Arial Unicode MSā€™ failed

Exception: Failed to resolve the font file for font ā€˜Arial Unicode MSā€™.

GraphPort: EnumFontFamilies for font family ā€˜Arial Unicode MSā€™ failed

Exception: Failed to resolve the font file for font ā€˜Arial Unicode MSā€™.

GraphPort: Trying to load Fallbackfont: ā€˜MS PGothicā€™ (PS-Name: ā€˜ā€™)ā€¦

GraphPort: Fallbackfont was successfully loaded, but can not handle the requested character(s). Skippingā€¦

GraphPort: Trying to load Fallbackfont: ā€˜MS Gothicā€™ (PS-Name: ā€˜ā€™)ā€¦

GraphPort: Fallbackfont was successfully loaded, but can not handle the requested character(s). Skippingā€¦

Note there are also some fonts failing to load, not sure they are related to your tool though?

There is a how-to on github:
https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.SliceMate.xrnx#how-to-use

  • Load up some (long) sample and enter it into the pattern
  • Position the cursor somewhere in the ā€˜trailā€™ and hit slice
  • If sample settings are compatible, a new slice/note is inserted
  • Move cursor somewhere else, repeat and rinse

Now let me just follow those steps myself and see what happens :wink:

ScriptingEngine: std::logic_error: 'invalid line range: 65, 64.'
stack traceback:
[C]: in function 'lines_in_range'

Edit: Ah, this is good info. Somehow it chokes when capturing notes - pretty important part of the tool.

I wonder how youā€™re doing it. First, enter a note and then scroll a bit down and slice?

And also, how large/small are the pattern(s) - are you entering note in one pattern, slicing from a different one, etc.?

Try to describe what youā€™re doing :slight_smile:

First de-installed slicemate through the tool-browser.

Re-installed it through dragging inside of Renoise, causing it to auto boot.

Opened up a breakbeat recording through the diskop, beatsyncing the sample to 128 lines.

Set the pattern length to 128 and pressed play.

Immediately the error notice pops up;

ā€˜C:\Users\pluge\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.SliceMate.xrnx\main.luaā€™ failed in one of its notifiers.

The notifier will be disabled to prevent further errors.

Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistanceā€¦

std::logic_error: ā€˜invalid line range: 129, 128.ā€™

stack traceback:

[C]: in function ā€˜lines_in_rangeā€™

.\source/xLib/classes/xNoteCapture.lua:148: in function ā€˜search_trackā€™

.\source/xLib/classes/xNoteCapture.lua:96: in function <.\source/xLib/classes/xNoteCapture.lua:86>

(tail call): ?

.\source/SliceMate.lua:254: in function ā€˜selectā€™

.\source/SliceMate.lua:494: in function ā€˜on_idleā€™

.\source/SliceMate.lua:126: in function <.\source/SliceMate.lua:125>

After clicking away the notice, the tool gui doesnā€™t seem to recognize any note events present in the pattern editor.

Maybe another tool is (secretly :ph34r: )running in the background interfering? Anyone else having similar issues?

Hm, weird. Just loading a sample, set some property, hit play and BOOM?

What you could do (if you want to help more) is to enable additional debug logging in the tool. Read on for details.

(damn, I was supposed to have some fun with this tool. But this is important tooā€¦)

First of all, you need to have the scripting console enabled, because thatā€™s where that logging is shown.

Next, in the SliceMate folder, open the file called main.lua and edit the following:

_trace_filters = nil
--_trace_filters = {".*"}

Into this

--_trace_filters = nil
_trace_filters = {".*"}

Then, if you have console enable you can choose ā€œReload all toolsā€ from the tool menu.

Otherwise you need to open the tool browser and disable/enable the tool to reload it.

Once the tool has reloaded, it will begin tracing (printing) a lot of debug crap to the console.

What Iā€™m basically interested in is a log from the moment the tool is launched to the first error happens

Note that errors are printed in dimmed-out grey, so easy enough to spot.

ā€“

Now if youā€™ll excuse me, I have some slicing to do.

Did the above, but it didnā€™t crash right away so a lot of data collected, not sure if you need everything but hereā€™s a chunk leading up onto the bug;

Click to view contents

xNotePos:__init - args #2

[track] => 2

[line] => 98

[sequence] => 1

[column] => 1

[fraction] => 0.27073620559335

xNotePos:resolve() xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=97, fraction=0.27073620559335, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=98, fraction=0.27073620559335, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=99, fraction=0.27073620559335, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 98

[sequence] => 1

[column] => 1

[fraction] => 0.68500680272109

xNotePos:resolve() xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=97, fraction=0.68500680272109, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=98, fraction=0.68500680272109, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=99, fraction=0.68500680272109, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 99

[sequence] => 1

[column] => 1

[fraction] => 0.09927739984883

xNotePos:resolve() xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=98, fraction=0.09927739984883, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=99, fraction=0.09927739984883, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=100, fraction=0.09927739984883, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 99

[sequence] => 1

[column] => 1

[fraction] => 0.59640211640212

xNotePos:resolve() xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=98, fraction=0.59640211640212, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=99, fraction=0.59640211640212, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=100, fraction=0.59640211640212, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 100

[sequence] => 1

[column] => 1

[fraction] => 0.010672713529857

xNotePos:resolve() xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=99, fraction=0.010672713529857, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=100, fraction=0.010672713529857, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=101, fraction=0.010672713529857, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 100

[sequence] => 1

[column] => 1

[fraction] => 0.50779743008314

xNotePos:resolve() xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=99, fraction=0.50779743008314, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=100, fraction=0.50779743008314, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=101, fraction=0.50779743008314, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 101

[sequence] => 1

[column] => 1

[fraction] => 0.0049221466364315

xNotePos:resolve() xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=100, fraction=0.0049221466364315, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.0049221466364315, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=102, fraction=0.0049221466364315, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 101

[sequence] => 1

[column] => 1

[fraction] => 0.41919274376417

xNotePos:resolve() xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=100, fraction=0.41919274376417, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.41919274376417, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=102, fraction=0.41919274376417, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 101

[sequence] => 1

[column] => 1

[fraction] => 0.99917157974301

xNotePos:resolve() xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=100, fraction=0.99917157974301, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=101, fraction=0.99917157974301, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=102, fraction=0.99917157974301, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 102

[sequence] => 1

[column] => 1

[fraction] => 0.41344217687075

xNotePos:resolve() xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=101, fraction=0.41344217687075, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=102, fraction=0.41344217687075, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=103, fraction=0.41344217687075, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 102

[sequence] => 1

[column] => 1

[fraction] => 0.91056689342403

xNotePos:resolve() xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=101, fraction=0.91056689342403, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=102, fraction=0.91056689342403, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=103, fraction=0.91056689342403, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 103

[sequence] => 1

[column] => 1

[fraction] => 0.32483749055177

xNotePos:resolve() xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=102, fraction=0.32483749055177, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=103, fraction=0.32483749055177, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=104, fraction=0.32483749055177, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 103

[sequence] => 1

[column] => 1

[fraction] => 0.82196220710506

xNotePos:resolve() xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=102, fraction=0.82196220710506, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=103, fraction=0.82196220710506, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=104, fraction=0.82196220710506, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 104

[sequence] => 1

[column] => 1

[fraction] => 0.2362328042328

xNotePos:resolve() xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=103, fraction=0.2362328042328, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=104, fraction=0.2362328042328, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=105, fraction=0.2362328042328, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 104

[sequence] => 1

[column] => 1

[fraction] => 0.73335752078609

xNotePos:resolve() xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=103, fraction=0.73335752078609, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=104, fraction=0.73335752078609, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=105, fraction=0.73335752078609, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 105

[sequence] => 1

[column] => 1

[fraction] => 0.14762811791383

xNotePos:resolve() xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=104, fraction=0.14762811791383, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=105, fraction=0.14762811791383, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=106, fraction=0.14762811791383, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 105

[sequence] => 1

[column] => 1

[fraction] => 0.64475283446711

xNotePos:resolve() xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=104, fraction=0.64475283446711, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=105, fraction=0.64475283446711, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=106, fraction=0.64475283446711, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 106

[sequence] => 1

[column] => 1

[fraction] => 0.1418775510204

xNotePos:resolve() xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=105, fraction=0.1418775510204, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=106, fraction=0.1418775510204, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=107, fraction=0.1418775510204, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 106

[sequence] => 1

[column] => 1

[fraction] => 0.6390022675737

xNotePos:resolve() xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=105, fraction=0.6390022675737, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=106, fraction=0.6390022675737, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=107, fraction=0.6390022675737, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 107

[sequence] => 1

[column] => 1

[fraction] => 0.13612698412699

xNotePos:resolve() xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=106, fraction=0.13612698412699, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=107, fraction=0.13612698412699, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=108, fraction=0.13612698412699, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 107

[sequence] => 1

[column] => 1

[fraction] => 0.55039758125473

xNotePos:resolve() xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=106, fraction=0.55039758125473, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=107, fraction=0.55039758125473, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=108, fraction=0.55039758125473, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 108

[sequence] => 1

[column] => 1

[fraction] => 0.047522297808015

xNotePos:resolve() xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=107, fraction=0.047522297808015, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.047522297808015, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=109, fraction=0.047522297808015, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 108

[sequence] => 1

[column] => 1

[fraction] => 0.46179289493575

xNotePos:resolve() xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=107, fraction=0.46179289493575, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.46179289493575, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=109, fraction=0.46179289493575, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 108

[sequence] => 1

[column] => 1

[fraction] => 0.95891761148904

xNotePos:resolve() xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=107, fraction=0.95891761148904, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=108, fraction=0.95891761148904, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=109, fraction=0.95891761148904, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 109

[sequence] => 1

[column] => 1

[fraction] => 0.37318820861678

xNotePos:resolve() xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=108, fraction=0.37318820861678, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=109, fraction=0.37318820861678, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=110, fraction=0.37318820861678, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 109

[sequence] => 1

[column] => 1

[fraction] => 0.87031292517007

xNotePos:resolve() xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=108, fraction=0.87031292517007, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=109, fraction=0.87031292517007, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=110, fraction=0.87031292517007, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 110

[sequence] => 1

[column] => 1

[fraction] => 0.36743764172336

xNotePos:resolve() xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=109, fraction=0.36743764172336, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=110, fraction=0.36743764172336, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=111, fraction=0.36743764172336, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 110

[sequence] => 1

[column] => 1

[fraction] => 0.7817082388511

xNotePos:resolve() xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=109, fraction=0.7817082388511, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=110, fraction=0.7817082388511, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=111, fraction=0.7817082388511, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 111

[sequence] => 1

[column] => 1

[fraction] => 0.36168707482993

xNotePos:resolve() xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=110, fraction=0.36168707482993, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=111, fraction=0.36168707482993, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=112, fraction=0.36168707482993, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 111

[sequence] => 1

[column] => 1

[fraction] => 0.77595767195767

xNotePos:resolve() xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=110, fraction=0.77595767195767, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=111, fraction=0.77595767195767, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=112, fraction=0.77595767195767, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 112

[sequence] => 1

[column] => 1

[fraction] => 0.19022826908541

xNotePos:resolve() xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=111, fraction=0.19022826908541, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=112, fraction=0.19022826908541, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=113, fraction=0.19022826908541, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 112

[sequence] => 1

[column] => 1

[fraction] => 0.6873529856387

xNotePos:resolve() xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=111, fraction=0.6873529856387, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=112, fraction=0.6873529856387, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=113, fraction=0.6873529856387, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 113

[sequence] => 1

[column] => 1

[fraction] => 0.18447770219198

xNotePos:resolve() xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=112, fraction=0.18447770219198, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=113, fraction=0.18447770219198, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=114, fraction=0.18447770219198, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 113

[sequence] => 1

[column] => 1

[fraction] => 0.59874829931972

xNotePos:resolve() xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=112, fraction=0.59874829931972, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=113, fraction=0.59874829931972, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=114, fraction=0.59874829931972, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 114

[sequence] => 1

[column] => 1

[fraction] => 0.095873015873011

xNotePos:resolve() xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=113, fraction=0.095873015873011, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=114, fraction=0.095873015873011, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=115, fraction=0.095873015873011, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 114

[sequence] => 1

[column] => 1

[fraction] => 0.51014361300075

xNotePos:resolve() xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=113, fraction=0.51014361300075, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=114, fraction=0.51014361300075, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=115, fraction=0.51014361300075, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 115

[sequence] => 1

[column] => 1

[fraction] => 0.0072683295540372

xNotePos:resolve() xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=114, fraction=0.0072683295540372, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=115, fraction=0.0072683295540372, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=116, fraction=0.0072683295540372, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 115

[sequence] => 1

[column] => 1

[fraction] => 0.50439304610732

xNotePos:resolve() xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=114, fraction=0.50439304610732, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=115, fraction=0.50439304610732, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=116, fraction=0.50439304610732, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 116

[sequence] => 1

[column] => 1

[fraction] => 0.0015177626606118

xNotePos:resolve() xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=115, fraction=0.0015177626606118, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.0015177626606118, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=117, fraction=0.0015177626606118, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 116

[sequence] => 1

[column] => 1

[fraction] => 0.49864247921391

xNotePos:resolve() xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=115, fraction=0.49864247921391, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.49864247921391, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=117, fraction=0.49864247921391, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 116

[sequence] => 1

[column] => 1

[fraction] => 0.91291307634165

xNotePos:resolve() xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=115, fraction=0.91291307634165, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=116, fraction=0.91291307634165, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=117, fraction=0.91291307634165, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 117

[sequence] => 1

[column] => 1

[fraction] => 0.41003779289494

xNotePos:resolve() xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=116, fraction=0.41003779289494, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=117, fraction=0.41003779289494, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=118, fraction=0.41003779289494, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 117

[sequence] => 1

[column] => 1

[fraction] => 0.82430839002268

xNotePos:resolve() xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=116, fraction=0.82430839002268, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=117, fraction=0.82430839002268, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=118, fraction=0.82430839002268, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 118

[sequence] => 1

[column] => 1

[fraction] => 0.32143310657597

xNotePos:resolve() xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=117, fraction=0.32143310657597, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=118, fraction=0.32143310657597, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=119, fraction=0.32143310657597, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 118

[sequence] => 1

[column] => 1

[fraction] => 0.81855782312925

xNotePos:resolve() xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=117, fraction=0.81855782312925, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=118, fraction=0.81855782312925, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=119, fraction=0.81855782312925, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 119

[sequence] => 1

[column] => 1

[fraction] => 0.23282842025699

xNotePos:resolve() xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=118, fraction=0.23282842025699, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=119, fraction=0.23282842025699, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=120, fraction=0.23282842025699, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 119

[sequence] => 1

[column] => 1

[fraction] => 0.72995313681028

xNotePos:resolve() xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=118, fraction=0.72995313681028, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=119, fraction=0.72995313681028, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=120, fraction=0.72995313681028, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 120

[sequence] => 1

[column] => 1

[fraction] => 0.22707785336357

xNotePos:resolve() xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=119, fraction=0.22707785336357, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=120, fraction=0.22707785336357, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=121, fraction=0.22707785336357, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 120

[sequence] => 1

[column] => 1

[fraction] => 0.8070566893424

xNotePos:resolve() xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=119, fraction=0.8070566893424, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=120, fraction=0.8070566893424, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=121, fraction=0.8070566893424, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 121

[sequence] => 1

[column] => 1

[fraction] => 0.22132728647014

xNotePos:resolve() xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=120, fraction=0.22132728647014, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=121, fraction=0.22132728647014, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=122, fraction=0.22132728647014, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 121

[sequence] => 1

[column] => 1

[fraction] => 0.71845200302343

xNotePos:resolve() xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=120, fraction=0.71845200302343, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=121, fraction=0.71845200302343, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=122, fraction=0.71845200302343, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 122

[sequence] => 1

[column] => 1

[fraction] => 0.13272260015117

xNotePos:resolve() xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=121, fraction=0.13272260015117, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=122, fraction=0.13272260015117, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=123, fraction=0.13272260015117, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 122

[sequence] => 1

[column] => 1

[fraction] => 0.62984731670446

xNotePos:resolve() xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=121, fraction=0.62984731670446, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=122, fraction=0.62984731670446, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=123, fraction=0.62984731670446, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 123

[sequence] => 1

[column] => 1

[fraction] => 0.12697203325774

xNotePos:resolve() xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=122, fraction=0.12697203325774, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=123, fraction=0.12697203325774, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=124, fraction=0.12697203325774, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 123

[sequence] => 1

[column] => 1

[fraction] => 0.62409674981103

xNotePos:resolve() xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=122, fraction=0.62409674981103, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=123, fraction=0.62409674981103, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=124, fraction=0.62409674981103, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 124

[sequence] => 1

[column] => 1

[fraction] => 0.03836734693877

xNotePos:resolve() xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=123, fraction=0.03836734693877, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=124, fraction=0.03836734693877, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=125, fraction=0.03836734693877, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 124

[sequence] => 1

[column] => 1

[fraction] => 0.53549206349206

xNotePos:resolve() xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=123, fraction=0.53549206349206, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=124, fraction=0.53549206349206, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=125, fraction=0.53549206349206, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 125

[sequence] => 1

[column] => 1

[fraction] => 0.032616780045345

xNotePos:resolve() xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=124, fraction=0.032616780045345, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.032616780045345, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=126, fraction=0.032616780045345, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 125

[sequence] => 1

[column] => 1

[fraction] => 0.52974149659863

xNotePos:resolve() xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=124, fraction=0.52974149659863, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.52974149659863, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=126, fraction=0.52974149659863, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 125

[sequence] => 1

[column] => 1

[fraction] => 0.94401209372637

xNotePos:resolve() xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=124, fraction=0.94401209372637, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=125, fraction=0.94401209372637, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=126, fraction=0.94401209372637, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 126

[sequence] => 1

[column] => 1

[fraction] => 0.44113681027967

xNotePos:resolve() xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=125, fraction=0.44113681027967, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=126, fraction=0.44113681027967, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=127, fraction=0.44113681027967, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 126

[sequence] => 1

[column] => 1

[fraction] => 0.85540740740741

xNotePos:resolve() xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=125, fraction=0.85540740740741, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=126, fraction=0.85540740740741, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=127, fraction=0.85540740740741, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 127

[sequence] => 1

[column] => 1

[fraction] => 0.26967800453515

xNotePos:resolve() xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=126, fraction=0.26967800453515, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=127, fraction=0.26967800453515, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=128, fraction=0.26967800453515, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 127

[sequence] => 1

[column] => 1

[fraction] => 0.68394860166289

xNotePos:resolve() xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=126, fraction=0.68394860166289, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=127, fraction=0.68394860166289, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=128, fraction=0.68394860166289, column=1} function: 172AD488

SliceMate:select(user_selected) false

xNoteCapture.nearest(notepos,compare_fn) nil function: 172AD488

xNotePos:__init - args #1

xNotePos:__init - args #2

[track] => 2

[line] => 128

[sequence] => 1

[column] => 1

[fraction] => 0.18107331821618

xNotePos:resolve() xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1}

xNoteCapture.previous(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=127, fraction=0.18107331821618, column=1} function: 172AD488

xNoteCapture.next(compare_fn,notepos,end_seq_idx) function: 172AD488 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1} nil

xNotePos:__init - args #1 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1}

xNotePos:__init - args #2 xNotePos{sequence=1, track=2, line=128, fraction=0.18107331821618, column=1}

xNoteCapture.search_track(notepos,compare_fn) xNotePos{sequence=1, track=2, line=129, fraction=0.18107331821618, column=1} function: 172AD488

*** std::logic_error: ā€˜invalid line range: 129, 128.ā€™

*** stack traceback:

*** [C]: in function ā€˜lines_in_rangeā€™

*** .\source/xLib/classes/xNoteCapture.lua:148: in function ā€˜search_trackā€™

*** .\source/xLib/classes/xNoteCapture.lua:96: in function <.></.>

*** (tail call): ?

*** .\source/SliceMate.lua:254: in function ā€˜selectā€™

*** .\source/SliceMate.lua:494: in function ā€˜on_idleā€™

*** .\source/SliceMate.lua:126: in function <.></.>

So the fact that there is a mention of 129 in the invalid range bit isnā€™t suspect on a pattern length of 128?

Thanks!

Iā€™ve found that the error is not particular to your PC - it happened here as well. But extremely rarely, as Iā€™d been using the tool for hours.

So very nice with that debug logā€¦

Btw: also found that fine-tuning is not carried over to newly sliced samples. I was matching a 126 bpmrender to a 128 bpm song, when I realized it.

This is easy to fix, will be part of the next update.

Thereā€™s a new version up. Think I nailed the bug?

Download: http://renoise.com/tools/slicemate

Thereā€™s a new version up. Think I nailed the bug?

Download: http://renoise.com/tools/slicemate

unfortunately still doesnā€™t work here, it doesnā€™t find any sample/instrument. When having the cursor on a note event it does see the sample name, but it shows the exclamation icon; ā€œCanā€™t determine position - please enable auto-seek on the sampleā€, while autoseek is on!

If I move the cursor away from the note event Iā€™m getting 'Instrument N/A".

Have to run now, so canā€™t test further, maybe tonight? (Btw Iā€™m on windows 10, 32 bit 3.1 Renoise, 64 bit version same issues).

At least the error you first reported is gone, no?

From what you write, it sounds almost like the tool is picking up wrong instrument. But before I head off on a wild goose chase, maybe itā€™s better to let some more people test the tool.

As an encouragement, I can only say that I did a lot of slicing yesterday night - and it was exactly as easy as Iā€™d hoped it would be :slight_smile:

Edit: and while using it, it occurred to me how useful it would be to support quantize across an arbitrary number of lines.

This is particularly important, since slicing up a playing sample will make Renoise stop the sample playback. And while I canā€™t magically fix that the sample keeps playing, at least the tool could be a bit smarter and place the slice point / note slightly into the future (a.k.a. forward quantize).

The result would be slightly more useful when using the tool in realtime (with the cursor following playback position): you only get a brief moment of silence, from the moment you create the slice, until playback reaches the quantized note that was just inserted.

I have no idea if anyone else if planning to use this tool to slice up samples in realtime, while the song is playing. But I know that I do, so this just made it to the top of my ā€œplanned featuresā€ list B)

Nice tool!

@Danoise: On another topic:

This already has some of the math fundamentals needed for a simple note aligner tool (youā€™re already converting samples<->lines, right?). Now that you have your head wrapped around it, maybe it would be simple for you to make a note aligner tool? Just a simple ā€œalign the end of the above note (sample) to the current cursor positionā€. Alignmate.

EDIT: And another featureā€¦ ā€œAlign note under cursor to end of previous sampleā€. It makes theoretical sense in this framework too, like if you moved a perfect slice and later want to move it back.

At least the error you first reported is gone, no?

yep, looks like it.

Iā€™ve tried disabling all other scripts, and a/bā€™ing different settings in the preferences to no avail, weird that it only sees the sample when the pattern editor cursor is on top of the note event.

There is a change in value of the Pos parameter in the tool that seems dependent on the octave setting, on the highest octave setting of 8 I get alternating results (for example 37762, 48551, 64735 etc), on octave setting of 4; 4046, 3709, 2698 etc.

Iā€™m not sure this value is supposed to run, change while a pattern is playing equivalent of sample position, but I get value updates only when a note-event is triggered.

@djeroek: let me shoot a small video when I get home tonight. Hopefully it will be more clear how things are supposed to work :slight_smile:

@joule: AlignMate,absolutely -if thereā€™s some potential for code reusability, thatā€™s great. Feel free to dig in.

@Danoise: On another topic:
This already has some of the math fundamentals needed for a simple note aligner tool (youā€™re already converting samples<->lines, right?). Now that you have your head wrapped around it, maybe it would be simple for you to make a note aligner tool? Just a simple ā€œalign the end of the above note (sample) to the current cursor positionā€. Alignmate

Just to clarify: youā€™re looking for a way to shift a note so that it plays exactly up to a given position in the song.

Iā€™m imagining reversed cymbals, vocal recordings with breathing and ā€œEDM risersā€ here - this is the general idea?

Slightly related, I found, while using the tool, that it would be nice if I could move a given slice after it had been created. And obviously, not just the slice itself (which is simple), but also any associated notes. But that whole idea is a bit ā€œdirtyā€, because you might have used that sample in a manner of ways. Not just cleanly slicing up a source sound, but getting creative with it.

So I might skip that one, and instead focus on things that are relatively straightforward. This involves forward quantize (as previously mentioned), and that the tool actually monitors sample properties and pattern content in realtime. Because right now, when youā€™re in the instrument editor and not actively playing the song, you donā€™t get visual feedback about the playback position when you adjust properties such as sample transpose, fine-tune etc. - you have to pop back in the pattern editor and ā€œnudgeā€ the cursor position. Not intuitive at all.

Same goes for editing the pattern - e.g. via shift+F1/F2 (transpose) - would be great if the values were updated here as well.

Having the same issue. Just canā€™t get it to work. I enter a note at step 00, Slice Mate is connected to the instrument slot, I scroll down 2 steps and try to insert slive and get ā€œCould not find a sample to slice, perhaps the track doesnā€™t contain any notes.ā€

I have installed the latest version by dragging onto the Renoise window and I get the following error ā€¦

ā€˜/home/miko/.renoise/V3.1.0/Scripts/Tools/com.renoise.SliceMate.xrnx/ā€™ failed to execute in one of its menu entry functions.

Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistanceā€¦

std::runtime_error: ā€˜ViewBuilder: bitmap ā€˜./icons/warning.bmpā€™ does not exist or failed to loadā€™

stack traceback:

[C]: in function ā€˜bitmapā€™

./source/SliceMate_UI.lua:249: in function ā€˜buildā€™

./source/SliceMate.lua:144: in function <./source/SliceMate.lua:16>

[C]: in function ā€˜SliceMateā€™

main.lua:64: in function ā€˜showā€™

main.lua:82: in function main.lua:81

I also donā€™t get what the tool is supposed to do.

I get ā€œCanā€™t insert slice where notes are present -
please set the cursor somewhere elseā€ when slicing being on the note,

and ā€œCould not find a sample to slice,
perhaps the track doesnā€™t contain any notes?ā€ when slicing on the tail.

I was just about to release another new version when I discovered that Iā€™m suddenly getting the same behaviour as some of you.

Finally, the error message !!

EDIT: GOT IT. New version coming upā€¦

@Danoise,

  1. Yes, thatā€™s what I meant about aligning.

  2. Itā€™s an interesting topic, letting different objects react to one another. Like you explain, it becomes a bit complicated with slices in this case (e g would only work on ā€œperfect slice sequencesā€. And should it react to every occurance everywhere?). Iā€™m refactoring my f(tracks) project classes a bit with this kind of structures in mind, so Iā€™ve thought a bit about it (e g, let an automation curve generate note data, which in turn ā€œgeneratesā€ note data in another trackā€¦ kind of modular/flexible). Sooner or later the usability of it all boils down to the need for 1) wanting to store custom data per object, 2) providing custom visual cues to the user in the Renoise GUI via the API. If these were available we could make awesome custom behaviorsā€¦ In your case, showing the user that this/that particular block of notes is tied/synced to sample slices.