版本协议

CC-BY 3.0

标签

#第四届立创大赛#波表合成八音盒

创建时间:1年前

项目主题:自拟主题

描述

<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" rel="noreferrer noopener">https://www.bilibili.com/video/av68526732/</a></p> <p>七、开源文档。 固件请参考:<a href="https://github.com/eeyrw/music-box-nv32" target="_blank" rel="noreferrer noopener">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" rel="noreferrer noopener">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" rel="noreferrer noopener">http://bbs.21ic.com/icview-1639052-1-1.html</a> <a href="https://diy.szlcsc.com/attachments/2019/9/8N5OOaD1TtLwPCNVuQte9pbuYcnuiUkewDchE1qa.zip" target="_blank" rel="noreferrer noopener">midi-to-hex-example.zip</a>为针对Windows平台编译好的曲谱转镜像工具,可以参看内部readme得到曲谱镜像文件。</p>

文档

music-box-nv32-sch-lcsc

music-box-nv32-pcb-lcsc

BOM

ID Name Designator Footprint Quantity
1 100nF C7,C1,C6,C5 0805 4
2 1TS002E-2600-2500 RST_KEY,USER_KEY_1,USER_KEY_2 KEY-TACT-SMD-6.1*3.7*2.5 3
3 Speaker SPK PCB_MOUNT_SPEAKER_30MM 1
4 3R R3,R1 0805 2
5 NV32F100FS16 U2 SOP-16_LS6.0-L10.0-W3.9-PI1.27-BL 1
6 U-F-M5DW-Y-2 USB-SER1 U-F-M5DW-Y-2 1
7 SS12-LTP D2,D1 SMA(DO-214AC) 2
8 TP_GND TP_GND TESTPIN 1
9 TP_VCC TP_VCC TESTPIN 1
10 1k R2,R7,R9 0805 3
11 1uF C3 0805 1
12 17-21/GHC-XS1T2M/3T INDICATOR,USB_POWER LED-0805 2
13 17-215UYC/S530-A3/TR8 POWER LED-0805 1
14 CH330N U3 SOP-8_150MIL 1
15 XH2.54-4AW CN1 XH2.54-4AW 1
16 10K R11,R8,R10,R4 0805 4
17 B503 POT1 B503_PCB 1
18 SS-12F44-G5 SW1 SW-DIP-12.1X5.6 1
19 MF-PSMF035X-2 F1 0805 1
20 AA_BATT_BOX BT1 AA_BATT_BOX_59MMX33MM 1

附件

附件名 下载
BOM_#第四届立创大赛#波表合成八音盒_20190921170139.csv
music-box-nv32.hex
music-box-nv32.bin
midi-to-hex-example.zip

成员

评论(10)

成功
工程所有者当前已关闭评论
LCDS 回复

温馨提示:距项目提交截止还有6天,记得完善作品上传哟!

LCDS 回复

你的项目完成的很棒,但是看不到实际效果,推荐你上传一个视频,大家都听一下效果。

zy1186 回复

这个不错,很久前就像搞下类似的产品!有空来研究下这解码怎么搞!音频和容量是个难题啊,不知楼主怎么搞的?

jixin001 回复

我不理解“波表合成”到底是啥意思。之前用单片机直接播放WAV格式的文件,不知道这两种方法有什么区别?

LCDS 回复

恭喜您的项目获得第四届立创电子设计大赛优秀奖,点击查看获奖名单:https://diy.szlcsc.com/posts/7b78bd99e53745588a4f2d81cc11af92

cocoyuan 回复

@zy1186 这个不是存储WAVE,这个只存放波表。

cocoyuan 回复

@jixin001 理解为乐器就容易了。记录的是音符,然后发音。

jixin001 回复

@cocoyuan 大概明白了,最小发音单位为“音符”,就像电子琴一样,按一个按键就出一个对应的音符。然后一首音乐就是若干不同音符的叠加输出。这样理解没问题吧?

cocoyuan 回复
Uauio 回复

@cocoyuan 这个扬声器是什么型号的?多少W,多少Ω的?

goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow