当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]以往的微控制器字节节奏播放器都是静态的,每次修改都需要重新烧录字节节奏算法,这种方式效率低,不利于对字节节奏算法和数字音频合成进行实验。Bytebed 是一种全新的生动方式,用于演奏和探索字节节奏的世界。

Bytebed 是一款专为嵌入式微控制器(如 M5Stack Cardputer)设计的 bytebeat 虚拟机。它将 bytebeat 编译为字节码,并在运行时即时执行 bytebeat 程序。

以往的微控制器字节节奏播放器都是静态的,每次修改都需要重新烧录字节节奏算法,这种方式效率低,不利于对字节节奏算法和数字音频合成进行实验。Bytebed 是一种全新的生动方式,用于演奏和探索字节节奏的世界。

Bytebed 的功能

Bytebed 最初是一个用于 bytebeat 的简单字节码虚拟机。其主要功能仍然是实时支持解释和播放经典的 bytebeat 音乐。此外,它还具备更丰富且具有实验性的功能,例如:

•双语法:使用 Tab 键在中缀和后缀之间动态切换

•可选的浮点数支持:无需 while 或 for,只需 map 和 reduce

•类似 JS 的箭头函数

•字符串被解释为 Base 62 数字数组

•用于延迟、反馈等的魔法全局变量和数组

•前缀模式下类似于 Forth 的栈操作符(dup, swap, over, rot)

•注释 // 和 /* */

•语法验证器和错误提示信息

硬件组件

•M5Stack Cardputer-Adv

•M5Stack Cardputer

•M5Stack Cardputer 配合 M5StampS3 v1.1

软件应用和在线服务

•M5Stack M5Burner

多年来,bytebeat已发展为floatbeat及其他变体,并在网络上分享了大量有趣的单行代码程序。bytebeat是一种有趣的方式,可用于探索声音并学习二进制运算。进一步尝试floatbeat,有助于理解基本算术,以及数学与音乐、声音合成和数字信号处理之间的关系。

这一切始于几个月前,当时我偶然发现了一款由Ate Bit的4mat开发的23字节C-64演示程序《Wallflower》,它在任何平台上都未曾见过如此小尺寸的作品。虽然程序存在一些漏洞,但其音乐结构却远远超越了它的体积限制。我开始自行尝试,最终编写出一个16字节的VIC-20程序,其音乐输出让我彻底惊叹。我在之前的博客文章《16字节的边界》中记录了这些发现,并探讨了其中的原因。

一段时间后,我以更科学的态度重新开始了实验。为了更好地理解其中的原理,我需要一个更简单、更纯粹的环境——一个没有8位声卡和处理器那些随意的特性和隐藏复杂性的系统。我选择用简短的C语言程序来生成原始PCM音频数据。此前我曾写过一些小型的“/dev/dsp softsynths”程序,甚至在20世纪90年代末还将其嵌入过邮件或Usenet签名中。然而,这次我所实验的程序将比以往更短,也更少经过精心设计。

我决定重现之前8位实验中的核心内容:一个音高由包含位移和逻辑运算的函数控制的波形发生器。对于/dev/dsp程序而言,最简单的波形是锯齿波。一个简单的for(;;)putchar(t++)循环可以生成周期为256字节的锯齿波,在默认采样率为8000 Hz时,频率为31.25 Hz。音高可以通过乘法进行调整:t++*2相当于升高一个八度,t++*3则比前一个高出7个半音,而t++*(t>>8)会产生上升的声音。经过几次尝试后,我得到了一个想要在IRC频道分享的东西:

Bytebed 是一种新编程语言,灵感源自经典的 C 语言风格的字节节奏(bytebeat)和 JavaScript 的浮点节奏(floatbeat)。该语言采用双解释器,支持标准的前缀表达式以及全新的基于函数栈的后缀表示法。系统允许用户在运行时自由切换前缀与后缀语法,从而同时学习字节节奏、浮点节奏、声音合成,以及一种略显神秘的 Bytebed 栈式语言。

