音乐发生器的原理
音乐发生器的基本知识:
分频系数K = Fc/(Fo*2)
如果最大分频系数为n位2进制数,则计算最大的计算值的位数:N = n’b1111…;
则计数范围为:置位初始值 --- 》 N
输出为每次计数到N则翻转一次。
每个音节的频率为:
如果使用6Mhz时钟来产生音频,使用4hz时钟来产生音拍,则分频系数k,,计算初始值,计算终值列表如下:
计数初始值 = 计数终值 - 分频系数;
|
音频 |
分频系数 |
计数初始值 |
计数终值 |
低音1 |
261.6 |
11468 |
4915 |
14’h3fff =16383
|
低音2 |
293.7 |
10215 |
6168 |
|
低音3 |
329.6 |
9102 |
7281 |
|
低音4 |
349.2 |
8591 |
7792 |
|
低音5 |
392 |
7653 |
8730 |
|
低音6 |
440 |
6818 |
9565 |
|
低音7 |
493.9 |
6073 |
10310 |
|
中音1 |
523.3 |
5736 |
10647 |
|
中音2 |
587.3 |
5111 |
11272 |
|
中音3 |
659.3 |
4552 |
11831 |
|
中音4 |
698.5 |
4289 |
12094 |
|
中音5 |
784 |
3827 |
12556 |
|
中音6 |
880 |
3409 |
12974 |
|
中音7 |
987.8 |
3037 |
13346 |
|
高音1 |
1046.5 |
2867 |
13516 |
|
高音2 |
1174.7 |
2554 |
13829 |
|
高音3 |
1318.5 |
2274 |
14109 |
|
高音4 |
1396.9 |
2148 |
14235 |
|
高音5 |
1568 |
1913 |
14470 |
|
高音6 |
1760 |
1705 |
14678 |
|
高音7 |
1975.5 |
1519 |
14864 |
|
休止音 |
0 |
0 |
16383 |
音长的控制:
音符的持续时间根据乐曲的速度及每个音符的节拍数来确定。本次演奏的送
别片段,最短的音符为四分音符,如果将全音符的持续时间设为1s的话,则只
需要再提供一个4Hz的时钟频率即可产生四分音符的时长。根据乐曲演奏电路
的原理框图可知,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设计
计数器的预制数来实现,预置不同的数值就可以使计数器产生不同频率的信号,从
而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置
数停留的时间越长,该音符演奏的时间久越长。每个音符的演奏时间都是0.25s
的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名连续记录两次
即可。