User:Natasa Siencnik/prototyping/markov: Difference between revisions

From XPUB & Lens-Based wiki
Line 20: Line 20:
import random
import random


nexttone = {}
fugue = {}
nexttone = {"l2/d3":["l2/a3", "l2/c+3"],  
fugue = {"l2/d3":["l2/a3", "l2/c+3"],  
l2/a3: ["l2/f3"],  
l2/a3: ["l2/f3"],  
l2/f3: ["l2/d3", "l8/f3"],  
l2/f3: ["l2/d3", "l8/f3"],  

Revision as of 10:56, 24 May 2011


The Art of the Fugue

MARKOV CHAIN WITH J.S. BACH

Concept

Scetchbook2011-02 markov.jpg

Scetchbook2011-01 markov.jpg

Scripting Progress

Python : Script 2011-05-23
#!/usr/bin/env python

import random

fugue = {}
fugue = {"l2/d3":["l2/a3", "l2/c+3"], 
l2/a3: ["l2/f3"], 
l2/f3: ["l2/d3", "l8/f3"], 
l2/c+3: ["l4/d3"], 
l4/d3: ["l4/e3"], 
l4/e3: ["l2/f3"], 
l8/f3: ["l8/g3","l8/e3"], 
l8/g3: ["l8/f3"], 
l8/e3: ["l2/d3"]}

# start with first / one tone (KEY) in the dictionary
# look in the list of the KEY to find next possibilities
# pick a random VALUE from the list that belongs to the key
# asign this next tone to start this loop again

# variable tones
for t in enumerate(tones):
    print t, tones[i+1]

random.choice()

#MIDGE
@head {
    $time_sig 2/2
    $tempo 120
}
@body {
    @channel1 {
        $patch 1
        $octave 4
        $length 16
        # tones here
    }
}

#MIDI FILE
#play with timidity


#l2/d3: ["l2/a3", "l2/c+3"]
#l2/a3: ["l2/f3"]
#l2/f3: ["l2/d3", "l8/f3"]
#l2/c+3: ["l4/d3"]
#l4/d3: ["l4/e3"]
#l4/e3: ["l2/f3"]
#l8/f3: ["l8/g3","l8/e3"]
#l8/g3: ["l8/f3"]
#l8/e3: ["l2/d3"]
Python : Script 2011-05-24

Useful Links

http://en.wikipedia.org/wiki/The_Art_of_Fugue

http://pzwart3.wdka.hro.nl/wiki/Poetry_generators

http://pzwart3.wdka.hro.nl/wiki/Sedsongs#midge

http://manpages.ubuntu.com/manpages/hardy/man1/midge.1.html

http://piano.congland.com/