用51实现的真正和弦音乐

2020-01-12 17:21发布

一直想用单片机来产生和弦音乐,不用太复杂,有和弦效果就行,但网上100%的单片机产生音乐都是假和弦,基本都是单调的7个调加上时间控制,难听。
直到我听到这个:

隐形的翅膀.rar (2.56 MB, 下载次数: 1237) 2015-6-24 14:47 上传 点击文件名下载附件
金属弦效果,很接近吉他音 {MOD}.rar (2.61 MB, 下载次数: 868) 2015-6-24 14:49 上传 点击文件名下载附件

这个是真的和弦,效果非常好,无奈联系不上作者,只有HEX文件,用的STC12C5A60S2单片机。我自行下载测试也是和录音的相同效果。
STC12C5A系统自行反编译明显出错,只好花钱网上找人反编译,反编译出的汇编代码编译出来的和原来的HEX文件效果一致,到这一步已经有希望了。

但问题来了....我已经忘记汇编了,寄存器一多就乱,只好花了些时间把数组提取出来,放上论坛,有精力的莫友可以一起帮把汇率转成C的。
汇率代码不多,就只有100行左右寄存器多的我看不过来。
能转成C语言也是一件好事,毕竟这是目前的最好效果了。
MIDI.rar (108.34 KB, 下载次数: 524) 2015-6-24 14:55 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
100条回答
xiaoxu191
2020-01-18 05:03
amazing030 发表于 2015-6-24 22:27
不,不是PWM播放WAV方式的,你看数据大小就知道了,播放WAV的话你存储空间够吗? 8K的采样率单片机那种存 ...

是的,完全同意,此处不是用PWM播放WAV。但是发声的原理是一样的,就是用PWM对已经量化的声音数据进行还原,理论依据是香农采样定理(又称奈奎斯特采样定理):为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。 我注意到你的硬件电路中使用了22MHz晶振,而STC12C5A60的PCA生成PWM的频率和其它80512芯片比较高,所以认为和那个AVR(使用Tiny85,Tiny861,内部有高频振荡器供PWM)有相似之处,就是采样(还原)频率较高,音质会比较好。根据使用的GPIO引脚功能和晶振,判断是PWM无疑。

这不是重点。

我听了你帖子里的音频,感觉和玩具(使用语音芯片的和弦功能)比较,并没有更好。只能说,实现多音频的和弦,比单音好听。

值得进一步分析的是:如何编辑出好听的音 {MOD}?
39楼 teddeng 的观点有启发。



一周热门 更多>