Welcome to %s forums

BrainModular Users Forum

Login Register

Synchronisation with tuplets

I need help on a Patch
Post Reply
Lib
Member
Posts: 24
Contact:

Unread post by Lib » 11 Jan 2019, 19:27

Hey,
after 2-3 weeks of working with Usine I have to say I'm really enjoying it! Such a flexible environment, I'm particularly exploring the local sync features and the possibilities for polyrhythmic music.

Here's my problem, I'm trying to create subdivisions (for bars, quarter notes, and so on) of a clock based on tuplets, in particular 5, 7, 11 and 13 (the 9 are kind of easy I guess by nesting 2 triplet subdivisions) and I don't know what would be the best and most precise way to achieve that in Usine.

At the moment my quick solution is to write the desired rhythmic subdivision in a Reaper piano roll (didn't know but its grid and quantization system can be set to any subdivision by manually typing for example 1/5, 1/7 and so on in the grid properties), export it as a MIDI file, import it in a Usine piano roll and use that to trigger other events.

However, I'm wondering what could be a better Usine-only solution that I could use for example to easily switch from a subdivision to another, and modify the great Usine patches (for example the various GROOVE ones) to sync to subdivisions based on quintuplets, septuplets and so on.

Thanks for any help!

emiliano
Member
Posts: 28
Contact:

Unread post by emiliano » 11 Jan 2019, 20:58

Hi Lib,

I am myself very much into polyrhythmic music and I modified two Usine original patches to include the possibilities to use 5,7 and 9 subdivisions. I modified Midi Step Sequencer Groove and Midi Step Sequencer Melody this way. If you want I can send them to you and explain to you how to add subdivisions into 11, 13 etc as well.

The modified patches are stable. However some functions don't work as expected, as they are stuck in 4/4 with my modified versions (some random and breaks variations, I think). But that's ok overall.

Since I am having a hard time having smooth and precise transitions between presets, due to the lag unfortunately inherent to Usine (so I have been told by the developers), I have incorporated in my modified patches an "anticipated preset manager" which recalls the preset some time before the end of a cycle, so the first step of the new cycle is not missed. This is still not perfect, and I am still hoping the programmers of Usine will find a solution so we can have real-time and precise preset changes that do not miss the first beat.

Beware that some Usine midi patches, although very fun to use, are very CPU demanding for what they do, compared to some Vst midi plugins. As a polyrhythmic midi vst plugin, i can recommend London ClockT, it is free, super-fun to use, CPU-friendly and seems to recall presets very fast.

https://github.com/morukutsu/LondonClockT

Regarding Usine, I have been using it for about a year and I bought the full version a few months ago. It is an amazing piece of software, really special and unique. I hope you can find a way to do what you want with it.

Besides its great audio features, I have also discovered that Usine is crazy good when it comes to video processing for creative visuals...

I hope this helps !

SylvainT
Site Admin
Posts: 494
Contact:

Unread post by SylvainT » 11 Jan 2019, 23:30

Hello guys,

Usine is very versatile for poly-rhythms.
If you use library groove patches, they are generally linked to the list of bars defines with the master sync module.
Basically, it's set to two 4/4 bars.
For example, if you use the Groove Matrix, if you set the division to 7, 14 or whatever and you don't define the list of bars you want to use, it will run on 7, but restart at the end of the two 4/4 bars.
Have a look in the Groove Matrix. You have a modulo module linked to the cycle ppq. if you linked it to the total ppq, you don't need to define the list of bars anymore.

I have built a big Groove Box that can achieve every time signatures you can imagine, poly-rhythms, poly-speeds, random, with velocity and probability, human feel ..... Usine is so amazing for this kind of work, but that needs deep understanding of patching ;-)

Precise transitions between presets is a real problem, difficult to solve for the programmers of Usine. I find a solution with delaying some data's to avoid that. But you need to use some delay compensations for other patches that are linked rhythmically.

All the best

Sylvain

User avatar
x.iso
Member
Posts: 565
Location: RU, Saint-Petersburg
Contact:

Unread post by x.iso » 11 Jan 2019, 23:40

