特斯拉灯光秀Light Show Creator开发手记(一)
特斯拉在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开发手记(一)相关推荐
- HoloLens开发手记-全息Hologram
全息 Hologram HoloLens使我们可以通过周边世界的光线和声音来创建全息场景和物体,使得它们像真实物体那样.全息场景能够响应你的凝视.手势和语音指令,同时还会和你周边世界的表面交互.借助全 ...
- 国庆、中秋双节同庆 青岛浮山湾灯光秀启动节日模式
9月27日讯 国庆.中秋双节临近,青岛市城市管理局对"双节"期间城市亮化运行工作进行部署,10月1日至10月8日,青岛全市亮化设施按照节日模式每晚六点四十分全部开启,九点三十分关闭 ...
- 文旅灯光秀应该怎样进行设计
近几年全国各地灯光秀井喷式的发展,许多文旅灯节的灯光秀同化严重,相差无几,观光者们看了几眼后,就失去了新鲜感,再也不能再有新鲜感了.因此,我们要不断追求创新.创新,在灯光效果.光影变化等方面给观众们提 ...
- 用Python+Moviepy+OpenCV制作灯光秀短视频
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 2021年4月8日武汉重启一周年,这是个值得庆祝的日子,作为一个武汉人和一个死宅 ...
- 用OpenCV-Python制作灯光秀短视频
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 用OpenCV-Python读取摄像头写入视频文件 一.引言 在<https://b ...
- arduino灯光装置_基于Arduino的灯光秀
步骤1:准备木制框架 您可以按照您希望的任何方式构建框架或外壳.我选择木材是因为仅需使用基本工具即可轻松完成工作. 我已使用一些已打捞过的木板来搭建框架.我在长度为30厘米的木板上标记了4个干净的零件 ...
- 帝国大厦将上演灯光秀,庆祝Pink Floyd乐队专辑《The Dark Side of the Moon》发行50周年
3月24日(周五),帝国大厦将庆祝Pink Floyd传奇专辑<The Dark Side of the Moon>发行50周年.届时,这部知名原创专辑的周年庆特别版插图将在其塔楼上旋转展 ...
- Qt Creator开发基于小部件的应用程序
Qt Creator开发基于小部件的应用程序 开发基于小部件的应用程序 代码编辑器集成 管理影像资源 指定Qt Designer的设置 使用设备皮肤预览表单 添加小部件 开发基于小部件的应用程序 Qt ...
- Qt Creator开发Qt快速应用程序
Qt Creator开发Qt快速应用程序 开发Qt快速应用程序 创建Qt快速项目 在设计模式下编辑QML文件 创建UI 添加动态 编辑3D场景 相关话题 浏览ISO 7000图标 将QML模块与插件一 ...
最新文章
- Know more about RAC GES STATISTICS
- java.lang.stackoverflowerror_java.lang.StackOverflowError——如何解决StackOverflowError错误
- opencv c语言教程,OpenCV图像处理视频教程——入门篇(一)
- 华为云PB级数据库GaussDB(for Redis)揭秘第五期:高斯 Redis 在IM场景中的应用
- jsp引入页面,即包含文件的两种方法介绍
- WebGIS中利用AGS JS+eCharts实现一些数据展示的探索
- pyqt5 实现右键自定义_Python界面(GUI)编程PyQt5事件和信号
- 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
- libs/spandsp/src/floating_fudge.h:40:20: error: implicit declaration of function ‘sin’ [-Werror=impl
- Ps雅点设计合成大师
- 解析IP代理软件市场上的发展现状
- java 本地文件上传到服务器,java本地文件上传到远程服务器
- coon.php连接,新手关于$coon的连接问题
- 高中数学对计算机,对高中数学计算机学习技巧的探讨
- 谷歌浏览器下面的任务栏不见了
- Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码...
- ue4 android 插件,基于ijkplayer封装的UE4安卓播放器插件
- System.gc()的理解
- 关于mathtype中的等号=和括号
- 信捷PLc的C语言大小排序筛选,信捷PLC顺序控制怎么写
热门文章
- 2022-2028全球与中国密封微动开关市场现状及未来发展趋势
- Python数据分析之pandas库的使用详解
- 上海宝付安全宣传活动之实际案例讲解
- 软件开发框架(更新中)
- Shell基础练习70脚本
- 戴尔r330服务器安装系统鼠标,dell-poweredge – 在PowerEdge R330上安装Ubuntu服务器时出现问题(硬件RAID1)...
- egret引擎html5 3d,白鹭引擎(Egret Engine)
- uni-app 制作 物流信息 step样式表
- 化工原理 --- 流体流动3
- R语言实战-如何分析QQ群记录1-格式化数据