Lavdeck icon

Lavdeck

A Mac menu bar app that shows the status of DJI Mic Series Mobile RX mics and controls their mode, gain and recording.

The name joins lav, short for lavalier mic, and deck, as in a mixing desk.

There’s no release yet, so build Lavdeck from source for now.

Written in SwiftOpen source (GPL-3.0)Makes no network connections

Lavdeck is an independent project. It isn’t made by DJI or affiliated with DJI.

Lavdeck’s deck recording two mics in stereo, next to the Recordings window with a two-speaker take and its transcript

Live status for both mics in the menu bar

Lavdeck is a free, open-source macOS app for the DJI Mic Series Mobile RX, a wireless mic receiver.

Plug the receiver into the Mac and the deck shows both transmitters, with each mic’s link state, live level, charging state and firmware. From the same window you switch the receiver between mono and stereo, set its gain from −12 to +12 dB, and record.

Lavdeck can record your screen and camera with the mics, keeps every take in a searchable Recordings window, and runs plugins for jobs such as transcription. It talks to the receiver directly over USB and sends it only four commands, each checked on the hardware: get version, get capabilities, set channel mode and set gain.

The deck

Click the menu bar icon to open the deck. Each transmitter has a channel strip, and the receiver’s controls are on the right.

  • The mic’s name. Click it to rename the mic. The name follows that physical mic whichever slot it links to.
  • ARMED or OFF. Only armed mics are recorded.
  • The link light, a 12-step level meter, Charging or the battery level the receiver reports, and the firmware version, marked when a mic’s firmware is older than the other’s.
  • The gain fader (−12, −6, 0, +6 and +12 dB), MONO and STEREO (TX1 on the left channel, TX2 on the right), SCREEN, CAMERA and Record.

In mono the receiver mixes both mics before the Mac sees them, so both meters show the mix. The footer shows the noise cancelling setting, which you set with the O, L and H switch on the receiver.

The deck: strips named Host and Guest, both armed and linked, with level meters, Host’s battery at High and Guest charging, firmware 02.03.17, the gain fader at 0 dB, stereo selected, SCREEN on and the Record button

Which mic is which?

Click Which mic is which? and talk into a mic. Its strip lights up and the banner names it. Click a strip’s name to label the mic while you’re there.

The receiver reports separate levels only in stereo, so Lavdeck switches the receiver to stereo while the banner is open and switches it back when you click Done, or after 45 seconds.

Identify mode: Host’s strip is outlined in green and the banner says That’s Host (TX1)

Recording

Start and stop a take with Record, with ⌥⌘R from any app, or by tapping the link button on either transmitter. While a take runs, each strip names the file it’s writing and the elapsed time is at the top.

Audio is 48 kHz WAV at 24 bits, or M4A (AAC at 256 kbps), in a folder for each day under ~/Recordings/Lavdeck unless you choose another. If you quit Lavdeck during a take, it stops the take and saves its files first.

ModeFiles
Stereo, both mics armed11.05.09 Stereo.wav, plus 11.05.09 TX1.wav and 11.05.09 TX2.wav (WAV only; the separate files can be turned off)
Mono11.05.09 Mix.wav
TX1 or TX2 armed alone11.05.09 TX1.wav (Lavdeck switches to stereo and keeps only that mic’s channel)
The deck while recording: red name plates for Host on the left and Guest on the right, each naming its file, the elapsed time 00:12:47 and SCREEN lit

Screen and camera

Switch on SCREEN, CAMERA or both before you record, and the take includes video.

  • The screen recording is the main display at 30 or 60 fps, in HEVC or H.264, with your apps’ sound as a second audio track if you want it. Lavdeck’s own windows and the camera preview are left out.
  • Your default camera records at its largest landscape size, up to 3840 pixels wide.
  • Video starts before the audio, so the picture covers the take from its first second, and Lavdeck notes where each file starts relative to the audio.
  • After the take, Lavdeck makes a picture-in-picture video: your screen with the camera in a corner, and the mic audio. Its corner, size and shape are in Settings › Video.

The Recordings window

The Recordings window lists every take with its date, length, a badge when it has video, its mics and the first words of its transcript. Sort by any column, filter to takes with video or with two speakers, and search transcripts, mic names and dates. Click a line of the transcript to play from there. Moving a take to the Trash moves all its files there, so Finder’s Put Back can restore it.

The Recordings window: 18 takes with their date, length, video badge, mics and the start of their transcript; the selected take shows its audio player, files and a Host and Guest transcript with timestamps

Plugins

