Digital Larynx Companion Addon

Turn silent WoW quests into a fully voiced adventure! This addon syncs live quest text directly to the Digital Larynx app for instant, high-quality AI voice narration.
Back to Files

DigitalLarynxCompanionApp-v3.8.0.zip

File nameDigitalLarynxCompanionApp-v3.8.0.zip
Uploaded
Oct 16, 2026
Downloads
19
Size
12.8 KB
Flavors
MoP ClassicClassic TBCClassicTitan Reforged ClassicForeverRetail
File ID
9216690
Type
R
Release
Supported game versions
  • 12.1.7
  • 5.5.4
  • 4.4.2
  • 3.80.2
  • 3.4.5
  • 2.5.6
  • 1.60.1
  • 1.15.9

What's new

# Changelog — Digital Larynx Miner (WoW Addon)

All notable changes to `DigitalLarynxMiner` from first creation through the
current release. Versions follow the `## Version:` field in
`DigitalLarynxMiner/DigitalLarynxMiner.toc`.

The format is based on [Keep a Changelog](https://keepachangelog.com/).

---

## [3.8.0] — 2026-10-16

### Added
- `npc_id` parsed from `UnitGUID` (`Creature-…` / `Vehicle-…`) on
  `npc` / `questnpc` / `target` / `mouseover` / `focus`.
- `npc_id` stored on capture records and remembered in `DLMiner_NpcData`
  for demographic / voice-trait pipelines.

---

## [3.7.0] — 2026-10

### Added
- `DLMiner_Meta` SavedVariables block: `tocversion`, client version/build,
  addon version, and last-updated timestamp (via `GetBuildInfo()`).
- `DLMiner_NpcData` — persistent demographics keyed by NPC name.
- Per-capture fields: `sex` (`UnitSex`), `race` (`UnitRace`),
  `creature_type` (`UnitCreatureType`), `toc`, and open-pane `quest_id`
  (`GetQuestID()`), so Retail / Classic data can be partitioned and NPC
  speech can feed casting / voice traits.

---

## [3.6.1] — 2026-10

### Changed
- Packaging / auto-sync bump for the Digital Larynx app’s bundled addon
  copy (installer + launch-time version check). Feature set matches 3.6.0.

---

## [3.6.0] — 2026-10-14

### Added
- `QUEST_GREETING` capture via `GetGreetingText()`.
- Dedicated `DLMiner_GossipData` SavedVariables table keyed by NPC name
  (`gossip` / `greeting` lines with region, location, time, lastSeen, count;
  100 distinct texts per NPC; reopening bumps `count`).
- Gossip text from `C_GossipInfo.GetText` with `GetGossipText` fallback.

### Changed
- Gossip no longer appended to `DLMiner_AmbientLog` (legacy ambient gossip
  rows remain readable by the Script Miner).

---

## [3.5.0] — 2026-10

### Added
- `DLMiner_ErrorLog` SavedVariables diagnostics (timestamp, event, message,
  `debugstack()`, repeat `count`; newest 200 kept).
- Brief once-per-session chat notice:
  `[DL_ERROR]: <event>: <message> (stack in DLMiner_ErrorLog)`.
- Dungeon / instance quest ID fallbacks: quest-log selection when titles
  match, else title-derived surrogate keys (≥ 1e9, `surrogate = true`).
- Zone fallbacks: `GetZoneText` → `GetInstanceInfo` → `C_Map` map name,
  all guarded.

### Changed
- Capture handlers, barcode draw, and hide timer run under `xpcall`
  (no UI error popup; capture continues).

---

## [3.4.2] — 2026-10

### Changed
- `## Interface:` TOC bump for the current WoW Forever / classic beta
  client so the addon no longer flags as out of date.

---

## [3.4.1] — 2026-10

### Fixed
- Null-safety for `CHAT_MSG_MONSTER_YELL` / related broadcasts in
  instances: missing text skipped; missing sender → `Unknown Boss`.
- Secret / protected client values (`issecretvalue`) skipped safely with a
  one-time `[DL]` notice.

---

## [3.4.0] — 2026-10

### Added
- Protected execution (`pcall` / chat `[DL_ERROR]`) around monster /
  raid-boss capture and sanitization so a nil boss name or parse failure
  cannot crash the addon mid-instance.

---

## [3.3.0] — 2026-10

### Changed
- **Y-split data routing:**
  - Stream A (pixel barcode) — flattened raw text with the real player
    name / class / race for live TTS.
  - Stream B (SavedVariables) — same flatten plus `{Player}` / `{Class}` /
    `{Race}` scrub (`{Player}` case-insensitive, whole-word).

---

## [3.2.0] — 2026-10

### Added
- Full quest-phase capture:
  - `QUEST_DETAIL` → `text` / `speaker` (`GetQuestText`)
  - `QUEST_PROGRESS` → `progress` / `progress_speaker` (`GetProgressText`)
  - `QUEST_COMPLETE` → `completion` / `completion_speaker` (`GetRewardText`)
- Phases fill missing fields only; later windows never overwrite earlier
  dialogue.

---

## [3.1.0] — 2026-09/10

### Fixed
- Restored dual-path capture after the barcode pivot had dropped mining:
  - SavedVariables: `DLMiner_QuestData`, `DLMiner_AmbientLog`,
    `DLMiner_ItemData` (init only in `ADDON_LOADED` via `or {}`).
  - Persistence always runs first; barcode is `pcall(EmitBarcode, …)` so
    draw failures cannot block DB writes.
  - Hide/clear only toggles textures — never mutates stored strings.

---

## [3.0.0] — 2026-09/10

### Added
- Gamma-safe **pixel barcode** TTS bridge (replaces whisper routing):
  - `TOOLTIP` frame at `UIParent` `BOTTOMRIGHT`, 5×5 cells, 48 columns.
  - 3-bit pure R/G/B/C/M/Y/W/K palette.
  - Stream: `SYNC(M C Y W ×2)` + packed `[len16][payload][xor]`.
  - Payload: `[DL_TTS]::{Speaker}::{Text}`.
  - Auto-hide after 5 seconds (timer resets on a new payload).

### Removed
- Whisper / `SendChatMessage` self-route and chat-frame TTS emission.

---

## [2.1.0] — 2026-09

### Added
- Server-routed TTS via whisper-to-self with 255-byte chunking and index
  fractions for the external chat-log tailer.

---

## [2.0.0] — 2026-09

### Changed
- Pivot from passive SavedVariables-only mining toward a real-time TTS
  trigger: serialize captures as `[DL_TTS]::{Speaker}::{…}::{Text}` and
  emit to the default chat frame for external tailing.

---

## [1.2.0] — 2026-09

### Added
- `ITEM_TEXT_READY` capture → `DLMiner_ItemData` (title + body + place +
  time) for books, letters, and plaques (voiced as Narrator downstream).

---

## [1.1.0] — 2026-09

### Added
- Ambient NPC speech: `CHAT_MSG_MONSTER_SAY` / `YELL` / `EMOTE` (and later
  raid-boss emotes) → `DLMiner_AmbientLog`.
- Region / location context via `GetZoneText()` / `GetSubZoneText()`
  (early builds also kept `DLMiner_ZoneMap`; place is now stored on each
  capture row).
- Gossip window capture into the ambient log (later moved to
  `DLMiner_GossipData` in 3.6.0).

---

## [1.0.0] — 2026-09

### Added
- Initial `DigitalLarynxMiner` addon (`.toc` + `.lua`).
- `DLMiner_QuestData` SavedVariables capture on `QUEST_DETAIL` /
  `QUEST_PROGRESS`: quest id, title, body, NPC name, region / location.
- Export path:
  `WTF/Account/<Account>/SavedVariables/DigitalLarynxMiner.lua`
  for the Script Miner Lua ingester.

---

## SavedVariables at current release (3.8.0)

| Table | Role |
|-------|------|
| `DLMiner_QuestData` | Quest offer / progress / completion |
| `DLMiner_AmbientLog` | Monster say / yell / emote / raid-boss emote |
| `DLMiner_ItemData` | Books / letters / plaques |
| `DLMiner_GossipData` | Gossip + quest-greeting flavor (by NPC) |
| `DLMiner_ErrorLog` | Protected-call diagnostics |
| `DLMiner_NpcData` | Cached NPC demographics + `npc_id` |
| `DLMiner_Meta` | Client / addon version stamp |

## Interface support (current)

`## Interface: 16001, 120100, 120001, 40402, 11509` — multi-client TOC so
the same folder works across supported Retail / Classic / Forever builds.

This mod has no additional files