Manuals

ADM OSC Support

What is ADM OSC?

ADM OSC is based on the Audio Definition Model (ADM), an international standard defined by the ITU and EBU for describing object-based audio. Instead of working with fixed channels, ADM represents audio as individual objects with metadata such as position (azimuth, elevation), level, width, and identity. This makes ADM the foundation for modern immersive audio formats used in broadcast, live production, and spatial audio workflows.

With ADM OSC, this object-based metadata is transmitted in real time using the Open Sound Control (OSC) protocol. This allows external systems—such as mixing consoles, automation systems, or show control software—to control KLANG audio objects dynamically, using ADM-style semantics, without embedding ADM metadata into audio files.

For a detailed technical description of ADM, refer to the official EBU documentation:
https://tech.ebu.ch/publications/adm

How to use it with KLANG

With KOS 5.8+ KLANG processors are ADM compatible directly. The first mix is controlled by ADM messages that are sent to the KLANG processor’s IP address on port 9110

KLANG listens on port 9110.
KLANG replies to queries on port 9111.
(This is currently not adjustable)

The most simple way to try out ADM OSC with KLANG:

  1. Start KLANG:app
  2. Start CONFIG > Offline Editor
  3. Switch to Mix 1
  4. Make sure Channel 1 is visible
  5. Open KLANG:app > CONFIG > INFO > Set Menu > Send Custom OSC
    • IP: processor (this will automatically assign the processor IP and use the correct port 9110)
    • OSC Address: /adm/obj/1/elev
    • Argument: f = Float
    • Value: 10

Supported Commands

Syntax

/adm/obj/<chNumber>/<parameter>

<chNumber> is the channel number of mix to be controlled, e.g. a value in the range 1–128

DescriptionOSC ParameterTypeRangeComment
Azimuth/azimf float–180…180 (wraps around if outside range)90 is on the left, 0 in front
Elevation/elevf float–90…900 is on horizon, +90 on top
Gain (linear, not in dB!)/gainf float0…3.16
Name/names string
Mute/mutei integer0 = mute OFF, all other values = mute ON

Queries

If no argument attached, this is handled as a request and the value is returned, e.g. /object/1/azim, KLANG responds with /object/1/azim f 45.0

Full List of Commands

OSC AddressArgumentsRangeKLANGNotes
/adm/obj/n/azimfloat−180…180°rx0° = front, +90° = left, −90° = right
/adm/obj/n/elevfloat−90…90°rx0° = horizon, +90° = top
/adm/obj/n/distfloat0…1rxReceived and clamped; not used in KLANG rendering
/adm/obj/n/aed3 × floatsee azim/elev/distrxPacked azimuth, elevation, distance
/adm/obj/n/xfloat−1…1rx−1 = left, +1 = right
/adm/obj/n/yfloat−1…1rx−1 = back, +1 = front
/adm/obj/n/zfloat−1…1rx−1 = bottom, +1 = top
/adm/obj/n/xy2 × float−1…1rxPacked X, Y (horizontal)
/adm/obj/n/xyz3 × float−1…1rxPacked X, Y, Z
/adm/obj/n/gainfloat0…≈3.16rxLinear (not dB); capped at ≈+10 dB
/adm/obj/n/muteint0 / non-0rx0 = unmuted, any non-zero = muted
/adm/obj/n/namestringrxObject label
/adm/obj/n/wfloat0…1Not implemented (query returns 0.0)
/adm/obj/n/dreffloat0…1Not implemented (query returns 1.0)
/adm/obj/n/dmaxfloatNot implemented (query returns 1.0)
/adm/env/changestringNot implemented
/adm/lis/xyz3 × float−1…1Not implemented (listener position)
/adm/lis/ypr3 × float−180…180°Not implemented (listener orientation)
ADM-OSC messages supported by KLANG (KOS 5.8+). rx = received and acted on; all rx rows also answer the no-argument query form. n = channel 1–128.

Still Have Questions?

Contact us here