You totally can play with subdivisions and there are various way to achieve that. In Local synchro module you can find 'bar list' parameter, where you can write any sequence of subdivisions (and it's even possible to assign unique BPM for each, look up the manual), and you could make a patch so that you'll just use step-sequencer like UI for automated writing of said sequences in the list. Then there's also Clock divider for further manipulation.
join Hollyhock Usine Discord server: https://discord.gg/EdJarnE

User avatar
x.iso
Member
Posts: 565
Location: RU, Saint-Petersburg
Contact:

Unread post by x.iso » 11 Jan 2019, 23:51

As for delays with patch preset recalling, one way of avoiding such problem is making sure to disable preset saving for any module that supports it and doesn't need it for your purposes (or because it will get changed anyway by other modules values being recalled). By default all modules have that option enabled, so if you don't look after it, you might end up with huge queue to be processed on preset recall which causes the dreaded latency.

Also if you don't need the whole patch recalling preset for few parameters that matter, you could just isolate that part as sub-patch and use presets of said sub-patch instead.
join Hollyhock Usine Discord server: https://discord.gg/EdJarnE

Lib
Member
Posts: 24
Contact:

Unread post by Lib » 12 Jan 2019, 14:51

emiliano wrote:Hi Lib,

I am myself very much into polyrhythmic music and I modified two Usine original patches to include the possibilities to use 5,7 and 9 subdivisions. I modified Midi Step Sequencer Groove and Midi Step Sequencer Melody this way. If you want I can send them to you and explain to you how to add subdivisions into 11, 13 etc as well.

Beware that some Usine midi patches, although very fun to use, are very CPU demanding for what they do, compared to some Vst midi plugins. As a polyrhythmic midi vst plugin, i can recommend London ClockT, it is free, super-fun to use, CPU-friendly and seems to recall presets very fast.
Hi Emiliano!
Thanks a lot for your super informative message! Yes, if you have the chance please send me your patches, I'll surely learn a lot from studying them.
And thanks for London ClockT!! I've been looking for something like that for a long time. Works perfectly also bridged and seems very stable. I might use it as a practicing tool for polyrhythms as well!
SylvainT wrote:You have a modulo module linked to the cycle ppq. if you linked it to the total ppq, you don't need to define the list of bars anymore.
Hi Sylvain, thanks a lot for your detailed answer and info about the mast clock cycle! I'll check the Groove Matrix and the connection to the cycle / total ppq value.
x.iso wrote:You totally can play with subdivisions and there are various way to achieve that. In Local synchro module you can find 'bar list' parameter, where you can write any sequence of subdivisions (and it's even possible to assign unique BPM for each, look up the manual), and you could make a patch so that you'll just use step-sequencer like UI for automated writing of said sequences in the list. Then there's also Clock divider for further manipulation.
Thanks x.iso for your answer and help! I noticed the 'bar list' parameter, and that's indeed very useful for polymeters (something that I'll use for sure)! I'm trying to achieve though polyrhythms, where two bars of the same total duration and playing at the same, time are divided differently, let's say one divided in 4 beats, and the other in 5 beats. I guess I could do that by putting different bpm values (let's say 60 for a 4/4 bar - 4000ms bar duration and 1000ms per beat, and then and 75bpm for a 5/4 bar, same bar duration 4000ms, and 800ms per beat. Haven't tried yet, but I suspect that I might encounter some rounding errors if I use other bpm values, so I should find a way to somehow synchronize the new bpm to a clock.
I saw as well the clock divider, but what I'm looking for is actually a clock multiplier, I think.
In general, I'm looking for the easiest way to synchronise (ideally even quantize..) to values different than 1/8, triplet, 1/16 etc.
Thanks a lot for the tip about preset, subpatching the relevant object and changing only its preset seems a great solution!


Thank you all for your help!

emiliano
Member
Posts: 28
Contact:

Unread post by emiliano » 12 Jan 2019, 19:52

Hi Lib,
here are the two patches I modified :
[img]http://www.sensomusic.org/forums/upload ... V2.pat[img]
[img]http://www.sensomusic.org/forums/upload ... V2.pat[img]
I am glad that you like London ClockT !
About using the local synchro module at a different tempo : beware, this different tempo will not be properly recalled. When you close and reopen your session it will reset at 120bpm. You need to add a "const" (constant) module attached to the tempo inlet of the local synchro module, with the desired value entered in this "const" value to cure this behaviour.
Happy patching !
Emiliano

SylvainT
Site Admin
Posts: 494
Contact:

Unread post by SylvainT » 13 Jan 2019, 00:48

I used Local Sync in the past, but I encountered drifting problems regarding to Master Sync.
So, now I use the total ppq to generate triggers, with divider you can have different time signatures.
A simple exemple :
http://www.sensomusic.org/forums/upload ... iggers.pat

Sylvain

Lib
Member
Posts: 24
Contact:

Unread post by Lib » 13 Jan 2019, 11:56

Hi Emiliano and Sylvain,
thank you so much for your patches! @Emiliano, I'll take some time to study your patches, but the overall logic seems quite clear though at a first check, thanks for sharing them.
@Sylvain, very clear, thanks.

As I use VSTs quite a lot, and I'd like to synchronise let's say a delay with a different sub-tempo, it'd be very convenient to try to use the Local Sync to sync them.
I see that you both use the total ppq to generate the triggers. Do you think a good strategy would be to generate the triggers using the total ppq and then use them with the tap & reset tap of Local Sync to generate the local bpm and make sure at the same time that it gets recalculated often enough to avoid the drifting problems?

Thanks!

emiliano
Member
Posts: 28
Contact:

Unread post by emiliano » 14 Jan 2019, 18:34

Hello Lib,
actually I never used total ppq before, but I like the idea in Sylvain's basic polyrhythmic patch (thank you Sylvain).
Lib, your idea seems like a good one, will you let us know if it works ok? I also like to use midi vst sequencers, so I am interested in this new method... I will also try it whan i have some free time.

Lib
Member
Posts: 24
Contact:

Unread post by Lib » 17 Jan 2019, 10:36

Hi Emiliano,
I quickly tried but without success so far. But the total ppq system seems very reliable to create and trigger subdivisions (and as a side note, the Midi step sequencer seems to be as stable and precise or a piano roll with a Midi file generated for example in Reaper / Supercollider <- thinking here about generating accelerando and so on., etc.).

Basically the problem is how to link a Local Sync object to follow a tempo generated with the total ppq system. I'm also wondering if there is a way to inform a VST about this new tempo without using a Local Sync object.
Of course I'm just starting with Bidule so it might be the case that my approach is wrong... but I'll keep trying and report.

SylvainT
Site Admin
Posts: 494
Contact:

Unread post by SylvainT » 17 Jan 2019, 13:59

Hi Lib,

Here's the problem.
You can't inform a VST about a different tempo than the master tempo without using a Local Sync module.
The only solution you have is to send relevant trigger from the Master Sync module to the Start input of the Local Sync module to restart it often and keep it very close from the Master Sync. At least, on both Sync module, an On Activation trigger.
A relevant trigger could be a Cycle Trigger, or for example with a 4 and 5 signature, it could be all the 20 beats. Depending of your compositions.
For very complex cycle and time signature, it will be more difficult.

All the best

Sylvain

Lib
Member
Posts: 24
Contact:

Unread post by Lib » 17 Jan 2019, 19:45

Thanks Sylvain, your answer clarifies everything. The Start input of the Local Sync is the crucial one in this context, that's what I was missing.
Thank you!

emiliano
Member
Posts: 28
Contact:

Unread post by emiliano » 27 Jan 2019, 13:18

I have tried several ways to use the TotalPPQ to tap into the local sync module for alternative local tempo. It doesn't work (it works but is very slow to stabilize). I'm adding a feature suggestion.

emiliano
Member
Posts: 28
Contact:

Unread post by emiliano » 27 Jan 2019, 13:40

I have added a request for the addition of ppq inputs in the Local Synchro module :
http://www.sensomusic.org/forums/viewtopic.php?id=6392

Lib
Member
Posts: 24
Contact:

Unread post by Lib » 27 Jan 2019, 20:05

Just saw it, great! It'd be so cool if this was implemented.

Post Reply

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 11 guests