特斯拉在2021年的圣诞更新中,推出了全系灯光秀(LightShow)功能,灯光秀除了车内默认的版本,还可以自定义模式。我当时也第一时间尝试了下,但觉得太难编辑了,于是就有了新想法。

1. Idea来源

特斯拉官方推荐的一款开源软件叫:xLights,这是一款专业的编辑灯光表演的软件,导入特斯拉提供的模板和音乐,即可开始编辑自己的灯光秀。

xLights的编辑过程比较繁琐,需要一帧一帧的去编辑,而且编辑完还得运行个脚本来检查生成的文件是否合法,因为特斯拉对灯光序列有严格的限制,也是以防车灯被烧坏。整个过程费时又费力,我就在想,有没有办法简化这个过程呢,最好是能导入音乐就能一键生成。于是我萌发了开发一个APP的想法。

2. 前期准备

第一步,也是最重要的一步,我需要分析这个项目的可行性,也就是说我是否能够生成跟xLight一样的规范的fseq序列帧文件以供车辆识别,这个文件是二进制的,需要逐个字节去分析它的含义。

通过特斯拉官方提供的检查脚本,我们可以大致反推出fseq格式的基本含义,由前半部分的头定义和后半部分序列帧(每个车灯的开关/亮度)组成。

为了验证我的想法,我拿特斯拉官方的例子做实验,官方的例子一共有3个文件:

  • lightshow.wav(这个是音乐文件,不管它)
  • lightshow.xsq(这个是xLights的工程文件,也就是序列帧的xml格式)
  • lightshow.fseq(这个是序列帧的二进制格式,由xLights导出给车辆用的)

我的做法是,把xsq工程里的序列帧数据导入到我的APP里,然后再导出新的fseq文件,再拿这个新fseq和xLights导出的fseq逐个字节比对,直到二者一个字节不差。这也就意味着我的APP也能导出跟xLights一样能让特斯拉识别的序列帧。

3. 前期开发

当在实车上测试过导出格式没问题之后,接下来就是着手开发核心功能了:一键自动生成。

其实原理也特别简单,只要把音乐的音轨找出来,把整个音域分成n等分,然后把它们均等分配到每个车灯上,当达到一个阈值时,把车灯亮起,否则关掉。有点像音乐播放器里跳动的音谱。

4. 开发其它辅助功能

有些音乐的节奏和频率比较快,很容易超过限制,因此我还加入了一些参数设计,可供用户按需调节。

  • 步进时间:就是每帧的时长, 越大越省内存
  • 节奏敏感度:对音乐节奏的敏感度,理论上越小越省内存
  • 节拍时长:每次车灯亮起的最大时长,越大越省内存
  • 雾灯开关(标续的Model 3和Model Y是没有前雾灯的,把这个选项关掉效果更加)

为了防止超出内存使用上限,我把特斯拉提供的python脚本复刻一分到我的APP里,在一边录制的时候一边检查使用率并实时显示出供用户参考,超出就不给导出。

5. 首次上线

目前APP在微软商店Microsoft Store和Google Play上架,选择了付费下载模式,生活不易,挣杯奶茶钱~

  • Google Play
  • Microsoft Store

6. 后续迭代计划

  • 支持mac版
  • 支持手动编辑模式
  • 支持录音功能

我还上传了一些用creator录制的灯光秀到github, 都是一些有意思的BGM,大佬们不嫌弃的话下载拿去用~
GitHub - zhandouxiaojiji/tesla-light-show: Custom Light Show for Tesla

相关阅读

特斯拉灯光秀Light Show Creator开发手记(一) | Keep Coding特斯拉在2021年的圣诞更新中,推出了全系灯光秀(LightShow)功能,灯光秀除了车内默认的版本,还可以自定义模式。我当时也第一时间尝试了下,但觉得太难编辑了,于是就有了新想法。 1. Idea来源特斯拉官方推荐的一款开源软件叫:xLights,这是一款专业的编辑灯光表演的软件,导入特斯拉提供的模板和音乐,即可开始编辑自己的灯光秀。xLights的编辑过程比较繁琐,需要一帧一帧的去编辑,https://blog.coding1024.com/posts/33fc2e57/#more2022最新特斯拉引荐码,供有缘人备不时之需 | Keep Coding通过特斯拉引荐码下单的车辆在交付后,可以获取特斯拉商城3500积分,可用于兑换750km超充里程及其它周边产品 打开老车主的特斯拉引荐码通过官网自己下单 https://www.tesla.cn/referral/ovlt77625 也可以扫码获取 如果是通过销售下单的,提车前邀请码发给销售即可: ovlt77625 当你提车之后,即可在特斯拉APP里查看到积分。https://blog.coding1024.com/posts/8300381e/

