       (parse-node-tree-helper ctls?))))
 
 (defn- group-node-tree*
-  "Returns a data structure representing the current arrangement of groups and
-  synthesizer instances residing on the audio server."
+  "Returns a data structure representing the current arrangement of
+  groups and synthesizer instances residing on the audio server."
   ([] (group-node-tree* 0))
   ([id & [ctls?]]
    (let [ctls? (if (or (= 1 ctls?) (= true ctls?)) 1 0)]

  (to-synth-id [_] id))

(defn group
  "Create a new synth group as a child of the target group. By default creates
  a new group at the tail of the root group."
  ([] (group :tail (root-group)))
  ([position target] (group (alloc-id :node) position target))
  ([id position target]

    (snd "/n_mapn" node-id (first (stringify [start-control])) (bus-id start-bus) n)))

(defn- group-post-tree*
  "Posts a representation of this group's node subtree, i.e. all the
  groups and synths contained within it, optionally including the
  current control values for synths."
  [id & [with-args?]]
  {:pre [(server-connected?)]}
  (snd "/g_dumpTree" id with-args?))
