十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

示波器音乐入门:从李萨如到X-Y模式的声音可视化工坊

示波器音乐入门:从李萨如到X-Y模式的声音可视化工坊 我第一回在B站刷到示波器音乐的视频时整个人都愣住了一台老式模拟示波器的屏幕上一朵花正在随着贝斯声绽放而声音本身竟然就是从这台示波器里出来的。我盯着屏幕看了整整二十分钟脑子里反复就一句话——这玩意儿到底怎么做到的示波器不是用来测电压波形的吗怎么还能当乐器、当画布、当播放器后来自己花了一整个周末把设备搭起来亲手调出第一个李萨如圆形时我才算彻底弄明白示波器音乐本质上是一种把“图像编码成声音、再用声音解码成图像”的矢量合成艺术它同时喂养眼睛和耳朵玩的是工程与美学的交叉地带。这篇文章是写给所有第一次接触 Oscilloscope示波器音乐、想搞清楚原理并且自己动手试一把的人。不管你是电子工程师、音频爱好者、新媒体艺术家还是纯粹觉得这玩意儿很酷的普通玩家只要你手头有一台示波器哪怕只是软件示波器再有一根音频线就能把那块绿色的荧光屏幕变成一台会唱歌的机器。我会从原理、硬件选型、软件实操一直讲到避坑指南全是我自己踩过的坑和总结出来的经验。1. 项目概述示波器音乐到底是啥1.1 一句话定义X-Y模式下的李萨如画布示波器音乐的核心其实非常简单把音频信号的左声道接到示波器的水平偏转板X通道右声道接到垂直偏转板Y通道然后把示波器切成 X-Y 模式。这时候输入的两个电压信号就不再是“随时间展开的波形”而是变成了屏幕上的一个点的坐标——X轴坐标由左声道电压决定Y轴坐标由右声道电压决定。电压不断变化这个点就在屏幕上快速移动由于荧光粉的余辉和人眼的视觉暂留你会看到一条连续的、稳定的光迹。这正是经典的李萨如Lissajous图形原理。当左右声道分别送入相同频率、相位差固定的正弦波时屏幕上就会出现圆、椭圆、直线、无穷符号等几何图形。当两个信号频率比是整数比时就能得到稳定的李萨如图案。示波器音乐的创造者、程序员 Jerobeam Fenderson 和他的搭档 Hansi 在 2014 年前后发布了一首名为《Oscilloscope Music》的作品集把这一技术推向了公众视野他们不是只画几个简单的李萨如圆环而是精心构造了整套矢量动画用示波器屏幕当做画布光束当作画笔同时还能发出旋律和鼓点。1.2 你需要区分“显示波形”和“播放音乐”两件事很多第一次接触的朋友都会问同一个问题示波器屏幕上显示的是不是就是音乐本身的波形答案是不完全是。普通模式下示波器显示的是信号幅度随时间的变化比如一个正弦波从左到右扫过去。但在示波器音乐的场景里示波器被当成了显示终端输入的是经过精心编码的音频信号。这个音频信号具备双重身份它既能推动扬声器/耳机发出可听的音效也能在X-Y模式下驱动电子束在屏幕上绘制图像。这里的关键问题是为什么图像没有糊成一团为什么我们能看清一个圆而不是一堆乱码原因在于视觉系统和听觉系统对时间的感知方式不同。示波器屏幕的显示是连续的、高速的每秒刷新数以万计的点而人眼会把短暂时间内位置相近的光点合并成一个连续的形状同时人的听觉对频率极其敏感几十毫秒的差异都能被感知出来。这两套系统同时工作最终形成“既看到图像、又听到声音”的奇妙体验。1.3 这个项目解决的核心需求与适合人群从技术角度来说示波器音乐解决了一个有趣的工程问题如何让同一个电信号同时胜任“视觉呈现”和“听觉呈现”两种任务且两者之间不冲突、不破坏彼此的完整性。这个问题的背后是信号设计、音频合成、采样率控制、幅度校准等一系列技术点每一个都可以单独拿出来研究。从艺术角度来说示波器音乐把一台原本代表“冰冷测量仪器”的设备变成了创作媒介拓展了电子音乐可视化、矢量图形动画、现场投影艺术等方向。无论你是想用它做 VJ 现场表演、做科普实验、给短视频做特效还是纯粹想找点新鲜感这个项目都有足够深的水可以让你探索。2. 核心原理深入拆解为什么图像和声音能同时存在2.1 从X-Y模式说起示波器为什么会显示二维图形普通示波器工作时X轴是一个由内部时基电路产生的锯齿波随时间线性增长所以信号以“时间—幅度”形式呈现。但在X-Y模式下X轴不再由内部时基控制而是直接由外部输入的电压驱动。这意味着屏幕上的每一个点都对应一组瞬时电压(X通道电压, Y通道电压)。举个例子把一个正弦波 Asin(2π×440t) 接到X通道把同样频率但相位滞后90度的正弦波 Asin(2π×440t - π/2) 接到Y通道屏幕上就会出现一个顺时针旋转的圆。因为当X电压最大时Y电压为0X为0时Y为最大正好描出一个半径恒定的圆轨迹。频率越高不过是这个点在圆上跑得越快视觉上圆的形状完全一样——这恰恰解释了为什么音乐仍能正常播放屏幕上看到的圆并不直接对应声音的音高它对应的只是波形之间的相位关系。2.2 人眼为什么觉得画面连续余辉、视觉暂留与刷新率示波器屏幕上的光点如果在同一位置停留时间很短人眼是察觉不到间断的。模拟示波器的荧光粉余辉会持续若干毫秒到几十毫秒相当于自带了一个天然的“轨迹保持”滤镜。数字示波器屏幕刷新率通常也达到每秒几十次再叠加后处理效果视觉上就是连续光滑的线条。这里有个重要的折算关系如果屏幕上的某个图形需要看起来“稳定”那么电子束必须在一帧时间内至少完整地描完整个图像若干遍。假设我们以每秒 30 帧作为视觉稳定的下限一个包含 1000 个点的矢量图像就需要大约 30000 次每秒的坐标更新频率。这要求声卡的采样率必须足够高通常至少 44.1 kHz 或 48 kHz否则图像会出现明显的断线和闪烁。同时为了维持清晰度生成图像的音频信号必须是带宽有限的避免过高频率成分导致屏幕上的点出现“拖尾”或模糊。2.3 声音从哪里来扫描频率、谐波与听感很多人第一次听到示波器音乐时会有一种奇怪的感觉它不像普通电子音乐那样有明确稳定的旋律而更像是一种高频的、带金属质感的“啁啾”声。这是因为示波器音乐里控制光点移动的基本频率往往落在几百赫兹到几千赫兹的范围内形成一个听得见的基音及其谐波。打个比方如果要画一个圆我们会产生一对频率相同的正弦波比如 1 kHz。当电子束以 1 kHz 的频率画圆时相当于我们的耳朵接收到一个 1 kHz 的振荡信号听起来是一个恒定音高。如果要画一条折线就需要叠加多个不同频率和相位关系的正弦波这些频谱成分叠加在一起就形成了复杂的音色。图像越复杂、转角越多高频谐波成分越丰富声音听起来也就越嘈杂。所以示波器音乐里的“音乐”从来不是有意编曲的结果而是图像绘制过程的必然副产物——这也解释了为什么很多示波器音乐听起来带有强烈的工业感。2.4 信号链完整梳理从音频文件到示波器屏幕我们可以把整个信号链拆成几步由软件如网页应用、Processing 脚本、专业的 Oscilloscope Music 播放器实时生成或播放预先设计好的音频样本。音频样本以数字形式存储在电脑中通过声卡数模转换输出两个声道的模拟电压信号幅度通常在 ±1V 到 ±几伏之间。音频信号经过功放/耳机放大器可选或直接进入示波器的输入端经过示波器的垂直放大器后驱动偏转电路。示波器处于 X-Y 模式CH1或X通道接收左声道信号CH2或Y通道接收右声道信号。电子束在屏幕上根据两组电压实时移动同时示波器内置的CRT或液晶屏以足够的刷新率呈现轨迹。这个信号链中任何一个环节的失真、噪声、直流偏移、接地回路干扰都会直接影响显示效果。这也是为什么示波器音乐玩家往往会对声卡质量、线材屏蔽、示波器通道校准有着近乎强迫症的要求。3. 工具选型与硬件准备不花冤枉钱也能玩得转3.1 示波器模拟机、数字机、软件示波器怎么选示波器是整套系统的显示核心它的选择会直接影响画质和可玩性。模拟示波器这是最经典的选择。CRT荧光屏的余辉特性让轨迹看起来温润自然亮度分布均匀扫描速度极快几乎没有显示延迟。缺点是体积大、重量沉、二手市场上品相好的型号价格被炒得偏高。如果你本来就有一台那是天胡开局如果打算买建议优先找带宽 20 MHz 以上、双通道、支持 X-Y 模式的老型号比如常见的日立、岩崎、泰克系列注意检查通道是否偏转正常、聚焦是否可调。数字示波器DSO现代数字示波器普遍支持 X-Y 模式但显示原理和模拟机不一样——它是采样后把轨迹渲染在液晶屏上。画面的精致度主要取决于屏幕分辨率和刷新率很多入门级数字示波器的 X-Y 模式刷新率只有每秒几帧图像看起来比较卡顿并不适合看动态矢量动画。不过如果是静态的李萨如图形数字机完全够用。关键参数上看两个一是波形刷新率waveform update rate二是X-Y模式是否有单独的插值优化。软件示波器 / 虚拟示波器没有物理设备又想快速体验的话可以用电脑上的软件示波器比如 Virtins Multi-Instrument、AudioXplorer甚至网页端的 XY scope配合声卡输入。这种方式只能看软件渲染的轨迹没有真实的荧光屏质感但作为学习原理和验证音频文件效果足够用了。我的建议如果只是想先体验一遍不要急着买硬件先把电脑声卡软件示波器的路线走通确认自己喜欢再做投入。如果决定走实体路线尽量优先选模拟示波器那种荧光屏的质感是数字机很难复刻的。3.2 音频输出与信号调理一根线直接连没那么简单示波器输入端一般接受的是几十毫伏到几十伏的信号而电脑声卡/手机耳机的输出电平只有几百毫伏到一两伏通常是够用的。稳妥的做法是先以最低音量播放测试信号一边放大音量一边观察屏上轨迹的幅度直到合适的显示尺寸。需要注意的一个大坑是直流耦合DC coupling问题。多数示波器默认是交流耦合AC会滤掉信号中的直流成分但示波器音乐往往需要保留直流分量来定位光点在屏幕上的位置例如把光点偏置到屏幕左侧再开始画图。如果信号在交流耦合模式下屏幕上会出现图像被“对中”处理、偏移量丢失的现象严重时整个图形对不齐。所以一定要检查输入耦合方式把 CH1/CH2 都设为 DC。另外如果你的示波器输入灵敏度很高比如 5 mV/div而声卡输出信号又有较大的直流偏移或本底噪声屏幕上的图形会出现明显的抖动和偏置。此时可以给信号链路加一个隔直电容注意这会改变低频响应需谨慎使用或者在软件端做直流偏置补偿。千万不要在没有衰减的情况下把功放的大功率输出直接接到示波器输入那会让输入端过载甚至烧毁这是新手最容易犯的错误。3.3 线材、声卡和接地容易被忽略的三个细节线材优先使用双芯屏蔽线比如 TRS 或 XLR转 BNC 的转接线尽量短避免成为天线接收干扰。如果只有 RCA 线也要尽可能保持屏蔽良好。我做实验时遇到过屏幕上一片毛刺、图形始终不稳定的情况最后发现是线材屏蔽层接触不良换线后问题立刻消失。声卡板载声卡普遍存在左右声道电平不一致、相位偏移较大的问题这在播放单声道音乐时影响不大但在 X-Y 模式下会导致圆变椭圆、直线变平行四边形。如果遇到这类问题先试着重插几次声卡接口或者在软件里做声道平衡校准。如果还想往上走一块支持 ASIO 的 USB 外置声卡比如入门级的 Focusrite Scarlett 系列或 Audient iD 系列能明显改善左右声道的一致性和延迟表现。接地两个设备如果接了不同地线可能形成接地环路产生 50 Hz 或 60 Hz 的哼声干扰。这在普通音箱系统里可能不太明显但在示波器屏幕上会表现为图形边缘的“毛边”或轻微抖动。解决办法是尽量让示波器和电脑/声卡使用同一个电源排插避免引入地电位差。有些人会选择断开示波器电源地线来消除环路但那是危险操作我强烈不建议——万一漏电保护失效代价不值得。3.4 安全事项这玩意儿虽然好玩但别拿命开玩笑示波器内部有数千伏的 CRT 高压电源虽然外壳和操作面板通常都有防护但严禁打开机壳接触内部电路。做信号连接时不要把示波器输入连接到超过手册规定最大输入电压的信号源也不要在带电状态下插拔 BNC 线缆。如果你用的示波器是旧货先检查一下电源线绝缘是否老化、电源开关是否正常。另外长时间使用时注意散热——老式示波器内部很多元件已经处于寿命末期别连续跑十几个小时不休息。4. 从零起步的三种实操方案总有一种适合你4.1 方案一网页版 Oscilloscope Music 应用 声卡 示波器五分钟上手这是最快捷的路径。Jerobeam Fenderson 团队和爱好者社区开发了多个网页版的示波器音乐播放器你只需要在电脑上打开网页把声卡输出接到示波器的两个输入通道切换到 X-Y 模式选择 DC 耦合再按比例调好幅度和位置点播放就能看到图形。我第一次实操时用的是 Oscilloscope Music 的官方网页演示站里面预置了多首曲子每首曲子都带对应的视觉预览。整个过程的关键就是确保左右声道没有被交换——一旦 L/R 反了原本左右对称的图像会变成镜像翻转某些本应叠加的图形会扭曲。建议先播放最简单的部分通常是单一正弦波的画圆段用示波器上的垂直/水平位置旋钮把画面调到屏幕中央再逐步增加音量到合适幅度。4.2 方案二用 Processing 自己生成示波器音乐文件如果你想更深入地理解原理并且想生成自己的图案Processing 是一个非常合适的工具。它的核心思路是定义一个从 0 到 2π 的角度变量 t以很小的步长递增然后在每次迭代里用数学函数算出 x(t) 和 y(t) 两个值映射到 -1 到 1 的范围最后把这两个值分别写入音频缓冲区的左声道和右声道。这样生成的音频数据保存为 WAV 文件后用任意播放器播放再送至示波器就能显示出对应的图形。下面给出一个最简单的带声音的画圆 Processing 片段供参考import ddf.minim.*; import ddf.minim.signals.*; Minim minim; AudioOutput out; SineWave left; SineWave right; float phase 0; void setup() { size(400, 400); minim new Minim(this); out minim.getLineOut(Minim.STEREO, 2048); // 生成一对正弦波左通道 sin右通道 cos频率 440 Hz // 这里只是演示声音部分图像部分需要从缓冲区读取采样值 } void draw() { // 读取当前缓冲区里的左右声道数据并画成点 for (int i 0; i out.bufferSize() - 1; i) { float x out.left.get(i); float y out.right.get(i); float sx map(x, -1, 1, 0, width); float sy map(y, -1, 1, 0, height); point(sx, sy); } }注意这段代码只是展示了如何用音频信号驱动视觉真正的示波器音乐核心在于离线生成 WAV 文件而不是实时画图。因为如果直接用声卡实时输出并采集回显延迟和缓冲会造成严重的相位错位。离线生成的好处是你可以用任意复杂的数学公式计算每个采样点不受实时性能限制。4.3 方案三用 Audacity 直接把图像“雕刻”成声音这个方法适合没有编程基础的朋友也适合想快速试出各种形状的人。核心思路是在 Audacity 里创建两个音轨分别对应左声道和右声道然后通过生成正弦波、方波、锯齿波、包络线以及剪切拼接手工搭建出图形的坐标信息。比如想画一个矩形轮廓可以分别生成一个频率固定但幅度按矩形轨迹变化的正弦波以及另一个同步变化的余弦波再对齐两者的起点和长度最后导出为立体声 WAV。这个方法虽然麻烦但能让你非常直观地理解“幅度映射到坐标”的关系。我第一次用这个方法画出一个正方形时才真正明白为什么需要在转折处控制幅度变化率——如果幅度瞬间跳变屏幕上会有明显的亮点和毛刺而通过斜波过渡的转角看起来才自然顺滑。还有Audacity 里生成的音频长度要足够长建议至少 2~3 秒否则示波器屏幕上只来得及显示一两帧看不出完整图形。4.4 实操过程复盘一次完整的调试记录以网页应用为例我详细记录一下我的完整调试过程供你照着走一遍打开网页应用先不播放音乐把示波器 CH1 和 CH2 的输入都切到 DC 耦合垂直灵敏度设为 1 V/div 或 500 mV/div。打开电脑音量面板把主音量和应用音量都设到 30%~50%避免一开始就输出太大信号。接好线播放测试片段屏幕上应该出现一条或一个简单的图形。如果屏幕只有一条水平线说明左右声道信号没有同时到达检查线缆是否松动、声道是否接反。用示波器的“位置”旋钮把图形居中再调节垂直灵敏度让图形高度和宽度大约占屏幕面积的 70%~80%这样看起来最舒服。把 X-Y 模式开启后图形会立刻从“时间轴展开”变成二维轨迹。如果画面出现严重偏斜先检查两个通道的垂直位置是否归零再检查左右声道电平是否一致。播放正式曲目此时你应该同时听到声音并看到图案。如果听到声音但画面完全不匹配大概率是播放的不是示波器音乐专用文件——普通音乐在 X-Y 模式下只会显示一团乱七八糟的轨迹。5. 常见问题与排查技巧实录5.1 现象速查表现象可能原因解决方法画面是一团飞舞的乱线没有任何几何图形播放的不是示波器音乐专用音频X-Y 模式未开启左右声道未正确连接换用专门的示波器音乐文件检查 X-Y 模式核对 L/R 接线圆形变成了椭圆或斜线左右声道幅度不一致相位偏差声卡左右声道不平衡在软件里做声道平衡校准交换左右声道测试调整示波器两个通道的垂直灵敏度到一致图形不稳定在闪烁/抖动声卡采样率过低示波器刷新率过低接地环路的 50 Hz 干扰提高采样率到 48 kHz换用模拟示波器消除接地环路画面有重影或亮度不均匀信号带宽不足线材阻抗不匹配示波器聚焦和亮度没调好换用屏蔽更好的线材调整示波器的聚焦、亮度、余辉旋钮图形偏移、不居中DC 耦合丢失直流偏置通道位置旋钮没调零信号本身带直流偏移设为 DC 耦合把位置旋钮归零在软件端做直流补偿声音正常但屏幕没有显示示波器触发模式设置错误亮度太低CH1/CH2 耦合设置错误关闭触发或设为自由运行Auto调高亮度检查耦合方式和灵敏度5.2 独家避坑相位反转与直流偏移是最隐蔽的敌人有一次调试过程中我生成的音频在软件的虚拟示波器上完美显示圆形但接到实体示波器上却变成了两条对角线——那会儿我怀疑是不是示波器坏了折腾了好一阵才发现问题是声卡的左右声道有相位反转两路信号的相位差变成了 180 度而不是 90 度。这导致正弦波在X方向的瞬时变化方向和Y方向刚好相反图形从顺时针旋转变成了一条斜线。遇到相位问题时可以在 Audacity 或 DAW 里把其中一个轨道的相位反转反转波形上下方向也可以用一根特制的 L/R 交换线来排查。还有一个技巧先在屏幕上调出一条水平线然后只送左声道信号应该看到一条从左到右扫过然后跳回起点的线再只送右声道应该看到一条从上到下扫过再跳回的线。无论哪条如果发现方向与预期相反就说明该通道被反相了。5.3 校准的小窍门如何让画面横平竖直、精准居中示波器音乐对屏幕校准的要求比较高因为没有一个“标准图像”可以对照。我的做法是先播放一个已知的简单图形——比如圆形——然后调整通道垂直灵敏度和位置让圆尽量圆、尽量居中。这个“尽量圆”其实可以量化用屏幕上的网格数来测量圆的水平直径和垂直直径的格数差控制在 0.2 格以内。接着播放一段由水平和垂直线条组成的测试图形用直尺或屏幕网格检验横线和竖线是否与网格平行。如果有偏斜优先检查两个通道的垂直位置旋钮——哪怕偏差只有零点几格在复杂图形里都会被放大成明显的歪斜。顺便提醒一句数字示波器的菜单里通常有 X-Y 模式的“幅度自动缩放”选项记得关闭它。因为自动缩放会根据输入信号的峰峰值动态调增益导致图像在音乐播放过程中不断变大变小观感非常糟糕。5.4 从“能玩”到“玩得好”提升画质的三个细节当你已经能让图形稳稳显示在屏幕上之后可以进一步优化三件事。第一示波器的亮度与聚焦调节——亮度太高会让轨迹有严重光晕太低又看不清弱信号一般以“能看到轨迹但背景不能发白发亮”为准聚焦旋钮调到轨迹边缘最清晰的时候很多细节线条会显得格外顺滑。第二采样率与抗混叠——如果你的音频文件是用算法生成的生成时请把采样率设为 96 kHz 或更高并用低通滤波器滤除 20 kHz 以上的分量防止图像中出现高频“锯齿”和折叠。第三信号幅度压缩——不要让图形峰值触碰屏幕边缘边缘区域的线性度和聚焦都会变差最好把幅度控制在屏幕高度的 80% 左右。6. 进阶方向从播放现成曲目到创作自己的示波器音乐6.1 数学图像与音乐节奏的对照关系想创作自己的示波器音乐最核心的思维方式是把“画什么”和“怎么发声”当成同一件事来设计。例如你想画一个五角星那么光点从某一顶点出发依次经过其他顶点的过程同时就会产生一组频率成分五角星的角数越多、边长变化越剧烈声音中的谐波就越丰富、音色就越尖锐。如果你反过来设计先确定一段音色比如包含基频和三次谐波再反推该音色对应的图形那么拍出来的形状就会有更丰富的轮廓。这里还有个实用的经验比较平滑的曲线圆、椭圆、螺旋对应柔和的“纯音”而存在尖角的折线三角形、矩形、星形会产生丰富的泛音和类似金属的质感。你可以利用这个规律在一首曲子里交替使用平滑曲线和尖角图形形成声音上的张弛对比。我第一次做这类创作时就是先用纸笔画出图形再在头脑里大致估算突变点会产生哪些谐波最后用 Processing 生成出来验证效果基本符合预判。6.2 矢量动画不只是静态图案更是动态电影示波器音乐最迷人的地方在于它能播放动态画面。实现动态的手法有两种一种是整体位置或旋转角度随时间缓慢变化例如整个图形围绕中心旋转另一种是图形本身变形从一个圆逐渐过渡到一个正方形。前者只需要在生成算法中加入一个随时间变化的旋转矩阵后者则需要做“插值”——在两个形状的坐标点之间做逐一对应、逐步过渡。关键点是插值时必须保证两图形采样点数一致否则动画会在途中出现跳变或断裂。实践中我通常先定义好 1000 个采样点容量每个形状都在这 1000 个点内完成再对每个点的坐标做线性插值最终形成流畅的形变动画。6.3 现场演出与多媒体集成示波器音乐的更多场景示波器音乐不仅适合个人捣鼓也很适合做成小型现场装置。你可以在演出时把音频信号经调音台送给一台模拟示波器同时在屏幕上叠加视频投影或灯光氛围让音乐可视化不再局限于常规的“波形跳动”而是变成一种带有荧幕质感的表演元素。还有人把示波器放到商场橱窗里循环播放矢量动画吸引路人的效果极佳。7. 结尾我的个人经验与一点小建议玩了示波器音乐几年我自己最大的体会是这个项目把艺术和工程拉得特别近你不需要成为一个专业的音频工程师也不需要成为一个多厉害的视觉设计师只要会处理信号和调机器就能做出让人惊叹的东西。如果非要我分享一个最值得记住的小技巧那就是——永远先找一个“已知正确答案”的测试信号来校准整套系统等你确认链路里没有什么暗病再去压测那些复杂的曲目。真到了调不出来的时候别怀疑人生先从线缆和接地开始排查十有八九问题出在物理层而不是代码层。如果你还没有实体示波器建议先用软件示波器把原理跑通等你在软件上能画出圆形、方形、甚至一圈螺旋线时再决定要不要去淘一台二手模拟机。相信我第一次看到自己的声音在荧光屏上勾勒出一朵花的那一刻你就会明白为什么这么多人甘愿在这条路上烧钱烧时间——那种声音和视觉同源共生的感觉是任何软件特效都替代不了的。
返回列表