     :else 1))
 
 (defn end-sound! [pid]
-  (when (contains? (deref person-sound) pid) (o/ctl (get-sound pid) :gate 0)
-  	(println "Left: " pid)
-  	(remove-person-sound! pid)))
+  (let [instrument (get @person-sound pid)
+        instrument-symbol (inst-name-getter instrument)
+        gate-name (ctl-names instrument :gate)]
+    (when (contains? (deref person-sound) pid) (o/ctl (eval instrument-symbol) gate-name 0)
+          (println "Left: " pid)
+          (remove-person-sound! pid))))
 
 (defn reset-atom [current-people]
   (when (seq current-people) (end-sound! (ffirst current-people)) (reset-atom (rest current-people))))

;; Rhythm
;; - Basic metronome for the first person
;; - Second metronome in phase when they're close together, drifting as they move apart

        (overtone.sc.ugen-collide/* mod-rate-ctl)
        (o/free-verb verb verb verb))))

(defn ctl-names
  "I take an instrument (type - :overtone.studio.inst/instrument) and a keyword parameter (ex: :freq)
   ane destructure the generated control values (ex: :freq > freq__20280__auto__).

   I return the generated control value.

   Example: (ctl-names (get @person-sound 1) :amp) => :amp__20282__auto__"

  [instrument parameter]

  (if-let [instrument-symbol (inst-name-getter instrument)]
    ;; If the instrument doesn't exist, it will return nil and not execute the rest of the closure.

    (let [ctl-data (o/ctl (eval instrument-symbol)) ;; Grab the control data map
          {params :params} ctl-data                 ;; Grab the parametrs from the control data
          [freq gate amp verb mod-rate] params      ;; Destructure the parameters
          gensym-keymap {:freq (freq :name)
                         :gate (gate :name)
                         :amp (amp :name)
                         :verb (verb :name)
                         :mod-rate (mod-rate :name)}]

      (keyword (gensym-keymap parameter)))))

(defmacro sound-returner [drone]
  "I take a sound's name as defined using clojure.spec and call the definst macro to generate an instrument on the fly