A plugin is a folder with a plugin.json file and a program in any language, which reads a JSON request and reports progress and results as JSON lines. Lavdeck doesn’t ship a transcription plugin, so transcripts come from a plugin you install. Plugins are installed switched off, and a plugin runs as you, so install only plugins you trust. The protocol is in docs/PLUGINS.md.

KindWhat it does
EventRuns automatically when a take finishes, for example to transcribe it
ActionRuns on any take, old or new, from the Recordings window
CaptureRecords another source, such as a second camera, alongside the mics, lined up with the audio to the frame
AppAdds an Open in … button that opens the take in a companion app, such as an editor

Privacy and permissions

Plugins are separate programs, so check what a plugin does before you install it.

  • Lavdeck makes no network connections.
  • The microphone is on only between Record and Stop. The screen and camera are recorded only during a take, and only when SCREEN or CAMERA is on.
  • It builds its four receiver commands from a closed list and has no way to send anything else, so it can’t reach the receiver’s firmware-update channel. docs/PROTOCOL.md has the details.
  • Recordings stay in ~/Recordings/Lavdeck, or the folder you choose.
What Lavdeck keeps on your Mac
WhatWhere
Recordings, their .take.json and any video~/Recordings/Lavdeck, or the folder you chose
Settings, including mic names stored by Bluetooth ID~/Library/Preferences/io.github.piedol.lavdeck.plist
A line each time a transmitter’s charging state or battery code changes~/Library/Logs/Lavdeck/battery.log
Installed plugins~/Library/Application Support/Lavdeck/Plugins

Get Lavdeck

Builds will be on the releases page as Lavdeck-macOS-arm64.zip, signed and notarized. Until then, build Lavdeck from source.

Requirements

Receiver
DJI Mic Series Mobile RX
Mac
Apple silicon, macOS 15 or later
Connection
USB that carries data, directly or through a hub
To build it
Xcode 16 or later, or its Command Line Tools with Swift 6

Compatibility

Mobile RX with DJI Mic Mini transmitters
Tested
Mobile RX with Mic Mini 2, Mic 2 or Mic 3 transmitters
Likely; untested
Other DJI Mic receivers
Unknown; reports welcome

Lavdeck has been tested on macOS 26. It can’t update the mics’ firmware. The deck marks a mic whose firmware is older than the other’s, and you update it with DJI’s app.

Build from source

git clone https://github.com/piedol/lavdeck.git
cd lavdeck && scripts/build-app.sh
ditto build/Lavdeck.app /Applications/Lavdeck.app &&
  open /Applications/Lavdeck.app

scripts/build-app.sh signs the app with LAVDECK_SIGN_IDENTITY, a .signing-identity file or the first Developer ID Application certificate in your keychain. Without any of these it signs ad hoc, and macOS asks for the microphone, camera and screen recording again after every build. Any identity in your keychain avoids that, including the free Apple Development certificate Xcode makes for your Apple Account.

First launch

  1. Plug in the receiver and click the menu bar icon.
  2. macOS asks for the microphone the first time you record.
  3. It asks for the camera, and for Screen & System Audio Recording, when you first switch on CAMERA or SCREEN. Quit and reopen Lavdeck once after allowing screen recording.
  4. To start Lavdeck when you log in, turn on Open at login in Settings › General.

Lavdeck has no Dock icon. To remove it, follow Uninstall in the README.

Frequently asked questions

Is Lavdeck free and open source?

Yes. Lavdeck is free to download and use, and its source code is on GitHub under the GNU General Public License v3.0 or later.

Which DJI receivers work with Lavdeck?

The DJI Mic Series Mobile RX. It’s tested with DJI Mic Mini transmitters. Mic Mini 2, Mic 2 and Mic 3 transmitters are likely to work but untested, and other DJI Mic receivers are unknown.

Which Macs does Lavdeck support?

Macs with Apple silicon on macOS 15 or later, with the receiver on a USB connection that carries data, directly or through a hub.

Does Lavdeck connect to the internet?

No. Lavdeck makes no network connections, and your recordings stay in ~/Recordings/Lavdeck or the folder you choose.

How do I install Lavdeck?

For now, build it from source with Xcode 16 or later, or its Command Line Tools with Swift 6. Downloads will be on the releases page.

Is Lavdeck affiliated with DJI?

No. Lavdeck is an independent project. It isn’t made by DJI or affiliated with DJI, and it contains no DJI code.

License

Lavdeck is free software under the GNU General Public License v3.0 or later. Issues and pull requests are welcome on GitHub, especially from people with other DJI receivers or transmitters.

Use it anywhere, including at work, and read, change and share the source. If you distribute a modified version, release its source under the same license.

Lavdeck uses only Apple’s frameworks and contains no DJI code.