Mercurial > cortex
diff org/test-creature.org @ 159:75b6c2ebbf8e
refactored audio code
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Fri, 03 Feb 2012 06:41:16 -0700 |
parents | 811127d79d24 |
children | 33278bf028e7 |
line wrap: on
line diff
1.1 --- a/org/test-creature.org Fri Feb 03 06:33:37 2012 -0700 1.2 +++ b/org/test-creature.org Fri Feb 03 06:41:16 2012 -0700 1.3 @@ -259,94 +259,6 @@ 1.4 1.5 1.6 1.7 -;; Ears work the same way as vision. 1.8 - 1.9 -;; (hearing creature) will return [init-functions 1.10 -;; sensor-functions]. The init functions each take the world and 1.11 -;; register a SoundProcessor that does foureier transforms on the 1.12 -;; incommong sound data, making it available to each sensor function. 1.13 - 1.14 -(defn creature-ears 1.15 - "Return the children of the creature's \"ears\" node." 1.16 - ;;dylan 1.17 - ;;"The ear nodes which are children of the \"ears\" node in the 1.18 - ;;creature." 1.19 - [#^Node creature] 1.20 - (if-let [ear-node (.getChild creature "ears")] 1.21 - (seq (.getChildren ear-node)) 1.22 - (do (println-repl "could not find ears node") []))) 1.23 - 1.24 - 1.25 -;;dylan (defn follow-sense, adjoin-sense, attach-stimuli, 1.26 -;;anchor-qualia, augment-organ, with-organ 1.27 - 1.28 - 1.29 -(defn update-listener-velocity 1.30 - "Update the listener's velocity every update loop." 1.31 - [#^Spatial obj #^Listener lis] 1.32 - (let [old-position (atom (.getLocation lis))] 1.33 - (.addControl 1.34 - obj 1.35 - (proxy [AbstractControl] [] 1.36 - (controlUpdate [tpf] 1.37 - (let [new-position (.getLocation lis)] 1.38 - (.setVelocity 1.39 - lis 1.40 - (.mult (.subtract new-position @old-position) 1.41 - (float (/ tpf)))) 1.42 - (reset! old-position new-position))) 1.43 - (controlRender [_ _]))))) 1.44 - 1.45 -(import com.aurellem.capture.audio.AudioSendRenderer) 1.46 - 1.47 -(defn attach-ear 1.48 - [#^Application world #^Node creature #^Spatial ear continuation] 1.49 - (let [target (closest-node creature ear) 1.50 - lis (Listener.) 1.51 - audio-renderer (.getAudioRenderer world) 1.52 - sp (sound-processor continuation)] 1.53 - (.setLocation lis (.getWorldTranslation ear)) 1.54 - (.setRotation lis (.getWorldRotation ear)) 1.55 - (bind-sense target lis) 1.56 - (update-listener-velocity target lis) 1.57 - (.addListener audio-renderer lis) 1.58 - (.registerSoundProcessor audio-renderer lis sp))) 1.59 - 1.60 -(defn enable-hearing 1.61 - [#^Node creature #^Spatial ear] 1.62 - (let [hearing-data (atom [])] 1.63 - [(fn [world] 1.64 - (attach-ear world creature ear 1.65 - (fn [data] 1.66 - (reset! hearing-data (vec data))))) 1.67 - [(fn [] 1.68 - (let [data @hearing-data 1.69 - topology 1.70 - (vec (map #(vector % 0) (range 0 (count data)))) 1.71 - scaled-data 1.72 - (vec 1.73 - (map 1.74 - #(rem (int (* 255 (/ (+ 1 %) 2))) 256) 1.75 - data))] 1.76 - [topology scaled-data])) 1.77 - ]])) 1.78 - 1.79 -(defn hearing 1.80 - [#^Node creature] 1.81 - (reduce 1.82 - (fn [[init-a senses-a] 1.83 - [init-b senses-b]] 1.84 - [(conj init-a init-b) 1.85 - (into senses-a senses-b)]) 1.86 - [[][]] 1.87 - (for [ear (creature-ears creature)] 1.88 - (enable-hearing creature ear)))) 1.89 - 1.90 - 1.91 - 1.92 - 1.93 - 1.94 - 1.95 ;; lower level --- nodes 1.96 ;; closest-node "parse/compile-x" -> makes organ, which is spatial, fn pair 1.97 1.98 @@ -415,14 +327,6 @@ 1.99 1.100 (vi image))))) 1.101 1.102 - 1.103 - 1.104 -;;(defn test-touch [world creature] 1.105 - 1.106 - 1.107 - 1.108 - 1.109 - 1.110 (defn test-creature [thing] 1.111 (let [x-axis 1.112 (box 1 0.01 0.01 :physical? false :color ColorRGBA/Red)