diff --git a/auto-techno.py b/auto-techno.py index c3f17e0..d429a3e 100644 --- a/auto-techno.py +++ b/auto-techno.py @@ -36,7 +36,7 @@ minSwing = 0 maxSwing = 0.1 # force everything to happen within 1 bar -oneBar = random.choice([0,1,1,1,1,1]) +oneBar = random.choice([0,1]) # style - techno, electro styleChoices = ["techno","techno","electro"] @@ -174,7 +174,8 @@ print("-- hex seed: "+seed) print("-- decimal seed: "+str(decimalSeed)) print("-- style: "+str(style)) print("-- generated at "+str(time.time())) -print("-- "+scriptName+" v"+str(version)) +print("-- created with "+scriptName+" v"+str(version)) +print("-- by Chris Beckstrom - chrisbeckstrom.com") print("") @@ -618,7 +619,7 @@ def stut(): stut REPEATS VOLUME TIME """ # choose how many repeats - repeats = random.choice([1,1,1,1,1,1,2,2,2,3,3,3,4,4,4,4,4,5]) + repeats = random.choice([1,1,1,1,1,1,2,2,2,3,3,3]) time = random.choice([0.125,0.125,0.125,0.0625,0.0625]) return("stut "+str(repeats)+" 1 \""+str(time)+"\"") @@ -718,7 +719,7 @@ cpPats=["[~t]*2","[t(3,8)]","[[~~~t][~t]]*2","[~t~t]","[~t~t]","[[~~~t]~~~]"] cyPats=["[t*4]","[t*8]","[t~~~]","[t~~[~~~t]]","[~~~]"] # a collection of misc rhythms -rhythmLibrary = ["[1*4]","[1*8]","[1*16]","[01]*2","[0101]","[1*16]","[1*16?]","[111111[1001][01]]/2","[{100}%16]","[{101011010101}%16]","[{10100}%16]","[{10001}%16]","[{10101}%16]","[{1001010}%16]","[{1011010}%16]","[{10101000100}%16]","[{10101001010}%16]","[{10010010010}%16]","[{1010101001010}%16]","[{1001001001010}%16]","[11*2]*4","[100000<0100>000100<01>00]","[1[10000001]]","[1111*2]","[[0001][01]]*2","[0010000100000001]","[[0001][01]]*2","[[01]1[1001][01]]","[[01]1[1001][0001]]","[11000010]*2","[[0001]000]","[[0001]]*4"] +rhythmLibrary = ["[1*4]","[1*8]","[01]*2","[0101]","[1*16]","[1*16?]","[111111[1001][01]]/2","[{100}%16]","[{101011010101}%16]","[{10100}%16]","[{10001}%16]","[{10101}%16]","[{1001010}%16]","[{1011010}%16]","[{10101000100}%16]","[{10101001010}%16]","[{10010010010}%16]","[{1010101001010}%16]","[{1001001001010}%16]","[11*2]*4","[100000<0100>000100<01>00]","[1[10000001]]","[1111*2]","[[0001][01]]*2","[0010000100000001]","[[0001][01]]*2","[[01]1[1001][01]]","[[01]1[1001][0001]]","[11000010]*2","[[0001]000]","[[0001]]*4"] ############### It's assemble time!! ################### @@ -726,6 +727,7 @@ print("do") #print("") # create "let" statements +print(indent+str(bpm)) print(indent+"let fourToTheFloor = 1 -- set to 0 to hear it") print(indent+" -- extra stuff") print(indent+" extraCP = \"[0]\"") @@ -757,7 +759,7 @@ for i in range(1,8): # a list of things to do to patterns to make them more interesting # these happen BEFORE struct, note, etc. #interestingThings = [stut(),bite(),"rev",scramble(),offset()] -interestingThings = [stut(),"rev",scramble(),offset(),degrade()] +interestingThings = [stut(),"rev",scramble(),offset(),degrade(),"rev",degrade()] def funThings(): wholeEnchilada = "" # add between 1 and 4 "fun" things @@ -838,9 +840,9 @@ for i in percNames: # change the rChoice weights based on style if (style == "techno"): - rChoice = random.choice([0,0,0,0,0,0,0,0,0,2,2,2,2,3,3,3,3,3,3,3,3,3,4]) + rChoice = random.choice([0,0,0,0,0,0,0,0,0,2,2,2,2,3,3,3,3,3,3,3,3,3]) else: # style == "electro" - rChoice = random.choice([1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,2,4]) + rChoice = random.choice([1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,2]) rhythm = "" # placeholder for the rhythm if (rChoice == 0): @@ -1072,7 +1074,7 @@ for i in range(padCount): pads = "["+ random.choice(padNotesList)+","+random.choice(padNotesList)+","+random.choice(padNotesList)+","+random.choice(padNotesList)+"]"+str(pads) # should we even play the pads? - if (random.randint(0,10) > 2): + if (random.randint(0,10) > 1): print(indent+indent+"degradeBy 0 ") else: print(indent+indent+"degradeBy 1 ") diff --git a/deleteme.tidal b/deleteme.tidal index 00397c9..ed23594 100644 --- a/deleteme.tidal +++ b/deleteme.tidal @@ -1,11 +1,14 @@ --- raw input: 1431850643693044900 --- hex seed: 0x13DEF492FCBD04A4 --- decimal seed: 1431850643693044900 --- style: techno --- generated at 1633801547.93 --- Auto-Techno Generator v0.1.3 +-- raw input: 1233355034973181724 +-- hex seed: 0x111DC1DEA584171C +-- decimal seed: 1233355034973181724 +-- style: electro +-- generated at 1633814060.65 +-- created with Auto-Techno Generator v0.1.3 +-- by Chris Beckstrom - chrisbeckstrom.com + do + setcps (98/60/4) let fourToTheFloor = 1 -- set to 0 to hear it -- extra stuff extraCP = "[0]" @@ -21,113 +24,122 @@ do cymbalM = "[1111]" p "techno" -- fills - $ whenmod 16 14 (bite 4 "{4}%4") - $ whenmod 32 30 (bite 2 "{0}%2") - $ whenmod 32 30 (rev) - $ whenmod 32 31 (scramble 8) - $ whenmod 32 31 (scramble 4) - $ whenmod 16 14 (bite 2 "{0}%2") + $ whenmod 8 7 (scramble 4) + $ whenmod 64 63 (scramble 4) + $ whenmod 64 63 (bite 4 "{4}%4") + $ whenmod 16 14 (bite 2 "{4}%2") $ stack [ -- four to the floor mask "t" - $ degradeBy "<1 0 0 1 0 0 1 1>/8" + $ degradeBy "<0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0>/8" $ degradeBy fourToTheFloor $ struct "[t*4]" $ n "0" # midichan 0, -------------- kick --------------- mask kickM - $ every 9 (stut 1 1 "0.125") - $ every 7 (scramble 8) - $ every 8 (rev) - $ struct "<[{10101001010}%16]>" - $ n 9 - # gain "{0.9 1 0.85 0.9 1 0.85}%16" - # midichan 0, + $ degradeBy "<0 0 0 0 0 0 0 1>/8" + $ every 10 (degradeBy 0.02) + $ every 16 (rev) + $ every 8 (degradeBy 0.02) + $ struct "<<[1000 0010 0000 0110][1000 1010 0010 0000]> <[1000 0010 0010 0100]>>" + $ n 10 + # gain "{0.9 0.9 1 0.9 1 0.9}%16" + # midichan 0 # sustain 0.001 # release 0.02, -------------- hh --------------- mask hhM - $ every 16 (degradeBy 0.64) - $ struct "<[t(4,16)]>" - $ n 12 - # gain "{0.85 0.85}%16" + $ struct "<[{0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0}%16]>" + $ n 2 + # gain "{0.9 1 0.9 0.85 0.9 1 1 1 1 0.9}%16" # midichan 1, -------------- sd --------------- mask sdM - $ degradeBy "<0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0>/8" - $ every 10 (stut 1 1 "0.125") - $ every 15 (degradeBy 0.64) - $ every 9 ((0.1875 ~>)) - $ struct "<<[0000 0000 0000 0000][0000 0000 0000 0000][0000 0000 0000 0000][0000 0010 0000 1000]>>" - $ n 11 - # gain "{0.85 0.9 1 0.9 0.85 1 0.85 0.85 1 1 0.9 1 1}%16" + $ every 12 (degradeBy 0.02) + $ every 3 ((0.1875 ~>)) + $ every 13 (degradeBy 0.02) + $ struct "<<[0000 1000 0000 1001][0100 1000 0000 1000]>>" + $ n 15 + # gain "{0.85 0.85 1 0.85 0.9 0.9 0.9}%16" # midichan 2, -------------- rim --------------- mask rimM - $ struct "<[{0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0}%16] [{10101001010}%16]>" - $ n 9 - # gain "{0.85 1 1 0.9 1 0.85 1 1 0.85}%16" + $ degradeBy "<0 0 1 0 1 0 0 0>/8" + $ every 15 (rev) + $ every 2 (degradeBy 0.87) + $ every 11 (scramble 8) + $ struct "<[{001001000}%16]>" + $ n 6 + # gain "{0.85 1 1 0.85}%16" # midichan 3, -------------- cp --------------- mask cpM - $ degradeBy "<0 0 0 0>/8" - $ every 16 (scramble 8) - $ every 14 (rev) - $ struct "<[{1011010}%16]>" - $ n 2 - # gain "{0.9 1 0.85 0.9 0.85 0.9 0.9 1 0.9 0.85}%16" + $ degradeBy "<0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0>/8" + $ struct "<[{00000000}%16]>" + $ n 11 + # gain "{1 1 0.9 0.85 1 0.9 0.85 1 0.85 1 1 0.85 0.85 0.85}%16" # midichan 4, -------------- tom --------------- mask tomM - $ degradeBy "<0 0 0 0>/8" - $ every 13 (rev) - $ every 3 (degradeBy 0.64) - $ struct "<[1*16]>" - $ n 10 - # gain "{0.9 0.9 1 0.85 0.85}%16" + $ degradeBy "<0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0>/8" + $ every 6 ((0.1875 ~>)) + $ every 11 (rev) + $ every 3 ((0.1875 ~>)) + $ (0.1875 ~>) + $ struct "<[{00000}%16]>" + $ n 14 + # gain "{0.85 1 1 1 0.85 1 0.85 1}%16" # midichan 5, -------------- ride --------------- mask rideM - $ every 2 (rev) - $ every 16 (rev) - $ every 9 (degradeBy 0.64) + $ every 6 (degradeBy 0.02) + $ every 9 (rev) + $ every 4 (degradeBy 0.02) $ (0.125 ~>) - $ struct "<[{1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0}%16]>" - $ n 12 - # gain "{1 0.9 1 0.85 0.85 1 1}%16" + $ struct "<[{0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0}%16]>" + $ n 13 + # gain "{1 0.9 0.85 0.9 0.85 0.9 0.9 0.9 0.9 1}%16" # midichan 6, -------------- cymbal --------------- mask cymbalM - $ degradeBy "<0 0 0 0>/8" - $ every 13 (rev) + $ degradeBy "<0 1 0 0 0 0 0 0>/8" + $ every 11 (degradeBy 0.87) + $ every 12 (degradeBy 0.87) + $ every 10 ((0.1875 ~>)) $ (0.1875 ~>) - $ struct "<[{0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0}%16]>" - $ n 10 - # gain "{0.9 0.85 1}%16" + $ struct "<[{000000000}%16]>" + $ n 1 + # gain "{1 1 1 1 0.85 0.85 0.85 0.9 1}%16" # midichan 7, - ------------ bassline ------- + ------------ bassline {{{ACID MODE}}}------- degradeBy 0 - $ struct "[{10011}%16]" - $ n "[{3 0 1 11 16 4 4 18 }%16]" + $ struct "[{0011110010111111}%16]" + $ n "[{9 11 22 9 6 5 5 10 2 1 21 21 3 0 2 9 }%8]" # midichan 10 + n (-24), + --------- bassline filter cutoff ---- + struct "[t*16]" $ ccn 20 # ccv "{21 42 19 72 64 3 48 77 65 69 36 67 2 16 72 52}%16" # midichan 10, ------------ pad ------- degradeBy 0 - $ degradeBy "<1 0 0 0 0 1 1 1>/8" - $ struct "[{0010001000100000}%16]" - $ n "<[18,1,4,3]>/4" + $ struct "[{1011110111111110}%16]" + $ n "<[6,9,6,6]>/2" # midichan 11 + n (0), --------- MIDI CC's --------------- stack [ - struct "[t*2]" $ ccn 0 # ccv "{28 101 2 33}%2", - struct "[t*4]" $ ccn 1 # ccv "{23 27}%4", - struct "[t*1]" $ ccn 2 # ccv "{12 100 95 67}%1", - struct "[t*1]" $ ccn 3 # ccv "{17 14}%1", - struct "t*1" $ ccn 4 # ccv "{0}%1", - struct "[t*4]" $ ccn 5 # ccv "{31 0 7 23 28 26 85}%4", - struct "[t*5]" $ ccn 6 # ccv "{94 101 104 88 54 112 110 114 87 41 44 55 93 66 119}%5", - ccn 126 # ccv 4] # midichan 15, + struct "[t*3]" $ ccn 0 # ccv "{0 107 70 70 49 107 59 24 54 85 33 34 51 87 15}%3", + struct "[t*3]" $ ccn 1 # ccv "{111 106 126 78 8 69 24 118 119}%3", + struct "[t*1]" $ ccn 2 # ccv "{117 13 119 116 116 2 61 81 42}%1", + struct "t*1" $ ccn 3 # ccv "{0}%1", + struct "[t*3]" $ ccn 4 # ccv "{124 100 81 42 126 124 94 94 51 66 94 10}%3", + struct "t*1" $ ccn 5 # ccv "{0}%1", + struct "[t*3]" $ ccn 6 # ccv "{3 34 127 55 52 49 2}%3", + ccn 126 # ccv 112] # midichan 15, ------- bass patch ---- - struct "t" $ ccn 101 # ccv 100 # midichan 10, + struct "t" $ ccn 101 # ccv 30 # midichan 10, ------- pads patch ---- - struct "t" $ ccn 102 # ccv 127 # midichan 11, + struct "t" $ ccn 102 # ccv 60 # midichan 11, -- EXTRA STUFF --- stack [ (# gain extraCP) $ struct "[~ t ~ t]" $ n "0", (# gain extraHH) $ struct "[~t~t~t~t]" $ n "1"] # midichan 12 ] # sunvox + +hush + + +d1 $ struct "t*4" $ n "0" # midichan 0 # sunvox # sustain 0.5 diff --git a/test.tidal b/test.tidal index 8a92109..7779977 100644 --- a/test.tidal +++ b/test.tidal @@ -22,6 +22,7 @@ some seeds I've liked: seed: -2138151558308434562 82408580741001929 -- cool bassline 1432897721833003170 -- very chill, cool, rolling +1513084529762492334 -- a little aphex-twin-like, interesting chords in the background setcps = (18/60/4)