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 |