 
   (let [mesg-p (recv "/b_info")
         _   (snd "/b_query" (buffer-id buf))
-        msg (await-promise mesg-p)
+        msg (await-promise! mesg-p)
         [buf-id n-frames n-channels rate] (:args msg)]
     {:n-frames n-frames
      :n-channels n-channels

    (loop [recvd 0]
      (if (= recvd len)
        samples
        (let [msg @(recv "/b_setn")
              ;_ (println "b_setn msg: " (take 3 (:args msg)))
              [buf-id bstart blen & samps] (:args msg)]
          (loop [idx bstart

   (let [ctls? (if (or (= 1 ctls?) (= true ctls?)) 1 0)]
     (let [reply-p (recv "/g_queryTree.reply")
           _ (snd "/g_queryTree" id ctls?)
          tree (:args (await-promise! reply-p))]
       (with-meta (parse-node-tree tree)
         {:type ::node-tree})))))

