Wiki

Clone wiki

ICST Ambisonics Plugins / Encoder_specification_v1

General

AmbiEncoder (ICST Ambisonics Encoder)

AmbiEncoder-Plugins comes with two versions, one as Mono-Encoder (Mono-Sources) and one as Multi-Encoder ( 32 x Mono-Sources). As with the AmbiDecoder plugin, there is one plugin for each Ambisonics order.

  • AmbiEncoder-Mono: AmbiEncoder_O1_1CH - AmbiEncoder_O7_1CH
  • AmbiEncoder-Multi: AmbiEncoder_O1_32CH - AmbiEncoder_O7_32CH

Input

  • A Mono Audio Signal for Mono-Encoder (e.g. AmbiEncoder_O1_1CH)
  • Up to 32 Mono Channels for Multichannel-Version (e.g. AmbiEncoder_O1_32CH)

Cartesian Coordinates: X/Y/Z for each Input channel as automation parameter

Output

B-format according to the following standards:

Distance Encoding

Distance encoding is based on: Martin Neukom - Ambisonics User Defined Opcodes for Csound. The radius of the unit circle around the coordinate origin can be defined (default 0.1). Therefore the distance is being scaled according to this radius:

scaledDistance = distance * (1 / unitCircleRadius)

The following gains are applied:

  • W-Channel: atan(scaledDistance * PI / 2) / scaledDistance * PI / 2
  • All other Channels: (1 - e^-d) * atan(scaledDistance * PI / 2) / scaledDistance * PI / 2

Colors

The color of the sound source is based on the leading number of the source name. Colors are predefined as:

  • 0: black
  • 1: blue
  • 2: dark green
  • 3: dark red
  • 4: magenta
  • 5: cyan
  • 6: dark blue
  • 7: dark grey
  • 8: dark orange
  • 9: dark grey
  • 10: green

For numbers > 10, modulo 11 is applied.

Encoder-Plugin settings

OSC General

Source-Position OSC-syntax:

  • /icst/ambi/source/aed [ChannelName] [Azimuth] [Elevation] [Distance]
  • /icst/ambi/source/xyz [ChannelName] [X] [Y] [Z]
  • Internal proprietary format for Encoder-Decoder-Communication

The parameters are defined as:

  • ChannelName: The name of the Source defined for the corresponding encoder-source
  • Azimuth: in Degrees 0...+360
  • Elevation: in Degrees -90...+90
  • Distance: Normalized 0...1 (not limited)
  • X: Normalized -1...+1
  • Y: Normalized -1...+1
  • Z: Normalized -1...+1

OSC Receive

If the flag is enabled (default: disabled) AmbiEncoder receives coordinates from the defined port.

* Example AED: /icst/ambi/source/aed "1" 317.190582 5.322339 0.688126
* Example XYZ: /icst/ambi/source/xyz "1" 0.508 -0.466 0.0064

OSC Send for AmbiEncoder --> AmbiDecoder communication

Internal proprietary format for Encoder-Decoder-Communication

Send OSC for external usage

Using the flag OSC Send for external usage, the source positions can optionally be sent as UDP OSC Messages (same syntax as input, defined above) for usage in external tools. Messages are triggered by position changes and the update rate is limited to 20Hz (50ms).

Orientation

  • Flip directions: flips the Y-axies in the AmbiEncoder. [Left / Right]

Updated