|
|
Line 15: |
Line 15: |
| ===Scripting Progress=== | | ===Scripting Progress=== |
|
| |
|
| =====Python : Script 2011-05-23 (not working)===== | | =====Python : Script 2011-06-08===== |
| <source lang="python"> | | <source lang="python"> |
| #!/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 tone
| |
| for t in enumerate(tones):
| |
| print t, tones[i+1]
| |
|
| |
| random.choice()
| |
|
| |
| #MIDGE
| |
| @head {
| |
| $time_sig 2/2
| |
| $tempo 120
| |
| }
| |
| @body {
| |
| @channel 1 {
| |
| $patch 1
| |
| $octave 4
| |
| $length 16
| |
| # tones here
| |
| }
| |
| }
| |
|
| |
| #MIDI FILE
| |
| #play with timidity
| |
|
| |
| </source> | | </source> |
|
| |
|
| =====Python : Script 2011-05-24 (working)===== | | =====Python : Script 2011-06-14===== |
| <source lang="python"> | | <source lang="python"> |
| #!/usr/bin/env python
| |
|
| |
| import random
| |
|
| |
| fugue = {}
| |
| fugue = {
| |
| "/l2/d4":["/l2/a4", "/l2/c+4"],
| |
| "/l2/a4": ["/l2/f4"],
| |
| "/l2/f4": ["/l2/d4", "/l8/f4"],
| |
| "/l2/c+4": ["/l4/d4"],
| |
| "/l4/d4": ["/l4/e4"],
| |
| "/l4/e4": ["/l2/f4"],
| |
| "/l8/f4": ["/l8/g4","/l8/e4"],
| |
| "/l8/g4": ["/l8/f4"],
| |
| "/l8/e4": ["/l2/d4"]
| |
| }
| |
|
| |
| #here we print / place the timidity structure
| |
| print """
| |
| @head {
| |
| $time_sig 4/4
| |
| $tempo 220
| |
| }
| |
| @body {
| |
| @channel 1 {
| |
| $patch 1
| |
| $octave 4
| |
| $length 16
| |
| """
| |
|
| |
| tone = "/l2/d4"
| |
| for x in range(64):
| |
| print tone
| |
| #this new variable tone is overwriting the old tone! => variable as empty bowl symbolism
| |
| tone = random.choice(fugue[tone])
| |
|
| |
| #here we print / place the timidity structure
| |
| print """
| |
| }
| |
| }
| |
| """
| |
| </source>
| |
| <source lang="php">
| |
| TERMINAL:
| |
|
| |
| natasa@natasa-linux:~/pzi/3_TRIMESTER/PROTOTYPING/20110524_fugue$ python fugue.py | midge
| |
| found 1 music tracks
| |
| midi output written to a.out.mid
| |
|
| |
| natasa@natasa-linux:~/pzi/3_TRIMESTER/PROTOTYPING/20110524_fugue$ timidity a.out.mid
| |
| Playing a.out.mid
| |
| Playing time: ~31 seconds
| |
|
| |
| natasa@natasa-linux:~/pzi/3_TRIMESTER/PROTOTYPING/20110524_fugue$ timidity -Ov a.out.mid
| |
| Playing a.out.mid
| |
| Output a_out.ogg
| |
| </source> | | </source> |
|
| |
| Voice 01 (Octave 3)
| |
| [[File:Fugue_01_20110530.ogg]]
| |
| <br />
| |
| Voice 02 (Octave 3)
| |
| [[File:Fugue_02_20110530.ogg]]
| |
| <br />
| |
| Voice 03 (Octave 3)
| |
| [[File:Fugue_03_20110530.ogg]]
| |
| <br />
| |
| Voice 04 (Octave 3)
| |
| [[File:Fugue_04_20110530.ogg]]
| |
| <br />
| |
|
| |
|
| ===Useful Links=== | | ===Useful Links=== |
| <span style="font-size:8pt"> | | <span style="font-size:8pt"> |
| http://en.wikipedia.org/wiki/The_Art_of_Fugue<br />
| | http://pzwart3.wdka.hro.nl/wiki/Turtle_Graphics |
| http://en.wikipedia.org/wiki/Piano_key_frequencies<br />
| |
| http://pzwart3.wdka.hro.nl/wiki/Poetry_generators<br /> | |
| http://pzwart3.wdka.hro.nl/wiki/Sedsongs#midge<br />
| |
| http://manpages.ubuntu.com/manpages/hardy/man1/midge.1.html<br />
| |
| http://piano.congland.com/<br />
| |
| </span> | | </span> |