Audio Devices
MZAP supports three types of audio output devices. The device type is configured via settings before initialization.
DirectSound
Section titled “DirectSound”The legacy Windows audio API. Provides the widest hardware compatibility but highest latency.
- Use when: Maximum device compatibility is needed
- Latency: ~50-100ms
- Mode: Shared (other apps can use the device simultaneously)
WASAPI (Default)
Section titled “WASAPI (Default)”Windows Audio Session API — the recommended choice for most installations.
- Use when: Good balance of latency and compatibility is needed
- Latency: ~10-30ms
- Mode: Shared or Exclusive, chosen per device
- Buffer: Configurable, default 50ms
Audio Stream Input/Output — designed for professional audio hardware.
- Use when: Lowest latency and multi-channel I/O are required
- Latency: ~1-10ms
- Mode: Exclusive
- Inputs: ASIO input channels are available as audio capture sources
- Drivers: Requires ASIO-compatible hardware or ASIO4ALL
MZAP has full support for Audinate Dante audio-over-IP networks. Because Dante exposes itself to Windows as an ASIO device, you select it like any other ASIO interface and MZAP treats each Dante channel as a routable output or input channel.
The following Dante components are fully supported:
- Dante Virtual Soundcard (DVS) — up to 64×64 ASIO audio channels. Set MZAP's device type to ASIO and choose the Dante Virtual Soundcard driver. All 64 output channels become available for zones, and all 64 input channels become available as capture sources.
- Dante Via — route audio between applications and Dante devices on the same machine.
- Dante Controller — discover devices on the network and route MZAP's DVS channels to physical Dante endpoints (amplifiers, ceiling speakers, networked I/O boxes, etc.).
How it fits together
Section titled “How it fits together”- In MZAP, set the device type to ASIO and select the Dante Virtual Soundcard driver, then Initialize Devices.
- Create zones on the DVS channels you want to use — or use Create all zones to populate every free channel at once (see Bulk-create zones).
- Open Dante Controller and route MZAP's DVS transmit channels to the receive channels of your physical Dante devices. Routing is done entirely in Dante Controller's network matrix — MZAP simply plays into the DVS channels, and Dante carries the audio across the network.
Because DVS presents 64 channels, MZAP's high-channel-count handling applies — device cards, zone lists, and the routing grid stay manageable with filtering and folding.

Per-Device Output Mode
Section titled “Per-Device Output Mode”Each output device chooses its own WASAPI mode, so one machine can mix cards with opposite needs — a surround card on Exclusive for true 7.1, and another card left on Shared so Windows can still use it.
The device card in Audio Devices shows an Output mode selector:
- Shared (default) — the device coexists with Windows and other applications. On Windows 11 the system mixer may downmix 5.1/7.1 to the front pair.
- Exclusive — bypasses the Windows mixer for true discrete multichannel and the lowest latency, but locks the device from other apps (system sounds, browser audio) while MZAP uses it.
A device with no explicit choice keeps using the default (Shared), so existing setups are unchanged.
Exclusive mode requires Allow applications to take exclusive control of this device to be enabled on the endpoint in Windows — see Enabling WASAPI exclusive mode. If MZAP cannot get exclusive access at startup it falls back to Shared and the card shows a fallback warning rather than going silent.
Exclusive mode does not resample: MZAP probes the device for a supported exclusive sample rate (preferring the engine rate, then 48000, 44100, 96000, 88200, 192000) and runs the device mixer at that rate.
Turning Output Devices On and Off
Section titled “Turning Output Devices On and Off”Each output device card has an On/Off switch that tells MZAP whether to open that device at all. Devices that are off stay visible in the list — dimmed, with an Off badge — so you can switch them back on at any time.
This matters for sound cards that expose two output endpoints on one physical card. The Creative Sound Blaster Live! 24-bit External, for example, presents both a Speaker (5.1) endpoint and a SPDIF-Out (stereo) endpoint. Opening the unused second endpoint can make the driver collapse the whole card to stereo, silencing the multichannel speaker output. Switching the unused endpoint off keeps the card in full multichannel mode.
MZAP turns off "suspicious" zoneless siblings of a card already in use automatically; you can override the choice either way.
Devices with no zones mapped are not opened at all, so MZAP never locks or holds an output endpoint you are not using. Endpoints that are switched off can still appear as WASAPI loopback inputs (output-capture sources) — that is independent and unaffected.
Device Initialization
Section titled “Device Initialization”When you click Initialize Devices, MZAP:
- Initializes a silent internal device for stream operations
- Enumerates all devices of the configured type
- Filters out duplicate "Default" pseudo-devices
- Realizes your saved zones on the matching devices
- Starts the level metering service
Zones are user-defined rather than created one-per-channel automatically — see Zones and Players.
Hot-Plug Support
Section titled “Hot-Plug Support”MZAP detects when devices are connected or disconnected. Use Refresh Devices to re-enumerate without restarting the application.
Refresh is incremental — it no longer tears down and rebuilds the whole audio engine:
- Devices that are still connected, and any audio currently playing through them, are left completely untouched. There is no audio gap.
- Newly connected output devices are added and their zones are realized; newly connected input/loopback devices get input players created automatically.
- Disconnected output devices are removed; their zones go offline and routes to them are cleared. Disconnected input/loopback devices keep their input players as offline placeholders so routing and assignments survive a reconnect.
- When a device is (re)connected, the players and zones routed to it keep their saved volume and mute settings — a newly-added device no longer plays at full volume ignoring the muted state shown in the UI.
High-Channel-Count Devices
Section titled “High-Channel-Count Devices”The device, zone, and player-routing views scale cleanly to interfaces with many channels (e.g. a 64-channel Dante Virtual Soundcard):
- Device cards show the first 16 zone/input chips and fold the rest behind a "+N more" toggle, so cards stay a consistent height. Chips are ordered by hardware channel.
- The device detail Zones list and the player-routing zone grid gain a filter box and bounded-height scrolling once there are more than 16 zones.
- To create a zone on every free channel at once, use Create all zones on the device detail page — see Bulk-create zones.
Reordering Devices
Section titled “Reordering Devices”The Devices screen supports custom drag-and-drop ordering, matching the Players and Zones screens. Drag a card by its grip handle to reorder; output devices and input devices are reordered independently within their sections, and the chosen order is remembered with the workspace.
Non-Latin Device Names
Section titled “Non-Latin Device Names”Device and input names containing non-Latin characters (for example Cyrillic) display correctly. They are read from the audio engine as UTF-8.