[Tool Idea] Zig Zag Note Event Panning

Something I like doing in my pattern programming is using the panning column to zig zag note events across the stereo field, contrasting every subsequent event, roughly with an opposite counterpart, iterating towards the panning center and back out to the panning extremes of left and right, back to the center again et cetera. Sort a like using a sinewave to automate the panning slider, but now stepwise based on note event placement in the pattern editor. The values aren’t further interpolated between events, there are just as much panning values as there are note events.

It can look like this:

Notice that I arbitrarily start at one side with the value 10 and the next event having value 70, then 20, next 60…thus steps of 10, using the center which is value 40 as end point at which the process repeats itself.

I think it would be nice to have a tool in which you can set the extremes (panning borders, in the above pic 10 & 70), the amount of panning between events and have it stepwise zig zag the panning trajectory only on note events.

Sometimes I’ve also done similar zig zagging based on note events in the automation editor using point values, might be more useful to have a global tool which zig zags any parameter in the automation editor!

In my opinion the LUA API lacks features to solve this in a generic and intuitive way.

What would be good to have first:

  1. Default panning value, accessible in the API (the same way default velocity exist today)

  2. Setting the default panning value via an automation curve (are they available as a standardized save/load XML file format today, not just via clipboard?)

This would allow zig-zag or any shape and provide a logical way of using it, including pasting the “curve” into pattern data afterwards.

Meanwhile, perhaps it would suffice with a tool that pastes an automation curve as pattern data targeting the value you choose (vol, pan, dly, effectamount). That’s a very good idea for a tool I think. I will check what’s possible with automation curves. I hope there is already a standardized way of saving them as files.

Why does it matter if there is “Default” Pan or not in the API/Renoise? This could definitely be done, even if as a post-process (IE enter your notes and then run the script.) In fact that will always be the best way to do it, other wise entering notes in the middle might give you weird results.

Another, related but different, Panning tool may be to be able to draw panning Automation and then have it take the values only where notes are triggered and remove all other panning. So it only changes when a new note is triggered and you could probably choose whether it puts it back in Automation as Points mode, or completely removes the automation and adds in the pattern.

Hey Joule, have a look at Dblue’s automation from notes script, it already has a lot of things covered that could be useful for a zig zag script, I think: New Tool (2.7): Automation From Notes

It takes into account note events in the pattern editor & in the gui you’re able to set a minimum and a maximum.

A different approach would be “value templates”. This would be normal pattern data from lines in a track that would provide a template for pasting into desired track. A value template for your example above would look like this:

C-000 10 0000  
C-000 70 0000  
C-000 20 0000  
C-000 60 0000  
C-000 30 0000  
C-000 50 0000  
C-000 40 0000  
C-000 10 0000  
C-000 70 0000  

(every note is a trigger applied to every note in the destination track)

They should also be possible to “paste repeatedly”. That would for example make this “value template” paste a sliding effect after every note in a track:

C-000 10 0000  
 00 0220  
 00 0220  
 00 0220  

One problem with this is that LUA currently has no access to the Renoise clipboard (that I am aware of), meaning you can’t copy a block and “Paste as template” via a menu. You would have to select source pattern, source track and lines, which isn’t very practical.

I like this idea though - “paste repeatedly as value template”.

Yes, I realized that an automation curve is not the way to do this. Jonas wanted something that was “stepped” and not “linear”. I wanted to make it apply realtime when tracking, which is difficult. But perhaps my idea of “value templates” is better.

I like the idea of templates, but having it in the automation editor, like it does in dblue’s tool mentioned one post before yours, you can choose to either have it step with points, or interpolate using line or curve. Flexibility baby B)

How would that be implemented, in terms of usability?

Creative use of the Key Tracking Device, LFO and Channel Pan can achieve similar to this ? But…

Whatever happened to entering in a bit of note date by hand? I dunno about you guys but I find entering in note data quite therapeutic and part of the general craft of tracking. It’s like a carpenter demanding that a script do all the wood carving for him - sure machines can do it, but it takes away the slow enjoyment of the craft.

The script suggestion is a valid idea. But I sometimes wonder where all this industralising of the craft is going to stop.

Similar to Dblue’s automation from notes script, initialize the gui through right clicking the automation editor bar. In the gui, be able to set a minimum, maximum & define a step/offset amount, all probably in some kind of percentage form as I guess it would be hard to fetch the precise border values from every possible dsp/vst parameter → basically check how Dblue does it now in his tool :slight_smile: .

Then running the script would start out with the most maximum or minimum value on the first note-event, depending on the slider settings in gui, followed by the opposite on the next note event. Gradually working towards a center, which slope curvature is based upon the set step/offset amount. That’s how I envision it anyway, might be better flexible options, maybe using your proposed clipboard continuous pasting. But the automation from notes script already takes into account note events, that’s why I think it would be interesting for a hack.

Personally I’m not a fan of this as I like seeing the events in the pattern editor or shapes in the automation editor over a running lfo.

Nothing happened with entering notes by hand, if anything tools help me with experimenting & going beyond the ‘norm’, sculpt structures at a higher level, faster speed, but it depends on the music you’re envisioning/making, if you can use the scripts for something musical depends on your own creative talents, a mere script can’t give you that. But maybe we can discuss such things somewhere in another thread :D .

Indeed. :) As I said I think the idea is good. Might be fun to apply the same concept to other data values such as volume, offset, or even the xyzz pattern effect data values.

how about zig zagging in the automation editor? :drummer: