(the product formerly known as) Epoch
-
- KVRAF
- 1629 posts since 11 Dec, 2005 from Malmö, Sweden
Colin, care to share some generative music in the meantime? That would feel like a small step closer to the beta.
-
- KVRian
- Topic Starter
- 1177 posts since 2 Nov, 2006
Hi Colin
Mmm... I always thought Markov chains look to what has just happened in order to influence what is to come....so a first order Markov chain will look one step back, a second order two steps back etc. So the higher the order the more determined or limited will be the next step. Can this wonderful new tool do this idea?
Mmm... I always thought Markov chains look to what has just happened in order to influence what is to come....so a first order Markov chain will look one step back, a second order two steps back etc. So the higher the order the more determined or limited will be the next step. Can this wonderful new tool do this idea?
..
-
- KVRAF
- 2678 posts since 25 Aug, 2003 from Bournemouth, UK
Absolutely: the example I used before, where CV values correlate to possible next steps, was just a basic first-order chain, using a single memory of the current step.
If you wanted to build more complex Markov chain, one with a higher order, I'd probably recommend you use one of Epoch's Lua modules, rather than trying to build it from individual mathematical modules (although you could do it either way. Lua just makes it much easier.) The approach I'd use I'd would be to define a transition table in a Lua module similar to this :
[/size]
The first numbers in a row correspond to the current and previous steps; the second to the possible outputs if the step history is satisfied.
A sequencer's step output can be plumbed into this Lua module. I'd add a tick function to the script (which, as the name suggests, is called every tick: this is where you put your Lua logic) which will keep a memory of the current and previous n steps, and use it to generate a step transition from the possibilites. Connect an output from the Lua module back to the sequencer's index input, and Andrey Markov's your uncle.
So that was a long winded way of saying: yes, Epoch can do this!
If you wanted to build more complex Markov chain, one with a higher order, I'd probably recommend you use one of Epoch's Lua modules, rather than trying to build it from individual mathematical modules (although you could do it either way. Lua just makes it much easier.) The approach I'd use I'd would be to define a transition table in a Lua module similar to this :
Code: Select all
transitions = {
{ {1, 3}, {1, 2, 3} }, -- if was previously on step 1, but now on step 3, go to step 1, 2 or 3.
{ {2}, {4, 5, 6, 7, 8} }, -- if on step 4, go to step 4, 5, 6, 7, or 8
{ {4, 1}, {4} }, -- if was previously on step 4, but are now on step 1, go to step 4
...
}
The first numbers in a row correspond to the current and previous steps; the second to the possible outputs if the step history is satisfied.
A sequencer's step output can be plumbed into this Lua module. I'd add a tick function to the script (which, as the name suggests, is called every tick: this is where you put your Lua logic) which will keep a memory of the current and previous n steps, and use it to generate a step transition from the possibilites. Connect an output from the Lua module back to the sequencer's index input, and Andrey Markov's your uncle.
So that was a long winded way of saying: yes, Epoch can do this!
Even better: I'm not far from getting the sequencer UI nailed down, at which point I can post screenshots - and perhaps more importantly - videos! It'll certainly make the possibilities of Epoch clearer when you can see how the router and sequencers integrate.Colin, care to share some generative music in the meantime? That would feel like a small step closer to the beta.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
-
- KVRAF
- 2678 posts since 25 Aug, 2003 from Bournemouth, UK
No problem at all. I'm glad to get these kind of questions: it's absolutely what I expect people will use Epoch for, and being forced to think about how I'd implement such a set-up ensures that Epoch covers all bases.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
- KVRAF
- 2162 posts since 10 Mar, 2006
Colin any (global) randomization features and how extensive if so?
"The educated person is one who knows how to find out what he does not know" - George Simmel
“It's what you learn after you know it all that counts.” - John Wooden
“It's what you learn after you know it all that counts.” - John Wooden
-
- KVRAF
- 1800 posts since 10 Feb, 2007
Coudl this be a replacement for Noatikl?jensa wrote:Colin, care to share some generative music in the meantime?
-
- KVRAF
- 2678 posts since 25 Aug, 2003 from Bournemouth, UK
Do you mean in terms of populating the sequencers? If so, yes, there are various randomisation functions you can use to generate patterns, as well as evolve (which takes the current pattern and mutates it slightly) and re-arrange (which takes the individual steps and re-arranges them).Colin any (global) randomization features and how extensive if so?
In terms of randomisation during playback, the options are limitless really. It's easy to break out of the rigidly fixed sequenced structures and add some creative random possibilites. An obvious one would be to use a CV row as the 'probability' of a note playing, easily done with just a few modules, a technique that yields great results with drum patterns, but that really is scratching the surface. You can modulate just about anything in Epoch, and have lot of low levels modules to build contraptions that produce interesting random, algorithmic, or chaotic modulation sources.
In the sense of, both can produce generative music, yes. I've not used Noatikl (although, many years ago, I did spend some time with its ancestor, Koan), but I'd say that Noatikl appears more 'high-level', where-as Epoch more 'low-level'. I hope I'm not misrepresenting Noatikl - I've not used it enough to comment - but I expect that you'd get vastly different results from it than from Epoch. There's probably room in your arsenal for the pair of them.Coudl this be a replacement for Noatikl?
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
- KVRAF
- 2162 posts since 10 Mar, 2006
Great stuff. I've always held that the randomization features should have their own little variability. If one wants things to be ever so subtle to more noticeable to completely different, 1-100.colin@loomer wrote:Do you mean in terms of populating the sequencers? If so, yes, there are various randomisation functions you can use to generate patterns, as well as evolve (which takes the current pattern and mutates it slightly) and re-arrange (which takes the individual steps and re-arranges them).Colin any (global) randomization features and how extensive if so?
I can't wait to try this with percussion, everyone should be in for a wild ride.In terms of randomisation during playback, the options are limitless really. It's easy to break out of the rigidly fixed sequenced structures and add some creative random possibilites. An obvious one would be to use a CV row as the 'probability' of a note playing, easily done with just a few modules, a technique that yields great results with drum patterns, but that really is scratching the surface. You can modulate just about anything in Epoch, and have lot of low levels modules to build contraptions that produce interesting random, algorithmic, or chaotic modulation sources.
Sequencer in random mode....
Controlling never ending real time variability, that is something that greatly interests me.
"The educated person is one who knows how to find out what he does not know" - George Simmel
“It's what you learn after you know it all that counts.” - John Wooden
“It's what you learn after you know it all that counts.” - John Wooden
-
- KVRist
- 119 posts since 16 Jun, 2009
I can't wait to try this with percussion, everyone should be in for a wild ride.
Sequencer in random mode....
if so, have a look to nummerology from five12, at their forum there are a lot of files that do all this,
there is one person called jue who made a lot of examples covering randomisation , brownianmotions or accumulations,
a lot of different kinds of discrete CV sequencers and so on.
Some music to listen is also there.
the problem is that its mac only
If you have a mac you can demo with some limitations, but the files from the forum could be loaded
Also waiting for the next informations about epoch, because it seems it lets us go mutch deeper in stepsequencing as it is possible today
Sequencer in random mode....
if so, have a look to nummerology from five12, at their forum there are a lot of files that do all this,
there is one person called jue who made a lot of examples covering randomisation , brownianmotions or accumulations,
a lot of different kinds of discrete CV sequencers and so on.
Some music to listen is also there.
the problem is that its mac only
If you have a mac you can demo with some limitations, but the files from the forum could be loaded
Also waiting for the next informations about epoch, because it seems it lets us go mutch deeper in stepsequencing as it is possible today
-
- KVRAF
- 2678 posts since 25 Aug, 2003 from Bournemouth, UK
I've finished implementing these improvements to Epoch's timing engine, and: wow, what fun I'm having with mercurial time! A sequencer's time division is now controlled by two main parameters: a division, between 1/64t and 8 bars, which specifies the base length of a step; and a multiplier, with values ranging from /32 to x32. The first value is multiplied by the second to give the overall division time for the sequencer. So, if you want to have a sequencer's basic step length to be 7/32t, you'd set the division to 1/32t, and the multiplier to x 7.mmitch wrote:that is great to hear. very few sequencing environments seem to offer this sort of capability. Numerology does of course, and Synth Squad and Geist do also in their engines with their ratios, but its great to have options and of course I'm going to jump on this as soon as it is possible - it will be great to have another way of dealing with quintuplets, septuplets, etc...
And that's not allowing for the per sequencer step options, in which we have count, the number of times the step is played, which rather importantly can also be set to 0 to skip a step, and step-length, which again is a multiplier ranging from /8 to x32. Finally, we have a groove which will alter a step's overall length by +/- 33%: a few % applied randomly here does wonders to humanize rigidly metronomic pieces.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
colin@loomer wrote:I've finished implementing these improvements to Epoch's timing engine, and: wow, what fun I'm having with mercurial time! A sequencer's time division is now controlled by two main parameters: a division, between 1/64t and 8 bars, which specifies the base length of a step; and a multiplier, with values ranging from /32 to x32. The first value is multiplied by the second to give the overall division time for the sequencer. So, if you want to have a sequencer's basic step length to be 7/32t, you'd set the division to 1/32t, and the multiplier to x 7.mmitch wrote:that is great to hear. very few sequencing environments seem to offer this sort of capability. Numerology does of course, and Synth Squad and Geist do also in their engines with their ratios, but its great to have options and of course I'm going to jump on this as soon as it is possible - it will be great to have another way of dealing with quintuplets, septuplets, etc...
And that's not allowing for the per sequencer step options, in which we have count, the number of times the step is played, which rather importantly can also be set to 0 to skip a step, and step-length, which again is a multiplier ranging from /8 to x32. Finally, we have a groove which will alter a step's overall length by +/- 33%: a few % applied randomly here does wonders to humanize rigidly metronomic pieces.
I really want this NOW
Cheers
Dennis
-
- KVRAF
- 2678 posts since 25 Aug, 2003 from Bournemouth, UK
I'm nearly done on the final* sequencer type, which will be the 8-row Drum Sequencer. After which there needs to be a final pass on all whole Sequencer UI window. And then, my patient followers, only then!
* Final for v1 that is. Amongst other code I've got simmering on the Loomer development stove, I've been working on some really nice MSEG sequencers a la Absynth, Zebra. These were originally ear-marked for Sequent, but I think they'd also be useful in Epoch.
* Final for v1 that is. Amongst other code I've got simmering on the Loomer development stove, I've been working on some really nice MSEG sequencers a la Absynth, Zebra. These were originally ear-marked for Sequent, but I think they'd also be useful in Epoch.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
- KVRAF
- 2162 posts since 10 Mar, 2006
colin@loomer wrote:humanize rigidly metronomic pieces.
Esp if you can imp/exp presets across the various products!colin@loomer wrote:* Final for v1 that is. Amongst other code I've got simmering on the Loomer development stove, I've been working on some really nice MSEG sequencers a la Absynth, Zebra. These were originally ear-marked for Sequent, but I think they'd also be useful in Epoch.
"The educated person is one who knows how to find out what he does not know" - George Simmel
“It's what you learn after you know it all that counts.” - John Wooden
“It's what you learn after you know it all that counts.” - John Wooden