                                 (satisfy-deps :scope-group-created)))
 
 (defn- ensure-internal-server!
-  "Throws an exception if the server isn't internal - scope relies on fast
-  access to shared buffers with the server which is currently only available
-  with the internal server. Also ensures server is connected."
+  "Throws an exception if the server isn't internal - scope relies on
+  fast access to shared buffers with the server which is currently only
+  available with the internal server. Also ensures server is connected."
   []
   (when (server-disconnected?)
     (throw (Exception. "Cannot use scopes until a server has been booted or connected")))


(defn- update-scope-data
  "Updates the scope by reading the current status of the buffer and repainting.
  Currently only updates bus scope as there's a bug in scsynth-jna which crashes
  the server after too many calls to buffer-data for a large buffer. As buffers
  tend to be large, updating the scope frequently will cause the crash to happen
  sooner. Need to remove this limitation when scsynth-jna is fixed."
  [s]
  (let [{:keys [buf size width height panel y-arrays x-array panel]} s
        frames    (if @(:update? s) (buffer-data buf) @(:frames s))

         (.setAlwaysOnTop keep-on-top)))))

(defn scopes-start
  "Schedule the scope to be updated every (/ 1000 FPS) ms (unless the
  scopes are already running in which case it does nothing."
  []
  (ensure-internal-server!)
  (dosync
