音乐发生器的原理

音乐发生器的基本知识:

  

 

分频系数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

的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名连续记录两次

即可。

原文地址:https://www.cnblogs.com/fhyfhy/p/4544525.html