[Done] Structure Imposer

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??

Don’t know what this means exactly :) , maybe I can make it more clear by saying that I want the (black) spacing between notes from the source track, copied to the destination track.

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…

yep, this sounds right, and if there is no note-event in the destination track, where there is one in the source, nothing happens. No new note-events should be generated.

Interesting idea.

I also like kazakores analytical approach to the idea. XOR and OR might be interesting but they really complicate things :P

But what about effect columns? Should they just be disregarded and left untouched?

untouched, or maybe this could be made optional?

I made a simple test tool.

What it does:

  1. It checks is_empty of track lines from the imposing (read) track.
  2. 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 thoughts:

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 :)

Brilliant Mogue!! Thanks :drummer:

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:

version 0.2

I added some scope options.

The tool now disregards and skips all columns except note columns with note values.

Fixed the error you noted by not allowing the user to select tracks out of range.

Thanks Mogue!! Selection in pattern = :drummer:


After having used the tool successfully, closed the tool gui, than later opening up the tool while having the cursor in the send track:

Same happens when trying to open the tool when having the cursor in the master channel.

v 0.3

fixed the bug and changed the valuebox to a popup (dropdown) menu listing track names.

wow this is amazing, thanks!!!

Is it possible the tool auto-updates the dropdown trackname list, having the tool-gui opened when loading a new song?