#Generative Music, by Ray LC. #in sonic pi. #Synthesis. #play ##| play :c ##| sleep 1 ##| play :e ##| sleep 1 ##| play :g #fast attack ##| play 60, attack: 0.7, release: 4 #fast release. ##| play 60, attack: 4, release: 0.7 #figs_synthADSR01 ##| play 60, attack: 0.1, attack_level: 1, decay: 0.2, decay_level: 0.3, ##| sustain: 1, sustain_level: 0.4, release: 0.5 #figs_synthADSR02 ##| play 60, attack: 0.1, attack_level: 0.1, decay: 0.2, decay_level: 1, ##| sustain: 0.5, sustain_level: 0.8, release: 1.5 #Sampling. #sample ##| sample :ambi_drone ##| print sample_duration :ambi_drone ##| sample :ambi_lunar_land, rate: -4 #sample duration ##| sample :loop_amen, attack: 0.75, release: 0.75 ##| print sample_duration :loop_amen ##| sample :drum_cymbal_open, attack: 0.01, sustain: 0, release: 0.1 ##| sample :loop_amen, start: 0.6, finish: 0.4 #beat ##| sample :drum_cymbal_open ##| 10.times do ##| use_random_seed 0 ##| 5.times do ##| sample :drum_cymbal_open, attack: 0.01, sustain: 0, release: 0.1 ##| sleep [0.25, 0.5, 1].choose ##| end ##| end #using randomality ##| loop do ##| sample :perc_bell, rate: (rrand 0.125, 1.5) ##| sleep 1 ##| sleep rrand(0.2, 2) ##| end #random cutoff ##| use_synth :tb303 ##| loop do ##| play 50, release: 0.1, cutoff: rrand(60, 120) ##| sleep 0.125 ##| end #loops ##| 4.times do ##| play 50 ##| sleep 0.5 ##| end #looping within loops. ##| 4.times do ##| sample :drum_heavy_kick ##| 2.times do ##| sample :elec_blip2, rate: 2 ##| sleep 0.25 ##| end ##| sample :elec_snare ##| 4.times do ##| sample :drum_tom_mid_soft ##| sleep 0.125 ##| end ##| end #effecs ##| with_fx :reverb do ##| with_fx :echo, phase: 0.5, decay: 8 do ##| play 50 ##| sleep 0.5 ##| sample :elec_blup ##| sleep 0.5 ##| play 62 ##| end ##| end #Data structures. #array ##| p1 = [:c3, :e3, :g3] ##| play p1 ##| play chord(:E3, :minor) ##| play_pattern_timed chord(:E3, :m7), 0.25 ##| play_pattern_timed p1, 0.5 ##| play_pattern_timed (scale :c3, :major_pentatonic, num_octaves: 3), 0.125, release: 0.1 #live loops ##| live_loop :basshard do ##| use_synth :tb303 ##| sample :drum_bass_hard, rate: rrand(0.5, 2) ##| play choose(chord(:e3, :minor)), release: 0.2, cutoff: rrand(60, 130) ##| sleep 0.25 ##| end #ring basics ##| p1 = (ring :c3, :e3, :g3, :a3) ##| 20.times do ##| play p1.look ##| sleep 0.25 ##| play p1.tick ##| sleep 0.5 ##| end ##| p1 = (ring :c3, :b3, :a3, :g3, :c3, :e3, :g3, :a3) ##| live_loop :main1 do ##| use_synth :pulse ##| play p1.tick, cutoff: 60, sustain: 0.05 ##| sleep 0.25 ##| end ##| live_loop :main2 do ##| use_synth :prophet ##| play p1.tick, cutoff: (line 40, 120, steps: 100).reflect.look, release: 0.5 ##| sleep 0.25 ##| end #osc ##| live_loop :eeg do ##| use_real_time ##| sig = sync "/eegattention" ##| print sig ##| synth :prophet, note: a ##| end