TDMUSIC · progress briefing
← Back to briefing
PROGRESS · 7 SEPTEMBER 2026 · DESIGN → PROOF → NEXT

How Lilt is designed, and how we will know it worksLilt 是怎么设计的,以及我们如何知道它有效

Signal → rules → feedback → rights, then the pilot that decides. Diagrams first; text only where a detail needs it.信号 → 规则 → 反馈 → 版权,再到决定一切的试点。图为主,文字只作说明。

Sources: progress update (PDF) · dissertation draft, 121 pp · decision engine · app/RECOMMEND_BRIEF.md · research/ML_RESEARCH_DESIGN.md · figures as of 7 Sep 2026.

🧭
Phase阶段
Test · half in

Empathize · Define · Ideate closed · Prototype shipped测试做了一半 · 前三阶段已关闭 · 原型已上线

🚦
Verdict判定
NOT YET

3 of 5 gates cleared · pilot not run5 道门槛过了 3 道 · 试点未跑

📱
App应用
v0.5.1

web installable · App Store 1.0 build 4 in review网页版可安装 · App Store 审核中

Pending待做
3 tests

legal check · E0 calibration · E1 pilot法务核查 · E0 校准 · E1 试点

/ 01Design · signal · rules · feedback · rights

🔀1a · One finding split the product一个发现把产品劈成两半

SURVEY v2 · n = 134 · "WHICH WOULD YOU CHOOSE?" 😰 Acute moment real song 24 % engineered neutral sound 76 % 🌙 Evening wind-down real song 47 % neutral 53 % McNemar χ² = 14.29 · p < .001 · the founding assumption reversed for the acute moment BLIND STIMULUS TEST acute → neutral 10 / 13 wind-down → real 9 / 13 two groups · same direction SETTLE · acute mode · engineered neutral sound no melody · lyrics · beat · adapts silently · no rights needed UNWIND · wind-down mode · real, artist-linked music 69 tracks · Spotify / owned / SoundCloud · Like · Slower · Next

Figure 1. Survey n = 134 + blind test 13 → the pivot rule fired (A1a 0.08). Pipeline output with a simulated flag; fieldwork replaces it in one pass.问卷 n = 134 + 盲听 13 人 → 转向规则触发(A1a 0.08)。目前为管线输出(模拟标记),实地数据到位后一次替换。

Acute moment 急性时刻 · Evening wind-down 晚间放松 · real song 真实歌曲 · engineered neutral sound 工程化中性声音 · blind stimulus test 盲听测试 · Settle 急性模式 · Unwind 放松模式

💓1b · How it knows what sound you need它怎么知道你需要什么声音

THE ADAPTIVE LOOP · SETTLE MODE · RULE TABLE v0 (SHIPS WITH THE PILOT) ⌚ Watch · heart rate every 1–5 s · ±6 % accelerometer 50 Hz 🧹 Clean motion mask · hold on jumps quality < 0.70 → flagged 📏 Your own baseline learned over 3 sessions → residual vs your usual 📋 Rule table · 60 s fell ≥ 2 bpm → step down rose ≥ 3 bpm → hold 🔊 Audio engine tempo · brightness density · pulse the listener · lag under 5 s · no number shown during the session START PULSE = f(START HEART RATE) · "START NEAR THE LISTENER, THEN LEAD DOWN" HR ≥ 90 bpm→ 66-bpm pulse · dense→sparse HR 75–90 bpm→ 60-bpm pulse HR < 75 bpm→ 56-bpm pulse Guardrailsfloor 50 bpm · no sharp onsets · −16 LUFS

Figure 2. Heart rate is the live signal; HRV is before/after only. The step is taken on the residual from your own baseline (learned over 3 sessions). Every 60 s: fell ≥ 2 bpm → step down · rose ≥ 3 bpm → hold. Same rules drive T2 in the pilot.心率是实时信号,HRV 只做前后对比。每一步都基于相对你自己基线(前 3 次学习)的残差。每 60 秒:降 ≥ 2 bpm → 再放慢放暗;升 ≥ 3 bpm → 保持。试点里的 T2 用同一套规则。

Watch 手表心率 · Clean 清洗(运动屏蔽 · 质量指数)· Your own baseline 你自己的基线 · Rule table 规则表 · Audio engine 音频引擎(速度 · 亮度 · 密度 · 脉冲)· Start pulse 起始脉冲 · Guardrails 护栏

🎵 Unwind · how a track is chosen放松模式 · 怎么选歌
moment fit时刻匹配wind-down / sleep-onset · 1 · .6 · .15× heart-rate band心率区间same 1 · one slower .8 · faster .35× your tag affinity你的标签偏好−1 … +1 per tag, from your feedback× novelty新鲜度played < 24 h ×.25 · < 7 d ×.7× quality音质human-QA'd 1 · else .8 · posterior ±.3= best in-band track first同区间最优先播weighted shuffle after · never the same artist twice

69 tracks · 53 slow piano · one "why this track" line ≤ 60 characters.69 首曲子 · 53 首慢钢琴 · 每次推荐附一句 ≤ 60 字的"为什么是这首"。

🔁1c · Feedback, and how it improves反馈,以及怎么越用越好

👍
Like喜欢 +0.25

on the track's tags · music keeps playing该曲标签加分 · 音乐不换

Skip跳过 −0.35

next from a different cluster · twice skipped → ×0.2下一首换簇 · 跳两次 → 权重 ×0.2

🐢
Slower更慢 constraint

next track slower (≥ 2 bpm) or darker · also when heart rate falls下一首必须更慢或更暗 · 心率下降时同样生效

📈
Outcome结果 +0.15

calm score up ≥ 2 after a track → its tags gain听完平静度升 ≥ 2 → 该曲标签加分

HOW IT IMPROVES · FROM ONE RULE TABLE TO A SYSTEM THAT KEEPS LEARNING (research/ML_RESEARCH_DESIGN.md §4–5) NOW · E1 · pilot 📋 Rule table v0 deterministic · published per-user tag affinity from taps E2 · 100+ users 👥 Hierarchical model which variants settle heart rate faster per moment · pooled E3 · per person 🎯 Contextual bandit Thompson · exploration ≤ 15 % worse arm suspended per user E4 · the engine 🤖 AI generates variants keeps winners, retires the rest human listening gate first

Figure 3. Composite reward (heart rate + self-report) · offline evaluation before any online change · E0–E1 belong to this phase, E2–E4 follow PROCEED.复合奖励(心率 + 自评)· 任何策略先离线评估再上线 · E0–E1 属于本阶段,E2–E4 在 PROCEED 之后。

Rule table v0 规则表(现在)· Hierarchical model 全体用户层级模型 · Contextual bandit 每个人的情境老虎机策略 · AI generates variants AI 生成变体、留优汰劣、人工听审

⚖️1d · Rights版权

RIGHTS · BELIEF A5 "ADAPTATION RIGHTS FEASIBLE FOR ≥ 50 TRACKS" · PRIOR 0.50 → POSTERIOR 0.65 · GATE 0.60 Content three routes 🎛 Settle · synthesised in the app Web Audio · no catalogue involved ✓ NO RIGHTS NEEDED ships today ▶ Unwind · user's own services Spotify · owned files · SoundCloud ✓ NO NEW RIGHTS no derivative use · playback only 🎼 Adaptive real song (C1-real) calm arrangement of a catalogue track ⚖️ Legal check · ≥ 50 tracks masters + publishing · 1–2 wks ✓ POSITIVE · LR 8.0 → A5 ≈ 0.94 real-music route open ✗ NEGATIVE · LR 0.15 → A5 ≈ 0.22 closed · neutral only

Figure 4. Labels do license functional / AI-adaptive use (Endel deals, LR 1.5); per-track adaptation terms unclear (0.8). The neutral acute mode needs no A5 at all.唱片公司确实授权功能性 / AI 自适应用途(Endel 案例,LR 1.5);单曲改编条款不明(0.8)。中性声音的急性模式完全不需要 A5。

