four parallel markov chains

for maybe doing something interesting

(13 Votes)
1.1 (Updated 3 weeks ago)
233.4kB
November 29, 2017
Reaktor 6
Instrument Other

DESCRIPTION

have significantly retooled and reappraised upload in due process over the course of taking inventory of a few projects that are planned for being inter-functional / interrelated, this being among them. it doesn't try to offer as much but guarantees more, namely providing all of the necessary basic function of a properly working markov chain. four of them in parallel actually, though i'd no longer advertise it as being built for the purpose of chords

the previous version was never fully rid of errors, poor understanding and implementation. under certain conditions a column of probability training data would not add up back to 1 due to miscount, throwing off the next transition to the proper note. tables which were meant to be written to and from mono-phonically were never set for that and thus training input notes were being written to tables multiple times unnecessarily (not so good for a process that relies on precise counting for its operation, though this over representation may have actually 'helped a bit at its original goal of working for chords) it also no longer pre sort the notes in ascending order before input, which results in more 'note mixing' acrosos the chains, providing more of a justification for using four of them in parallel

but we do not worry about that. there''s a button that activates training ( input is midi note data) and midi gate triggers output of notes as soon as there is enough data built up (output is midi or complementary courtesy audio preview / sawtooth). not much in the way of features but the structure was cleaned up considerably with the idea that anyone who is keen can get in and navigate the structure well enough, with the exception of the markov process cells which were too intimidating to unravel with the combination of bad building practices and other parts that worked perfectly while beyond my present self's comprehension. markov training is a bit of an art , they can get stuck or need a lot of input to begin working well but overtraining can also happen fairly easily, many interesting things can come about in the subtle fleeting zone between


-----
(old)
i rolled it back to version 1.0, because the damn thing was always broken before. now it is fixed, and if you play only c major, the output will be all in c. this was not always the case before due to a table read issue. also a note can now be followed by itself in the state space. the practical utility of this ensemble has thus gained exponentially

to use turn on the Training Button and play it some chords. turn it off and now every midi gate will trigger chords like what you put in. there is also a variable length loop buffer of up to the last 16 chords with various options for introducing some repetition

its artificial intelligence run amok!

COMMENTS  (11)

andrew aronson
3 weeks ago
haha i just came back to download it so i could work on it. can report i've been doing battle against my younger dumber self's handiwork all day and it was worth my time to do so. there were some problems that i never fully had ironed out or even been aware of with this
andrew aronson
3 weeks ago
haha i just came back to download it so i could work on it. can report i've been doing battle against my younger dumber self's handiwork all day and it was worth my time to do so. there were some problems that i never fully had ironed out or even been aware of with this
JE D.
4 months ago
Hey Andrew, Can you make it work ? :)
andrew aronson
7 months ago
disclaimer - it doesn't work lol. because i was conceptually challenged i didn't realize every voice is its own markov chain, so after training you may get some pleasant harmonies, but triggering its output works on a per note basis, not for an entire chord. maybe some day i'll combine this with a midi chord detector i made and turn it into a huge 2d table whose input is root note and chord type instead of four seperate 12x12 chains that im sure bach would have approved of
Thala Estra
3 years ago
its very simple: hit the training button. feed midi-chords into it. deselect the training when your done. now every incoming note will trigger a new chord.
michel thouseau
3 years ago
Not shure to understand how to do ...
andrew aronson
3 years ago
the table is supposed to zero initialize, so the error message is weird, possibly something to do with the way im using tables globally. what you're describing is more or less normal operation, except for the two notes thing which is finally totally fixed
Kaspar Torn
3 years ago
Ensemble seems interesting, but I'm not sure how to use it. Upon launching I get: Cannot open external file C:\users\...\Desktop\vw.ntf. Classic table will be zero initialized. The fields in the UI are all blank. Playing a MIDI keyboard through it in learn mode fills some colors, after a while it seems to alternate between two notes, whatever key I play.
andrew aronson
4 years ago
that was like 20 sec selections from each song off the Hounds of Love by Kate Bush. training on a single song would probably be killer, hadn't even tried it yet but yeah, i like that idea. a single, separate 2nd order chain should do just the trick/less of headache than adding octave, which i cant decide if should require basically a whole mini me clone of the structure
Thala Estra
4 years ago
thanks a lot! awesome :) how about timing information? shouldn`t analyzing the timing of a incoming midi file be possible too? roughly in 96th? to create a complete autojammer? and as i see your pictures: the table seem to be pretty full of information. did you feed a complete song into it?
andrew aronson
4 years ago
attention to anyone who downloads this before i can fix, be advised triggering the gate for output will add the notes into the model again as training. hopefully i can get it fixed in the time i have left today
now