从1234567到写出旋律:简谱入门与数字音频合成实践
这串数字在我电脑的文件夹里躺了十几年。有人看到1234567只当它是普通计数可在音乐人眼里它就是旋律最原始的编码Do、Re、Mi、Fa、Sol、La、Si。这篇文章我想把这串数字拆开讲讲它背后的简谱体系、音高物理、节奏记号以及从认清七个数字到写出第一段旋律的完整路线。它适合完全没碰过乐器的零基础小白也适合会用代码、想顺手合成一段声音的开发者甚至能给已经在写歌但总卡在旋律太呆的人一点提醒。可能有人会问都什么年代了为什么还要聊简谱因为太多人被五线谱拦在音乐门外却不知道1234567这套记号恰恰是门槛最低的一把钥匙。下面我从头讲。1. 七个数字怎么就成了音乐简谱的诞生与基本规则1.1 一段被记在教科书角落的历史先说一个偏冷门的事实简谱不是中国人发明的。它最初的雏形可以追溯到法国。18世纪思想家卢梭就提出过用数字记谱的设想后来由皮埃尔·加兰Pierre Galin发展成一套可用于教学的体系再经过艾梅·帕里Aimé Paris和谢韦Émile Chevé的接力改良最终形成了加兰-帕里-谢韦记谱法。这套方法的核心目标非常朴素让没受过专业训练的普通人也能快速学会唱诗、唱歌。这套记谱法在19世纪后期经日本传入中国因为数字书写方便、识别门槛低很快在学校音乐教育里扎下根来。1 2 3 4 5 6 7这七个字符从此成了几代中国人最早接触音乐的入口。这段历史给我最大的启发是简谱的定位从来不是替代五线谱而是用最低的成本把旋律从耳朵里搬到纸上。所以理解简谱时不用抱着专业音乐家都必须用它的执念它是工具工具好不好取决于你要干什么。想记录一段随手哼出的旋律、想在吉他上快速找到音阶、想教孩子唱一首儿歌简谱都极其高效。1.2 唱名、音名和数字的三角关系简谱里1234567对应七个唱名1唱Do2唱Re3唱Mi4唱Fa5唱Sol6唱La7唱Si。在C调里它们对应的音名就是C、D、E、F、G、A、B。我当年刚接触时最困惑的问题就是1到底叫Do还是叫C后来才明白这是两个不同维度的概念音名C、D、E、F、G、A、B是绝对的物理坐标一个音的实际音高拿仪器测出来是多少就是多少音名固定。唱名Do、Re、Mi、Fa、Sol、La、Si是相对的角色描述这个音在某个调式里担任什么功能。打个比方音名像身份证号一个人无论搬到哪个城市身份证号永远不变唱名像家庭角色同一个人在家里是儿子在公司是经理称呼随场景切换。所以简谱里的1在默认情况下指C大调里的Do。但当你看到谱子左上角写着1D时这首曲子的1实际音高就变成了D后面所有数字跟着整体平移。这意味着简谱本质上是一套相对音高系统它的可移植性极强只要标好调号任何调的旋律都能用同一套数字逻辑读取。给新手的第一条建议初期完全不用被转调吓住先在C调里把数字到声音的映射练熟等你能听着旋律写出1 2 3 1 3 2 1这种句子时再去研究移调。那时候你会发现当年觉得复杂的乐理突然变得顺理成章。1.3 为什么34和71要挨得近很多人弹过1234567但很少人注意到一件事这七个数字之间的距离并不均匀。在钢琴上观察C大调的白键排列你会发现3E到4F之间没有黑键7B到下一个八度的1C之间也没有黑键——这两个间隔是半音。其余相邻白键之间都隔着黑键也就是全音。所以自然大调音阶的排列规律是全音、全音、半音、全音、全音、全音、半音简写成全全半全全全半。这个规律是整个西方音乐最底层的地基。大三和弦为什么明亮小三和弦为什么暗淡旋律为什么会有张力和解决追根溯源都能落到全音半音的分布上。咱们不用急着啃理论先从操作上理解一件事当你从1开始弹按照隔一个键再弹下一个的方式其实就是在用全音构建旋律的骨架而3到4、7到1这两处半音给旋律带来了自然的收束感。这也是为什么只要顺着C大调白键随便弹弹出来的音符组合通常不会太难听——因为十二平均律和白键音阶本身就内置了一套和声逻辑。我第一次意识到这点时是在电子琴上不小心弹了一串3 4 5 4 3 2 1那半音的滑落感让我愣了几秒。那一刻我才明白为什么1234567不只是七个音而是一套自带表情的叙事系统。2. 用数字算声音每个音符背后的频率与物理原理2.1 十二平均律一台钢琴如何骗过我们的耳朵这一步我们可以从看得见的琴键走到听得到的声音。声音的本质是振动音高就是振动频率单位是赫兹Hz。国际标准规定钢琴中央C旁边那个Aa1也就是简谱里的6在标准定音下频率是440Hz。这个标准俗称音乐会音高调音师、乐队、合成器都以它为准。问题来了Do、Re、Mi、Fa、Sol、La、Si之间哪些是全音哪些是半音频率到底怎么定答案是十二平均律。它把一个八度频率翻倍的距离平均切成12份每一份是一个半音相邻半音之间的频率比恒定都是2的12次方根约等于1.059463。这个设计的精妙之处在于用一个统一的等比尺子来刻画所有音高无论从哪个音开始只要按固定的半音数往上推就能推出一个标准的大调音阶。举个例子中央C1的频率是261.63Hz往上走一个半音升C就是261.63乘以1.059463约277.18Hz再走一个半音就是D2约293.66Hz。从1到2走了两个半音所以频率比是1.059463的平方约1.1224。为什么是12份而不是10份或16份这个问题夹杂着物理、历史和听觉审美的多重原因但结论就是经过几百年的磨合十二平均律成了现代乐器最通用的语言协议。它允许一台钢琴在任何一个调上弹奏都能保持音程关系的一致性代价是每个音之间做了一次近乎察觉不到的折中。你听到一个和谐的大三和弦其实是律制在背后做了妥协人的耳朵宽容度够高接受得非常好。2.2 C大调七个音符的频率表有了440Hz和2的12次方根就能算出C大调七个音的频率。以中央CC4为1对应的就是简谱音名MIDI编号频率Hz1C460261.632D462293.663E464329.634F465349.235G467392.006A469440.007B471493.88这张表是可以通过公式推出来的不必死记。我常用的算法是把A4440作为锚点C4距离A4往下9个半音所以C4频率等于440除以(1.059463的9次方)算出来就是261.63左右。任何一个音只要知道它和A4之间差多少个半音就能算出频率。这里有一个特别容易让人困惑的点E到F明明只差半音频率却差约20HzB到高音C同样只差半音频率差约30Hz。为什么高音区的半音间距反而更大因为人耳对音高的感知是等比关系而不是等差关系。一个八度永远是频率乘2所以越是高音区同样一个半音在赫兹数值上的跨度就越大。这也直接决定了调音和混音时的判断习惯低音区差个几赫兹人耳不容易察觉高音区差个几赫兹就会明显感到飘。2.3 用Python合成一段1234567音阶有了频率表接下来就可以用代码把声音真正造出来。这是我个人很推荐的一个入门玩法不需要任何乐器一台电脑就能听到1234567对应的声音。方案是Python加numpy和scipy生成正弦波再存成WAV文件。代码如下import numpy as np from scipy.io import wavfile sample_rate 44100 duration 0.5 gap 0.05 freqs { 1: 261.63, 2: 293.66, 3: 329.63, 4: 349.23, 5: 392.00, 6: 440.00, 7: 493.88, } melody 1234567 samples [] for ch in melody: f freqs[ch] t np.linspace(0, duration, int(sample_rate * duration), endpointFalse) wave 0.5 * np.sin(2 * np.pi * f * t) samples.extend(wave) samples.extend(np.zeros(int(sample_rate * gap))) audio np.array(samples, dtypenp.float32) wavfile.write(scale_c.wav, sample_rate, (audio * 32767).astype(np.int16))跑完这段代码播放scale_c.wav你听到的就是标准的哆来咪发嗦啦西。这里有三个细节值得说采样率44100Hz是CD音频标准含义是每秒钟采集44100个样本点理论上最高能还原22050Hz的声音远超大部分乐器的基频范围。振幅取0.5而不是1是为了留出动态余量防止波形触顶削波削波后会出现刺耳的破音。音符之间加50毫秒静音如果不加两个音会直接以相位差跳变产生爆破声。如果觉得纯正弦波太单调可以叠加一个低八度的正弦波或者加入几次泛音声音会立刻变得厚实。这就是合成器的雏形。对于想理解声音是怎么合成的开发者这条从数字频率到WAV文件的路径是最直观的入门经验。3. 数字之外的记号拍号、时值、高低音点怎么读3.1 一条横线改变时值光有1234567还不够因为音乐不只是什么音还包括这个音唱多长。简谱表达时值的方式妙就妙在极其直观数字后面加横线是延长数字下面加横线是缩短一共两种操作覆盖所有情况。不带横线的数字是一个四分音符通常算1拍。数字后面每加一条增时线时值增加1拍。所以5是1拍5-是2拍5--是3拍。数字下面每加一条减时线时值减半。5下面一条线是八分音符半拍两条线是十六分音符四分之一拍。这个规则的记忆方法很简单增时线像把音拉长减时线像把音压短。练习时数横线比背术语更实用。我见过不少自学的人看到5 - -这种写法会发愣其实它就是在5后面加了两条横线读作soll——共三拍。手写谱时时线容易歪会影响阅读我的建议是尽量用打谱软件或者手写时用尺子对齐横线。3.2 附点、连线与休止符除了横线另一个出现频率很高的是附点。写在数字右边的小圆点表示延长原时值的一半。比如5.表示一个四分音符加上一个八分音符的长度也就是1.5拍。附点的价值在节奏上它能让旋律产生一种向前滚的摇摆感流行乐和摇滚乐里的切分律动很大程度靠它撑起来。连线分两种。连接相同音高的两个音符时叫延音线表示两个音要弹成一个音、时值相加连接不同音高的音符时叫连音线或圆滑线表示旋律要连贯中间不换气。看谱时一条大弧线弯过去不管是延音还是圆滑线核心都是别断开。休止符更简单0就是休止时值规则和普通数字完全一样0是一拍0-是两拍0下面加线是半拍。很多初学者不重视0觉得空白不就是不出声但实际上休止的位置极其考验演奏者的律动感。同样一段旋律休止符处理得干净利落整首歌的质感立刻提升这也是为什么很多鼓手和贝斯手会反复强调学会数休止。3.3 从单音节到完整乐句怎么读节奏把上面的记号组合起来就能读一段完整的旋律了。举个例子一行1 2 3 1 3 2 1 -应该怎么读先看左上角有没有拍号。通常简谱会标注2/4、3/4、4/4、6/8这类标记分母表示以几分音符为一拍分子表示每小节几拍。4/4的意思就是以四分音符为一拍每小节四拍。然后看小节线。小节线把一串音符按拍数切分成若干小节每个小节内的时值总和必须等于拍号规定的拍数。这条规则是硬性的相当于一篇文章的每句话都不能超过标点规定的句子长度。比如4/4拍的小节里可以放四个四分音符也可以放一个二分音符加两个八分音符但不能放五个四分音符。我建议新手读谱时按这个步骤练先确认拍号搞清一拍长什么样。用手指或节拍器轻轻点拍把每个音按正确时值均匀地放进节拍里。音符密集的地方放慢速度先读对节奏再逐渐提速。节奏感特别弱的人我强烈推荐唱谱法把音高和时值一起唱出来比如哆——来咪发嗦——啦——。嘴巴一旦开始唱节奏的边界感会自动清晰起来。这个方法教学效果极佳而且完全不用乐器。4. 在乐器上弹响1234567三种入门路径4.1 电子琴/钢琴白键就是C大调手里有键盘类乐器电子琴、电钢琴、MIDI键盘的人找1234567是最容易的。钢琴键盘上有规律地排列着黑键两个黑键一组、三个黑键一组。任意一组两个黑键的左下角那个白键就是C也就是1。从中央C往右依次弹白键得到的就是1 2 3 4 5 6 7 1全程一个黑键都不用碰。因为C大调音阶恰好就是所有白键这也是很多人眼里钢琴最容易切入的调。我建议新手按三个阶段走第一周只做上行和下行练习把1到高音1再滑回来练到闭眼能找到相邻音的位置。第二周弹简单的儿歌比如小星星的旋律开头就是1 1 5 5 6 6 5用一根手指也好用五指原位也好重点是让数字到手指形成条件反射。第三周尝试把自己会哼的歌用简谱记下来写错了没关系这个过程比弹现成谱子更有价值。这里有个小技巧不要只记中央C这个键叫1而是记住每个音相对黑键的方位关系比如5在三个黑键组中间那个黑键的右侧。这种相对定位法在换琴、登上舞台使用陌生键盘时都比你死记某个绝对位置可靠得多。4.2 吉他从C和弦与音阶指型开始吉他和钢琴不一样同一个音在指板上有好几个位置所以新手经常会迷路。我的建议是从C大调音阶第一把位指型入手这是最接近1234567直觉的练法。以标准调弦为例从五弦3品开始五弦3品是1Do五弦5品是2Re四弦2品是3Mi四弦3品是4Fa四弦5品是5Sol三弦2品是6La三弦4品是7Si三弦5品是高音1Do。按照这个指法上下行练习就能弹出一条和简谱完全对应的C大调音阶。这里有一个必须提醒新手的坑吉他指板上最显眼的起点其实是六弦空弦但它对应的不是1而是3Mi。很多教材会用Mi型音阶教这并非错误但对只认1234567的初学者来说非常容易绕晕。我的建议是先别管这些术语把从五弦3品的Do开始练熟让耳朵听到的音和简谱上的数字对应上等指型固定之后再去补乐理理解不同指型的意义。吉他对理解音阶结构反而比钢琴更直观因为一个品格就是半音。在任意一根弦上从任意音开始按照全全半全全全半的规律往上推品格你就能推出任何调的大调音阶。这个过程可以帮你真正内化第一章讲的音程规律。4.3 手机App和音序器零成本上手的路线没有实体乐器也完全能起步。手机里装一个键盘或鼓机类App就能弹响1234567。我常用的路线是这样库乐队GarageBand内置键盘、原声吉他、鼓组而且支持MIDI录音可以随手弹一段存下来。国内还有随身乐队这类App集成度更高音质也不错。打谱软件MuseScore是完全免费的可以在电脑上按简谱或五线谱输入音符实时听回放还能导出PDF和音频。对喜欢记录创作的人来说这东西就是数字时代的乐谱纸。如果你想接触更底层的东西可以用各类在线音序器甚至用Web Audio API写一段代码把音符按时间轴排进去浏览器就能直接播放。这个路线的核心优势是零硬件成本适合想先用声音建立感知的人。工具只是载体真正练的是对音高、节奏和结构的判断力。等你对1234567有了扎实的听感再转实体乐器会比一上来就对着指法图死磕顺畅得多。5. 我拿1234567写歌踩过的一些坑5.1 旋律太幼儿园如何打破数字的惯性如果用1234567来写旋律最危险的事情就是写着写着所有句子都变成顺拐要么从1慢慢爬到5要么从高音5一路滑下来听感像儿歌广播体操。原因也不难理解顺着音阶走是大脑阻力最小的路径写的时候觉得很顺滑回听时才发现索然无味。我的经验是动手之前先决定情绪方向。明亮的情绪多往1、3、5上靠这三个音构成大三和弦天然带有稳定、向上的气质忧伤一点的多往6、1、3上靠这是小三和弦的色彩想制造紧张感或色彩感就引入4、2或者7它们在和声里属于不稳定但有表情的音。但最重要的操作是不要先在纸上写音符先把想表达的旋律哼出来、录下来再转成简谱。脑子想出的旋律往往比手指在乐器上滑出的音阶更有辨识度。这不是玄学而是因为你哼唱时自带节奏和力度的直觉而手指顺着数字走时容易被惯性带跑。5.2 节奏型单一用切分和附点救活旋律第二个大坑是节奏全部变成一拍一个音像机器人报数。我早期写的旋律几乎全是这个毛病后来发现解决方案特别简单不用改太多音高只需要改节奏密度。把一个音改成附点节奏比如5 . 5听起来就从哒哒哒变成哒——哒立刻有了向前的滚动感。再激进一点可以用切分音把重音放在原本的弱拍位置让旋律产生反直觉的推动力。我用过一个很好玩的练习拿一段固定的音高序列比如1 3 5 6 5 3 1然后只用不同的节奏去排列它看能衍生出多少种情绪。你可以都写出来对比再拿去问朋友哪一版最像你想说的话。这个练习完全不需要乐理基础但它能快速建立你对节奏即情绪的感知。5.3 记谱不规范分享前一定要核对最后聊聊记谱。现在很多人习惯用手机随手记111用1455这样的文字但如果你想真正留下作品或者把歌给乐手一起排练就一定要用规范简谱。我早期写过一些旋律因为没标调号和拍号隔三差五回看时完全不知道当初想表达什么还有一次把附点位置写错让排唱的贝斯手琢磨了半天。教训很直接记录就是在交付规范的记谱能让别人少走弯路也是对自己灵感的尊重。一份规范的简谱至少应该包含左上角的调号与拍号比如1C 4/4明确的时值记号必要的时候加上力度示意和段落标记。用MuseScore这类软件整理一遍把哼唱的录音转成五线谱或简谱导出再配上录音文件存档这样即使过了几年你依然能准确还原当时的想法。最后再分享一个我自己的习惯灵感来时无论手上在做什么我都先掏出手机录一段哼唱然后趁热把它翻成简谱存进文档。翻谱的过程不只是记录更是二次审视——唱一遍、写一遍很多当时觉得真了不起的动机其实经不起细看而真正留下来的那句往往绕来绕去还是靠1234567这七个最朴素的数字搭起来的。希望这篇东西能帮你也把手里那串数字变成真正能唱出来的旋律。