New Tool (3.1): PhraseMate

Alright! Here’s my very rough first pass at this.

I’ve haphazardly merged the functionality of phrase phreak into phrasemate, and rearranged some things.

  • Phrase phreak stuff working in 3.1 . selection to phrase should copy selection into a new phrase.
  • Moved the menu items to right click on the pattern editor, first level. quicker this way!
  • I threw in a “Bounce selection to phrase” option, that copies the current selection to a new phrase on the instrument, clears it from the sequencer and inserts a note with the newly recorded phrase assigned to it, and sets it to the current phrase. Let me know how easy this is to break :wink:
  • Didn’t get keymapped phrases working yet, but will see what I can do tomorrow!

I must sincerely apologize for my crap hacky code, this is the first messing around with renoise scripting I’ve done! ;w; Let me know if this works for you!

Great! :yeah:

I notice it is possible to bounce a selection spanning multiple tracks containing different instruments, but only the note events are copied inside the phrase, not the actual samples! This is with either bounce or copy selection.

Also, instead of having the magick work on the currently selected instrument, could there be an option that copy/bounces to new instrument? So it’ll copy the samples from the instruments that are inside the pattern selection to a new instrument.

Great! :yeah:

I notice it is possible to bounce a selection spanning multiple tracks containing different instruments, but only the note events are copied inside the phrase, not the actual samples! This is with either bounce or copy selection.

Also, instead of having the magick work on the currently selected instrument, could there be an option that copy/bounces to new instrument? So it’ll copy the samples from the instruments that are inside the pattern selection to a new instrument.

Yeah, it’s currently only written with bouncing one instrument at a time… Merging multiple instruments onto one new one would be something of a tall order, considering all that instruments can be now in Renoise 3.1! Not impossible, but would be fraught with corner cases. What could be done more easily however is allowing copying of multiple different instruments’ notes into their respective phrases (i.e. all notes from Inst Awithin the selection go to a new phrase in Inst A). In terms of bouncing in such a situation, I’d imagine that you’d create a phrase per instrument per track. So if Track 1 had notes from 2 different instruments (A and B ), it’d create a phrase for each against each instrument, create two note columns in track 1 and apply Inst A’s phrase in the first column, Inst B’s in the second. (I think this is possible with the new per note column effects columns?). If this hypothetical selection spanned multiple tracks, and there were notes for Inst A and B in other tracks, a phrase would be created with those notes against the appropriate instrument and place in those tracks for each track the instruments appears on. In my eyes, this would be the best way to handle tricky selections whilst still ensuring that all notes are routed through the right channels.

So in the case of

Track One: Inst A Notes, Inst B Notes
Track Two: Inst A Notes
Track Three: Inst B Notes, Inst A Notes, Inst C Notes

Bouncing the lot would give you

Track One Inst A Phrase 1 (Note Column 1), Inst B Phrase 1 (Note Column 2)
Track Two: Inst A Phrase 2

Track Three: Inst B Phrase 2(Note Column 1), Inst A Phrase 3(Note Column 2), Inst C Phrase 1 (Note Column 3)

Starting to sound a bit tricky :wacko:, but worth doing since such a facility could definitely improve folk’s workflows. I’ll have a look at it tonight after work if I have time! :smiley:

Massive bump - most of the tools which were previously only available for 3.0 have now been updated for 3.1

Also, this tool now finally has it’s own tools page+ github

Enjoy :slight_smile:

is it weird that i’m in argentina right now and i just saw your mate? this is strangely coincidental. Shall I send you a bombilla? :smiley:

New version out - 1.01
http://www.renoise.com/tools/phrasemate

The Zxx mode is now more intuitive. The “old” mode tried to auto-capture as you were writing notes, which I admit was rather strange.

Now, you can capture the phrase whenever you want (it’s got its own shortcut).

FEATURE keyboard shortcut: Capture Phrase from Pattern
CHANGE Zxx mode is now using the selected phrase, always

Prompted by idem345 :wink:
https://forum.renoise.com/t/why-cant-renoise-write-zxx-automatically-into-the-fx-column/45711

It finds my midi controller right now. Great!\

Thank you

  • wrong post - i though that ive installed noodletrap because when ive installed new phrasemate noodletrap finally found my midi input (it doesnt right now…). But it doesnt find it now even if i reinstalate phrasemate or noodletrap. I dont get it :slight_smile:

PhraseMate has just received the biggest update so far. Thanks to djeroek for some early feedback/testing!
Also, I released a sneak preview of this tool two days ago. Seems a few people picked it up - they would be strongly encouraged to update again, because v1.51 is FASTER BETTER STRONGER

Download: http://www.renoise.com/tools/phrasemate

What’s new:

  • “Input mode” - ability to read from pattern and convert into phrase. Like PhrasePhreak, but a lot more powerful (see picture)
  • Reorganized GUI - featuring a tab for each of the various operating modes
  • Proper documentation,finally.

An example of what is possible with the new “input” mode:

  1. Source ‘Capture All Instr.’.Our sourcepattern-track (containing three different instruments) is automatically collected as phrases -
  2. Target ‘New Instrument(s)’. Because we’ve configured the tool to create new instruments on the fly, three new instruments act as destination for those phrases
  3. Replace notes with phrase.By enabling this option we tell the tool that it should, as a final step, replace patterns with the phrases we just collected

There are many possible configurations. Copy from one instrument into another, use the selected instrument, capture below the cursor, etc. etc.

Hopefully I’ve caught all the various possibilities!! At least, the tool should provide you with some feedback when you are trying to do things it’s not prepared for.

But if something does seem to break, please report. Thanks

This is awesome!!! It’s looking like it gives me the_exact_ way I want to work with phrases… make a bunch of patterns, extract them to phrases, and then use those phrases to make the arrangement. The multi-instrument stuff is freaking brilliant.

There is one thing that’s throwing me off though. I think the realtime behavior is happening regardless of whether I have it set to on or off…

I have a track with two patterns, and three instruments playing in a single column. I extracted phrases with:

  • playback = program
  • track in song
  • source - capture all instruments
  • target - same instrument
  • include empty phrases = ON
  • include duplicate phrases = ON
  • replace notes with phrase = ON
  • create keymap = OFF

And it extracts the phrases as I’d expect. So my second (and last) pattern now has three columns, each playing phrase Z02. If I change one of them to be Z01, then it automatically inserts Z02 in the track fx column. I can’t delete it… it just keeps getting re-inserted.

I have the realtime tab’s “monitor changes to pattern” set to OFF. It seems like it’s doing the realtime behavior regardless of what the setting is.

I think the realtime behavior is happening regardless of whether I have it set to on or off…

Woops, missed that detail. I tend to toggle this mode on and off as needed. It should definitely not just stay turned on!

I will release a small update later tonight as I caught some additional bugs:

FIXME Reset autocaptured instrument when starting to collect
FIXME Don’t allocate phrase when > 126 
FIXME Don’t reference viewbuilder (keyboard shortcut when UI not initialized)

It would be cool for realtime toggle to get a keyboard shortcut too…

New version (v1.52) is up, fixing all reported issues (?)

New in this version is sliced processing. Instead of it locking down the entire UI, progress is shown in the status bar.

Using the lates version;

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.PhraseMate.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…

.\source/ProcessSlicer.lua:130: std::logic_error: ‘invalid phrases index ‘9’. valid values are (1 to 8).’

stack traceback:

[C]: in function ‘error’

.\source/ProcessSlicer.lua:130: in function <.\source/ProcessSlicer.lua:115>

selection in matrix

capture all instruments

same instrument

replace notes with phrases

edit;

Got this one in another track during processing;

‘C:\Users\pluge\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.PhraseMate.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…

.\source/ProcessSlicer.lua:130: main.lua:1059: Expected instr_idx to be a number

stack traceback:

[C]: in function ‘error’

.\source/ProcessSlicer.lua:130: in function <.\source/ProcessSlicer.lua:115>

Selection in matrix

capture all instruments

Same instrument

include empty phrases

include duplicate phrases

replace notes with phrase

Indeed, I can make it bug out as well - but only when I disable both include empty + duplicates

Does it work when both of these are enabled?

check the edited post above, there both are enabled giving the ‘Expected instr_idx to be a number’ error. It’s from another song as the initial report though, so not sure having both enabled means something in relation.

Third follow-up, squashing bugs as they appear.

FIXME Missing updates of phrase info UI when not in realtime mode
FIXME Error when performing “capture_all” with empty + duplicate phrases
FEATURE Customizable process slicer : disable, once per pattern or pattern-track

I also made the process slicing optional. You can now decide how often generate undo points :slight_smile:

I don’t understand what the slice processing option means… but in any case, the update seems to solve the problem I brought up earlier :slight_smile:

I’m really looking forward to using this from now on. Thank you so much!

I don’t understand what the slice processing option means…

When running the tool collecting everything on a finished song, it can take a while to finish…you’d be clicking away a bunch of ‘script is taking to long’ notices in the process. The slice processing feature gets rid of these notices, I think at the expense of taking somewhat longer(?), but it is optional now…so choose your destiny :slight_smile:

When running the tool collecting everything on a finished song, it can take a while to finish…you’d be clicking away a bunch of ‘script is taking to long’ notices in the process. The slice processing feature gets rid of these notices, I think at the expense of taking somewhat longer(?), but it is optional now…so choose your destiny :slight_smile:

Okay. So what do the different options mean? Does “Disabled” mean that I won’t have to click the notices away (but it may take a bit longer)?

@danoise the only remaining suggestion I have for you is how it handles duplicate phrases when you disable “include duplicate phrases”. Currently, if you have duplicate patterns then it will insert a 0Zxx command in the first pattern, but not in the second one. And in fact this comes up as a bug if you have patterns ABBA – it won’t insert a 0Zxx in the second B, or in the second A. So when you play it back, you effectively get ABBB.

Perhaps I’m misunderstanding what the “include duplicate phrases” option is intended to do. But it seems useful to not create duplicates if you don’t need to… so I think PhraseMate needs to insert a 0Zxx for the correct phrase when it detects a duplicate.

I hope that makes sense…

So what do the different options mean? Does “Disabled” mean that I won’t have to click the notices away (but it may take a bit longer)?

Try it out :slight_smile: , disabled means it won’t slice process, so you’ll get the ‘taking to long’ notices running the tool on large content sweeps, pattern will process one pattern at a time (less undo’s), patt-track will process every matrix block independently (more undo’s).

Perhaps I’m misunderstanding what the “include duplicate phrases” option is intended to do

Let’s say you’re creating phrased instruments from already finished songs, collecting every pattern-track inside. Having duplicates (or empty pattern-tracks) included can save having to manually ctrl+d duplicate a phrase, if you’d quickly like to create variations. It is more an option geared towards content creation I think.