Tesla 灯光秀生成器
概述
将任意 .wav 文件转化为精彩的、针对特定车型定制的特斯拉自定义灯光秀。输出是通过验证器的 FSEQ v2.0 未压缩二进制文件(.fseq),配合原始音频,放入 USB 驱动器的 LightShow/ 文件夹即可使用。
适用场景
- 用户想把歌曲变成特斯拉灯光秀
- 创建或设计 .fseq 文件
- 编排灯光/闭合件配合音乐
- 询问如何从音乐生成 Tesla xLights 序列
使用方法
输入要求
.wav文件路径(必须是 44.1 kHz;如果不是会警告用户)- 特斯拉车型——支持以下车型,不猜测:
- Model 3(2024前,无内饰氛围灯)
- Model 3 Highland(2024+改款,有内饰氛围灯)
- Model S / Model X / Model Y / Cybertruck
生成流程
步骤1 — 分析音频
python3 skill/scripts/analyze_audio.py <path/to/song.wav> /tmp/<basename>.json
生成以20ms采样的JSON时间线。分析器是立体声感知的——在整个FFT过程中保留左右声道信息。
可选库提升质量:
pip3 install librosa # 色度、CQT、分段、备用节拍追踪器
pip3 install madmom # 优秀的节拍+重拍追踪器
pip3 install scipy # 更快的HPSS
步骤2 — 编排灯光秀
python3 skill/scripts/compose_show.py --analysis /tmp/<basename>.json \
--model {model_3|model_3_highland|model_s|model_x|model_y|cybertruck} --out <basename>.fseq
步骤3 — 复制 wav 到 fseq 旁边
cp <path/to/song.wav> <basename>.wav
Tesla 要求音频文件和 .fseq 在同一目录且文件名相同。
步骤4 — 验证
python3 light-show/validator.py <basename>.fseq < /dev/null 2>&1 | head -n 2
成功 = 首行输出:Found <N> frames, step time of 20 ms...
步骤5 — 报告
告知用户文件位置、时长、节奏、通道数,以及灯光编排亮点描述。
通道绑定规则(摘要)
- 底鼓/重低音节拍 → 主大灯、前转向灯、所有Ch4-6、刹车灯
- 军鼓/中频节拍 → 标志灯、Ch4-6、后转向灯、前雾灯
- 踩镲/高频起始 → 侧标灯 + 侧重复灯(立体声感知:左声道→左灯,右声道→右灯)
- 高潮峰值 → 尾门提前14秒打开、后视镜翻转、充电口彩虹舞、全前灯爆发
- 叙事弧 → intro(0-15%)柔和渐变、build(15-55%)隔拍闪烁、climax(55-85%)全密度、outro(85-100%)2秒呼吸渐变
车型特化提醒
- Model 3/Y — 前转向灯、标志灯、Ch4-6 使用渐变模式优于布尔脉冲
- Model 3 Highland — 额外通道176-193驱动6个内饰RGB面,色相跟音高,饱和度跟HPSS谐波丰富度
- Model S — 标志灯和前转向灯仅布尔模式;门把手(4个独立)是独特亮点
- Model X — 鹰翼门(约20秒开/8秒关)和前门(约22秒开/3秒关)是最戏剧化的编排;每秀仅6次动作预算
- Cybertruck — 200通道输出,前后灯条动态、刹车+后转向全亮度控制
输出约束
- 通道数:恰好48或200
- 压缩类型:0(未压缩)
- 最大时长:4小时
- 采样率:44.1 kHz
- 帧间隔:20ms
常见问题与陷阱
- 验证器拒绝通道数 → 确认 M3/S/Y 用48,Cybertruck 用200
- 舞蹈动作无效 → 闭合件必须在 Dance 指令前已打开
- 不要在演出期间关闭车窗——音乐会变闷
- 尾门/前备箱 ≤6次,后视镜 ≤20次,充电口 ≤3次
验证清单
- [ ] .wav 文件为 44.1 kHz
- [ ] 车型已明确确认(未猜测)
- [ ] 分析JSON已生成
- [ ] .fseq 已生成且通过验证器
- [ ] .wav 已复制到 .fseq 同目录
- [ ] 通道数正确(48或200)