|
| 1 | +--- |
| 2 | +title: "发布 CodeLab Adapter 4.6" |
| 3 | +date: 2021-03-29 |
| 4 | +tags: ["CodeLab"] |
| 5 | +Slug: adapter-4-6 |
| 6 | +--- |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +> 今天的一点小小裂痕,将如用针尖在一棵小栋树的嫩皮上刻出一个名字一样,这道伤痕将随着树木生长而扩大。 -- 托马斯·潘恩《常识》 |
| 11 | +
|
| 12 | +以下是自 4.6 版本以来的主要改进。 具体细节参考[changelog](https://adapter.codelab.club/changelog/) |
| 13 | + |
| 14 | +<!--truncate--> |
| 15 | + |
| 16 | +# 内核(core)更新 |
| 17 | + |
| 18 | +## 自动迁移用户数据 |
| 19 | +升级软件/重置主目录时,自动迁移用户数据(`~/codelab_adapter/`)。 |
| 20 | + |
| 21 | +旧的主目录(`~/codelab_adapter/`)将自动备份,形如: `codelab_adapter_2021-03-29__14-49-04_219298/`, 后缀的数字是时间信息。 |
| 22 | + |
| 23 | +notebooks/extensions/nodes 里的自定义子目录和文件将自动迁移。 user_settings.toml里的自定义信息将自动迁移。 |
| 24 | + |
| 25 | +## webUI 更新 |
| 26 | + |
| 27 | + |
| 28 | +**更新扩展** 重命名为 **重置主目录** ,置于 **环境** 目录下 |
| 29 | + |
| 30 | + |
| 31 | +添加 **正在运行的nodes UI** , 置于 **环境** 目录下 |
| 32 | + |
| 33 | +## 更新Adapter ssl证书 |
| 34 | +支持到 2022-03-29。 |
| 35 | + |
| 36 | +Adapter 4.5 及之前的版本支持到 `2021-06-03` |
| 37 | + |
| 38 | +此外,在user_settings中支持添加证书过期时间配置项。 |
| 39 | + |
| 40 | + |
| 41 | +## 弃用 app_settings.py |
| 42 | +处于安全性的考虑, [定制与分发](https://adapter.codelab.club/dev_guide/%E5%AE%9A%E5%88%B6%E4%B8%8E%E5%88%86%E5%8F%91/)时,关于默认配置项的调整,可通过修改 src 目录里的 `user_settings.toml` 实现。 |
| 43 | + |
| 44 | +## 尝试提供 user_settings web editor api 接口 |
| 45 | +目前是 alpha 版本,试图提供 jupyter 风格的 api。 |
| 46 | + |
| 47 | +当然你也可以在 jupyterlab 中编辑 user_settings。 |
| 48 | + |
| 49 | +编辑完之后,记得重启Adapter。 |
| 50 | + |
| 51 | +# [codelab_adapter_client](https://github.com/CodeLabClub/codelab_adapter_client_python) 升级到 4.1.8 |
| 52 | + |
| 53 | +添加 send_message, receive_message api: `from codelab_adapter_client.message import send_message, receive_message` . 我们4月份即将发布的 CodeLab交互计算 课程将比较多使用它。 |
| 54 | + |
| 55 | +修复 AdapterNodeAio 启动消息遗漏的bug(time sleep等待zmq通道连接) |
| 56 | + |
| 57 | +# 插件更新 |
| 58 | +## 修复 悟空机器人 插件启动超时的bug |
| 59 | +这是个长期影响演示流畅度的bug,是 AdapterNodeAio 启动消息遗漏引起的。 |
| 60 | + |
| 61 | +## 优化 overdrive 插件 |
| 62 | +支持 ble实时 扫描,避免用户长时间等待。 |
| 63 | + |
| 64 | +修复连接后的头5s消息阻塞问题。 |
| 65 | + |
| 66 | +## 优化 Lego Mario 插件 |
| 67 | +Lego Mario 支持 ble 实时扫描,避免用户长时间等待 |
| 68 | + |
| 69 | + |
| 70 | +# 其他更新 |
| 71 | + |
| 72 | +## box2d(物理引擎) |
| 73 | +1.0 版本已经同步上线到 [CodeLab社区](https://create.codelab.club/),当前版本的汉化,达到了令我们比较满意的程度。 |
| 74 | + |
| 75 | +我们正在规划 2.0 版本,该版本计划将编程猫平台上对物理引擎中的一些易用性改进,吸纳过来。 |
| 76 | + |
| 77 | +我们将一些好玩的入门项目整理到了[这个工作室](https://create.codelab.club/studios/403/)里,你可以从这儿起步。 |
| 78 | + |
| 79 | +以下是社区用户分享的基于物理引擎的合成大西瓜项目 |
| 80 | + |
| 81 | +<iframe src="https://create.codelab.club/projects/9151/embed/" allowtransparency="true" width="485" height="402" frameborder="0" scrolling="no" allowfullscreen></iframe> |
| 82 | + |
| 83 | +## CodeLab Scratch & Scratch Addons |
| 84 | +我们正试着将CodeLab Adapter相关扩展构建在Scratch addons/TurboWarp之上,这个项目汇集了这些年来用户社区对Scratch的所有深度改进。 |
| 85 | + |
| 86 | +构建在此之上的 [CodeLab Scratch 预览版](https://addon.codelab.club/editor.html) |
| 87 | + |
| 88 | +目前已经将一些 CodeLab成员 常用的扩展迁移过去了,如果你有其他的建议,欢迎在此讨论 |
| 89 | + |
| 90 | +Scratch addons/TurboWarp 有一些惊人的改进,诸如中断/恢复程序、消息跟踪、浏览代码,这些改进极大提高Scratch深度项目的可理解性,也使debug更为轻松,在这些改进下,Scratch的环境更接近smalltalk的“活体”环境。这些重大改进几乎可以和Scratch第一代作者的工作相提并论,而不同于之后的渐进式改进。 |
| 91 | + |
| 92 | +于此相关的话题,欢迎在 [这个帖子下讨论](https://discuss.codelab.club/t/topic/192)。 |
| 93 | + |
| 94 | +## [NeverlandBeats](https://github.com/CodeLabClub/NeverlandBeats): 使用 Python,Adapter EIM 插件和 Scratch 实时绘制音乐频谱 |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | +CodeLab NeverlandBeats 已开源在Github。 |
| 99 | + |
| 100 | +这部分目前有以下两个项目,原理都是用 python 对音频数据做实时分析,同时经 Adapter EIM 插件将分析结果发给 Scratch,再使用画笔功能动态绘制图形。可以直接利用 Python 代码在浏览器新窗口中自动打开对应的 Scratch 项目并运行,也可以手动打开 Scratch 项目后再运行 Python 代码。(Python 还有 Scratch 对应代码库内都有备份,但如果要自动打开并运行 Scratch 对应项目,需使用线上社区版,地址见下面链接) |
| 101 | + |
| 102 | +音频流的配置与数据提取依赖 pyaudio 实现,音频数据分析就是将信号从时域经傅立叶转换到频域。P1 与 P2 的区别在于,P2 只是对每次从音频流中提取的数据做 FFT(Fast Fourier transform)分析,然后将 0-22050Hz 的频率按对数关系分为 10 个频段呈现对应的振幅强度,在 Scratch 中类似 bar 图效果;P1 相比 P2 多了时间的维度,做的是 STFT(Short-time Fourier transform) 分析,依赖 madmom 包获取 spectrogram 结果,对应 Scratch 中 12 * 10 的圆点矩阵,每 1 列是一个时间点,12 行数据分别对应 12 个频段的振幅强度。 |
| 103 | + |
| 104 | +运行 python 代码前,需要先选择音源的输入设备,是来自电脑内置的麦克风、还是耳机等,当前代码不包含选择输入设备这一项功能(但依赖 pyaudio 其实可以做到),pyaudio 会使用默认的输入设备,而输入设备间的切换是通过 pavucontrol(ubuntu 系统)手动实现的。如果发现没有数据很可能就是音源输入设备的选择问题。因为 madmom 也是依赖 pyaudio,所以 P1、P2 都是如此。 |
| 105 | + |
| 106 | +使用 [Scratch Addon](https://addon.codelab.club/editor.html),选择 fps=60、高清画笔模式,自定义舞台大小,视觉效果明显更好。 |
| 107 | + |
| 108 | +P1:Python 代码[在此](https://github.com/CodeLabClub/NeverlandBeats/blob/master/AA_madmomspectrogram.ipynb),(自启动)Scratch 代码[在此](https://create.codelab.club/projects/9942/),(手动启动)Scratch 代码[在此](https://create.codelab.club/projects/10022/) |
0 commit comments