特斯拉灯光秀Light Show Creator开发手记(一)相关推荐

  1. HoloLens开发手记-全息Hologram

    全息 Hologram HoloLens使我们可以通过周边世界的光线和声音来创建全息场景和物体,使得它们像真实物体那样.全息场景能够响应你的凝视.手势和语音指令,同时还会和你周边世界的表面交互.借助全 ...

  2. 国庆、中秋双节同庆 青岛浮山湾灯光秀启动节日模式

    9月27日讯 国庆.中秋双节临近,青岛市城市管理局对"双节"期间城市亮化运行工作进行部署,10月1日至10月8日,青岛全市亮化设施按照节日模式每晚六点四十分全部开启,九点三十分关闭 ...

  3. 文旅灯光秀应该怎样进行设计

    近几年全国各地灯光秀井喷式的发展,许多文旅灯节的灯光秀同化严重,相差无几,观光者们看了几眼后,就失去了新鲜感,再也不能再有新鲜感了.因此,我们要不断追求创新.创新,在灯光效果.光影变化等方面给观众们提 ...

  4. 用Python+Moviepy+OpenCV制作灯光秀短视频

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 2021年4月8日武汉重启一周年,这是个值得庆祝的日子,作为一个武汉人和一个死宅 ...

  5. 用OpenCV-Python制作灯光秀短视频

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 用OpenCV-Python读取摄像头写入视频文件 一.引言 在<https://b ...

  6. arduino灯光装置_基于Arduino的灯光秀

    步骤1:准备木制框架 您可以按照您希望的任何方式构建框架或外壳.我选择木材是因为仅需使用基本工具即可轻松完成工作. 我已使用一些已打捞过的木板来搭建框架.我在长度为30厘米的木板上标记了4个干净的零件 ...

  7. 帝国大厦将上演灯光秀,庆祝Pink Floyd乐队专辑《The Dark Side of the Moon》发行50周年

    3月24日(周五),帝国大厦将庆祝Pink Floyd传奇专辑<The Dark Side of the Moon>发行50周年.届时,这部知名原创专辑的周年庆特别版插图将在其塔楼上旋转展 ...

  8. Qt Creator开发基于小部件的应用程序

    Qt Creator开发基于小部件的应用程序 开发基于小部件的应用程序 代码编辑器集成 管理影像资源 指定Qt Designer的设置 使用设备皮肤预览表单 添加小部件 开发基于小部件的应用程序 Qt ...

  9. Qt Creator开发Qt快速应用程序

    Qt Creator开发Qt快速应用程序 开发Qt快速应用程序 创建Qt快速项目 在设计模式下编辑QML文件 创建UI 添加动态 编辑3D场景 相关话题 浏览ISO 7000图标 将QML模块与插件一 ...

最新文章

  1. Know more about RAC GES STATISTICS
  2. java.lang.stackoverflowerror_java.lang.StackOverflowError——如何解决StackOverflowError错误
  3. opencv c语言教程,OpenCV图像处理视频教程——入门篇(一)
  4. 华为云PB级数据库GaussDB(for Redis)揭秘第五期:高斯 Redis 在IM场景中的应用
  5. jsp引入页面,即包含文件的两种方法介绍
  6. WebGIS中利用AGS JS+eCharts实现一些数据展示的探索
  7. pyqt5 实现右键自定义_Python界面(GUI)编程PyQt5事件和信号
  8. 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
  9. libs/spandsp/src/floating_fudge.h:40:20: error: implicit declaration of function ‘sin’ [-Werror=impl
  10. Ps雅点设计合成大师
  11. 解析IP代理软件市场上的发展现状
  12. java 本地文件上传到服务器,java本地文件上传到远程服务器
  13. coon.php连接,新手关于$coon的连接问题
  14. 高中数学对计算机,对高中数学计算机学习技巧的探讨
  15. 谷歌浏览器下面的任务栏不见了
  16. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码...
  17. ue4 android 插件,基于ijkplayer封装的UE4安卓播放器插件
  18. System.gc()的理解
  19. 关于mathtype中的等号=和括号
  20. 信捷PLc的C语言大小排序筛选,信捷PLC顺序控制怎么写

热门文章

  1. 2022-2028全球与中国密封微动开关市场现状及未来发展趋势
  2. Python数据分析之pandas库的使用详解
  3. 上海宝付安全宣传活动之实际案例讲解
  4. 软件开发框架(更新中)
  5. Shell基础练习70脚本
  6. 戴尔r330服务器安装系统鼠标,dell-poweredge – 在PowerEdge R330上安装Ubuntu服务器时出现问题(硬件RAID1)...
  7. egret引擎html5 3d,白鹭引擎(Egret Engine)
  8. uni-app 制作 物流信息 step样式表
  9. 化工原理 --- 流体流动3
  10. R语言实战-如何分析QQ群记录1-格式化数据