comparison org/hearing.org @ 472:516a029e0be9

complete first draft of hearing.
author Robert McIntyre <rlm@mit.edu>
date Fri, 28 Mar 2014 18:14:04 -0400
parents 4f5a5d5f1613
children
comparison
equal deleted inserted replaced
471:f14fa9e5b67f 472:516a029e0be9
24 ** Brief Description of jMonkeyEngine's Sound System 24 ** Brief Description of jMonkeyEngine's Sound System
25 25
26 jMonkeyEngine's sound system works as follows: 26 jMonkeyEngine's sound system works as follows:
27 27
28 - jMonkeyEngine uses the =AppSettings= for the particular application 28 - jMonkeyEngine uses the =AppSettings= for the particular application
29 to determine what sort of =AudioRenderer= should be used. 29 to determine what sort of =AudioRenderer= should be used.
30 - Although some support is provided for multiple AudioRendering 30 - Although some support is provided for multiple AudioRendering
31 backends, jMonkeyEngine at the time of this writing will either 31 backends, jMonkeyEngine at the time of this writing will either
32 pick no =AudioRenderer= at all, or the =LwjglAudioRenderer=. 32 pick no =AudioRenderer= at all, or the =LwjglAudioRenderer=.
33 - jMonkeyEngine tries to figure out what sort of system you're 33 - jMonkeyEngine tries to figure out what sort of system you're
34 running and extracts the appropriate native libraries. 34 running and extracts the appropriate native libraries.
35 - The =LwjglAudioRenderer= uses the [[http://lwjgl.org/][=LWJGL=]] (LightWeight Java Game 35 - The =LwjglAudioRenderer= uses the [[http://lwjgl.org/][=LWJGL=]] (LightWeight Java Game
76 the only point in the sound rendering process where this data is 76 the only point in the sound rendering process where this data is
77 available. 77 available.
78 78
79 Therefore, in order to support multiple listeners, and get the sound 79 Therefore, in order to support multiple listeners, and get the sound
80 data in a form that the AIs can use, it is necessary to create a new 80 data in a form that the AIs can use, it is necessary to create a new
81 Device which supports this features. 81 Device which supports this feature.
82 82
83 ** The Send Device 83 ** The Send Device
84 Adding a device to OpenAL is rather tricky -- there are five separate 84 Adding a device to OpenAL is rather tricky -- there are five separate
85 files in the =OpenAL= source tree that must be modified to do so. I've 85 files in the =OpenAL= source tree that must be modified to do so. I've
86 documented this process [[../../audio-send/html/add-new-device.html][here]] for anyone who is interested. 86 documented this process [[../../audio-send/html/add-new-device.html][here]] for anyone who is interested.
821 ** Physical Ears 821 ** Physical Ears
822 822
823 Together, these three functions define how ears found in a specially 823 Together, these three functions define how ears found in a specially
824 prepared blender file will be translated to =Listener= objects in a 824 prepared blender file will be translated to =Listener= objects in a
825 simulation. =ears= extracts all the children of to top level node 825 simulation. =ears= extracts all the children of to top level node
826 named "ears". =add-ear!= and =update-listener-velocity!= use 826 named "ears". =add-ear!= and =update-listener-velocity!= use
827 =bind-sense= to bind a =Listener= object located at the initial 827 =bind-sense= to bind a =Listener= object located at the initial
828 position of an "ear" node to the closest physical object in the 828 position of an "ear" node to the closest physical object in the
829 creature. That =Listener= will stay in the same orientation to the 829 creature. That =Listener= will stay in the same orientation to the
830 object with which it is bound, just as the camera in the [[http://aurellem.localhost/cortex/html/sense.html#sec-4-1][sense binding 830 object with which it is bound, just as the camera in the [[http://aurellem.localhost/cortex/html/sense.html#sec-4-1][sense binding
831 demonstration]]. =OpenAL= simulates the Doppler effect for moving 831 demonstration]]. =OpenAL= simulates the Doppler effect for moving
832 listeners, =update-listener-velocity!= ensures that this velocity 832 listeners, =update-listener-velocity!= ensures that this velocity
833 information is always up-to-date. 833 information is always up-to-date.
834 834
835 #+name: hearing-ears 835 #+name: hearing-ears
836 #+begin_src clojure 836 #+begin_src clojure