New Tool (3.1): SliceMate

OK, v0.2 is available - without the “Slice Forward/Backward” feature, but otherwise good to go.

Here is what’s new:

## 0.2
- Add support for slicing instrument phrases
- Add emulated pattern navigation while dialog is focused
- Remove "show GUI on auto-start" option (always do this)
- Update cLib/xLib libraries

Download the new release from the tools page.

I’ve tested phrase slicing against phrases with all sort of LPBs, and it should be able to properly detect/translate all possible combinations.

For example, slicing a phrase that goes LPB9 in a song which is running @ LPB4. In this case, the tool calculates the right amount of delay and applies it to the generated note.

Or breakcore tempo (32LPB) against a regular LPB4 phrase - in this case, the tool will only be able to insert anything on every 8th line. But even then, it’s nice enough to instruct you in how to move the cursor to a nearby, compatible line.

Also, since looping in phrases is a relatively straight-forward affair, the tool should fully support this feature.

Hint: if you’re chopping up phrases, consider enabling auto-seek on the samples used in the phrase. By doing this, samples will start playing from their relative positions, the very moment the phrase is triggered. Otherwise, you might hear small gaps, etc.

thank you for this great tool danoise!!

Did a bit more work on the tool when I just found an error in the “split phrase” implementation -

when positioning the cursor on the last line of a phrase, you might see this:

8020 phrase-sxx-error.png

Will obviously have to be fixed. So expect another update soon smile.png

Another lil’ update, to fix the issue mentioned above.

https://renoise.com/tools/slicemate

Also squeezed in a couple of nice additions: especially that the tool no longer tracks things in the pattern while the GUI is hidden (the option is called “Suspend while hidden”).

This doesn’t mean that slicing per keyboard no longer works - just that the tool doesn’t have any (noticable) impact on the CPU when you’re not using it. Before, itcouldslow down things, especially with large songs spanning many patterns.

## 0.21
- Fix issue when placing cursor at last line of phrase
- Preserve effect-column indices for Sxx, Zxx commands
- Don't overwrite existing effect-columns (allocate new cols if needed)
- Option to suspend "selection" updates while GUI is hidden (less CPU usage)
- Add link to github documentation [www]
- Add MIDI mappings for navigating to prev/next line

I use this tool a lot since producing some raw material from vcv, usually to cut a one sample instrument, its really doing the job! I’ve not tried the phrase uses for now, but I sense an interesting composition opportunity there…

For now I would have a suggestion after trying something new with it:

I imported 6 longs equal duration samples from a session recording to build a layered timbres bass instrument.

Unfortunatly, I learned that it’s currently not possible to slice multi-sample instruments.

Was it a feature you thought to implement Danoise ? It would be a nice addition as a checkbox option !

Would it be a useful feature to some other users or am I again trying to make weird uses of Renoise?

Is it easy to code?

I learned that it’s currently not possible to slice multi-sample instruments.

True, and this tool can’t easily work around that limitation.

Actually, it relies on slices and the functionality they offer so it would be very complicated to do.

But what if it was possibly to “copy” slices between instruments?

Then you could slice up a “master” instrument and apply the offsets to the other ones…perhaps this could be of use?

True, and this tool can’t easily work around that limitation.

Actually, it relies on slices and the functionality they offer so it would be very complicated to do.

But what if it was possibly to “copy” slices between instruments?

Then you could slice up a “master” instrument and apply the offsets to the other ones…perhaps this could be of use?

I just found the strobotone’s slice extension tools which allow copying/transfer of slices markers. I’ll just do that master sliced instruments with slicemate and paste to other instruments as you suggest… each one having a sample of the layered bass.

https://forum.renoise.com/t/new-tool-3-1-slice-extension/46595

My choice of putting all the bass samples in a single instrument was for a clean organization purpose… I loved the fact that it’s possible to assign each sample to a single track via the Fx Chain output, very neat way of staying organized…

Thanks Danoise!

I just found the strobotone’s slice extension tools

Ha, Yes! Some part of me vaguely remembered that this had been done, but I couldn’t recall when/what it was.

Cool, strike that off the list then :slight_smile:

I’ve started to work on beat-sync support to SliceMate

While I haven’t forgotten about the “slice forward/backward” feature (see above), I decided to spend some time on this instead: I see it a more fundamental feature. Especially when working with sliced up breakbeats, being forced to stay in the original tempo while slicing isn’t really optimal.

The best thing about beatsync support is that you won’t need to “configure” anything - it should just work.

Technically, it all depends on a function which is able to compute the pitch/note that a beat-synced sample is ‘actually’ playing at.

This allows the tool to compute the offset position, which is a requirement for slicing.

When you then perform a slice, it then looks at the beat-synced number of lines of the source sample, and divides that among the source sample and the new sample (slice). For example, positioning the cursor at the 8th line of a 64 line sample will result in 8 and 56 lines, respectively.

Similarly, when you remove a beat-synced slice using the tool, it will combine the lines back into the remaining sample.

Ideally this translates into slices that perfectly preserve the speed at all times.

[…]

Maybe hi-jacking… Is this also approaching the possibility of a simple note-aligner tool? It sounds like your functions would make it quite simple for you to make such a thing :slight_smile: Not sure if what you’re working on is already doubling that feature, or if it’s a totally separate thing.

Ideas:

Click to view contents

In its basic form I imagine a manual one-shot shortcut, making the note under the cursor move so that its sample ends ‘exactly’ where the next note starts. (delay value being rounded so that no silence will appear).

