描述
<p>【请在报名阶段填写 ↓】
本作品采用波表合成(WaveTable Synthesis)的方法播放曲谱,采用Cortex M0+的MCU,对程序进行了高度优化,达到了了20复音数,32khz采样率,16bit波表样本的性能。</p>
<p>【请在竞赛阶段填写 ↓】
* 一、作品详情;</p>
<p>波表合成即取样,存贮为一个波表文件,重播时根据音乐文件记录的乐曲信息向波表发出指令,从表格中,逐一找出对应的声音信息,经微处理器或PC系统的CPU合成,加工后放出来。传统上该操作在高性能的平台实现,如ASIC,DSP,PC等。作品旨在低性能的MCU上实现实时性极高的波表合成功能,所以关键部分程序使用汇编完成以达到最优的执行速度。
作品具有传统八音盒的音色,使用了分段采样,对于不同的音高的发声有更好的表现。板载的MCU具有128K FLASH,除了程序和波表之外,可以存储近25首平均10分钟的乐曲。同时提供了midi文件转乐曲镜像的工具,可以任意定制乐曲内容。该作品还具备音量调节,乐曲导航和音频可视化功能,具有很高的实用性。硬件支持USB接口更新内部的曲谱镜像。</p>
<p>* 二、描述作品所面临的挑战及所解决的问题;</p>
<p>波表合成具有较高的实时性,即每1/32000s要更新20个发音单元的参数并混音,所以关键部分使用汇编完成,调试相对困难。</p>
<p>* 三、描述作品硬件、软件部分涉及到的关键点;</p>
<p>核心MCU选用了NV32F100,FLASH容量大且PWM可以大电流输出,能直接带动扬声器。作为一件DIY作品SOP16也更容易焊接。同时该MCU为2.7~5.5v宽电压产品,可以直接用普通的AA电池供电。USB接口使用CH330N,引脚少方便易用。固件使用前后台构架,定时器中断实时进行波表合成。同时还设计了专用的midi转曲谱数据的工具软件,具有智能移调功能,使得乐器的音域经可能符合八音盒的音域。</p>
<p>* 四、作品材料清单;</p>
<p>详见附件 BOM_#第四届立创大赛#波表合成八音盒_20190921170139.csv。</p>
<p>* 五、作品图片上传;(PCB上须有大赛logo标识并拍照上传,若无视为放弃参赛)</p>
<p><img src="//image.lceda.cn/pullimage/V7Wn1rpLEphl2xNFKPit519vRRLd0XD0ntoaXJrH.jpeg" alt="DSC_0066.jpg">
<img src="//image.lceda.cn/pullimage/gzTfYT3UxtwTYOd8gMa39tdgPtr9RZojOs6qdWb9.jpeg" alt="DSC_0067.jpg">
* 六、演示您的作品并录制成视频上传;(视频内容须包含:作品介绍;功能演示;性能测试;PCB上大赛logo标识特写镜头,若无视为放弃参赛)</p>
<p>请参看:
<a href="https://www.bilibili.com/video/av68526732/" target="_blank">https://www.bilibili.com/video/av68526732/</a></p>
<p>七、开源文档。
固件请参考:<a href="https://github.com/eeyrw/music-box-nv32" target="_blank">https://github.com/eeyrw/music-box-nv32</a>
midi转曲谱镜像工具请参考:<a href="https://github.com/eeyrw/midi-to-hex/tree/new-midi-to-hex" target="_blank">https://github.com/eeyrw/midi-to-hex/tree/new-midi-to-hex</a></p>
<p>附件有编译好的hex和bin文件,直接可以烧录使用。关于NV32F100的烧录参看:<a href="http://bbs.21ic.com/icview-1639052-1-1.html" target="_blank">http://bbs.21ic.com/icview-1639052-1-1.html</a>
<a href="https://diy.szlcsc.com/attachments/2019/9/8N5OOaD1TtLwPCNVuQte9pbuYcnuiUkewDchE1qa.zip" target="_blank">midi-to-hex-example.zip</a>为针对Windows平台编译好的曲谱转镜像工具,可以参看内部readme得到曲谱镜像文件。</p>
评论(11)