Graham Wakefield's Ambisonic externals

Version 7 (Nils Peters, 09/08/2009 12:19 am)

1 1
h1. Graham Wakefield's Ambisonic externals
2 1
3 1
h1. Summary
4 1
5 1
* Description: Ambisonic encoding, rotating and decoding up to 3rd order. For two or three dimensional speaker arrays.
6 1
* Developer: Graham Wakefield (based on CSL Signal Processing Library)
7 1
* Version: March 2006
8 1
* Platform: MaxMSP
9 1
* OS: MacOS, Windows
10 1
* License: ?
11 1
* Status of this entry: in progress
12 1
13 1
14 1
15 1
h1. Parameter definition
16 1
17 1
h2. Coordinate system convention
18 1
19 6 Nils Peters
* Cartesian Coordinates: [[Proposed coordinate systems|Mathematical System]]
20 6 Nils Peters
* Spherical Coordinates: [[Proposed coordinate systems|Blauert / Gerzon System ]]
21 1
22 1
h2. Parameter describing a sound source
23 1
24 1
* Ambisonics encoding is done in ambi.encode~ (for 1 source) or in ambi.encoden~ (for multiple sources)
25 1
26 1
|_. *parameter* |_. *description*|_. *data format*|_. *range*|_. *initial state*|_. *unit*|_. *example*|_. *misc*|
27 1
| azimuth #  | azimuth for the #th source | float |   |   | radians (default), can be changed with initial argument or angles message  | azimuth 0 3.14 | #-index starts with 0  |
28 1
| elevation #  | sets the elevation angle for the #th source | float |   |   | radians (default), can be changed with initial argument or angles message  | elevation 0 0.1 | #-index starts with 0  |
29 1
| angles | sets units for azimuth and elevation | string | radians, degrees | radians | NA |   |    |
30 1
|   | angle format | string | radians, degrees | radians | NA | ambi.encode~ degree | initial argument  |
31 1
|   | dimension  | string | 2D, 3D | 2D  | NA | ambi.encode~ 3D | initial argument  |
32 1
|   | number of sources | int | 1..16 |   | NA | ambi.encoden~ 16 | initial argument for ambi.encoden~  |
33 1
34 1
h2. Parameter describing a virtual space
35 1
36 1
* none
37 1
38 1
h2. Parameter describing the position of loudspeakers
39 1
40 1
* Loudspeaker positions are set in ambi.decode~
41 1
42 1
|_. *parameter* |_. *description*|_. *data format*|_. *range*|_. *initial state*|_. *unit*|_. *example*|_. *misc*|
43 1
| speaker_radians # | position of the #th speaker  | int float float |   | equally spaced horizontal rig | radian | speaker_radians 0 -0.392699 0. | #-index starts with 0  |
44 1
| speaker # | position of the #th  | int float float |   | equally spaced horizontal rig | degree | speaker 0 -45 -45 | #-index starts with 0  |
45 1
|   | number of speakers | int | 1 .. 32 | 2 | NA | ambi.decode~ 6 | initial argument  |
46 1
| gain | global gain | float |   |   | linear gain | gain 1.0 |    |
47 1
|   | dimension | string | 2D, 3D  | 2D | NA | ambi.decode~ 3D | initial argument  |
48 1
49 1
h2. Ambisonics specific parameter
50 1
51 1
|_. *parameter* |_. *description*|_. *data format*|_. *range*|_. *initial state*|_. *unit*|_. *example*|_. *misc*|
52 2 Nils Peters
|   | encoding order | string | 1st, 2nd, 3rd | 1st | NA | ambi.encode~ 1st 2D degree |    | 
53 1
|   | decoding order | string | 1st 2nd, 3rd | 1st | NA | ambi.decode~ 3rd 2D |    |
54 1
| weights | decoder weights | list of max. 4 floats | 0...1.0 |   | linear | weights 0.7 1. 0.6 0.53 |    |
55 1
|   | decoder weights presets  | string, or list of max 4 floats | none, default, in-phase, max-re | default | NA | ambi.decode~ 2D 3rd in-phase 8 | can be also initial argument  |
56 1
| width | mono/spatial balance | float | ? | 0.5 | ? | width 0.5 | to be applied in ambi.decode~  |
57 2 Nils Peters
| tilt or pitch | transform around x-axis | float | 0...360 / 0 .. 2π | can be set as initial argument | degree or radians (default) | tilt 90. | to be applied in ambi.rotate~  |
58 2 Nils Peters
| rotate or yaw | transform around z-axis | float | 0...360 / 0 .. 2π | can be set as initial argument | degree or radians (default) | rotate 45. | to be applied in ambi.rotate~  |
59 2 Nils Peters
| tumble or roll | transform around y-axis | float | 0...360 / 0 .. 2π | can be set as initial argument | degree or radians (default) | roll 3.14 | to be applied in ambi.rotate~  |
60 1
61 1
h1. Projects, sound, and music
62 1
63 7 Nils Peters
* a large portion of the source code of these externals was used for the "cosm":http://www.allosphere.ucsb.edu/cosm/ project by Wesley Smith and Graham Wakefield
64 1
65 1
h1. Media 
66 1
67 3 Nils Peters
!http://redmine.spatdif.org/attachments/13/screenshot.gif!
68 1
69 1
h1. References
70 1
71 1
* Wakefield, G. (2006). Third-Order Ambisonic Extension for Max/MSP with Musical Applications. In Proceedings of the 2006 International Computer Music Conference, pages 123 – 126, New Orleans, US.
72 1
* Pope, S.T. and Ramakrishna, C. (2003) The CREATE Signal Library ("Sizzle"): Design, Issues and Applications. In Proceedings of the 2003 International Computer Music Conference, Singapore.
73 1
74 1
h1. External Links
75 1
76 4 Nils Peters
*  http://www.grahamwakefield.net/soft/ambi~/index.htm
77 1
*  "CREATE Signal Library (CSL)":http://fastlabinc.com/CSL/index.html