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