步进电机 MIDI 音乐 MATLAB+STM32
2018-01-01 16:53
295 查看
在网上看到了很多用步进电机演奏音乐的小视频,感觉很有意思。正好也是2017年的最后几天了,那就鼓捣一下。
整个制作周期耗费将近一天,分为两块:1.MIDI音乐格式的编码及提取;2.Stm32控制步进电机的演奏。
首先要解决MIDI音乐文件的读取,变成我能理解的格式。在这里我采用MATLAB进行读取,从其帮助文件中找到了一个叫midiread的函数,可是也看的不太懂。之后百度,发现GitHub有人做了相关的工具库。果断下载并运行了一下,可以运行。顺便还发现其包含了90多页的手册,这是良心队友。从中选取所需音轨,然后读取每个音节延续时长(Duration)、所用频率(Fy)、停顿时长(dOnset),并转成字符串形式,这样可以直接复制到Stm32代码里。
之后是编写stm32代码,没啥技术含量,两个定时器,一个做整体时长,一个做频率发生器。由于长时间不写代码了,出了很多低级的错误,导致耗费了一天。最后控制一个步进电机转动演奏音乐。步进电机可以分频,也可以不分,效果有些不一样。
所有代码已经上传到CSDN上,检索“步进电机 MIDI 音乐 MATLAB+STM32源码下载实例”。
演奏效果:http://v.youku.com/v_show/id_XMzI3NzEzNzg2MA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2
代码打包下载:https://download.csdn.net/download/fengyuzhe13/10290052
整个制作周期耗费将近一天,分为两块:1.MIDI音乐格式的编码及提取;2.Stm32控制步进电机的演奏。
首先要解决MIDI音乐文件的读取,变成我能理解的格式。在这里我采用MATLAB进行读取,从其帮助文件中找到了一个叫midiread的函数,可是也看的不太懂。之后百度,发现GitHub有人做了相关的工具库。果断下载并运行了一下,可以运行。顺便还发现其包含了90多页的手册,这是良心队友。从中选取所需音轨,然后读取每个音节延续时长(Duration)、所用频率(Fy)、停顿时长(dOnset),并转成字符串形式,这样可以直接复制到Stm32代码里。
之后是编写stm32代码,没啥技术含量,两个定时器,一个做整体时长,一个做频率发生器。由于长时间不写代码了,出了很多低级的错误,导致耗费了一天。最后控制一个步进电机转动演奏音乐。步进电机可以分频,也可以不分,效果有些不一样。
所有代码已经上传到CSDN上,检索“步进电机 MIDI 音乐 MATLAB+STM32源码下载实例”。
演奏效果:http://v.youku.com/v_show/id_XMzI3NzEzNzg2MA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2
代码打包下载:https://download.csdn.net/download/fengyuzhe13/10290052
相关文章推荐
- 游戏编程入门(11):播放MIDI 音乐
- 22.3 MIDI 和音乐
- midi格式的音乐都无法播放
- 【Win 10 应用开发】MIDI 音乐合成——音符消息篇
- 【Win 10 应用开发】MIDI 音乐合成——更改乐器音色
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- 【Win 10 应用开发】MIDI 音乐合成——乐理篇
- MIDI 音乐不出声的原因
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- 浅谈电脑音乐及MIDI技术——1
- HTML5 Audio时代的MIDI音乐文件播放
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- HTML5 Audio时代的MIDI音乐文件播放
- [收藏]播放MIDI音乐——使用DirectMusic
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- midi音乐历史
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- 音乐文件基本格式,wave,mod,midi,mp3,wma,flac
- Unity3D音乐音效研究-MIDI与波表
- java midi音乐文件播放器