Lately, there has been a desire among users for more precise control over Renoise’s internal sampler via pattern effect commands. This has lead to (I think) a general agreement that an expansion of the maximum number of pattern effect commands is in order.
This got me thinking: “If we’re going to add a bunch of new effect commands, then why not allow control of other elements of the sampler that were previously unavailable from the pattern editor?”
This, in turn, reminded me of a feature that not only have I heard requested (though in somewhat different terms) numerous times throughout my stay on the forum, but that I myself had desired greatly during my first few steps in Renoise. Namely, loop marker automation.
The idea is fairly straightforward. Using a set of pattern effect commands, (for this example, lets say the fictional commands 0Gxx [loop start] and 0Hxx [loop end]) you would be able to set the position of the start (S) and end (E) loop markers (seen here) to any position in the sample. The placement of the markers via the commands would work identically to the placement of the playback cursor via the 09xx command.
While at first this might seem like a trivial feature request, since we already have the flexibility of the retrigger effect, (0Exx) it would actually solve a number of issues brought to attention by other users. The first that comes to mind is the retrigger + slide predicament, the discussion of which can be found here.
With loop point automation, the sample could simply be set to loop forward, the starting loop point set to where the sample should begin retriggering, and the end loop point set to where it should loop back to the start. The selection would then begin retriggering, and the pitch could be automated via the 01xx, 02xx, or 05xx commands. Obviously the 09xx command would need to be used as well if the beginning of the sample did not correspond with the position of the start loop point. Practical application of this technique can be seen here:
C-4 01 .. .. 0920 0G20 0H30
--- .. .. .. 0210 0000 0000 // This would result in a quickly
--- .. .. .. 0210 0000 0000 // repeating section of the sample
--- .. .. .. 0210 0000 0000 // that gradually decreases in
--- .. .. .. 0210 0000 0000 // pitch.
Another issue that could be easily solved with loop point automation is brought to attention in the “Bouncing Ball” thread. While the effect in question may seem like a relatively trivial matter, it shows that for some users, the current retrigger functionality is either not precise enough, or simply not fluid enough for their needs.
With loop point automation, achieving these kinds of results is as simple as setting the starting loop point to the beginning of your sample, setting the sample to loop, and gradually bringing the end loop point closer the the starting loop point. An example is shown below:
C-4 01 .. .. 0G00 0HF0
--- .. .. .. 0000 0HC0
--- .. .. .. 0000 0HA0
--- .. .. .. 0000 0H70 // This would result in
--- .. .. .. 0000 0H30 // the sample repeating
--- .. .. .. 0000 0H08 // quicker and quicker,
--- .. .. .. 0000 0H04 // creating the much-
--- .. .. .. 0000 0H02 // sought-after "bouncing
--- .. .. .. 0000 0H01 // ball effect"
If these examples fail to convince you of how useful a feature this would be, imagine all of the other possibilities that this would open up. Imagine smooth, hassle-free wavetable synthesis. Imagine BPM and 0Exx-independent native timestretching and granular synthesis. Imagine having all of this available in a tracker as flexible and ergonomic as Renoise.
Clearly there would need to be an additional command for toggling looping on and off for a specific sample/instrument, as well as controlling things like loop type, (forwards, backwards, ping-pong) but with a larger set effect commands available, that shouldn’t be a problem.