Settle · synthesised 急性模式 · 应用内合成 → 不需要版权 · Unwind · user's own services 放松模式走用户自己的 Spotify / 自有文件 / SoundCloud → 不需新版权 · Adaptive real song 真歌自适应改编 → 需要改编权 → Legal check 50 首法务核查(LR 8.0 / 0.15)

/ 02Proof · gates · pilot · outcomes

🎯2a · Where each belief stands每条信念现在在哪

THE BELIEF REGISTER · POSTERIOR (BAR) · PRIOR (DOT) · GATE (TICK) · AS OF 7 SEP 2026 0.25 0.50 0.75 1.00 A1areal music in the acute state 0.08 · pivot rule fired → neutral acute mode A1breal music for wind-down 0.77 ≥ 0.60 · cleared A2aanxiety drops (self-report) 0.85 < 0.90 · pilot only A2bheart rate / HRV move 0.56 < 0.70 · under-powered by design A3connect a watch, value the result 0.65 ≥ 0.55 · cleared (0.72 before concessions) A4someone will pay 0.82 ≥ 0.60 · $6.99 in [$5.12, $8.55] A5adaptation rights feasible 0.65 ≥ 0.60 · legal check pending (8.0 / 0.15) A630-day retention 0.25 · watch item, untestable in this phase

Figure 5. Gates fixed 17 Aug, never moved. Literature alone reaches 0.85 on A2a against a 0.90 gate → only the pilot can cross. Two conceded survey rows applied 7 Sep (A3 0.72 → 0.65 · A1b 0.80 → 0.77), no gate flipped. Live values: decision engine.门槛 8 月 17 日定死、从未移动。仅靠文献 A2a 只能到 0.85,门槛 0.90 → 只有试点能过。两条问卷行已于 9 月 7 日应用(A3 0.72 → 0.65 · A1b 0.80 → 0.77),无门槛翻转。

A1a 急性时刻用真实音乐 · A1b 晚间放松用真实音乐 · A2a 焦虑自评下降 · A2b 心率 / HRV 变化 · A3 愿意连手表并看重结果 · A4 付费意愿 · A5 改编权可行 · A6 30 天留存 · bar 后验 · dot 先验 · tick 门槛

🧪2b · The pilot · E1试点 · E1

LATIN SQUARE · SIX ORDERS · ONE PER PARTICIPANT CODE ordersession 1session 2session 3 1T1T2C 2T1CT2 3T2T1C 4T2CT1 5CT1T2 6CT2T1 one Python test asserts the analysis Latin square equals the app's — a change to randomisation fails a test T1 · adaptive neutral sound the Settle engine · rule table v0 T2 · adaptive calm real song chosen by the participant · same rules C · your own relaxing playlist active control · already known · untouched E0 · CALIBRATION · RUNS FIRST ⌚ Apple Watch + Polar H10 n ≈ 8 · three sessions each → ICC and MAPE for heart rate and RMSSD → λ = Cov(watch, polar) / Var(watch) so the watch's error (HRV ≈ 29 %) is measured before A2b is read, not assumed Aug 25 – Sep 6 planned · not yet run

Latin square 拉丁方(六种顺序,按参与者编号分配)· T1 中性自适应声音 · T2 真歌自适应改编 · C 自己的放松歌单(主动对照)· E0 calibration 手表 vs 胸带校准(先做)

⏱ One session · 28 minutes · research mode inside the shipped app一次会话 28 分钟 · 研究模式内置于正式 App
5 min pre-rest静息baseline HR · RMSSD · STAI-6 · expectancy
15 min audio音频T1 · T2 · C — condition travels in the export
STAI-6焦虑自评+ check-in
3 min post-rest恢复recovery
One model · ANCOVA form · mixed effects一条混合模型
Postij = β0 + β1·T1 + β2·T2 + β3·Pre + β4·Order + β5·Expect + β6·Session# + ui + εij

β1 = adaptive neutral vs own playlist (primary) · β1β2 = neutral vs real song · STAI-S primary, residual HR and log-RMSSD secondary, Holm-corrected.β1 = 中性自适应声音 vs 自己的歌单(主效应)· β1 − β2 = 中性声音 vs 真歌 · 主结局 STAI-S,次结局残差心率与 log-RMSSD。

