   (letfn [(f [note]
             [(-> note (assoc :duration duration))
              (-> note (update :duration - duration) (update :time + duration))])]
-    (vary t f)))
+    (target t f)))
 
 (defn accent
   "Accent the pitch of the note at time t."
   [t]
   (letfn [(f [note] [(-> note (update :pitch dec))])]
-    (vary t f)))
+    (target t f)))
 
 (defn skip
   "Skip the note at time t."
   [t]
-  (vary t (constantly [])))
+  (target t (constantly [])))
 
 (defn rand-variations
   "Assemble an infinite random concatenation of variations."

;;;;;;;;;;;;;;

(def child
  (let [model (->> (rhythm [2/5 3/5 1/5 1/5 3/5]) (all :part :child))
        a (split 6/5 1/10)
        b (split 5/5 1/10)
        c (comp (split 17/15 2/15) (split 5/5 2/15) (skip 6/5))

    (part :mother model a b c d)))

(def father
  (let [model (rhythm [2/5 1/5 2/5])
        a (skip 2/5)
        b (skip 3/5)
        c (comp (split 0 1/5) a)
