trying to boil my method down further. hardly feels like composing music anymore, just kind of describe a vague structure and the rest falls in place. hopefully the comments help explain the process better.
# arbitrary settings, sounds nice to me
use_bpm 99
r = :f1 # root note
# drums n bass in the same loop
# doing an 8 beat pattern
live_loop :dnb do
# first 4 beats are basic
use_synth :tri
play r, release: 2.1
sample :bd_tek
sleep 2
sample :sn_dolf, amp: 0.5
sleep 2
# downbeat of 2nd bar
play r, release: 0.5
sample :bd_tek
# next 4 are random snare fills and bass runs using one_in
sleep 0.5
14.times do
play (chord r, :major7).pick, release: 0.3, on: (one_in 5)
sample :sn_dolf, amp: 0.3, beat_stretch: 0.2 + rand(0.8), on: (one_in 5)
sleep 0.25
end
end
# slicer on everything else to cut a hole on the downbeat for a bigger bass and kick
with_fx :slicer, phase: 4, pulse_width: 0.01, smooth_down: 0.02, smooth_up: 3.5, invert_wave: 1 do
with_fx :reverb, room: 0.9, mix: 0.8 do
# air is the very slow atttack, harmonic element that fills space
live_loop :air do
use_synth :mod_tri
use_synth_defaults mod_range: 0.4, mod_phase: 1/9.0, mod_phase_slide: 8, mod_wave: 2
# pick a random note from the scale, turn it into a big chord
n = play (chord (scale r+24, :major_pentatonic, num_octaves: 2).pick[0], :major, num_octaves: 2), attack: 6, amp: 0.5
sleep 1
# gradually slows the vibrato down
control n, mod_phase: 1
sleep 7
end
end
# a smaller reverb space than air
with_fx :reverb, room: 0.7, mix: 0.5 do
# arp is the melodic element, an arppeggio that occasionally reaches higher octaves
live_loop :arp do
32.times do
use_synth :mod_fm
# random params for weird modulations
use_synth_defaults divisor: 0.1+rand(0.6), release: 0.4, mod_phase: 1/(1.0+rand_i(3)), mod_wave: 2, mod_range: 0.5
# the random octave range is the melodic variation
play (chord r+24, :major7, num_octaves: 1+rand(3)).tick, amp: 0.01 + rand(0.5)
sleep 0.5
end
# reset to root note on downbeat
tick_reset
end
# splash on the downbeat to give it some sparkle
live_loop :splash do
sample :drum_splash_soft, amp: 0.3
sleep 8
end
# a hat to bring out a little syncopation
live_loop :hat do
sleep 1
sample :drum_cymbal_closed, amp: 0.7
sleep 1
end
end
end