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