If it also understands slices (Sxx is being used), it would be very easy to tweak the ‘end point’ with a slice marker.

(Respecting groove, group delays or tempo effects isn’t that important, since it probably makes the logic much more complex.)

Maybe hi-jacking… Is this also approaching the possibility of a simple note-aligner tool? It sounds like your functions would make it quite simple for you to make such a thing :slight_smile:

Yes, but I would rather see this appear as a separate tool. Otherwise it would be a very useful feature “buried” somewhere inside this tool.

Also, not trying to shoehorn this into SliceMate makes it a bit easier to think/plan freely.

Click to view contents

You’re probably right about the slice marker being the sensible solution here - e.g. for the classic reverse-zoom effect with a trail after the peak.

But just ONE marker then, instead of multiple ones? Or perhaps, the FIRST marker.

I’ve started to work on beat-sync support

Done - check it out!
http://renoise.com/tools/slicemate

Edit: temporarily replaced with previous version while working out some bug

SliceMate 0.25 preview

8148 slicemate-0.25-screenshot.png

I think I’ve fixed that issue (related to beat-syncing), but instead of just fixing and then releasing I decided to implement Forward, Backward Slicing too.
Not only that, I added an interesting feature called “Insert” too - which works like this (according to the updated docs):

click these buttons to insert existing slices into the pattern. Unlike with the other buttons, inserting will not create new slices. Note that the slices are automatically inserted with the actual playback duration - in theory, positioning the cursor at the trigger note and hitting “insert” repeatedly should create a seamless string of notes, recreating the full original sample.

I write “in theory”, because in practice there are numerous pitfalls to consider. Such as, the difficulty of fitting multiple notes on a single line.
For now, I’ve simply gone with the basic approach and, as long as you don’t screw too much around with the project tempo, things are fine.

And it’s a hugely useful feature - once you are deep in slicing mode, you can use this feature to quickly “extend” the slice you’re working on.

Full changelog:

## 0.251
- Feature: Forward/backward slicing, using quantize
- Feature: Forward/backward fill, limited by scope (song, pattern, etc.)
- Feature: Slice insert (insert existing slices into pattern)
- Feature: Add “Step size” as quantize amount
- Cleaned up, rearranged GUI a bit
- Fixed: beat-sync issue (related to xLib)
- Fixed: re-use effect columns if values are identical (skip writing)
- Fixed: issue with invalid pos (first line in song)

Edit: attachment is temporarily offline. Come back a bit later :slight_smile:

1 Like

Here’s a slight update, from 0.25 to 0.251 (see attachment in previous post)

I managed to find (and fix) one issue relating to slicing from the very first line in a song,

  • and I know for sure that another one, somehow related to phrases, is lurking in there, somewhere :ph34r:

Also took the time to add Edit Step as a new quantization target,

and to fix a typo that caused too many phrase effect-commands (Zxx/Sxx) to be inserted - or rather, not to be recycled.

Oh, and I added MIDI and key mappings for all the new buttons and stuff :slight_smile:

This is brilliant, with these new features (specifically Insert) you can align arbitrary places in different samples together… A simple example being transient align :panic:

I downloaded your update thinking it would be fixed, but if I manually insert a note corresponding to the second slice in the first row of the song, first pattern, and press “(Up) Insert”, this happens:

'/home/myname/.renoise/V3.1.1/Scripts/Tools/com.renoise.SliceMate.xrnx/main.lua' failed in one of its notifiers.

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

./source/xLib/classes/xSongPos.lua:309: attempt to perform arithmetic on field 'line' (a nil value)
stack traceback:
  ./source/xLib/classes/xSongPos.lua:309: in function 'decrease_by_lines'
  ./source/SliceMate.lua:1263: in function 'get_slice_line_spans'
  ./source/SliceMate.lua:876: in function 'insert_backward_slice'
  ./source/SliceMate_UI.lua:620: in function <./source/SliceMate_UI.lua:619>

I whish the tool had an option to insert a pattern before the actual pattern (if the actual pattern is the first one) with its length set to the value needed to put the trigger note. And if this pattern exists but the numlines were not enough the tool would add more… Just dreaming tho, this could be a perfect sound design workflow

Thanks Danoise, this tool is fantastic

Thanks for the bug report (and suggestions), will look into it.

This is brilliant, with these new features (specifically Insert) you can align arbitrary places in different places together… A simple example being transient align :panic:

Indeed! Maybe actually a good idea to use the term_align_ somewherein the description :slight_smile:

Hi, I just noticed this tool has a Auto-select instrument. I had no idea why Renoise wouldn’t let me switch instruments while I was playing the song and had to disable all tools to find that this was the one doing it. Perhaps default auto-select instrument to false? Thanks.

Hello

First time trying this tool, but I think maybe I’m missing something conceptually.:smiley: Is there a reason why the first actual slice is offset from the beginning of the sample?

image

image

This would mean that that this button for example

image

would have no effect for the ‘first’ slice (and all its inherited benefits), as it is essentially it is just triggering the whole sample? Or maybe I’ve been using slices wrong all this time!? (I always make sample 0 the first slice which would = C#1 if C1 was the root note)

This tool is awesome - saved me a bunch of time when chopping up acapella vocals. I’d spent hours manually slicing previously… Such a shame I hadn’t looked for this earlier!

2 Likes

cool tool, but most of the slices are off a bit. i guess it’s because i’ve set different tempo for each note/slice in the pattern