v1.4 — wireless mic, dictation and iCloud for the Mac. Your iPhone becomes a wireless microphone and dictation remote for LLT Desktop, with everything syncing to iCloud and a built-in viewer for your saved transcripts.
★ New in v1.4
iPhone as a wireless mic for LLT Desktop — stream your iPhone mic to the Mac over Wi-Fi and remote-start it in Translate or Dictate mode. A reliable replacement for Continuity.
Dictation mode — spoken text is typed straight into the focused app on the Mac (via the companion), or saved on the iPhone as a note: original, translation, or both.
iCloud sync — transcripts and dictation notes are stored in iCloud Drive (the “LLT Mobile” folder) so they appear on your Mac automatically.
Built-in TXT/SRT viewer — tap a saved file to read it; multi-select to share or delete.
v1.3 — Live outputs for streamers and gamers. Subtitles to OBS, VRChat and vMix straight from your iPhone or iPad, plus a fully customisable overlay applied live in the app and in OBS.
★ New in v1.3
OBS Browser Source overlay — host live subtitles on your local Wi-Fi for OBS on your PC. Add a Browser source in OBS pointing to the URL shown in the app. Works with any browser-source-capable software (Streamlabs, XSplit, vMix).
VRChat output (OSC) — send subtitles straight to the in-game chatbox over OSC, like Kikitan. Pick original, translation, or both. Test button + optional notification sound.
Fully customisable overlay look — background and text colour, opacity, and border, applied live in the app and in the OBS browser-source overlay.
Toggle the original text on or off — show it alongside the translation, or give the translation the full space.
v1.42.186 — feature release · the new Controller (CTRL) — a live control surface for audio groups, real-time Master/Bus levels, streaming, recording and the vMix outputs, built and tuned on a running vMix.
★ Controller — a live control surface
What it is. A new CTRL button in the timeline bar (same family as OVL/REP) opens a panel with five tabs — Groups · Audio Out · Stream · Output · Rec. Every button is an instantly-fired vMix action; with no vMix connection everything is cleanly disabled — no crash.
Groups — the real gap. vMix has no group fader that rides several inputs at once (think multiple callers whose audio doesn't follow the video). Build free groups from any inputs — keyed on the GUID, so they stay stable — and one fader fires SetVolume on all members at once. The set level is saved in the plan. Round volume knobs per group sit right next to CTRL in the timeline bar for quick access.
Sound on/off with fade. A per-group on/off toggle (mute to 0 / back to level) as a deterministic state toggle, with a free per-group fade time in ms (SetVolumeFade) — music bed 1500 ms, mic group 0 ms. Deliberately a level on/off, not vMix "mute", because the API mute is unreliable on call inputs.
Audio Out & live values. Master and Bus A–G as faders that show the real vMix levels and move live — even when levels are changed elsewhere (in vMix, on a hardware audio desk, a Stream Deck). Powered by the vMix TCP API (pushed in real time) plus a one-shot actual-value read on open/refresh so the faders are right from the first second. Pin Master or any bus into the timeline bar for constant access.
Stream / Rec / Output. Start/Stop per stream number (and "all"); Recording, External Output, MultiCorder and Fade-to-Black with live status dots and confirmation toasts. The Output matrix shows Fullscreen 1/2 and Output 1–4 with the currently active source (read from the vMix API XML), switchable for Fullscreen 1/2 and Output 2–4; NDI/OMT/SRT status shown as live LEDs.
⬡ Under the hood
Status and outputs are read from the vMix API poll that already runs — no extra load. Real-time levels come over a separate lean TCP push channel (event subscription, not polling) plus a single actual-value read on start/refresh.
Both Controller and Append are localized across all 19 program languages (German/English complete, the rest with English fallback).
v1.42.169 — feature release · build shows modularly. DP-Append merges several show modules into one running show — the same idea as vMix's bundle-append, now in Directors Plan.
★ DP-Append — add modules to a running show
What it does. Merge several DP show modules into one combined show without replacing the show you currently have loaded. Mirrors the vMix bundle-append workflow.
How you use it. A split Open ▾ button — primary click = Open (replaces the show as usual), the caret = Append. Keyboard shortcut ⇧⌘O (Open without Shift, Append with Shift). The file picker takes .dplan and .yaml and remembers the last folder used.
How it works. The module's cues are appended to the end of the running show — the active show, its file path and the history stay untouched. Every appended cue gets a new, collision-free ID and is tagged internally as "appended" (source = module name). The anchor is always the vMix input GUID (InputKey) — never number or title — so cues stay correctly matched after an append.
Live / Pending. Inputs that aren't in the vMix session yet are flagged PENDING — such a cue won't fire and shows a hint. Re-Scan inputs re-reads the vMix inputs and switches PENDING cues live.
Confirmation. On success you get "Module "{name}": {count} cues appended".
v1.42.168 — feature release · the v1.42.167 Instant Replay workflow now ships into the Companion / Stream Deck export, so the same three-call replay sequence fires from a hardware button.
★ New in this release
Replay pages in Companion / Stream Deck export. The export dialog gets a new vMix Instant Replay section. Tick Include Replay pages in export and the generated Companion config carries dedicated replay pages with one button per cam × time preset (Cam 1 -5s / -10s / -20s, Cam 2 …). Each button fires the same three-call vMix sequence as the in-app REP panel — select cam → mark the last N seconds → play to output.
Edition-aware grid. Choose 4 cams (4K edition) or 8 cams (Pro); the page fills only the rows it needs.
Position in the page deck. Drop the replay pages in at the top (First page(s)) or after the vMix pages, so they fit whatever Stream Deck layout is already in use.
One page series per preset. Optional toggle: generate one page per preset (Standard / Long / Quick) instead of just the currently-active one — the operator switches presets by flipping pages, no mode-toggle mid-show.
Stop + page-nav inline. Column 0 of each replay page reserves Next / Prev between replay pages and a red STOP button to halt replay playback — no jumping back to a different controller page.
Cam display names carried over. The cam labels from the DP app (e.g. "Robotic Wide", "Hand-Held 2", "Crane") render straight into the Stream Deck button captions, so the operator sees the same names live as in planning.
⬡ Under the hood
Export schema extended for the Replay command type — opens the door for HTML and CSV export to follow.
Companion config generation reuses the existing button-grid renderer; no second export path.
v1.42.167 — feature release · trigger vMix Instant Replay with a single click straight from the Directors Plan timeline, while auto-playback keeps running.
★ New in this release
Instant Replay panel from the timeline. New REP button right next to the existing OVL button in the timeline toolbar. One click opens a collapsible panel with all replay cameras side by side — four on the 4K edition, eight on Pro. Each cam has three time buttons (-5s -10s -20s); a click fires the full vMix replay sequence in one shot: select cam → mark the last N seconds → send to program. Three sequential API calls, one click, no switching out of DP.
Three time presets. The time buttons cycle through three predefined presets — Standard (5 / 10 / 20 s), Long (10 / 20 / 30 s), Quick (3 / 5 / 10 s). The active selection is remembered across sessions.
Recording toggle in the panel header. A REC indicator that doubles as a switch: grey to start recording, red to stop (with a safety confirm on stop so a running recording can't be killed by accident). Recording state is read live from the vMix XML — while recording is off, the cam buttons are cleanly greyed out with a hint, instead of firing into the void.
Keyboard for the fast hand. While the panel is open: ,./ fire the three preset times of the most-recently used cam, Esc stops replay playback. Cam selection by number keys is deliberately left out — 1–9 in DP are already bound to preview switching.
Edition-aware. The REP button only appears when the connected vMix instance can actually do Instant Replay (4K or Pro edition) and a Replay module is active. On HD, SD or Basic editions the timeline toolbar stays unchanged — no dead button, no confusion.
Runs alongside auto-playback. The replay workflow does not block the live show. While Directors Plan auto-plays the rundown, you can drop in a replay at any time without interrupting cue playback — vMix transitions back to the program automatically after the replay, and the plan keeps running.
⬡ Under the hood
vMix XML polling was extended with the replay block (lives inside the Replay input, not at the top level) — no second poller.
Edition is now correctly read as an XML child element (it was misinterpreted as an attribute before — a latent bug).
v1.42.166 — maintenance release · one fix; auto-updates on next launch.
⚠ Bug fixes
Auto-calc default on fresh installations. Timeline auto-calc was disabled by default on fresh installs due to a legacy config flag. It now works correctly out of the box.
v1.42.164 — major update · full Video List support, vMix 29 update, CSV rundown export, generic HTTP command, and surgical auto-playback control.
★ New in this release
Video List — full integration. vMix only exposes the duration of the currently active item in a Video List. Directors Plan now measures each item on demand (~200–300 ms per item) by briefly cueing it to Preview, then restores the original index. Durations persist in the plan and in mock files and feed the timeline, auto-playback waits, HTML/Companion exports, and Streamdeck button labels. Three measurement modes from the timeline right-click menu: single item, from-item-to-end, or full list — with a cancellable progress overlay and 5-second per-call timeout. Dedicated Commands Builder category with Select Video List, Video List Item (index + optional transition in one call), and Next / Previous Item. Drag & drop of single items or whole lists from vMix Controls. Right-click editing of index and transition on existing commands, with the cue duration recomputed immediately. ⏮ / ⏭ quick-action buttons on timeline thumbnails. All 19 UI languages updated.
vMix 29 compatibility. Stinger 1–8 (was 1–4) everywhere — Commands Builder, transport buttons, Settings default, auto-playback, timeline drops, CueEditor, Companion and HTML export. 16 overlay channels (was 8) with scrollable timeline popover and CH 1–16 cue-overlay assignments. Both overlay XML formats parsed in parallel so older vMix versions keep working.
CSV rundown export — for client sign-offs. Built for the review round with the customer: many clients cannot open HTML files (corporate security policies), while CSV opens and edits instantly in Google Sheets, Excel and Numbers.
Configurable columns — every column toggled by checkbox. Headers come out in the active app language (Pos, Length, Live/Graphic, Segment, Location, Technical Notes …) using the same i18n keys as the rest of the app.
Default ON:Pos / Length (combined into one cell — Pos on the first line, Length on the second; each also toggleable individually); Live/Graphic (segment header with the user-chosen column name, e.g. "Topic", "Segment", "Sport"); Content (cue description); Commands — all vMix / HTTP commands of the cue in readable form, each one on its own line inside the cell, line-break separators render as real blank lines (just like in the timeline). Examples: Cut: Camera 1, Item 3 (03_football.mp4) → Stinger3 · List 1, HTTP POST https://hooks.example.com/show-start.
Optional plan header above the cue table, each as its own block separated by a blank line: Basic Data (show, prod-no, version, date, from/to, length, plus all custom fields from "Basic Data Extra"), Schedule (multi-line), Contacts (all dynamic contact blocks with field labels and values).
Excel- and Sheets-compatible — UTF-8 with BOM so Excel renders umlauts, accents and Asian scripts correctly; separator selectable (comma — default / international / Google Sheets, or semicolon — for Excel with German locale where the comma is the decimal separator); CRLF line endings; proper quoting for values containing the separator, quotes or line breaks.
Generic HTTP Request command. New Special command to hit any HTTP endpoint — not just vMix. URL, method (GET / POST / PUT / PATCH / DELETE / HEAD), body with configurable Content-Type. Companion export carries it through as the matching HTTP action, runnable directly from a Streamdeck button. Useful for light desks with web APIs, info displays, Slack/Discord show-start webhooks, or third-party streaming gear.
Start from this cue — manual auto-playback override. Every cue row gets a small ▶ play button. First click arms it (orange + pulse, 5-second confirmation toast); second click stops any running auto-playback and starts immediately from that cue. While the cue is on program, the button turns green. Two-click gate prevents accidental jumps during live shows; the drag handle next to it stays fully functional.
Under the hood. 5-second HTTP timeout via a real AbortController (browsers ignore the timeout option.
Backwards compatible. Plans from v1.42.140 and older open without migration, conversion, or user action — all new fields are optional. Existing commands (Cut, Fade, Stinger 1–4, Overlay 1–8, SelectPlayList …) run unchanged; new command types appear only when you actively use them.
✦ Core features
Visual timeline with drag-and-drop rundown creation and frame-accurate playback
Full vMix integration — inputs, transitions, overlays, audio control
Live override with shortcuts and re-triggerable cues
Mock Mode for offline planning without vMix connection
Stream Deck / Companion 3 export with thumbnails
HTML, PDF & CSV call sheet / rundown export
Companion App export for mobile crew reference
20+ supported languages
30-day free trial — every feature unlocked, no credit card required
v1.6.3 — dramatically faster, more engines, more control. Performance was rebuilt from the ground up: recognition is noticeably snappier and the first sentence appears far sooner. Still 100% local. Auto-updates on next launch.
★ New local engine — Parakeet (now the default)
Parakeet (NVIDIA TDT v3, MLX, Apple Silicon) — a second, very fast local speech engine, now the default. Noticeably faster recognition, the first sentence appears far sooner.
Continuous streaming — text flows along live instead of only appearing at the end of a sentence.
Dedicated "Parakeet" tab with timing sliders — tune "pause response time" and "max. sentence length without pause" to your speaking style: speed vs. clean sentences.
Parakeet auto-detects the language; Whisper remains the multilingual, language-pinnable alternative — pick per task.
★ Dictation polish
Optional dictation polish — a local LLM cleans up punctuation and grammar of the dictated text (same language, no translation). Cleaner text, fully offline.
⬡ Overlay & output
Optional live preview — your spoken original runs live in the overlay; the translation fills in once the sentence completes. Fixed positions, no jumping.
Consolidated "Output" tab — overlay colors, OBS, vMix and VRChat in one place.
⬡ Setup & convenience
First-run onboarding — choose your audio source (Mac mic or iPhone over the network) plus a permissions checklist with live status.
Uninstaller for clean removal, and "Reset to defaults" in settings.
Smarter defaults: Parakeet as default, target language = system language, original shown in the overlay by default.
The OBS overlay URL now shows the LAN IP directly — easier OBS / browser-source setup.
v1.4.0 — Dictation, iPhone microphone & more. Speak straight into any app, use your iPhone as a wireless mic to remote-start the Mac. Auto-updates on next launch.
★ Dictation mode — speak straight into any app
Type into any app (⌘⌥D) — speak and the recognized (optionally translated) text is typed straight into whatever app has focus: Mail, Word, Notes, browser, editor. Global hotkey or the menu-bar menu. To type into other apps, macOS asks once for the "Accessibility" permission.
Choose content & mode — insert original only, translation only, or both; pick "Final" (completed sentences) or "Live" (types as you speak, self-correcting).
LocalAgreement — a streaming algorithm that brings smooth, flicker-free live typing even to fully local, 100% offline Whisper.
★ iPhone as a wireless microphone
With the free LLT Mobile app, your iPhone streams its mic to the Mac over Wi-Fi and can remote-start dictation or translation on the Mac — a reliable replacement for Continuity.
⬡ More
Automatic in-app backend update — an outdated backend is detected and updated safely, with automatic rollback and no new model downloads.
OBS / browser overlay & VRChat (OSC) — customizable overlay colors; long sentences are no longer truncated.
v1.2.5 — subtitles now go to OBS and VRChat, plus the fully customizable overlay. Auto-updates on next launch.
★ Subtitles now in OBS and VRChat too
OBS overlay (browser source) — LLT serves a transparent subtitle page; just add it in OBS via "Source → Browser" using the shown URL. Translations appear live in your stream, in the same style as the on-screen overlay.
VRChat output (OSC) — subtitles are written directly into the VRChat chatbox (like Kikitan). Choose whether to send the original, the translation, or both — including a test button and an optional notification sound.
⬡ Overlay improvements
Long translations are no longer truncated ("…"). Text now wraps and the overlay window resizes its height automatically.
Overlay colors are now fully customizable — background, text color, colored border and opacity. New, more visible default: semi-transparent light green with black text and a green border.
⚠ Bug fix
"Show Original Text" works correctly again and persists across restarts.
v1.2.3 · overlay improvements and a fix; auto-updates on next launch.
⬡ Overlay improvements
Long translations are no longer truncated ("…"). Text now wraps and the overlay window resizes its height automatically — everything stays readable, even with fast speakers.
Overlay colors are now fully customizable — background, text color, colored border and opacity (Settings → Display & Audio). New, more visible default: semi-transparent light green with black text and a green border.
⚠ Bug fix
"Show Original Text" now works correctly — the setting is respected and persists across restarts.
v1.2.2 — maintenance release · one fix; auto-updates on next launch.
⚠ Bug fixes
Transcript writing on cloud engines. TXT and SRT transcripts are now saved correctly when using the direct cloud engines (Google REST, Google gRPC, Deepgram, AssemblyAI, Azure). Previously the transcript file was not being written for these paths.
Live release — real-time speech translation, 100% local on Apple Silicon. Now with vMix Title Output, Google gRPC true-streaming STT, and the free LLT-Mobile iOS companion app.
★ New in this release
Google gRPC Streaming STT — new true-streaming path through the Python backend. Flow: audio → backend → Google gRPC STT (real streaming, no VAD required) → backend returns recognized text (skipTranslation: true, Mistral is skipped) → Swift calls Google Translate REST directly using the same API key → original + translation are displayed. Requires the backend running, google-cloud-speech installed in the Python venv, a Service Account JSON, and a Google API key for Translate. Restart the backend after enabling.
STT Engine matrix — seven engines, each pairing a speech-to-text source with a translation provider. Some run fully local, some call the cloud directly, some go through the backend:
Engine
STT
Translation
Backend?
Whisper
Whisper (local)
Mistral (local)
yes
Google REST
Google STT (direct)
Google Translate (direct)
no
Google gRPC
Google gRPC Streaming (via backend)
Google Translate (direct)
yes
Deepgram
Deepgram Streaming (direct)
Google Translate (direct)
no
AssemblyAI
AssemblyAI Streaming (direct)
Google Translate (direct)
no
Azure
Azure STT + Translation (direct, one call)
Azure
no
Vosk
Vosk (local, via backend)
Mistral (local)
yes
vMix Title Output — send translations directly to vMix as live title updates via the Web API. Includes Lower Third .xaml template
Smart Pause Detection (VAD) — waits for natural pauses, produces cleaner sentences and dramatically better translation quality. VAD is set automatically per engine — streaming engines detect pauses server-side.
Whisper Model Selection — 5 models (tiny / base / small / medium / large), download/switch/delete on demand
Network Access & LLT-Mobile — free iOS companion app: wireless mic or standalone audio source via Wi-Fi
✦ Core features
3 audio inputs: microphone, system audio, single-app audio (ScreenCaptureKit)
101 target languages with auto source-language detection
Live floating overlay, TXT transcript, SRT subtitle export
Text-to-Speech output, Auto-Gain, Manual Gain
Mistral 7B 4-bit MLX for local translation, on Apple Silicon (GPU + CPU)
Menu bar app — backend auto-start, status icon, popover control panel
5 UI languages: DE, EN, ES, FR, IT
14-day free trial, 30-day offline grace period after activation