Bytebed 将卡普特(cardputer)通过音频合成补丁以及卡普特键盘或 IMU 六轴运动传感器来控制音频输出,将其转变为实时编程乐器。此外,还可以使用 MIDI 控制由卡普特生成的声音,例如通过外部 MIDI 键盘、音序器或 SuperCollider、Sonic Pi 等软件实现。

Bytebed 运行在 M5Stack Cardputer 或 Cardputer Advanced 上。可通过 M5Burner 安装 Bytebed,或使用 platform.io 从源码构建。专为 M5Stack 卡型电脑设计的 Bytebeat 虚拟机。在ESP32板上使用i2s API运行bytebeat可以很简单:

上传到你的ESP板上,咔嚓!你就能听到经典的节拍了。

Bytebed 的 Wasm 版本也可在浏览器中运行。在线版本可用于共享补丁,并支持通过 MIDI 或手机陀螺仪进行字节节奏的序列化播放。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

我创建了BEAPER Nano,旨在为初学者的电子学和计算机技术课程提供一个多功能的教学平台。其功能也使其成为帮助任何人专注于学习微控制器编程的理想平台,无需在搭建和调试面包板电路时受到干扰。

关键字: 微控制器 机器人 ESP32

基于Hypervisor虚拟机融合CODESYS PLC,在标准硬件上高效整合混合关键性负载

关键字: 工业自动化 嵌入式 机器人

中国北京(2026年7月1日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码:603986.SH;3986.HK)携70余款产品及解决方案亮相2026慕尼黑上海电子展。本次展品阵容涵盖存储器、微控...

关键字: 存储器 微控制器 模拟芯片

AI数据中心带火了内存,但在高性能的嵌入式系统中,内存同样关键。无论是广播级的8K视频处理、精密的PXIe测试仪器,还是电信级的网络安全设备,它们同样面临着数据爆发带来的挑战。一方面,由于AI驱动导致内存需求激增,全球内...

关键字: AMD MoP 自适应SoC 嵌入式 LPDDR5X

台湾新竹 – 2026 年 6 月 30 日 –全球半导体领导供应商新唐科技股份有限公司(Nuvoton Technology Corporation)近日推出高度集成的高精度测量解决方案 NSC128L42。该产品采用...

关键字: ADC LCD 驱动器 微控制器

项目背景:随着嵌入式 AI 技术的快速发展,边缘计算设备的算力不断提升,使得在低功耗、低成本的嵌入式平台上部署深度学习模型成为可能。本项目基于瑞芯微 RK3576 芯片的 NPU(神经网络处理单元)加速能力,结合 YOL...

关键字: 机器人 视觉伺服系统 嵌入式

随着智能汽车、具身智能和智能制造等各个战略新兴技术领域快速发展,物理AI时代正在加速到来;随着而来的新场景、新技术和新功能为系统开发者提出了众多新的要求,也带来了诸如多架构SoC、更高代码质量、功能安全性、更高可视度、自...

关键字: 物理AI 嵌入式 智能汽车

剪掉参数后推理反而变慢,听起来矛盾,却很常见。嵌入式AI优化若只盯 FLOPs,不看硬件支持的算子形状,模型压缩会把规则计算改成低效搬运。

关键字: 嵌入式 AI 算子

首批样机识别稳定,量产后慢慢变差,常不是代码退化,而是现场数据分布换了形状。嵌入式AI若没有漂移观测和样本闭环,模型会在自己看不见的工况里失准。

关键字: 嵌入式 AI 漂移

对于嵌入式Linux开发者来说,最影响开发效率的往往不是代码编写本身,而是繁琐的调试流程:更新内核要反复拔插SD卡,测试应用要每次编译后手动传输文件,看日志还要一直守着串口线。一套便捷高效的开发环境,能把调试流程从十几分...

关键字: Linux 嵌入式
关闭