## (the product formerly known as) Epoch

jensa
KVRAF

1617 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.
pinki
KVRian

518 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?
..
colin@loomer
KVRian

1057 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 :
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!

Colin, care to share some generative music in the meantime? That would feel like a small step closer to the beta.
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.
Shift from Loomer: Diatonic Granular Pitch Shifting Delay (AU, RTAS, & VST for Mac OS X, Windows, & Linux)
pinki
KVRian

518 posts since 2 Nov, 2006
Great news and thanks for the explanation.
..
colin@loomer
KVRian

1057 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.
Shift from Loomer: Diatonic Granular Pitch Shifting Delay (AU, RTAS, & VST for Mac OS X, Windows, & Linux)
HunterKiller
KVRAF

1858 posts since 9 Mar, 2006
Colin any (global) randomization features and how extensive if so?
"Who looks outside, dreams; who looks inside, awakes." - Carl G. Jung
"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
manducator
KVRAF

1853 posts since 10 Feb, 2007
jensa wrote:Colin, care to share some generative music in the meantime?

Coudl this be a replacement for Noatikl?
colin@loomer
KVRian

1057 posts since 25 Aug, 2003, from Bournemouth, UK
Colin any (global) randomization features and how extensive if so?
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).

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.

Coudl this be a replacement for Noatikl?
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.
Shift from Loomer: Diatonic Granular Pitch Shifting Delay (AU, RTAS, & VST for Mac OS X, Windows, & Linux)
HunterKiller
KVRAF

1858 posts since 9 Mar, 2006
colin@loomer wrote:
Colin any (global) randomization features and how extensive if so?
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).

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.

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.

I can't wait to try this with percussion, everyone should be in for a wild ride.
Sequencer in random mode....

Controlling never ending real time variability, that is something that greatly interests me.
"Who looks outside, dreams; who looks inside, awakes." - Carl G. Jung
"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
jowen
KVRist

102 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
colin@loomer
KVRian

1057 posts since 25 Aug, 2003, from Bournemouth, UK
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...

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.

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.
Shift from Loomer: Diatonic Granular Pitch Shifting Delay (AU, RTAS, & VST for Mac OS X, Windows, & Linux)
Bronto Scorpio
KVRAF

5566 posts since 13 Feb, 2006, from Wiesmoor, Germany
colin@loomer wrote:
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...

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.

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
Without
KVRist

55 posts since 7 Mar, 2006
colin@loomer
KVRian

1057 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.
Shift from Loomer: Diatonic Granular Pitch Shifting Delay (AU, RTAS, & VST for Mac OS X, Windows, & Linux)
HunterKiller
KVRAF

1858 posts since 9 Mar, 2006
colin@loomer wrote:humanize rigidly metronomic pieces.

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.

Esp if you can imp/exp presets across the various products!
"Who looks outside, dreams; who looks inside, awakes." - Carl G. Jung
"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
PreviousNext

Moderator: colin@loomer