Summary

The DD8P is a multi-channel audio processor controlled over TCP via an embedded HTTP server accepting JSON request/response packets. Clients send HTTP GET to query state and HTTP POST to change settings. No authentication required.

Transport

protocols:
  - http
  - tcp
addressing:
  base_url: http://{device_ip}
auth:
  type: none  # inferred: no auth procedure in source

Traits

- queryable       # GET /info, /settings, /status, /input, /output, /channel, /pair
- routable        # input_mix / output_mix routing matrices
- levelable       # volume, trim_volume, bass_boost, treble_boost, limiter, hpf/lpf freq

Actions

- id: get_info
  label: Get Device Info
  kind: action
  params: []

- id: get_settings
  label: Get Settings
  kind: action
  params: []

- id: set_settings
  label: Set Settings
  kind: action
  params:
    - name: settings
      type: object
      description: Subset of settings object (max 512 bytes)

- id: get_status
  label: Get Status
  kind: action
  params: []

- id: get_input
  label: Get Input Settings
  kind: action
  params:
    - name: input_idx
      type: integer
      description: Input index 0-18

- id: set_input
  label: Set Input Settings
  kind: action
  params:
    - name: input_idx
      type: integer
      description: Input index 0-18
    - name: settings
      type: object
      description: "input_mix array or name"

- id: get_output
  label: Get Output Settings
  kind: action
  params:
    - name: output_idx
      type: integer
      description: Output index 0-7

- id: set_output
  label: Set Output Settings
  kind: action
  params:
    - name: output_idx
      type: integer
      description: Output index 0-7
    - name: settings
      type: object
      description: "mute, dim, volume, turn_on_volume, max_volume, limiter, output_mix"

- id: get_channel
  label: Get Channel Settings
  kind: action
  params:
    - name: channel_idx
      type: integer
      description: Channel index 0-7 (channels A-H)

- id: set_channel
  label: Set Channel Settings
  kind: action
  params:
    - name: channel_idx
      type: integer
      description: Channel index 0-7
    - name: settings
      type: object
      description: "trim_volume, volume, mute, bass_boost, treble_boost, hpf, lpf, delay"

- id: get_peq
  label: Get PEQ Band
  kind: action
  params:
    - name: channel_idx
      type: integer
      description: Channel index 0-7
    - name: band_idx
      type: integer
      description: PEQ band index 0-9

- id: set_peq
  label: Set PEQ Band
  kind: action
  params:
    - name: channel_idx
      type: integer
      description: Channel index 0-7
    - name: band_idx
      type: integer
      description: PEQ band index 0-9
    - name: settings
      type: object
      description: "enab, gain, freq, q"

- id: get_pair
  label: Get Channel Pair Settings
  kind: action
  params:
    - name: pair_idx
      type: integer
      description: Pair index 0-3

- id: set_pair
  label: Set Channel Pair Settings
  kind: action
  params:
    - name: pair_idx
      type: integer
      description: Pair index 0-3
    - name: settings
      type: object
      description: "mode"

Feedbacks

- id: device_info
  type: object
  description: "/info response"
  fields:
    device_type: string
    device_name: string
    mac: string
    ip: string
    app_version: string
    boot_version: string
    build: string

- id: settings_state
  type: object
  description: "/settings response - includes device_name, use_static_ip, static_ip, netmask, gateway, preset_settings_modified, loaded_preset, config_name, preset_names, auto_powerdown, green_mode"

- id: status_state
  type: object
  description: "/status response"
  fields:
    cfg_change_ctr: integer
    sig_present: array of boolean  # signal present per output
    sig_clip: array of boolean    # clip indicator per output
    trigger_in: integer

- id: input_state
  type: object
  description: "/input/INPUT_IDX response"
  fields:
    input_id: integer
    name: string
    input_mix: array of float  # routing mix coefficients

- id: output_state
  type: object
  description: "/output/OUTPUT_IDX response"
  fields:
    output_id: integer
    name: string
    mute: boolean
    dim: boolean
    volume: float  # dB
    turn_on_volume: float  # dB
    max_volume: float  # dB
    limiter: float  # dB threshold, 0 = disabled
    output_mix: array of float  # routing mix coefficients

- id: channel_state
  type: object
  description: "/channel/CHANNEL_IDX response"
  fields:
    ch_id: integer
    trim_volume: float  # dB
    volume: float  # dB
    mute: boolean
    bass_boost: float  # dB
    treble_boost: float  # dB
    hpf: object  # {mode: integer, freq: integer}
    lpf: object  # {mode: integer, freq: integer}
    delay: integer  # 48kHz samples, 0-720

- id: peq_state
  type: object
  description: "/channel/CHANNEL_IDX/peq/BAND_IDX response"
  fields:
    ch_id: integer
    band_id: integer
    enab: boolean
    gain: float  # dB
    freq: integer  # Hz
    q: float

- id: pair_state
  type: object
  description: "/pair/PAIR_IDX response"
  fields:
    pair_id: integer
    mode: integer

Variables

- id: auto_powerdown
  type: boolean
  writable: true
  description: Auto power-down enable (0=Off, 1=On)

- id: green_mode
  type: boolean
  writable: true
  description: Green mode enable (0=Off, 1=On)

- id: device_name
  type: string
  writable: true
  description: Device name, advertised to DHCP server

- id: use_static_ip
  type: boolean
  writable: true
  description: Use static IP instead of DHCP

- id: static_ip
  type: string
  writable: true
  description: Static IP address (aaa.bbb.ccc.ddd)

- id: netmask
  type: string
  writable: true
  description: Netmask (aaa.bbb.ccc.ddd)

- id: gateway
  type: string
  writable: true
  description: Gateway IP (aaa.bbb.ccc.ddd)

Events

# UNRESOLVED: no unsolicited event notifications described in source

Macros

# UNRESOLVED: no multi-step macros documented in source

Safety

confirmation_required_for: []
interlocks: []

Notes

  • TCP connection is single-session; server drops connection seconds after last activity. Poll ~once per second to keep alive.
  • POST messages must be < 512 bytes.
  • POST /settings responds with cfg_change_ctr for change detection.
  • Server supports persistent (keep-alive) TCP connections.

Provenance

source_domains:
  - lexicon.com
source_urls:
  - "https://www.lexicon.com/on/demandware.static/-/Sites-masterCatalog_Harman/default/dwa48ad2d8/pdfs/Lexicon DD-8P_IP Control_Protocol.pdf"
  - https://www.lexicon.com/on/demandware.static/-/Sites-masterCatalog_Harman/default/dwaf911684/pdfs/Lexicon_DD-8p_Network_and_Firmware_Guide.pdf
retrieved_at: 2026-05-21T05:56:02.857Z
last_checked_at: 2026-05-26T20:04:55.392Z

Verification Summary

verdict: verified
checked_at: 2026-05-26T20:04:55.392Z
matched_actions: 14
action_count: 14
confidence: medium
summary: "All 14 spec actions map cleanly to source endpoints; transport parameters verified; source command catalogue fully represented. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "port number not stated in source — device uses port 80 by default but explicit port not documented"
- "no unsolicited event notifications described in source"
- "no multi-step macros documented in source"
- "port number not stated — default HTTP port 80 typical but not confirmed in source"
- "power on/off commands not present in source — only auto_powerdown setting"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0