🔒2c · Fixed before the data数据之前全部定死

BEFORE ANY DATA AFTER 1 · 17 AUG 🔒 Gates fixed A2a ≥ 0.90 · A2b ≥ 0.70 A3 ≥ 0.55 · A4 ≥ 0.60 A5 ≥ 0.60 · never moved 2 · RUBRIC ⚖️ Evidence strength meta 1.0 · survey .75 single .5 · qual .35–.5 LR changes: dated reason 3 · PIPELINE 🧮 Analysis code 28 tests · schema · order · direction · gates printed mechanically 4 · DRY RUN 🧪 24 fabricated people A2a: 78 % of 40 runs (target 80 %) · A2b 45 % code only, never TDMusic 5 · RECRUIT 👥 E0 → E1 watch owners from survey 6 · DATA 📊 Update posterior → gates → verdict

Figure 7. Positive = p < .05 and d ≥ 0.3, then a Bayesian update against the meta-analytic prior. Power: n ≈ 28 for self-report (d 0.55), n ≈ 50 for physiology → n = 20 is a feasibility signal for A2a and under-powered for A2b, stated in advance.阳性 = p < .05 且 d ≥ 0.3,再对照元分析先验做贝叶斯更新。功效:自评需 n ≈ 28(d 0.55),生理指标需 n ≈ 50 → n = 20 对 A2a 是可行性信号、对 A2b 功效不足,提前说明。

Gates fixed 门槛定死 · Evidence strength 证据强度打折规则 · Analysis code 分析代码(28 项测试)· Dry run 24 个虚构参与者试跑 · Recruit 招募 · Update 更新后验 → 门槛 → 判定

🚦2d · Three outcomes三种结局

📊 Bayesian update after E1 + legal check end of the DT phase ✓ PROCEED TO MVP E1 run · A2a ≥ .90 · A2b ≥ .70 · A3 ≥ .55 · A4 ≥ .60 · (A5 ≥ .60 or the neutral variant) ⏳ NOT YET some gates cleared, efficacy not · more data, same rules · today's verdict ✗ KILL / PARK A2a < 0.50 after the pilot · written up as a negative result

Figure 8. KILL / PARK is a pre-registered outcome, written up as a negative result.PROCEED 进入 MVP · NOT YET 继续收数据、规则不变 · KILL / PARK 是预注册结局,写成负结果。

/ 03Next · Sep → Nov

🗓What runs next接下来做什么

SEPOCTNOV today · 7 Sep ⚖️ Legal check≥ 50 tracks · A5 · LR 8.0 / 0.15 → 12 Sep · first, cheapest decisive ⌚ E0 calibrationWatch + Polar H10 · n ≈ 8 planned 25 Aug – 6 Sep · not run · slips with recruitment 🧪 E1 pilot20–30 × 3 sessions · A2a · A2b · A1a 1 – 25 Sep · depends on recruitment 📊 Bayesian updatepipeline → posteriors → gates 25 Sep – 2 Oct 📝 Decision memoPROCEED / NOT YET / KILL early Oct · date open 📚 Write-up → submission ch. 5 · 8 · 9 after the updatebefore Nov

Figure 9. Critical path: E0 → E1 → update → memo → chapters → submission. Legal check is off the path but decisive. Two dates open: memo and submission.关键路径:E0 → E1 → 更新 → 备忘录 → 章节 → 提交。法务核查不在路径上但起决定作用。两个日期未定:备忘录与提交日。

⚠ survey + focus-group figures: pipeline output, simulated flag问卷 / 焦点组数字为管线输出 ⚠ E0 · E1 not run尚未运行 ⚠ landing A/B: no conversion number yet落地页转化未有数字 ⚠ B2B: no result yetB2B 无结果 ⏳ App Store 1.0 build 4: waiting for review等待审核 ✓ wellness framing only · not a medical device仅身心健康定位 · 非医疗器械