如何将曲谱的各音符转换成频率数组和持续时间

您所在的位置:网站首页 根据乐谱自动发声的app 如何将曲谱的各音符转换成频率数组和持续时间

如何将曲谱的各音符转换成频率数组和持续时间

2024-07-03 23:28| 来源: 网络整理| 查看: 265

乐曲中不同的音符实质上表示的是不同频率的声音。

 在单片机中要发出不同频率的声音,只要产生不同频率的脉冲信号,再通过喇叭等播放出来即可。又由于方波容易用定时器产生,故一般单片机使用方波脉冲。

关于Win32 API的发音函数Beep,很多人不知道怎么把音频文件的曲谱转换成频率数组和持续时间,在这我给出两个方法。

方法一,对于一个音频文件,我们可以先获取到它的曲谱,再去根据曲谱去查各音调的频率和套公式得到持续时间;

方法二,可以利用cooledit等软件分析音频文件的频谱;

附表:

音符与频率对应表

(“#”表示半音,用于上升或下降半个音)

表9.1  C调各音符频率与计数值T的对照表

音符   频率(Hz) 简谱码T值    

低1DO  262         63628            #1DO#  277         63731            低2RE  294         63835            #2RE#  311        63928            低3M   330        64103            低4FA  349        64103            #4FA#  370       64260            低5SO  392       64260            #5SO#  415      64331             低6LA  440      64400           #6       466       64463               低7SI    494      64524            中1DO  523     64580        

#1DO#  554   中2RE  578      FC9F; #2RE#  622   中3MI   659     FD09; 中4FA  698     FD34 #4FA#  740 中5SO  784    FD82 #5SO#  831 中6LA  880     FDC8 #6LA#  932 中7SI   988     FE06

 

 节拍

       每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。   

              表9.2  节拍码对照表 1/4节拍 1/8节拍 节拍码 节拍数 节拍码 节拍数 1 1/4拍 1 1/8拍 2 2/4拍 2 1/4拍 3 3/4拍 3 3/8拍 4 1拍 4 1/2拍 5 1又1/4拍 5 5/8拍 6 1又1/2拍 6 3/4拍 7 1又3/4拍 7 7/8拍 8 2拍 8 1拍 9 2又1/4拍 9 1又1/8拍 A 2又1/2拍 A 1又1/4拍 B 2又3/4拍 B 1又3/8拍 C 3拍 C 1又1/2拍 D 3又1/4拍 D 1又5/8拍 E 3又1/2拍 E 1又3/4拍 F 3又3/4拍 F 1又7/8拍

    节拍延时参考:

       曲调            1/4拍的延迟时间             1/8拍的延迟时间       4/4              125ms                         62ms                                        3/4              187ms                         94ms       2/4              250ms                         125ms



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3