I will put out a new version over the weekend to fix this
Ehe, yes, caught in a backlog of sorts. But it’s not forgotten.
I will put out a new version over the weekend to fix this
Ehe, yes, caught in a backlog of sorts. But it’s not forgotten.
khmmm 
Bugfix release v1.72. Get it from the tool page
FIXME [Read] Fixed error when using custom source/target instrument
FIXME [Read] When using custom source + same instrument (target), it picked the wrong instrument as target (the next instrument in the list)
FIXME [Read] “Selection in pattern” : when cursor is parked in a different track than the one containing the selection, that track was used as the source
FIXME [Read] Using context menu to collect content accidentally got broken
Looking good! Collecting phrases from the pattern editor still seems to have trouble… I tried it once with using the window, with “Replace notes with Zxx” enabled. It collected the phrases, but cleared the pattern editor – no Zxx command. Then when I tried using the “create phrase from selection” context menu item, it collects the phrase but doesn’t change the pattern at all.
Collecting phrases from the pattern matrix and replacing them with Zxx works great though!
Renoise 3.1
AV Studio Linux
No function works,
The “create phrase from selection” spits this out for example:
/home/akiz/.renoise/V3.1.0/Scripts/Tools/com.renoise.PhraseMate.xrnx/’ failed to execute in one of its menu entry functions.
Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistance…
./source/PhraseMate.lua:666: attempt to index local ‘self’ (a nil value)
stack traceback:
./source/PhraseMate.lua:666: in function ‘fn’
./source/cLib/classes/cLib.lua:41: in function ‘invoke_task’
main.lua:134: in function main.lua:133
We’re squashing quite a few bugs here!!
v1.73 fixes the following things
FIXME Mappings, menu items not working when app not yet initialized (dialog shown)
FIXME Missing “finalize action” for some scopes (replace with Zxx)
FIXME A few missing guards (GUI-less operation)
I might be being really thick here - but I’d simply love to render a sliced break to a phrase to keep the timing intact at my chosen tempo - then be able to copy the phrase into the main pattern window…
Please could someone walk me through the steps? Or, I might just need to man up and need more coffee / sleep.
Running Renoise 3.1 - tool installed via dragging into open Renoise session.
Thanks!
Once you have rendered the slice to a phrase (by right clicking a slice marker), it should be as a simple as PhraseMate > Write > Write to track
(or use the available keyboard shortcuts)
Found a bug I think - Setting Loop in Batch-apply or single mode seems to have no effect
Thanks
Hey danoise,
currently trying to wrap my brain again around that scaling feature for phrases: I would like to actually see the “re-scaled” notes directly in the pattern. So I put a single c-4 into the phrase to be able to use the scales. But now I would like to “render” that note patches directly into the front pattern (so I later can deactivate the scale and it still sounds the same)… Is that possible with this tool, and if not, is there already a way to do that? So destructive renoise scaling to pattern-track. Thanks!
EDIT: Could I use “xScale.restrict_to_scale(note_value,scale_idx_or_name,scale_key)” from xLib?
EDIT: Could I use “xScale.restrict_to_scale(note_value,scale_idx_or_name,scale_key)” from xLib?
Yes, that would be it. It’s a planned feature cough -I’m quite busy these days, wouldn’t have time to do it myself.
But all the fundamentals should be in place…and if you’re planning to go ahead with this, I would be happy to help…
Yes, that would be it. It’s a planned feature cough -I’m quite busy these days, wouldn’t have time to do it myself.
But all the fundamentals should be in place…and if you’re planning to go ahead with this, I would be happy to help…
Thanks, added this now in a lame way into tuned shortcuts, line 1025++. Currently does not render any phrase notes into the front track, so only works for fake “C-4” phrases.
Looking forward seeing this within this tool ![]()
EDIT: Also something fishy is going on, the result after rendering phrase + disabling the phase still does not seem to be identical, e.g. an instrument (with fake c-4 phrase) playing a C#6, applied with scale key G and scale “pentatonic major” will result in a C-6, but should be a B-5.
Cool.
I think I’ve only tested against un-transposed notes so far
.
I’ll add a unit test for xScale which covers this scenario.
Wow thanks!
hey danoise, any chance to see a xlib fix soon? Or later? Sorry, if getting on nerves 
hey danoise, any chance to see a xlib fix soon?
I just committedsomething. According to the tests, I’ve fixed the issue - would be great if you could confirm this?
Here’s a link to the raw file (xScale.lua)
I just committedsomething. According to the tests, I’ve fixed the issue - would be great if you could confirm this?
Here’s a link to the raw file (xScale.lua)
Yes, you fixed the particular case, I can confirm, and I couldn’t find any issue so far. Thanks!
Okay so I’m back to playing with this, and it’s definitely really cool 
A couple things that I think are problems…
The first track is the note with the Zxx command. The second track is what I get when I write a phrase to selection with mix-paste disabled, insert Z00 disabled. The third track is with insert Z00 enabled, mix-paste still disabled. I think the Z04 that we see there should be removed in the first case, and overwritten in the second case. The current behavior makes sense to me if I were to enable mix-paste.
Now for the feature request that would make PhraseMate the most ridiculously useful tool ever for me 
Render phrase(s) to pattern.
Here’s how it works (and I can do it manually with PhraseMate today!!)
Select an area to write the phrase to
Choose the phrase that corresponds to the Zxx command
Write phrase to selection
Transpose selection to match the original note with Zxx command
Again, a picture probably helps here…
So you can see what I want to do is, insert phrases into the pattern to get the sound I want, then write the phrase data back into the pattern so I can manipulate it again.
What I would LOVE to do is select an area in the pattern or matrix that has phrase notes entered, run a command, and have it automatically do all those steps that I did above.
Hi Pat,
I didn’t have plans to put out a new release any time soon, but:
When I collect patterns to phrases (scope: “track in song”), the resulting phrases don’t respect LPB automation. e.g. if I have a ZL08 command in the master track as the first line of a pattern, the phrase gets its LPB set to 4 instead of 8. Same when writing, if a phrase has LPB 8 and is written to a pattern that is LPB 4, I think it needs to create multiple columns with delay offsets to maintain the timing.
This indeed doesn’t happen - and probably should. It will add a lot of additional processing time, though, since the tool will have to examine all tracks (hm, but I just got an idea here…)
In any case, I would implement it so that, when reading from the pattern, the phrase is set to the highest LPB which was encountered during scanning (preserve fidelity and avoid creating extra columns).
On output - heh, well there is no guarantee that things will sound the same if the phrase LPB is higher than the song. So the tool should probably warn you when “compacting” things like that.
- If I write to a selection that already contains a Zxx command, PhraseMate keeps it there instead of overwriting / deleting it
I believe the tool isn’t even aware of local Zxx commands (sample effect columns), so there’s definitely room for improvement here.
I like your thinking here, makes sense I think.
Now for the feature request
Yep, that justs needs to work like that - totally agree.
I didn’t have plans to put out a new release any time soon
I’m not sure if you’re saying that now you’re thinking about a new release based on my ideas
or that you’re still not planning to.
In any case, I’m happy to try helping with these. Part of my intention with that post was to 1) confirm these are things that you want to address and 2)talk through ideas for how to do it. I didn’t want to spend a ton of time trying to figure this stuff out if you felt it didn’t fit with the PhraseMate vision.
My basic plan is to start with a naive implementation that works only with my specific cases – I’ll talk about those later.
This indeed doesn’t happen - and probably should. It will add a lot of additional processing time, though, since the tool will have to examine all tracks (hm, but I just got an idea here…)
In any case, I would implement it so that, when reading from the pattern, the phrase is set to the highest LPB which was encountered during scanning (preserve fidelity and avoid creating extra columns).
I took a quick stab at this last night, and it seems like PhraseMate doesn’t know the current LPB at any given pattern, does it? Like Renoise isn’t calculating and reporting the song LPB at a specific position.
The way I use LPB, I have one command per pattern in the master track. So a first pass at this (for me) is reading the first line of the pattern on the master track to see if there’s a ZL command on it. If so, use that value as the phrase LPB.
On output - heh, well there is no guarantee that things will sound the same if the phrase LPB is higher than the song. So the tool should probably warn you when “compacting” things like that.
Yeah I see how this is a bit tricky. I thought it would work similarly to inserting triplets, but I think the problem is that the note OFF won’t be accurate. Even if you time all the note ONs correctly using delay, the OFF won’t take place until the next line, right?
Perhaps PhraseMate can insert ZL commands to change LPB, and add lines to the pattern to fit the higher LPB phrase data? That seems like it could get dicey quick. Maybe I just need to split my patterns at the LPB switch points?
I believe the tool isn’t even aware of local Zxx commands (sample effect columns), so there’s definitely room for improvement here.
I like your thinking here, makes sense I think.
Well this is strange because it doesn’t seem to behave the same way for me right now as what I reported earlier. I’ll have to keep an eye on it and see if I can figure out what’s going on.
Yep, that justs needs to work like that - totally agree.
Okay tell me what you think about these first passes at the three pieces:
Transposition
Read the phrase base note
Read the note that triggers the Zxx command
Calculate the offset between them
Apply that offset to the notes being written to the pattern
Render current phrase
Look backwards from the current line until we find a Zxx command
Look forward until there’s an OFF or a different note
Write phrase to pattern using those start and end points
Auto-render multiple phrases
User selects a range
Repeat the “render current phrase” process for each phrase found in the range