A tool which lets you impose the note placement of one track onto the notes in another track as a means to create similarity in structure. Content gate or filter…
I imagine a tool gui in which you set the source track and the destination track, press ‘generate’ or something and a patterns worth of content is dealt with. (or able to set a pattern range and/or use pattern selection ).
To illustrate with pictures, when kiks & snares is source, arp is destination:
Before using the tool:
After using the tool:
The tool shouldn’t make a distinction between different notes and, or instruments used in the source or destination track (yet, first things first ), I’m interested foremost in imposing space.
I think this could be an interesting tool using the rhythmical structure of a beat onto a melody section or vice versa.
The example there you seem to be doing an AND operation between the two tracks. Your description sounds more like tool which clones a track to a new one with the new instrument but from your screenshots you are obviously talking a little more advanced.
Possibly an AND, OR and XOR type function between tracks??
AND = When you have a note one both Source AND Destination track, keep the destination note.
OR = When you have a note on either the Source OR Destination track you have a note on the destination track (either take the note from Source or repeat previous from Destination??)
XOR = eXclusive OR, when you have a note on Source or Destination but NOT on Both, then you have a note in the Destination track, following rules above.
You above example seem to follow AND and probably all that would be used by most people most of the time. Think the others probably come in more for generating a completely new track, using a new instrument, rather than changing the existing Destination track following the rules…
It checks is_empty of track lines from the imposing (read) track.
The track lines of the imposed (applied) track are emptied with :clear().
This is similar to what you described but does not disregard effect columns or volume/panning/delay columns
The iterator could be modified to better behaviour but that will increase the cpu load so it’s good to be very direct/explicit. Try messing around with this tool and you might discover more details about the behaviour you want.
Some Effect Commands do affect structure such as “cut note” (0C) and “retrigger notes” (0R).
Off notes affect structure.
Scope (selection, pattern) could be useful as for now the tool will affect the whole song.
At the moment all columns of the tracks are compared and affected. This is related to scoping (example: Perhaps comparing NoteColumn 1 of imposing track to NoteColumn 2 of imposed track might be useful).
Developing on these thoughts may rely on making a more intuitive GUI.
Well whatever, this idea can be expanded in many ways.
Try it, modify it (if you know a bit of lua) and post your thoughts
Imo being able to only process the current pattern (or set pattern scope through tool gui or sequence list selection) other than the whole song like it does currently is essential for this tool. As you want the imposed variation to contrast the ‘original’ structure. A way to create variety in your composition.
If you could add a toggle to take note-offs and or other pattern commands into account that would be cool, but I guess a lot of work and not that important compared to pattern range selection imo.
btw setting the track range outside of the amount of actually used tracks gives: