Skip to content

Commit

Permalink
Use the new scsynth-clj libs
Browse files Browse the repository at this point in the history
  • Loading branch information
mozinator committed Apr 26, 2011
1 parent b1cb2e4 commit 7503d16
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 21 deletions.
4 changes: 3 additions & 1 deletion project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@
[overtone/byte-spec "0.2.0-SNAPSHOT"]
[overtone/midi-clj "0.2.0-SNAPSHOT"]
[org.clojars.overtone/vijual "0.2.1"]]
:dev-dependencies [[marginalia "0.2.0"]]
:dev-dependencies [[marginalia "0.2.0"]
[native-deps "1.0.5"]]
:native-dependencies [[overtone/scsynth-clj-native-deps "0.0.1-SNAPSHOT"]]
:jvm-opts ["-Xms256m" "-Xmx1g" "-XX:+UseConcMarkSweepGC"])
33 changes: 13 additions & 20 deletions src/overtone/sc/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
[java.net InetSocketAddress]
[java.util.regex Pattern]
[java.util.concurrent TimeUnit TimeoutException]
[java.io BufferedInputStream]
[supercollider ScSynth ScSynthStartedListener MessageReceivedListener])
[java.io BufferedInputStream])
(:require [overtone.log :as log])
(:require [scsynth :as scsynth])
(:use
[overtone event config log setup util time-utils deps]
[overtone.sc allocator]
Expand All @@ -33,6 +33,7 @@
(defonce server-thread* (ref nil))
(defonce server-log* (ref []))
(defonce sc-world* (ref nil))
(defonce sc-reply-cb* (ref nil))
(defonce status* (ref :disconnected))
(defonce synth-group* (ref nil))

Expand Down Expand Up @@ -129,19 +130,16 @@
(defn connect-internal
[]
(log/debug "Connecting to internal SuperCollider server")
(let [send-fn (fn [peer-obj buffer]
(.send @sc-world* buffer))
peer (assoc (osc-peer) :send-fn send-fn)]
(.addMessageReceivedListener @sc-world*
(proxy [MessageReceivedListener] []
(messageReceived [buf size]
(event :osc-msg-received
:msg (osc-decode-packet buf)))))

(dosync (ref-set sc-reply-cb*
(scsynth/make-reply-callback (fn [bb]
(event :osc-msg-received
:msg (osc-decode-packet bb))))))
(let [peer (assoc (osc-peer) :send-fn (fn [peerobj buf] (scsynth/send-packet @sc-world* @sc-reply-cb* buf)))]
(dosync (ref-set server* peer))
(setup-connect-handlers)
(snd "/status")))


(defn connect-external
[host port]
(log/debug "Connecting to external SuperCollider server: " host ":" port)
Expand Down Expand Up @@ -169,7 +167,7 @@
port are passed or an internal server in the case of no args."
([] (connect-internal))
([port] (connect "127.0.0.1" port))
([host port]
([host port]
(dosync (ref-set status* :connecting))
(.run (Thread. #(connect-external host port)))))

Expand Down Expand Up @@ -262,14 +260,9 @@
;; for external processes on a given port?
(defn- internal-booter [port]
(log/info "booting internal audio server listening on port: " port)
(let [server (ScSynth.)
listener (reify ScSynthStartedListener
(started [this]
(log/info "Boot listener...")
(satisfy-deps :booted)))]
(.addScSynthStartedListener server listener)
(dosync (ref-set sc-world* server))
(.run server)))
(dosync (ref-set sc-world* (scsynth/start "native/linux/x86_64/ugens"))) ;; FIXME!
(log/info "Boot listener...")
(satisfy-deps :booted))

(defn- boot-internal
([] (boot-internal (+ (rand-int 50000) 2000)))
Expand Down

0 comments on commit 7503d16

Please sign in to comment.