         ms-per-beat (/ ms-per-minute beats-per-minute)]
     #(+ start (* ms-per-beat %))))
 
-(defn from [timing offset] #(timing (+ offset %)))
-(defn speed-up [timing factor] #(timing (/ % factor)))
+(defn from [offset timing] #(timing (+ offset %)))
+(defn speed-up [factor timing] #(timing (/ % factor)))
 
 (def scale 56)
 (defn ground [note] (+ scale note))

(defn even-melody# [timing [note & notes]]
  (do
    (at (timing 0) (note# note))
    (let [next (from timing 1)]
      (if notes
        (even-melody# next notes)
        next))))

    (rhythm-n-bass# timing (take 8 (cycle progression))))

(defn first-bit# [timing]
    (even-melody# (speed-up 2 (from -1 timing)) (map ionian [2 4 5 4 4 2 4]))
    (even-melody# (speed-up 2 (from 7 timing)) (map ionian [-2 1 2 1 1 -2 1]))
    (even-melody# (speed-up 2 (from 15 timing)) (map ionian [-2 1 2 1 1 -2 1 2 3 4]))
    (even-melody# (speed-up 2 (from 23 timing)) (map ionian [-1 -2 -3 0 0 -3 0 1 0 -3]))
    (rhythm-n-bass# timing (take 8 (cycle progression))))

(defn play# [] (-> (bpm 150) intro# first-bit# first-bit#)) 

; (play#)
