1. 项目概述与核心思路拆解几年前我在二手市场淘到一台老旧的模拟合成器它那由实木和金属构成的机身以及旋钮转动时特有的阻尼感让我第一次意识到乐器不仅是发声工具更是承载着制作者心血与审美的实体。这种“触感”是如今大量塑料机身、触摸屏操作的现代合成器所缺失的。于是一个念头在我心里扎根能否亲手做一台合成器让它既有复古扎实的工艺质感又能拥有现代数字合成的无限可能这个项目就是对这个念头的回答。它不仅仅是一台能出声的机器更是一次对木材、电路、代码与声音的跨界探索目标是为自己打造一件独一无二、充满“人手温度”的乐器。整个项目的核心思路可以概括为“软硬结合分而治之”。硬件上它分为机械结构、电子感应和主控系统三个部分。机械结构负责提供真实的物理按键反馈我选择了实木橡木和胡桃木手工打造琴键并用弹簧提供回弹追求类似老式钢琴的触感。电子感应部分则负责将“按下琴键”这个物理动作转化为数字信号这里我设计了一块柔性电路板FPC和碳触点开关将34个琴键的开关状态采集起来。主控系统采用“Teensy微控制器 Raspberry Pi”的双核架构Teensy作为“前端采集器”专责快速扫描所有琴键一旦有按键被触发就立刻生成标准的MIDI音符消息Raspberry Pi则作为“后端音源”运行专业的开源合成器系统Zynthian接收Teensy发来的MIDI指令调用强大的合成引擎实时生成声音并输出。这种架构既保证了极低的按键延迟又拥有了媲美专业软音源的音色库和可玩性。软件上关键在于通信协议与系统集成。Teensy被编程为一个标准的MIDI控制器设备通过USB向Raspberry Pi发送MIDI信号。Raspberry Pi上的Zynthian系统则被配置为自动识别并响应这个MIDI输入。整个工作流是手指按下木制琴键 - 碳触点闭合电路 - Teensy检测到电平变化 - Teensy通过USB发送“Note On” MIDI信息 - Raspberry Pi上的Zynthian接收并触发对应的合成器音色 - 音频信号通过外接声卡输出到音箱或耳机。这个过程通常在几毫秒内完成实现了“即按即响”的实时演奏体验。这个项目适合有一定动手能力和耐心的Maker、音乐科技爱好者或者任何厌倦了千篇一律的消费电子产品、渴望创造一件有灵魂的物件的人。它不需要你是木工大师或电子工程师但需要你愿意学习、尝试并能享受从无到有、将想法变为实物的过程。接下来我将把这长达数月的实践拆解成一个个可执行的步骤与避坑经验。2. 材料、工具与设计文件的深度解析工欲善其事必先利其器。一份详尽且经过实践检验的物料清单是项目成功的基石。以下清单不仅列出了物品更包含了选型背后的逻辑和替代方案你可以根据自身条件和预算灵活调整。2.1 核心材料清单与选型考量外壳与结构件胡桃木板材用于制作合成器弯曲的侧边框架。选择胡桃木是因为其纹理美观、质地坚硬成品显得高档。但正如我后来深刻体会到的胡桃木密度高、纤维短是蒸汽弯曲难度最高的木材之一。如果你是第一次尝试弯曲木料强烈建议改用白橡木、白蜡木或桦木它们韧性好得多容错率更高。加厚瓦楞纸板作为机身顶部和底部面板的基材。这是一个大胆甚至有些疯狂的尝试初衷是为了降低成本和实验性。但实际体验非常糟糕环氧树脂会渗入纸板的蜂窝结构消耗量巨大且表面极难处理平整。更可行的替代方案是使用高密度泡沫板如航模用的Depron板或直接使用多层胶合板。泡沫板轻便易切割且不与环氧树脂发生反应。玻璃纤维布与环氧树脂用于在纸板或替代基材表面形成坚固、光滑的复合层。我选择环氧树脂而非更常见的聚酯树脂是因为环氧树脂粘度更高、收缩率更低与玻璃纤维的粘结强度更好且固化后几乎不变形这对于需要保持平整度的面板至关重要。玻璃纤维布我选用的是“平纹编织”因为它易于贴合曲面树脂浸润性好。琴键组件橡木板材用于制作白键。橡木质地坚硬、纹理清晰且颜色较浅能与胡桃木黑键形成鲜明对比。在木材店你可能还会看到白杨木它更软、更便宜但非常容易产生凹痕且质感远不如橡木不推荐用于琴键这种高频接触部件。胡桃木余料用于制作黑键。充分利用制作侧框的余料保证视觉上的统一。弹簧0.4mm线径 * 5mm外径 * 15mm长提供琴键回弹力。这个尺寸是经过测试后确定的能提供清晰、力度适中的回弹感。你可以购买弹簧套件尝试不同规格找到最适合你手感的。1/8英寸约3.175mm钢棒作为所有琴键的转轴。必须保证笔直且直径均匀。U型金属槽 垫片4mm内径8mm外径0.5mm厚金属槽切割后作为“键挡”防止琴键抬起过高垫片用于分隔每个琴键确保它们活动时不会相互摩擦。电子核心部件Raspberry Pi 5项目的大脑负责运行合成器引擎。选择Pi 5是因为其更强的算力可以运行更复杂的复音合成器而不会爆音。Pi 4或Pi 3B也完全足够运行Zynthian系统。Teensy 4.1 微控制器负责琴键扫描和MIDI输出。选择Teensy 4.1是因为其速度快600MHz、GPIO引脚多多达55个足以直接连接34个琴键而无需额外的多路复用器芯片简化了电路设计。它的USB-MIDI功能也非常成熟稳定。Raspberry Pi 官方触摸屏7寸用于操作Zynthian系统的用户界面。官方屏兼容性最好免驱即用。RaspiAudio HAT或任何兼容的USB声卡负责高质量音频输出。板载的音频输出音质和延迟通常不理想。一块专用的音频HAT或外置USB声卡是必须的它能提供低延迟、高保真的音频。40针零插拔力ZIF连接器用于连接自制的柔性电路板FPC和Teensy的转接板。ZIF连接器可以轻松开合方便FPC的插拔避免损坏脆弱的金手指。橡胶穹顶开关 碳触点贴片构成琴键的触发开关。橡胶穹顶提供按键手感碳触点贴在穹顶内部当被按下时导通下方的电路。2.2 关键工具与安全装备切割工具曲线锯是切割木材外形的主力。如果条件允许台锯或带锯对于精确切割琴键直线部分效率更高。CNC雕刻机则是终极选择能获得最高精度。修形与打磨工具电动打磨机配60-3000目砂纸是打磨琴键和外壳的利器。一套什锦锉刀用于处理琴键的直角和细节。木工夹具与蒸汽/热弯设备大量F夹和快速夹用于木材弯曲和胶合。用于弯曲木材的蒸汽箱或一个大水壶我用的电水壶。电子焊接工具一把好用的恒温烙铁、细焊锡丝、吸锡器、助焊剂。焊接柔性电路板FPC的排线需要耐心和稳定的手法。安全装备处理玻璃纤维和环氧树脂时必须佩戴防毒面具防有机蒸汽、丁腈手套和护目镜。打磨木材和切割时也请务必佩戴防尘口罩和护目镜。2.3 设计文件从3D模型到生产图纸设计阶段我使用了Fusion 360进行三维建模这能直观地检查所有部件的装配关系和尺寸。关键的设计文件包括合成器外壳的展开图将三维外壳展开为二维的切割模板。我使用了Pepakura Designer一款纸模型展开软件来完成这一步生成了可用于打印的PDF。琴键的DXF矢量文件包含了所有白键和黑键的精确轮廓。这是切割木材的蓝图精度直接决定琴键的手感和外观。文件中已经考虑了相邻琴键之间0.5mm垫片所需的间隙。金属面板的DXF文件用于固定触摸屏和接口音频、USB的铝板。我将这个文件发给了在线激光切割服务SendCutSend。这里有一个重要教训设计时一定要确认连接器的物理尺寸。我最初设计的USB-C开孔因为铝板太厚导致普通USB-C插头无法完全插入后来不得不重新打磨。柔性电路板FPC的Gerber文件这是发给PCB工厂的生产文件。我在EasyEDA上设计了电路其核心是34对“指叉式”铜焊盘。每个琴键对应一对当贴上碳触点的橡胶穹顶按下时就连接了这对焊盘形成一个开关。FPC的尾部设计成排线直接插入ZIF连接器。提示在将设计文件送去加工前务必进行“桌面检查”。用卡尺测量实物元件如USB母座、屏幕并在模型中进行比对。打印一份1:1的琴键图纸剪下来模拟组装检查间隙和手感。这些小步骤能避免后续重大的返工。3. 木工工艺从原木到精制琴键这是整个项目中最具“匠人”气息也最耗费时间的部分。木工环节的精度直接决定了最终产品的外观质感和演奏体验。3.1 琴键模板制作与木材切割首先将DXF文件打印成1:1的图纸用喷胶或双面胶平整地贴在选好的橡木和胡桃木板材上。贴的时候注意木材纹理方向应沿着琴键的长度方向这样强度最好。使用曲线锯切割时秘诀在于“留有余量”。不要试图沿着打印线一次性切出完美形状。你应该沿着线外大约2-3毫米处进行粗切。这是因为曲线锯的锯条会有一定程度的摆动直接贴线切割很容易走偏。我用的是细齿锯条能有效减少胡桃木这类硬木的“撕裂”现象。粗切完成后才是打磨定型的阶段。我将打印的图纸单独留了一份作为“靠模”。先将粗胚夹在台钳上用60目或80目的粗砂纸包裹一块平整的木块进行初步打磨逐步逼近轮廓线。在这个过程中要频繁地将琴键胚子放到打印的图纸上对比确保形状一致。特别是黑键的斜面和白键之间的凹槽需要用到半圆锉刀和三角锉刀进行精细修整。3.2 琴键的层压与转轴孔加工黑键是由两片1/4英寸厚的胡桃木片层压而成以增加厚度和强度。涂木工胶时用牙签或小刷子薄而均匀地涂一层即可过多的胶水会被挤出弄脏表面。用F夹均匀施压放置至少12小时待其完全固化。所有琴键的后端都需要加粘一小块长方形木片目的是增加此处的厚度以便钻出用于穿过钢转轴的孔。这个孔的位置至关重要它决定了琴键的杠杆比和触感。孔的位置应大致在琴键全长的1/6到1/8处从后端算起这是模拟钢琴击弦机杠杆原理的位置。我用台钻配合3.175mm的钻头来打孔确保每个孔都垂直且深度一致。钻孔前一定要在所有琴键的同一位置做好精确标记。3.3 倒角、玻璃纤维包裹与终极打磨黑键的顶部边缘需要打磨出倒角这不仅是为了美观更是为了防止其与相邻白键卡住。我用铅笔在所有黑键顶面的四条边上距离边缘1毫米处画线然后用电动打磨机配合低目数砂纸小心地磨出约45度的斜面。为了让木纹更突出并增加一层保护膜我为每个琴键包裹了一层极薄的玻璃纤维布并涂刷环氧树脂。这一步需要极大的耐心将纤维布裁剪成能包裹琴键的小片用刷子蘸取混合好的环氧树脂充分浸润纤维布。包裹时用刮板赶走气泡确保纤维布紧贴木材特别是边角处。树脂固化后就形成了一层坚硬透明的外壳。打磨是让琴键脱胎换骨的过程。我从100目砂纸开始逐步提高到150、220、400、800、1500最后用到3000目。每一道砂纸都要彻底打磨掉上一道留下的划痕。一个专业技巧是“湿磨”从800目开始可以蘸水打磨水能带走磨屑防止砂纸被堵塞并能获得更光滑的表面。当打磨到3000目时木材表面已经呈现出温润如玉的光泽。3.4 胡桃木侧框的蒸汽弯曲挑战与应对这是整个木工部分最大的挑战。胡桃木因其坚硬的特性在弯曲时极易开裂。我采用了“开槽弯曲”的方法来降低风险。首先在需要弯曲的胡桃木条内侧弯曲后会成为内侧的一面用带有锥度的修边刀头切割出一系列等距的V型槽。这些槽的深度要达到木材厚度的2/3到3/4仅留下薄薄一层“ hinge”合页连接。槽的间距和数量需要计算用90度除以你所用刀头的锥角得到的就是大致需要的槽数。例如锥角为10度则需要9个槽90/109。务必在废料上多次测试找到刚好能让木材弯曲90度且不断裂的槽深和间距。然后制作一个90度的弯曲模具用坚固的木材即可。将开了槽的木条放入沸腾的水中煮15-20分钟让木材纤维中的木质素软化。快速取出戴好手套将其压入模具中并用F夹牢牢固定。关键是要快因为木材冷却后会迅速变硬。将其放在通风处静置至少48小时让木材在固定形态下彻底干燥定型。血泪教训我的第一次弯曲尝试以一声清脆的“咔嚓”告终。原因一是槽开得不够深二是弯曲速度太慢。后来我改用更大的锥度刀头增加了槽深并在木材煮沸后立即操作才取得成功。如果你没有把握强烈建议使用白橡木等更易弯曲的木料。4. 电子系统构建从电路设计到系统集成当木工部分初具雏形时电子部分就需要同步推进了。这部分的目标是建立一个可靠、低延迟的信号链路。4.1 柔性电路板FPC的设计与打样传统的做法是将34个微动开关用导线一个个焊接到Teensy的34个GPIO引脚上这会产生一团乱麻般的线束。为了追求整洁和可靠性我设计了这块柔性电路板。在EasyEDA中我绘制了34对指叉式焊盘它们整齐排列对应每个琴键的位置。这些焊盘通过细密的走线汇聚到FPC尾部的34个矩形焊盘上。整个FPC的形状根据琴键下方的空间进行定制。设计完成后生成Gerber文件发送给PCB打样厂如JLCPCB并特别注明工艺为“柔性电路板FPC”。这里有一个关键选择碳触点开关的电路是“常开”的。也就是说平时电路是断开的按下琴键碳触点连通指叉焊盘电路闭合。Teensy会持续快速扫描每个GPIO引脚的电平从高电平断开变为低电平闭合的瞬间就判定为按键按下。4.2 Teensy微控制器的编程MIDI信号发生器Teensy的角色非常纯粹做一个高速、准确的开关扫描器并转换成MIDI信号。我使用了Arduino IDE进行开发并利用了Teensyduino库中强大的USB-MIDI功能。核心代码逻辑是一个循环扫描将34个连接到FPC的GPIO引脚设置为INPUT_PULLUP模式内部上拉电阻默认高电平。快速遍历读取所有引脚的状态。如果某个引脚读到了低电平按键按下且该键之前的状态是未按下则通过usbMIDI.sendNoteOn(noteNumber, velocity, channel)发送一个“音符开启”消息。noteNumber对应钢琴键位如中央C是60velocity我固定为127最大力度channel设为1。如果检测到某个引脚从低电平变回高电平按键释放则发送对应的usbMIDI.sendNoteOff消息。为了防抖防止接触抖动误触发代码中加入了简单的延时判断只有低电平状态持续超过几毫秒才被确认为有效按键。将Teensy通过USB连接到电脑它就会被识别为一个标准的MIDI输入设备可以在任何音乐软件中直接使用这极大地简化了系统集成。4.3 Raspberry Pi与Zynthian系统配置Raspberry Pi 5扮演着数字合成器的角色。我选择Zynthian系统是因为它是一个高度集成、专为实时音频优化的Linux发行版预装了众多优秀的开源合成引擎如FluidSynth, ZynAddSubFX, setBfree风琴等。安装步骤精要从Zynthian官网下载最新的SD卡镜像文件.img。使用Raspberry Pi Imager工具将镜像写入一张至少16GB的Micro SD卡。将SD卡插入Pi 5连接官方触摸屏、USB声卡或音频HAT以及Teensy的USB线。首次启动Zynthian会进行一系列硬件检测和配置。最重要的配置环节——音频与MIDI音频设置进入Zynthian的Web配置界面通过Pi屏幕上显示的IP地址访问在Audio设置中将输出设备选择为你连接的USB声卡或HAT例如“hifiberry-dac”或“USB Audio Device”。调整缓冲区大小在保证不出现爆音的前提下尽可能调小以获得最低延迟。MIDI设置在MIDI设置中你应该能看到一个名为“Teensy MIDI”的输入设备。将其启用。这样当你在实体琴键上演奏时Zynthian就能接收到音符信号了。合成层配置在主界面创建一个新的合成层为其选择一个合成引擎比如“ZynAddSubFM”并加载一个你喜欢的音色预设。至此硬件与软件的桥梁已经打通。按下实体琴键你应该能听到Pi发出的声音了。4.4 总装与布线整洁为要将所有电子模块安装到金属底板上Raspberry Pi、触摸屏、音频HAT、Teensy。使用尼龙柱和螺丝固定避免短路。最繁琐的一步是将FPC的34根线焊接到一个插针排座上再将其插入Teensy。我使用了AWG30的硅胶线它非常柔软。焊接时务必做好标记一一对应。完成后用扎带将线束整理整齐。将FPC平整地铺设在琴键下方的预留位置用双面胶固定边缘。在每个指叉焊盘的正上方用少量胶水粘贴橡胶穹顶开关并确保穹顶内的碳触点对准焊盘。最后将组装好弹簧和键挡U型金属槽片的底座安装到底壳内再将琴键逐一穿到钢轴上对准下方的弹簧和橡胶穹顶。5. 外壳整合与总装调试当内部机芯完成木制外壳也打磨喷漆完毕后就进入了最激动人心的总装阶段。5.1 喷漆与表面处理我选择了哑光黑和青绿色两种喷漆。喷漆的核心要诀是“薄层多遍”。在通风良好的地方将外壳部件用砂纸打磨到400目清洁灰尘。先喷一层底漆干燥后轻轻打磨。然后喷涂色漆每喷一层等待15-20分钟表干再喷下一层重复3-4次直到颜色均匀饱满。最后喷涂哑光清漆保护。每次喷涂前将罐体摇匀并在废料上试喷确保出漆顺畅。5.2 机械总装与调校安装侧框与面板将蒸汽弯曲好的胡桃木侧框用木工胶和内部木块加固的方式粘合到纤维增强的底板上。顶板带屏幕开孔则用环氧树脂粘合。安装键盘底座将带有弹簧阵列的木质底座用螺丝固定在底壳内部预定位置。确保34个弹簧与34个琴键的中心一一对准。安装琴键将钢轴穿过所有琴键后端的轴孔然后将轴的两端架在底壳两侧预先装好的轴承座或直接钻好的孔内。此时琴键应该平铺在底座上每个琴键下方对应一个弹簧和一个橡胶穹顶。手感调校这是最需要耐心的一步。逐个检查每个琴键行程按下琴键感觉其行程是否顺畅、一致。阻力主要来自弹簧和橡胶穹顶的变形。可以微调弹簧的位置或尝试不同硬度的弹簧。回弹松开琴键它是否迅速、有力地回弹到原位如果回弹无力可能是弹簧太软或与键挡有摩擦。异响按下和回弹时是否有不正常的摩擦声或撞击声在接触点涂抹少许特氟龙润滑脂或石墨粉可以消除噪音。触发确保琴键按下时能可靠地压动橡胶穹顶使碳触点完全接触FPC上的焊盘。你可以用万用表的通断档在焊接点测试触发是否灵敏。5.3 电子系统集成与最终测试将安装好所有电子元件的金属底板用螺丝固定到底壳上。连接触摸屏排线、USB声卡、Teensy的USB线等。最后连接电源给Raspberry Pi供电和音频输出线到音箱。上电测试Raspberry Pi正常启动进入Zynthian界面。触摸屏操作灵敏。在Zynthian中创建一个测试音色。逐键测试从最低音到最高音依次按下每个琴键确认屏幕上的虚拟键盘是否有对应指示音箱是否能发出正确音高的声音是否有“哑键”不响或“鬼键”一直响同时按下多个琴键复音测试声音是否正常6. 常见问题、排查与优化实录在长达数月的制作过程中我遇到了无数大大小小的问题。以下是一些最具代表性的难题及其解决方案希望能帮你绕过这些坑。6.1 琴键与机械结构问题问题1琴键按下后卡住无法回弹。排查首先检查琴键与相邻键之间、琴键与侧壁之间是否有物理摩擦。然后检查弹簧是否安装到位或力度是否足够。最后检查键挡U型金属片是否安装过高限制了琴键抬起。解决用砂纸轻微打磨摩擦点。更换更硬的弹簧。调整键挡的安装高度确保琴键有足够的回弹空间。问题2琴键手感松垮有晃动感。排查转轴钢棒与琴键轴孔之间的间隙过大。垫片厚度不均或遗漏。解决这是精度问题。在轴孔内嵌入黄铜轴套是专业做法能极大改善手感消除晃动。下次制作时应在设计阶段就考虑加入标准尺寸的轴套。问题3个别琴键触发不灵有时响有时不响。排查这是典型的接触不良问题。可能是碳触点与FPC焊盘对位不准或橡胶穹顶老化/破损或FPC上的焊盘氧化、有污渍。解决打开外壳检查问题琴键下方的部件。用棉签蘸无水酒精清洁FPC焊盘。调整橡胶穹顶的位置。如果碳触点磨损更换新的贴片。6.2 电子与软件问题问题4Zynthian系统启动失败屏幕显示音频设备错误。现象这是最常见的问题。系统启动时卡住提示无法找到或初始化音频设备。解决确保Raspberry Pi通过网线连接到路由器。在另一台电脑的浏览器中输入Pi屏幕上显示的IP地址进入Zynthian Web配置界面。导航至AUDIO - Audio Output Device。如果你的音频设备是USB声卡尝试选择“通用USB音频设备”。如果是专用HAT如HiFiBerry选择对应的驱动。调整“缓冲区大小/块大小”。数值越小延迟越低但可能引起爆音数值越大越稳定但延迟增加。从256开始测试逐步调低。问题5按下琴键有延迟或反应迟钝。排查延迟可能来自软件或硬件。软件延迟检查Zynthian的音频缓冲区设置如上所述。确保Raspberry Pi没有运行其他占用大量CPU的程序。硬件延迟检查Teensy的代码。扫描34个GPIO的循环是否足够快可以在循环开始时和结束时用micros()函数打印时间差确保一次扫描在1毫秒内完成。避免在扫描循环中使用delay()等阻塞函数。问题6出现“鬼键”未按下的键自动触发或“叠音”。排查这通常是电路上的问题。可能是FPC上某两条走线距离过近在潮湿环境下产生轻微漏电也可能是Teensy的GPIO引脚内部上拉电阻不够强受到干扰。解决软件防抖在Teensy代码中强化防抖逻辑例如要求一个低电平信号持续稳定超过5-10毫秒才被认定为有效按键。硬件改进在FPC设计上增加走线间距或在关键信号线之间铺设接地线进行隔离。在Teensy的每个输入引脚到地之间焊接一个约0.1uF的电容可以滤除高频干扰。6.3 外观与结构问题问题7木质外壳或琴键在干燥季节出现细微开裂。原因木材含水率变化导致的内应力释放。预防与修复制作前确保木材已在制作环境你的工作室中放置了足够时间数周达到平衡含水率。在成品表面涂刷木蜡油或聚氨酯漆可以一定程度上密封木材减缓水分交换。对于已出现的小裂纹可用木屑混合木工胶填充打磨后重新上漆。问题8纤维增强复合材料玻璃钢面板表面有气泡或不平整。原因树脂用量过多或过少刷涂时没有赶走气泡层压时没有压实。解决对于气泡固化后可用角磨机打磨掉凸起部分再用树脂混合滑石粉作为填料进行修补干后打磨平整。追求完美表面需要多次“树脂涂层打磨”的循环最后上汽车腻子填平微小针孔再喷漆。回顾整个项目最大的体会是DIY一件复杂的乐器是工程思维、艺术审美和手工技艺的三重奏。它教会我的远不止如何让一块木头发出声音更是关于规划、调试和解决问题的完整方法论。如果让我重新开始我会放弃难缠的胡桃木弯曲改用层压弯曲技术我会用CNC精确切割琴键省去无数打磨时间我也会在电路设计初期就引入多路复用器让布线更简洁。但正是这些“不完美”的尝试和解决过程赋予了这台合成器独一无二的故事。它的每一个音符里都混合着木屑、焊锡松香和代码调试到深夜的咖啡因。这或许就是手工制作的终极魅力——你创造的不仅是一个物件也是一段浓缩的时间与专注力的实体。
DIY数字合成器:从Teensy微控制器到Zynthian系统的软硬件集成实践
1. 项目概述与核心思路拆解几年前我在二手市场淘到一台老旧的模拟合成器它那由实木和金属构成的机身以及旋钮转动时特有的阻尼感让我第一次意识到乐器不仅是发声工具更是承载着制作者心血与审美的实体。这种“触感”是如今大量塑料机身、触摸屏操作的现代合成器所缺失的。于是一个念头在我心里扎根能否亲手做一台合成器让它既有复古扎实的工艺质感又能拥有现代数字合成的无限可能这个项目就是对这个念头的回答。它不仅仅是一台能出声的机器更是一次对木材、电路、代码与声音的跨界探索目标是为自己打造一件独一无二、充满“人手温度”的乐器。整个项目的核心思路可以概括为“软硬结合分而治之”。硬件上它分为机械结构、电子感应和主控系统三个部分。机械结构负责提供真实的物理按键反馈我选择了实木橡木和胡桃木手工打造琴键并用弹簧提供回弹追求类似老式钢琴的触感。电子感应部分则负责将“按下琴键”这个物理动作转化为数字信号这里我设计了一块柔性电路板FPC和碳触点开关将34个琴键的开关状态采集起来。主控系统采用“Teensy微控制器 Raspberry Pi”的双核架构Teensy作为“前端采集器”专责快速扫描所有琴键一旦有按键被触发就立刻生成标准的MIDI音符消息Raspberry Pi则作为“后端音源”运行专业的开源合成器系统Zynthian接收Teensy发来的MIDI指令调用强大的合成引擎实时生成声音并输出。这种架构既保证了极低的按键延迟又拥有了媲美专业软音源的音色库和可玩性。软件上关键在于通信协议与系统集成。Teensy被编程为一个标准的MIDI控制器设备通过USB向Raspberry Pi发送MIDI信号。Raspberry Pi上的Zynthian系统则被配置为自动识别并响应这个MIDI输入。整个工作流是手指按下木制琴键 - 碳触点闭合电路 - Teensy检测到电平变化 - Teensy通过USB发送“Note On” MIDI信息 - Raspberry Pi上的Zynthian接收并触发对应的合成器音色 - 音频信号通过外接声卡输出到音箱或耳机。这个过程通常在几毫秒内完成实现了“即按即响”的实时演奏体验。这个项目适合有一定动手能力和耐心的Maker、音乐科技爱好者或者任何厌倦了千篇一律的消费电子产品、渴望创造一件有灵魂的物件的人。它不需要你是木工大师或电子工程师但需要你愿意学习、尝试并能享受从无到有、将想法变为实物的过程。接下来我将把这长达数月的实践拆解成一个个可执行的步骤与避坑经验。2. 材料、工具与设计文件的深度解析工欲善其事必先利其器。一份详尽且经过实践检验的物料清单是项目成功的基石。以下清单不仅列出了物品更包含了选型背后的逻辑和替代方案你可以根据自身条件和预算灵活调整。2.1 核心材料清单与选型考量外壳与结构件胡桃木板材用于制作合成器弯曲的侧边框架。选择胡桃木是因为其纹理美观、质地坚硬成品显得高档。但正如我后来深刻体会到的胡桃木密度高、纤维短是蒸汽弯曲难度最高的木材之一。如果你是第一次尝试弯曲木料强烈建议改用白橡木、白蜡木或桦木它们韧性好得多容错率更高。加厚瓦楞纸板作为机身顶部和底部面板的基材。这是一个大胆甚至有些疯狂的尝试初衷是为了降低成本和实验性。但实际体验非常糟糕环氧树脂会渗入纸板的蜂窝结构消耗量巨大且表面极难处理平整。更可行的替代方案是使用高密度泡沫板如航模用的Depron板或直接使用多层胶合板。泡沫板轻便易切割且不与环氧树脂发生反应。玻璃纤维布与环氧树脂用于在纸板或替代基材表面形成坚固、光滑的复合层。我选择环氧树脂而非更常见的聚酯树脂是因为环氧树脂粘度更高、收缩率更低与玻璃纤维的粘结强度更好且固化后几乎不变形这对于需要保持平整度的面板至关重要。玻璃纤维布我选用的是“平纹编织”因为它易于贴合曲面树脂浸润性好。琴键组件橡木板材用于制作白键。橡木质地坚硬、纹理清晰且颜色较浅能与胡桃木黑键形成鲜明对比。在木材店你可能还会看到白杨木它更软、更便宜但非常容易产生凹痕且质感远不如橡木不推荐用于琴键这种高频接触部件。胡桃木余料用于制作黑键。充分利用制作侧框的余料保证视觉上的统一。弹簧0.4mm线径 * 5mm外径 * 15mm长提供琴键回弹力。这个尺寸是经过测试后确定的能提供清晰、力度适中的回弹感。你可以购买弹簧套件尝试不同规格找到最适合你手感的。1/8英寸约3.175mm钢棒作为所有琴键的转轴。必须保证笔直且直径均匀。U型金属槽 垫片4mm内径8mm外径0.5mm厚金属槽切割后作为“键挡”防止琴键抬起过高垫片用于分隔每个琴键确保它们活动时不会相互摩擦。电子核心部件Raspberry Pi 5项目的大脑负责运行合成器引擎。选择Pi 5是因为其更强的算力可以运行更复杂的复音合成器而不会爆音。Pi 4或Pi 3B也完全足够运行Zynthian系统。Teensy 4.1 微控制器负责琴键扫描和MIDI输出。选择Teensy 4.1是因为其速度快600MHz、GPIO引脚多多达55个足以直接连接34个琴键而无需额外的多路复用器芯片简化了电路设计。它的USB-MIDI功能也非常成熟稳定。Raspberry Pi 官方触摸屏7寸用于操作Zynthian系统的用户界面。官方屏兼容性最好免驱即用。RaspiAudio HAT或任何兼容的USB声卡负责高质量音频输出。板载的音频输出音质和延迟通常不理想。一块专用的音频HAT或外置USB声卡是必须的它能提供低延迟、高保真的音频。40针零插拔力ZIF连接器用于连接自制的柔性电路板FPC和Teensy的转接板。ZIF连接器可以轻松开合方便FPC的插拔避免损坏脆弱的金手指。橡胶穹顶开关 碳触点贴片构成琴键的触发开关。橡胶穹顶提供按键手感碳触点贴在穹顶内部当被按下时导通下方的电路。2.2 关键工具与安全装备切割工具曲线锯是切割木材外形的主力。如果条件允许台锯或带锯对于精确切割琴键直线部分效率更高。CNC雕刻机则是终极选择能获得最高精度。修形与打磨工具电动打磨机配60-3000目砂纸是打磨琴键和外壳的利器。一套什锦锉刀用于处理琴键的直角和细节。木工夹具与蒸汽/热弯设备大量F夹和快速夹用于木材弯曲和胶合。用于弯曲木材的蒸汽箱或一个大水壶我用的电水壶。电子焊接工具一把好用的恒温烙铁、细焊锡丝、吸锡器、助焊剂。焊接柔性电路板FPC的排线需要耐心和稳定的手法。安全装备处理玻璃纤维和环氧树脂时必须佩戴防毒面具防有机蒸汽、丁腈手套和护目镜。打磨木材和切割时也请务必佩戴防尘口罩和护目镜。2.3 设计文件从3D模型到生产图纸设计阶段我使用了Fusion 360进行三维建模这能直观地检查所有部件的装配关系和尺寸。关键的设计文件包括合成器外壳的展开图将三维外壳展开为二维的切割模板。我使用了Pepakura Designer一款纸模型展开软件来完成这一步生成了可用于打印的PDF。琴键的DXF矢量文件包含了所有白键和黑键的精确轮廓。这是切割木材的蓝图精度直接决定琴键的手感和外观。文件中已经考虑了相邻琴键之间0.5mm垫片所需的间隙。金属面板的DXF文件用于固定触摸屏和接口音频、USB的铝板。我将这个文件发给了在线激光切割服务SendCutSend。这里有一个重要教训设计时一定要确认连接器的物理尺寸。我最初设计的USB-C开孔因为铝板太厚导致普通USB-C插头无法完全插入后来不得不重新打磨。柔性电路板FPC的Gerber文件这是发给PCB工厂的生产文件。我在EasyEDA上设计了电路其核心是34对“指叉式”铜焊盘。每个琴键对应一对当贴上碳触点的橡胶穹顶按下时就连接了这对焊盘形成一个开关。FPC的尾部设计成排线直接插入ZIF连接器。提示在将设计文件送去加工前务必进行“桌面检查”。用卡尺测量实物元件如USB母座、屏幕并在模型中进行比对。打印一份1:1的琴键图纸剪下来模拟组装检查间隙和手感。这些小步骤能避免后续重大的返工。3. 木工工艺从原木到精制琴键这是整个项目中最具“匠人”气息也最耗费时间的部分。木工环节的精度直接决定了最终产品的外观质感和演奏体验。3.1 琴键模板制作与木材切割首先将DXF文件打印成1:1的图纸用喷胶或双面胶平整地贴在选好的橡木和胡桃木板材上。贴的时候注意木材纹理方向应沿着琴键的长度方向这样强度最好。使用曲线锯切割时秘诀在于“留有余量”。不要试图沿着打印线一次性切出完美形状。你应该沿着线外大约2-3毫米处进行粗切。这是因为曲线锯的锯条会有一定程度的摆动直接贴线切割很容易走偏。我用的是细齿锯条能有效减少胡桃木这类硬木的“撕裂”现象。粗切完成后才是打磨定型的阶段。我将打印的图纸单独留了一份作为“靠模”。先将粗胚夹在台钳上用60目或80目的粗砂纸包裹一块平整的木块进行初步打磨逐步逼近轮廓线。在这个过程中要频繁地将琴键胚子放到打印的图纸上对比确保形状一致。特别是黑键的斜面和白键之间的凹槽需要用到半圆锉刀和三角锉刀进行精细修整。3.2 琴键的层压与转轴孔加工黑键是由两片1/4英寸厚的胡桃木片层压而成以增加厚度和强度。涂木工胶时用牙签或小刷子薄而均匀地涂一层即可过多的胶水会被挤出弄脏表面。用F夹均匀施压放置至少12小时待其完全固化。所有琴键的后端都需要加粘一小块长方形木片目的是增加此处的厚度以便钻出用于穿过钢转轴的孔。这个孔的位置至关重要它决定了琴键的杠杆比和触感。孔的位置应大致在琴键全长的1/6到1/8处从后端算起这是模拟钢琴击弦机杠杆原理的位置。我用台钻配合3.175mm的钻头来打孔确保每个孔都垂直且深度一致。钻孔前一定要在所有琴键的同一位置做好精确标记。3.3 倒角、玻璃纤维包裹与终极打磨黑键的顶部边缘需要打磨出倒角这不仅是为了美观更是为了防止其与相邻白键卡住。我用铅笔在所有黑键顶面的四条边上距离边缘1毫米处画线然后用电动打磨机配合低目数砂纸小心地磨出约45度的斜面。为了让木纹更突出并增加一层保护膜我为每个琴键包裹了一层极薄的玻璃纤维布并涂刷环氧树脂。这一步需要极大的耐心将纤维布裁剪成能包裹琴键的小片用刷子蘸取混合好的环氧树脂充分浸润纤维布。包裹时用刮板赶走气泡确保纤维布紧贴木材特别是边角处。树脂固化后就形成了一层坚硬透明的外壳。打磨是让琴键脱胎换骨的过程。我从100目砂纸开始逐步提高到150、220、400、800、1500最后用到3000目。每一道砂纸都要彻底打磨掉上一道留下的划痕。一个专业技巧是“湿磨”从800目开始可以蘸水打磨水能带走磨屑防止砂纸被堵塞并能获得更光滑的表面。当打磨到3000目时木材表面已经呈现出温润如玉的光泽。3.4 胡桃木侧框的蒸汽弯曲挑战与应对这是整个木工部分最大的挑战。胡桃木因其坚硬的特性在弯曲时极易开裂。我采用了“开槽弯曲”的方法来降低风险。首先在需要弯曲的胡桃木条内侧弯曲后会成为内侧的一面用带有锥度的修边刀头切割出一系列等距的V型槽。这些槽的深度要达到木材厚度的2/3到3/4仅留下薄薄一层“ hinge”合页连接。槽的间距和数量需要计算用90度除以你所用刀头的锥角得到的就是大致需要的槽数。例如锥角为10度则需要9个槽90/109。务必在废料上多次测试找到刚好能让木材弯曲90度且不断裂的槽深和间距。然后制作一个90度的弯曲模具用坚固的木材即可。将开了槽的木条放入沸腾的水中煮15-20分钟让木材纤维中的木质素软化。快速取出戴好手套将其压入模具中并用F夹牢牢固定。关键是要快因为木材冷却后会迅速变硬。将其放在通风处静置至少48小时让木材在固定形态下彻底干燥定型。血泪教训我的第一次弯曲尝试以一声清脆的“咔嚓”告终。原因一是槽开得不够深二是弯曲速度太慢。后来我改用更大的锥度刀头增加了槽深并在木材煮沸后立即操作才取得成功。如果你没有把握强烈建议使用白橡木等更易弯曲的木料。4. 电子系统构建从电路设计到系统集成当木工部分初具雏形时电子部分就需要同步推进了。这部分的目标是建立一个可靠、低延迟的信号链路。4.1 柔性电路板FPC的设计与打样传统的做法是将34个微动开关用导线一个个焊接到Teensy的34个GPIO引脚上这会产生一团乱麻般的线束。为了追求整洁和可靠性我设计了这块柔性电路板。在EasyEDA中我绘制了34对指叉式焊盘它们整齐排列对应每个琴键的位置。这些焊盘通过细密的走线汇聚到FPC尾部的34个矩形焊盘上。整个FPC的形状根据琴键下方的空间进行定制。设计完成后生成Gerber文件发送给PCB打样厂如JLCPCB并特别注明工艺为“柔性电路板FPC”。这里有一个关键选择碳触点开关的电路是“常开”的。也就是说平时电路是断开的按下琴键碳触点连通指叉焊盘电路闭合。Teensy会持续快速扫描每个GPIO引脚的电平从高电平断开变为低电平闭合的瞬间就判定为按键按下。4.2 Teensy微控制器的编程MIDI信号发生器Teensy的角色非常纯粹做一个高速、准确的开关扫描器并转换成MIDI信号。我使用了Arduino IDE进行开发并利用了Teensyduino库中强大的USB-MIDI功能。核心代码逻辑是一个循环扫描将34个连接到FPC的GPIO引脚设置为INPUT_PULLUP模式内部上拉电阻默认高电平。快速遍历读取所有引脚的状态。如果某个引脚读到了低电平按键按下且该键之前的状态是未按下则通过usbMIDI.sendNoteOn(noteNumber, velocity, channel)发送一个“音符开启”消息。noteNumber对应钢琴键位如中央C是60velocity我固定为127最大力度channel设为1。如果检测到某个引脚从低电平变回高电平按键释放则发送对应的usbMIDI.sendNoteOff消息。为了防抖防止接触抖动误触发代码中加入了简单的延时判断只有低电平状态持续超过几毫秒才被确认为有效按键。将Teensy通过USB连接到电脑它就会被识别为一个标准的MIDI输入设备可以在任何音乐软件中直接使用这极大地简化了系统集成。4.3 Raspberry Pi与Zynthian系统配置Raspberry Pi 5扮演着数字合成器的角色。我选择Zynthian系统是因为它是一个高度集成、专为实时音频优化的Linux发行版预装了众多优秀的开源合成引擎如FluidSynth, ZynAddSubFX, setBfree风琴等。安装步骤精要从Zynthian官网下载最新的SD卡镜像文件.img。使用Raspberry Pi Imager工具将镜像写入一张至少16GB的Micro SD卡。将SD卡插入Pi 5连接官方触摸屏、USB声卡或音频HAT以及Teensy的USB线。首次启动Zynthian会进行一系列硬件检测和配置。最重要的配置环节——音频与MIDI音频设置进入Zynthian的Web配置界面通过Pi屏幕上显示的IP地址访问在Audio设置中将输出设备选择为你连接的USB声卡或HAT例如“hifiberry-dac”或“USB Audio Device”。调整缓冲区大小在保证不出现爆音的前提下尽可能调小以获得最低延迟。MIDI设置在MIDI设置中你应该能看到一个名为“Teensy MIDI”的输入设备。将其启用。这样当你在实体琴键上演奏时Zynthian就能接收到音符信号了。合成层配置在主界面创建一个新的合成层为其选择一个合成引擎比如“ZynAddSubFM”并加载一个你喜欢的音色预设。至此硬件与软件的桥梁已经打通。按下实体琴键你应该能听到Pi发出的声音了。4.4 总装与布线整洁为要将所有电子模块安装到金属底板上Raspberry Pi、触摸屏、音频HAT、Teensy。使用尼龙柱和螺丝固定避免短路。最繁琐的一步是将FPC的34根线焊接到一个插针排座上再将其插入Teensy。我使用了AWG30的硅胶线它非常柔软。焊接时务必做好标记一一对应。完成后用扎带将线束整理整齐。将FPC平整地铺设在琴键下方的预留位置用双面胶固定边缘。在每个指叉焊盘的正上方用少量胶水粘贴橡胶穹顶开关并确保穹顶内的碳触点对准焊盘。最后将组装好弹簧和键挡U型金属槽片的底座安装到底壳内再将琴键逐一穿到钢轴上对准下方的弹簧和橡胶穹顶。5. 外壳整合与总装调试当内部机芯完成木制外壳也打磨喷漆完毕后就进入了最激动人心的总装阶段。5.1 喷漆与表面处理我选择了哑光黑和青绿色两种喷漆。喷漆的核心要诀是“薄层多遍”。在通风良好的地方将外壳部件用砂纸打磨到400目清洁灰尘。先喷一层底漆干燥后轻轻打磨。然后喷涂色漆每喷一层等待15-20分钟表干再喷下一层重复3-4次直到颜色均匀饱满。最后喷涂哑光清漆保护。每次喷涂前将罐体摇匀并在废料上试喷确保出漆顺畅。5.2 机械总装与调校安装侧框与面板将蒸汽弯曲好的胡桃木侧框用木工胶和内部木块加固的方式粘合到纤维增强的底板上。顶板带屏幕开孔则用环氧树脂粘合。安装键盘底座将带有弹簧阵列的木质底座用螺丝固定在底壳内部预定位置。确保34个弹簧与34个琴键的中心一一对准。安装琴键将钢轴穿过所有琴键后端的轴孔然后将轴的两端架在底壳两侧预先装好的轴承座或直接钻好的孔内。此时琴键应该平铺在底座上每个琴键下方对应一个弹簧和一个橡胶穹顶。手感调校这是最需要耐心的一步。逐个检查每个琴键行程按下琴键感觉其行程是否顺畅、一致。阻力主要来自弹簧和橡胶穹顶的变形。可以微调弹簧的位置或尝试不同硬度的弹簧。回弹松开琴键它是否迅速、有力地回弹到原位如果回弹无力可能是弹簧太软或与键挡有摩擦。异响按下和回弹时是否有不正常的摩擦声或撞击声在接触点涂抹少许特氟龙润滑脂或石墨粉可以消除噪音。触发确保琴键按下时能可靠地压动橡胶穹顶使碳触点完全接触FPC上的焊盘。你可以用万用表的通断档在焊接点测试触发是否灵敏。5.3 电子系统集成与最终测试将安装好所有电子元件的金属底板用螺丝固定到底壳上。连接触摸屏排线、USB声卡、Teensy的USB线等。最后连接电源给Raspberry Pi供电和音频输出线到音箱。上电测试Raspberry Pi正常启动进入Zynthian界面。触摸屏操作灵敏。在Zynthian中创建一个测试音色。逐键测试从最低音到最高音依次按下每个琴键确认屏幕上的虚拟键盘是否有对应指示音箱是否能发出正确音高的声音是否有“哑键”不响或“鬼键”一直响同时按下多个琴键复音测试声音是否正常6. 常见问题、排查与优化实录在长达数月的制作过程中我遇到了无数大大小小的问题。以下是一些最具代表性的难题及其解决方案希望能帮你绕过这些坑。6.1 琴键与机械结构问题问题1琴键按下后卡住无法回弹。排查首先检查琴键与相邻键之间、琴键与侧壁之间是否有物理摩擦。然后检查弹簧是否安装到位或力度是否足够。最后检查键挡U型金属片是否安装过高限制了琴键抬起。解决用砂纸轻微打磨摩擦点。更换更硬的弹簧。调整键挡的安装高度确保琴键有足够的回弹空间。问题2琴键手感松垮有晃动感。排查转轴钢棒与琴键轴孔之间的间隙过大。垫片厚度不均或遗漏。解决这是精度问题。在轴孔内嵌入黄铜轴套是专业做法能极大改善手感消除晃动。下次制作时应在设计阶段就考虑加入标准尺寸的轴套。问题3个别琴键触发不灵有时响有时不响。排查这是典型的接触不良问题。可能是碳触点与FPC焊盘对位不准或橡胶穹顶老化/破损或FPC上的焊盘氧化、有污渍。解决打开外壳检查问题琴键下方的部件。用棉签蘸无水酒精清洁FPC焊盘。调整橡胶穹顶的位置。如果碳触点磨损更换新的贴片。6.2 电子与软件问题问题4Zynthian系统启动失败屏幕显示音频设备错误。现象这是最常见的问题。系统启动时卡住提示无法找到或初始化音频设备。解决确保Raspberry Pi通过网线连接到路由器。在另一台电脑的浏览器中输入Pi屏幕上显示的IP地址进入Zynthian Web配置界面。导航至AUDIO - Audio Output Device。如果你的音频设备是USB声卡尝试选择“通用USB音频设备”。如果是专用HAT如HiFiBerry选择对应的驱动。调整“缓冲区大小/块大小”。数值越小延迟越低但可能引起爆音数值越大越稳定但延迟增加。从256开始测试逐步调低。问题5按下琴键有延迟或反应迟钝。排查延迟可能来自软件或硬件。软件延迟检查Zynthian的音频缓冲区设置如上所述。确保Raspberry Pi没有运行其他占用大量CPU的程序。硬件延迟检查Teensy的代码。扫描34个GPIO的循环是否足够快可以在循环开始时和结束时用micros()函数打印时间差确保一次扫描在1毫秒内完成。避免在扫描循环中使用delay()等阻塞函数。问题6出现“鬼键”未按下的键自动触发或“叠音”。排查这通常是电路上的问题。可能是FPC上某两条走线距离过近在潮湿环境下产生轻微漏电也可能是Teensy的GPIO引脚内部上拉电阻不够强受到干扰。解决软件防抖在Teensy代码中强化防抖逻辑例如要求一个低电平信号持续稳定超过5-10毫秒才被认定为有效按键。硬件改进在FPC设计上增加走线间距或在关键信号线之间铺设接地线进行隔离。在Teensy的每个输入引脚到地之间焊接一个约0.1uF的电容可以滤除高频干扰。6.3 外观与结构问题问题7木质外壳或琴键在干燥季节出现细微开裂。原因木材含水率变化导致的内应力释放。预防与修复制作前确保木材已在制作环境你的工作室中放置了足够时间数周达到平衡含水率。在成品表面涂刷木蜡油或聚氨酯漆可以一定程度上密封木材减缓水分交换。对于已出现的小裂纹可用木屑混合木工胶填充打磨后重新上漆。问题8纤维增强复合材料玻璃钢面板表面有气泡或不平整。原因树脂用量过多或过少刷涂时没有赶走气泡层压时没有压实。解决对于气泡固化后可用角磨机打磨掉凸起部分再用树脂混合滑石粉作为填料进行修补干后打磨平整。追求完美表面需要多次“树脂涂层打磨”的循环最后上汽车腻子填平微小针孔再喷漆。回顾整个项目最大的体会是DIY一件复杂的乐器是工程思维、艺术审美和手工技艺的三重奏。它教会我的远不止如何让一块木头发出声音更是关于规划、调试和解决问题的完整方法论。如果让我重新开始我会放弃难缠的胡桃木弯曲改用层压弯曲技术我会用CNC精确切割琴键省去无数打磨时间我也会在电路设计初期就引入多路复用器让布线更简洁。但正是这些“不完美”的尝试和解决过程赋予了这台合成器独一无二的故事。它的每一个音符里都混合着木屑、焊锡松香和代码调试到深夜的咖啡因。这或许就是手工制作的终极魅力——你创造的不仅是一个物件也是一段浓缩的时间与专注力的实体。