Partly deterministic fractal sequencer

Hi everybody,

I am interested in VCV Rack since some years already, not only about the musical part but also the technical aspect due to my programming experience from other projects. I can only say that I am really impressed how this whole project evolved, and especially the large community and having all the free and open source modules available is really great.

I was especially curious about threads like Eurorack Modules You Want in VCV Rack and how hard it would be to implement something similar to some of those modules which are not available yet. I am aware of the obstacles in releasing modules which are too close to real world modules, but thinking about that would be the second step. First and foremost it is about the technical challenge. :slight_smile:

In the last weeks I got interested in for example the Rene 2 (having not only 2D but even 3D movement in a sequencer) and the Bloom due to its fractal concept. I am not a DSP expert and therefore sequencer like modules would be a good first approach for me. And especially for the original Bloom I realized some flaws and that I would like to have it for example more deterministic, of course with some randomness but with more control by the user.

I have started with a simple implementation in VCV Prototype and I was wondering if this would be something worth putting in more effort. Am I correct that there are no closer modules to the Bloom sequencer yet? Basically a sequence provided by the user, which is afterwards altered in different ways, without destroying the initial sequence and with the possibiity to switch between different alterations. I was even thinking about exporting created sequences so that they can be used as new starting points or inserted via other sequencers.

And is there anything similar to Rene 2 available with something like a 3D movement of sequences? Or is this simply too sophisticated and nobody would be interested in using this anyway?

Looking forward to your comments, feel free to also post other ideas which come to your mind.

Greetings from Germany, Tobi

1 Like

Hi Tobi. Welcome on your first (I think) post here.

Whereas not what you are wanting, have you taken a look at my PurrSoftware Meander module? It is a high level musical sequencer based on the Western diatonic modal scales. Meander uses fBm (fractal Brownian motion) for generating psuedo-random notes that are correlated over time. This implementation is also knwon as 1/f noise due to the fixed lacunarity and persistence variables to simplify things bit. So, Meander uses 1D fBm noise, but my noise library that is part of the Meander open source code supports 1D, 2D. 3D and 4D fBm noise.

When you talk about 2D or 3D sequencers, something like my library might be of use. I developed this library many years ago in my 3D game engine, modelling and animation tools development roles. I used my fBm library, for example to do time evolved animation of procedural 2D cloud layers using my 3D fBm functions. Likewise, I did voxel based 3D procedural volume rendering with time correlation, thus 4D fBm noise. Thus, I did N spatial dimensions + 1 time dimension correlated noise. Meander only uses 1D time correlated noise.

Anyway, if you haven’t played with Meander, it might be a good place to start to see what can already be done in VCV Rack and what cannot be done or done easily.

1 Like

Hi k-chaffin,

thank you for your reply. I was already aware of your Meander module, it probably came up in every second thread that I looked for about this topic. :slight_smile: To be honest, this fractial Brownian motion sounds a little bit too complex for me at the moment, but I probably need to dig deeper into it. I am still looking for a solution “with a brain”, so that the melodies don’t get recreated all the time and older melodies can be retrieved again. I don’t think that’s currently possible with the current version of Meander right?

I am currently working on a Bloom-like module and will post it here in case anybody is interested to play around with it once it is in a more major state. As mentioned, it is currently more about a little programming challenge for myself and I don’t know where this is going, but in case anybody got some ideas what could be incorporated in such a module feel free to post here.

I would have one technical question, is there any difference between having a quantizer built into the sequencer compared to using a separate quantizer module afterwards? I thought about using notes (C4, C#4, D4…) instead of CV values but I don’t want to incorporate any root-note/scale logic into the sequencer right now. A lot of Eurorack sequencers seem to have scale logic already as part of the module itself, but this might be also due to limited hardware rack space.

Greetings, Tobi

That’s correct. Meander does not store generated melodies for future use.

Others may have other opinions, but I think external quantizers are used more often with sequencers, but a siignificant number of sequencers have scales and thus scale quantizers built in.

your sequencer needs to have a quantizer if it is going to generate harmonies or melodies based on a scale. It would be quite unusual for a diatonic melody generator to be unquantized. I’m not even sure that that would mean, but it might be possible in theory. I’ve never seen such a thing.

1 Like

Yeah, that is what I was trying to say.

1 Like

First of all thank you for your responses and sorry for the long silence. I have implemented a first version of this kind-of-Bloom-like sequencer and will probably upload a short video in case anybody is interested. I am still not sure how musically useful this module is but it was a lot of fun working on it until now. :slight_smile:

The current version looks like this:

On the left side we have a 16 step sequencer input (including gates, currently only available for 4 steps). In the middle section we have multiple randomization options for note values and gates (not all of them are implemented right now). And on the right side we have buttons to trigger the creation of new generations or to remove generations. Once for the note value tree, and once for the gate tree. I decided to have two different trees for note values and gates as this allows the user to combine different note value and gate branches with each other. In case the user doesn’t want to use the gate tree there is also a separate “all gates on” output.

The workflow is basically:

  1. Decide about a root sequence and set it on the left side.
  2. Decide about which randomization should be used in which chance/amount in the middle.
  3. Create a new generation (branch-level) in the tree in the right side.
  4. Repeat 2+3 if desired.
  5. Select the currently used path through the generated trees on the top right. (this requires of course cv input in the future)

The tree itself is a simple binary tree, therefore the first generation consists of 2 new sequences which are related to the first one. The second generation consists of 2 new sequences related to the first child sequence and 2 new sequences related to the second child sequence and so on.

Next steps are now to incorporate velocity values and randomization as well as ratchet values and randomization, and I need to decide on some better UI layout, add labels, and of course some cv inputs but I am not sure yet where this makes sense.

Any feedback is very welcome. :slight_smile: I can also upload a beta version at some point, but I don’t even know how to name the module or the plugin yet. :smiley:

3 Likes

this sounds like a very interesting module,

I really would like to try the beta, and for the name I suggest “tree-seq”

Your binary branching fractal tree note and gate sequencer sounds like a lot of fun.

Sorry again for the long silence, there is always so much other stuff to do. :slight_smile:

I think I have a version ready now for a first beta test in case anybody is interested. I am only able to build for Windows though and I haven’t setup anything in Github yet.

Am I allowed to simply upload a zip file with the distributed plugin here? Or would you recommend to get it ready and built in Github first?

@Tobi Either works, but GitHub is generally how third-party plugins are distributed. Some developers do provide builds though so more people can test. Your call.

1 Like

Due to some other threads in this forum I got a little bit distracted from the tree sequencer and have worked on stochastic sequencer similar to Melodicer:

I was especially interested in the behavior of the module that it does not recreate the sequence if no “dice” is executed. On the other hand changing the note probabilities does indeed change the sequence, but it is always possible to get back to the original one by setting the note probabilities back. I learned a lot about random seeds and PRNGs and am looking into putting that into the fractal sequencer somehow as well.

The 8 buttons in the module are basically “previous dice” and “next dice” triggers, therefore allowing the user to go back to the previous dices all the time. In the final module I want to provide seed text fields to read and write from, so that the user has “full control” over the seeds. Might be overwhelming and perhaps I should put it behind a setting or into an expander, but it’s very interesting to work on. :slight_smile:

5 Likes