MetaModule multiple patterns with offsets

Post Reply
User avatar
Keres
Posts: 466
Joined: Mon Mar 21, 2016 9:41 am
Location: N. Tulsa Ok.
Contact:

MetaModule multiple patterns with offsets

Post by Keres »

Would be cool if you could select which pattern you would like to play in a MetaModule. Would also be cool if you could offset each pattern in terms of the number of lines or tics. :twisted: :twisted: :twisted:

would make it so that you don't have to sample down drum breaks and keep all the random modifiers working :twisted: :twisted:
User avatar
SawZer
Posts: 273
Joined: Sun Jun 19, 2011 2:26 am
Location: Texas
Contact:

Re: MetaModule multiple patterns with offsets

Post by SawZer »

+1
It could also have functionality like the sampler module where you can assign keys to different "clips" (here it would be patterns)
fycfung
Posts: 11
Joined: Sun Dec 11, 2016 12:03 am

Re: MetaModule multiple patterns with offsets

Post by fycfung »

Some version of this would be super awesome because it would allow the metamodule to have a complex instrument setup, and then allow that same metamodule to play multiple lead patterns. Even a way to set an offset in the timeline (maybe beginning and ending loops points) before triggering the metamodule pattern would allow users to write multiple "stems" and then set the loop points to play a selected pattern.
User avatar
queries
Posts: 316
Joined: Tue May 10, 2016 9:51 pm

Re: MetaModule multiple patterns with offsets

Post by queries »

Caveat: currently a MetaModule, when in pattern-playback mode, and given two notes to play simultaneously, will only play the second invocation. If staggered, the first invocation seems to be "note-off'd" and the second invocation takes over. So MetaModules that play patterns have a sort of "monophonic" quality to them, if that makes sense.

You can already sort of "emulate" what is requested here, using a MetaModule that contains a tree of Multisynths that act as "gates" to map individual notes to several nested MetaModules that each had a pattern to play for a particular note. While it can be done, it's a bit cumbersome to set up each note gate, and you'd need to maintain multiple copies of the same module setup if you're just switching up the pattern and not the instrumentation.

The advantage that fycfung points out is that the proposed feature would allow you to create and edit a single module setup. This would save space in the project file, would avoid need to maintain multiple copies of a module setup, and would certainly be a lot easier to manage. :)

I like the idea of using a sampler-style interface to set, for individual notes, line-based offsets/lengths/loops into the MetaModule's internal timeline, which would simply play all notes in all patterns that were within the range specified.

This could be implemented as an additional chunk of data for a MetaModule when it's saved to disk, much like it is for the sampler already. Backward-compatibility with previous SunVox files could be achieved by having a default of "all lines play from line 0 to end, then loop" if such an information block doesn't exist, causing the MetaModule to behave as it currently does.

(Adding controllers I think would be problematic for MetaModule, since new controllers are added to the end of the list, and all 32 are spoken for with the 5 built-in and up to 27 user defined)
fycfung
Posts: 11
Joined: Sun Dec 11, 2016 12:03 am

Re: MetaModule multiple patterns with offsets

Post by fycfung »

Would that be mutually exclusive with the current (toggleable, right?) use of the input note to the metamodule as the base note of the arpeggiator?
User avatar
queries
Posts: 316
Joined: Tue May 10, 2016 9:51 pm

Re: MetaModule multiple patterns with offsets

Post by queries »

Not sure. I'll leave it to Nightradio to chime in with his thoughts when he gets a chance. The caveat I mentioned was based on a quick experiment to check what the current behavior was. It had the same "only one pattern playback at a time" behavior whether or not the base-note option was on or off.

I imagine the limitation has to do with the implementation of MetaModule... the available source code for older SunVox doesn't have MetaModule, but if I were to guess, it's basically managing another instance of SunVox structures, then piping audio/notes in and piping audio out. (It has a separate BPM/TPL setting after all). Since SunVox itself only has one "playback head" at a time, it would follow that each MetaModule also has only one as well.
User avatar
queries
Posts: 316
Joined: Tue May 10, 2016 9:51 pm

Re: MetaModule multiple patterns with offsets

Post by queries »

This feature is now available as of SunVox 1.9.3-beta2!

Use the "set phase" (09) or "set phase %" (07) effect when sending a note to a MetaModule that's configured to play patterns.

With Set Phase, give the line number where you want to start playback in the timeline.

With Set Phase %, it acts similarly... where 0000 = 0% and 8000 = 100%

(Keep in mind that with patterns, 100% is actually where it loops around to the beginning of the timeline. So using effect 07 with either 0000 or 8000 will result in the same playback position.)
Post Reply