理工男的乐理入门
- Markdown 版起稿 1/30/2016 1:00:42 PM, by jimbowhy
- CSDN原文:http://blog.csdn.net/WinsenJiansbomber/article/details/50611371
- 乐乎原文:http://jimbowhy.lofter.com/post/1cac3850_9b9e88a
题记
最近一段时间在玩MIDI,顺道也补了一下乐理。因此不久前整理的《吴统雄乐理文摘》就有巨大的参考价值了,真要感谢吴老在网上分享的文字!
在吴老的文字中引用了一个国外网站,一个乐理网很赞,它用动画形式来讲解乐理知识,其中关于调式部分的解说特别简明地表达了调式是什么的问题,不像某些教材就爱侃大山说了半天也说明调式是什么东东,这里很有需要简要地翻译一下部分内容。因此,在一定程度上说,这篇文章就是一篇翻译文字。
因为准备将本文发表到CSDN上,这是CSDN上的Markdown编辑器让我又对写作产生的巨大的兴趣,在这个去Office的时代,跟着Markdown脚步就是最大的正能量!为了这样一篇看似和CSDN主题不太协调的文章能顺利地呆下去,我自认为需要添加一些以前发表在CSDN上的编程内容。接下来就入正题。
调式音阶
诶,一开始就来调式音阶!作为理工男的乐理入门就这么叼好嘛?没错,这就是理工男的乐理入门,对于五线谱的五条线和上加几线,下加几线,还有那个像旗子的音符就是8分音符,那个圆是全音符,4分音符是全黑的Golf球杆,高音谱的G点就是G,中音谱表的G点就是C,低音谱表的G点就是F,还有3/4拍这种分子表示每小节含有3拍,分母表示每拍是一个4分音符,等等这些内容本文是不太关注的。在这只将焦点放到我认为大多教材都会忽略的要点上来。
音阶的物理意义就是振动频率的分段分割方法,现有的音阶定义是在历史进程中演化得来的。一个do和一个更高音的do在钢琴上刚好相差黑色键和白色键刚好是12个,这和十二平均律是一致的。十二平均律早在明代以前就有文字记录,但是十二平均律的标准化是西方音乐完成的,并且定义国际标准音A=440Hz。这种分割法将一个完整的八度分割为12份,每份称为一个半音 Half Note,两份作为一个全音 Whole Note。请注意了,这里的半音全音和五线谱的半音符全音符不是同一个概念,谱上的音符是在时间长短的概念,这里却是频率差距的概念。分割公式及音高计算如下,N为参考频率的相邻音符序号:
F(N)=f*2^(N/12)
A#=F(1)=A*2^(1/12)=440*1.06=466.4Hz
B=F(2)=A*2^(2/12)=440*1.12=493.9Hz
2的12次方根就是1.0594630943592952645618252949463,它的平方就用来计算A#的绝对音高,它的立方就用来计算B的绝对音高,等等,把它当圆周率π记一下3.1415926535897932…已有的记忆就只能到这了。
为此,我就写了一段脚本,用来计算从大字组A2=220Hz到小字组a2=7041Hz共5个八度的音阶频率,以下代码出自以前的博文《深入x86的内存寻址》I/O 外设硬件开发举例一,主要是和CSDN主题关联,学习乐理可以直接无视之,因为当时写的代码确实不怎样:
function write (t) {
document.write("<br>"+t);
}
function fix(t,l){
t = "0000000"+t;
t = t.substr(t.length-l,l);
return t;
}
var fi = 1.1931816 * Math.pow(10,6);
var RATIO = Math.pow(2,1/12); // Half tone about 1.059463
var A1 = 440; // Standard note pitch A1 = 440Hz
var list = [];
var notes=['A','B','C','D','E','F','G'];
var scales=[2, 1, 2, 2, 1, 2, 2];
var len = notes.length;