 (defn node-control*
   "Set control values for a node."
   [node name-values]
-  {:pre [(server-connected?)]}
+  (ensure-connected!)
   (let [node-id (to-synth-id node)]
               (apply snd "/n_set" node-id (floatify (stringify (bus->id name-values))))
               node-id))

(defn- group-append-node*
  "Add a synth node to the end of a group list."
  [group node]
  (let [group-id (to-synth-id group)
        node-id (to-synth-id node)]
  (snd "/g_tail" group-id node-id)))

  "Connect N controls of a node to a set of sequential control busses,
  starting at the given control name."
  [node start-control start-bus n]
  (ensure-connected!)
  (assert (bus? start-bus) "Invalid start-bus")
  (let [node-id (to-synth-id node)]
    (snd "/n_mapn" node-id (first (stringify [start-control])) (bus-id start-bus) n)))
