Idea: Render Selection, Note To New Pattern, Lpb/4 In Master

I have a 64 row pattern at lpb4. i can disable it’s effects, select the track, press cmd-r to render the track.
i now have a sample of the selected content.
— question: can the api get this far, did selected_line/notecolumn/effectcolumn/etc get put into the rendering function too? q: does one have to go for soloing the selection content tracks instead, if selected_line/etc not quite there yet apiwise??

this track is at 65bpm and i’m looking for added resolution. so write current BPM/LPB to master track on pattern 00, advance to pattern 01, change LPB to 8, write current BPM/LPB to master track, erase selected pattern content (on the selected track), go to the selected_track, input c-4 to start playback of the rendered content, and enable the effect on the track.

now i have the choice of getting to multiple resolutions or even going down to LPB1, and still retaining the original sound and style, and i don’t have to worry about a 512 row pattern with these 64 rows of notes repeating endlessly, i instead have a handy sample i can reverse via commands or… well, anyway.

what i’m looking at is this:

paketti, with a lot of help from the forum renoise api geniuses

  • can write LPB/BPM to master (check)

  • can duplicate pattern in pattern_sequence space (check)

  • can output a c-4 note to the first row of the pattern

  • can’t, at least for now, delete selected content.

  • at some point in time had a rudimentary render-shortcut which might or might not have worked properly

but um so yeah. is the rendering thing there yet? i remember encountering real weird bugs which taktik fixed with some code and later fixed somewhere somehow somewhen but tbh i lack the faith to look at this on me own so to speak

tried the old freeze track tool?
i don’t really understand what you need a tool for if you can just render a track, then just set lpb higher, remove all crap yourself :) and remember to save as thedopestbeat2.xrns, thedopestbeathires.xrns, thedopestbeatrenew.xrns, or something like that…

why would i want to do such work by hand when it can be scripted? ;)
the freeze track tool, nope, that doesn’t do work on selected block, does it?

nope but the freeze selected block tool does!!

otherwise; I was just trying to understand the workflow you are picturing in OT and see what part in it you actually need to have scripted that would save an awful lot of mouse movements & keyboard shortcuts. If you would be so kind, read my previous annoyed comments as: please, explain.
(also: you know about dblue’s pattern resizer tool? combine this with selecting the block you want on repeat and ctrl-c, ctrl-p and i think you have a better solution :) )

nope, all it says is “Page not found” :)

Oh, in that case I must’ve been mistaken. Anyway. You’re requesting somebody code you a tool but you fail to explain exactly what behaviour should be automated… even though your status says “Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member”… so if you need results, please explain further what you need (and maybe reply to the stuff I typed before, I think there was some stuff that wasn’t all sarcasm, too!)

Well, Cas, I can try and break it down for you, with pictures. Let’s see if I can pull it off.
The prblem with this idea is that there are two aspects of it, one to do with rendering + new pattern, another to do with expand + write LPB/BPM +new pattern.
So I will start with the second one.

Here is a 8 row pattern at LPB 4, BPM 128. 3 tracks, 1 master, no sends.

now, press one keyboard shortcut. one. no mouse clicking, no nothing, bang, and this happens:

  1. the pattern 00 in the pattern sequence row 00 (on the left) - changes to pattern 00 are:
    – the current BPM / LPB is written to pattern 00. Why? Because pattern 01 will have a change to the LPB, by default. Here is Pattern 00 after having pressed the shortcut:

    Okay - so one stop shortcut which writes BPM/LPB to current pattern. AND copies the pattern. AND resizes the pattern. AND writes the new BPM/LPB to the new pattern.

I have pressed one shortcut, and already my “original pattern” (00) has the current LPB written to the master track, there is a second copy of the 8 row pattern (01), which has been expanded to LPB8, LPB8 written to Master track, and all the pattern content has been expanded, so in essence, 01 sounds like 00, except 00 is LPB4 and 8 rows, and 01 is LPB8 and 16 rows.

