用单片机来物理建模音源,一般要什么级别性能的单片机?

9 月 27 日
 xbox360
买了一块树莓派 pico2,双核 150MHz,core0 做 usb 数据传送和显示信息,core1 主要接收 core0 的 midi 信号后,经物理建模音源后通过 i2s 输出声音.
但是我发现渣音质不说,还有很多杂音,然后从 150MHz 超频到 200MHz 后音质有所改善,杂音也少了一些,但是超频到 300MHz 后,输出的音频会有爆音.

当然了,前提是单片机要有性价比,太贵的话不如用一台手机加载软音源来使用.
1142 次点击
所在节点    问与答
7 条回复
zhujinliang
9 月 27 日
core0 只做 usb 和显示可能有点浪费
性能/价格比 pico2 强的单片机不多了,而且现在都涨价,当前的价格远不如以前美丽了
另外可以考虑看下 F1C200S 或者 RK3506G2 这样的芯片,前一个是 800MHz ARM9 ,芯片价 30 元左右,后一个是 3 核 1.5GHz Cortex-A7 ,模块价格大概 100 多元
murmur
9 月 27 日
你想干嘛,不是有专门的电子琴芯片,128m 的采样就能演出了
westerndream
9 月 27 日
你程序的浮点运算多不多,多的话建议换带 fpu 的型号不然软件浮点很慢的,其他的除非你算法很复杂,要不然优化一下算法/调度(裸机/RTOS )/驱动( DMA )应该能跑,我做过 96M 主频 stm32f4 的,4 路 192k 32Bit I2S 输出,波形很漂亮
BingoXuan
9 月 28 日
2350 绝对够用。用 pio 实现 i2s ,然后走 dma 发送数据。计算不要全在 mcu 上,而是计算好传输给 mcu 。
xbox360
9 月 28 日
@westerndream
多浮点运算,pico2 是自带 FPU 的,算法用的是 Karplus-Strong 扩展模型, 10 复音(每复音最多 3 弦), IIR 双二阶低通( Biquad ), 全通色散滤波( Allpass ), 复弦交叉耦合以及四模态音板共振器( SoundboardResonator ).
xbox360
9 月 28 日
@westerndream 我试过用相同的算法,在 win 系统下做成一个小程序,它在运行后导出一个 wav 文件,听到的声音比 pico2 听到的声音,大概好听 10 倍都不为过...
westerndream
9 月 29 日
@xbox360 原来 2 代已经是 m33 了,不好意思我还以为是 m0 ,那也有可能你算法比较复杂,建议你解耦开驱动和算法试试,先电脑上生成一段做好部分处理的音频,录下来播放,只保留 i2s 驱动看看声音好不好,再慢慢加上滤波器/合成算法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1245023

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX