钢琴的音律-一次外教作业的音频生成原理。

十二平均律在交响乐队和键盘乐器中得到广泛使用,钢琴即是根据十二平均律来定音的,因为只有“十二平均律”才能方便地进行移调。曲调由音阶组成,音阶由音组成。音有绝对音高和相对音高。声音是靠振动(声带、琴弦等)发出的,而振动的频率(每秒振动的次数),就决定了的音的绝对高度。不同的音有不同的振动频率。人们选取一定频率的音来形成音乐体系所需要的音高。

举个例子来讲 钢琴是十二平均律制乐器。国际标准音规定,钢琴的a1(小字一组的a音,对应钢琴键是49A)的频率是为440Hz;又规定每相邻半音的频率比值为2^(1/12)≈1.059463,(解释:这表示“2的十二分之一次方”),根据这规定,就可以得出钢琴上每一个琴键音的频率。如与a1右边相邻#a1的频率是440×1.059463=466.16372Hz;再往上,b1的频率是493.883213Hz;c2的频率是523.25099……同理,与a1左边相邻的#g1的频率是440÷1.059463=415.304735Hz…..这种定音的方式就是“十二平均律”。

钢琴上每相邻的两个琴键(黑白都算)的频率的差别,音乐上即为半音。比如说C和#C相差半音,C和D相差两个半音(或曰一个全音),以此类推。如果B再往上升半音,会发现这个音的频率刚好是C的两倍,而在音乐上称为一个八度,这两个音听起来“很相象”。用小写的c来表示它,依次有#c,d……再往上走可以用c1……,c2……来表示,而往下走可以用大写的C1……,C2……来表示。

“十二平均律”的12声音阶的频率(近似值)分别是:F(C)、1.059F(C#/Db)、1.122F(D)、1.189F(D#/Eb)、1.260F(E)、1.335F(F)、1.414F(F#/Gb)、1.498F(G)、1.587F(G#/Ab)、1.682F(A)、1.782F(A#/Bb)、1.888F(B)

将八度音等分为十二等分,其数学意义如下:   八度音指的是频率加倍(即二倍频率)。因此在八度音中分为十二等分乃是分为十二个等比级数,其结果就是每个音的频率为前一个音的2开12次方倍(   )。   十二平均律中各音的频率(0.00001 Hz)   C4: 261.62557 Hz   #C4: 277.18263 Hz   D4: 293.66477 Hz   #D4: 311.12698 Hz   E4: 329.62756 Hz   F4: 349.22823 Hz   #F4: 369.99442 Hz   G4: 391.99544 Hz   #G4: 415.30470 Hz   A4: 440.00000 Hz   #A4: 466.16376 Hz   B4: 493.88330 Hz   C5: 523.25113 Hz

钢琴琴键排列与音符对照如图:   

琴键与谱表对照发音卡
琴键与谱表对照发音卡

之前外教老师要求使用android的soudpool生成声音,其实改变播放速度就能达到改变何止的作用,但是很多同学都糊弄过去了,直接播放做好的音频。

  1. comment_author_avatar 於清樂说道:

    这个我有发言权~
    我以前上学的时候用好几种语言实现过吉他声模拟,项目在这,博主有兴趣可以看看哦:
    https://github.com/ryan4yin/guitar-synthesizer

    1. comment_author_avatar XINJIAWEI说道:

      谢谢老哥捧场哈,我去看看😂

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

5 + 5 =