Let me stress that this is not a case of “click on advanced edit parameters” “click on clone pattern” “click on pattern length and change it to twice the size by inputting the new pattern length in keyboard commands”, “write LPB to master track by hand to 00 pattern” “write LPB to master track by hand to 01 pattern” “click on advanced edit parameters and click on Expand Selection in (01)”.

One shortcut, vs. many, many, many clicks and presses. What I tried to explain is that while segments of this I can already do with functions in Paketti, I don’t have the full concept in my mind, especially protection of previous patterns. This is simple if there’s 1 pattern (00) and you make a copy of it, but what if you decide to do this LPB-ramping when you are on pattern 50 - and then patterns 00-49 will play wrong since they don’t also set the LPB to 4. I’m trying to find a simple method of doing it without ruining patterns and making them play at the wrong speed. That’s why I went for a 1 pattern example (for now).

Now, since there’s already scriptage to 1) write LPB/BPM 2) clone current pattern 3)resize current pattern to *2 the size 4) increase LPB by *2 5) write LPB to new pattern - then i believe the only thing missing in this simpler case-example is the actual expansion.
the second case is much more complex, but the simplest example is selecting a 512 row pattern’s one track content with lots of notes (let’s say 512 notes in the 512 row pattern), render-selection, create identical copy of current pattern, write currentLPB to original pattern, write LPB/4 (LPB4 original -> LPB1 new) to the new pattern, and place the C-4 basenote of the rendered 512note-having-sample to where the complex 512 rows of notes used to be (thus wiping the 512 rows of notes and replacing them with 1 note that toggles the rendered sample. This affords one to go to extremely low LPB’s yet still be able to maintain access to the resolution of 512 rows of notes, even if at LPB1 the new pattern will become a 128 row pattern.

does this help? :)


got it to crash nicely enough when trying to incorporate a previous version of dblue’s pattern resizer set to expand by *2.

since this makes most of what i wrote before completely redundant, I’ll just borrow from the crash-report-thread and paste this from it:

pattern editor function - no sample rendering (yet) (i.e. another explanation of what i’m trying to do)

-writes current BPM / LPB setting to Master Track  
-clones current track to current pattern sequence  
-multiplies LPB by 2   
-writes BPM/LPB to cloned pattern Master Track  
-resizes cloned pattern by 2  
-expands pattern content by 2.  

i’d already be able to do this, if API had functions for expand and shrink selection ;) : :ph34r:

the pattern editor function with rendering is pretty much this, but thought in a different way, instead of expanding, you go for shrinking the content and dropping the LPB, erasing the selected content and pasting the rendered sample to the channel which’s selected content was emptied, so that when you play pattern 00 at LPB4 and listen to channel1, it sounds the same as pattern 01 at LPB1 and listening to channel1 – except pattern 01 is rendered and pattern 00 contains the original notes at higher resolution.

i hope this helps! at least explaining this stuff is making me think that maybe just a few really quick and little modifications to Paketti will make it possible for one to pull this off.

yeah, sometimes it’s difficult to explain a workflow so that someone else gets it. i would be delighted to provide animated gifs, if i knew how to make such with OSX. I think those would show it the best. embedded youtube videos just don’t cut it.
And I did make the mistake of going for the render selection aspect of it, instead of first starting with simple “Write Lpb to Master, Clone and Expand Pattern by *2, change LPB by *2&Write Lpb to Master of Clone” and then working one’s way into extremely low LPBs and rendering stuff.

yep, maybe. still too many keypresses for something which should be one shortcut away. :) cos when you have only one shortcut to press to accomplish something, it becomes transparent.

when one is able to select one full channel, press a button, and get the selection as a raw sample, then automatically be transported into a clone of the current pattern, which has been resized to fit the lower LPB, and the selection of that track is emptied, and the rendered sample is placed into the channel at base-note, automatically, then that is transparency and allows for one to create extremely quick and complex drum programming yet still be able to guide pads and slower elements while at a lower resolution. think of it as having a 32, 16 or 8 LPB pattern which is your palette of sounds, where you put the whole resolution and fidelity in, and then you actually commit these bits of fast programming into a sample, which is then placed in the actual song you are arranging at lower LPB.