ZVCG 发表于 2024-11-24 18:18:34

scu319hy 发表于 2024-11-24 15:41
感觉是不是走了点弯路?
软件合成一路再输出会不会消耗的资源更少?
另外,这里可以完全用整数计算,利 ...

采样合成用录音机录制48khz 24bit的wav可以吗?

scu319hy 发表于 2024-11-24 18:55:51

ZVCG 发表于 2024-11-24 18:18
采样合成用录音机录制48khz 24bit的wav可以吗?

技术上是没有任何问题的,不过自己录肯定不如专业采样厂家录的
只是单片机的存储太小,还是需要想办法压缩一下,弄成像YAMAHA YXG50那样的短期采样

ZVCG 发表于 2024-11-24 19:26:19

scu319hy 发表于 2024-11-24 18:55
技术上是没有任何问题的,不过自己录肯定不如专业采样厂家录的
只是单片机的存储太小,还是需要想办法压 ...

压缩会明显影响音质吧,能直接用wav格式文件最好。不过像管风琴有时一个音会持续很长时间,是需要录制比使用更长时间才能正常使用吗?

scu319hy 发表于 2024-11-24 20:03:48

ZVCG 发表于 2024-11-24 19:26
压缩会明显影响音质吧,能直接用wav格式文件最好。不过像管风琴有时一个音会持续很长时间,是需要录制比 ...

早期的合成器倾向于做成短采样,然后重复播放。理论上这样能99%的还原原始声音
比如:YAMAHA的SYXG系列软件合成器,的采样库都很小,几百种乐器才几MB采样
甚至因为效果太好以至于自家的硬件合成器没人买了...

但你如果想要较真,现实世界里的乐器是永远不可能发出两个完全相同的声音的
采样搞得越大,能容纳的细节就越多。所以,后来的厂家把搞巨型采样弄成了卖点
至于有多好,反正基本上他们的目标用户都不懂技术
把各种指标数据一堆,弄个几十G的采样数据出来就是好
实际上,再大的采样也无法还原乐器本身的变化。人也听不出那么多的细节

MCU本身的这点容量,我觉得能做到SYXG50的效果就非常非常好了
这个合成器我都用了20多快30年了,现在听MIDI还是用它

ZVCG 发表于 2024-11-24 20:53:31

scu319hy 发表于 2024-11-24 20:03
早期的合成器倾向于做成短采样,然后重复播放。理论上这样能99%的还原原始声音
比如:YAMAHA的SYXG系列 ...

这个50的有管风琴音色吗?能否内录几段发给我听听,谢谢!
jqx021@sina.com

scu319hy 发表于 2024-11-24 21:48:10

ZVCG 发表于 2024-11-24 20:53
这个50的有管风琴音色吗?能否内录几段发给我听听,谢谢!
jqx021@sina.com

这是一个MIDI播放器,我把SYXG50的VSTi插件打包在里面了,你可以自己下回来玩
https://ed-x.cn/versions/MidiPlayer6.7z
这是可以使用VSTi做为系统MIDI音源的驱动程序 https://ed-x.cn/versions/vstmididrv_2.5.exe.7z
你安装后,可以加载SYXG50,这样系统里的其它MIDI应用可以直接用这个音源来播放

这是我录的一点Church Organ的音乐效果,有点单薄
https://ed-x.cn/versions/output.mp3

jiachangchun 发表于 2024-11-24 22:08:41

scu319hy 发表于 2024-11-24 21:48
这是一个MIDI播放器,我把SYXG50的VSTi插件打包在里面了,你可以自己下回来玩
https://ed-x.cn/versions ...

这音色可不是震荡器能完成的

ZVCG 发表于 2024-11-24 22:33:14

scu319hy 发表于 2024-11-24 21:48
这是一个MIDI播放器,我把SYXG50的VSTi插件打包在里面了,你可以自己下回来玩
https://ed-x.cn/versions ...

好的,我明天下载安装听听,谢谢啦

scu319hy 发表于 2024-11-24 23:12:31

jiachangchun 发表于 2024-11-24 22:08
这音色可不是震荡器能完成的

肯定不是啊,这是采样合成器

MT4S301 发表于 2024-11-24 23:22:50

scu319hy 发表于 2024-11-24 21:48
这是一个MIDI播放器,我把SYXG50的VSTi插件打包在里面了,你可以自己下回来玩
https://ed-x.cn/versions ...

很好的键盘音色,上世纪美国风味儿扑面而来;P

shiuyipyuen 发表于 2024-11-25 06:10:51

代洪波 发表于 2024-11-24 11:36
我其实不是很熟悉这个理论了。软件上可以做到补偿/不补偿。

我极喜欢补偿:victory:

代洪波 发表于 2024-11-25 11:30:17

scu319hy 发表于 2024-11-24 15:41
感觉是不是走了点弯路?
软件合成一路再输出会不会消耗的资源更少?
另外,这里可以完全用整数计算,利 ...

单路输出没什么问题,我问了楼主,最多6路同时按下,按照目前16BIT,6路相当于8BIT。每个通道还能得到8192幅度分辨率。很好了。我后面的版本用的32G474,删除了其他通道只留了一路输出。计算正弦波的函数是浮点的,输出到PWM是整数。做了截断。计算资源32G474有DSP单元。不过32H750没有超高分辨率定时器,不适合这里的应用。

scu319hy 发表于 2024-11-25 13:55:34

代洪波 发表于 2024-11-25 11:30
单路输出没什么问题,我问了楼主,最多6路同时按下,按照目前16BIT,6路相当于8BIT。每个通道还能得到819 ...

你现在的方案应该是PWM滤波?
这个方案依赖于定时器才能获得高精度
你选用STM32G474应该就是为了用它的32bit定时器
但改用DAC就可以不依赖定时器的分辨率了
虽然STM32的DAC只有12Bit,但它最少可以跑到1Msps
加个4bit抖动进去模拟16Bit,还能输出64K采样的音频
比PWM的效果要好

另外,如果要支持多通道复音,在浮点数性能不足时,改用整数算法可以大幅提升性能
音频合成精度也不高,没必要非用浮点数不可。追求高精度应该会考虑用I2S挂专门的音频DAC了
不过整数算法要烧脑一些
以STM32H750的计算能力,做到几十年前的软件合成器的效果应该不在话下的
STM32G474的计算能力应该也可以的,但毕竟内存小很多,性能也要低不少,会平白增加不少实现难度

代洪波 发表于 2024-11-25 14:34:05

scu319hy 发表于 2024-11-25 13:55
你现在的方案应该是PWM滤波?
这个方案依赖于定时器才能获得高精度
你选用STM32G474应该就是为了用它的 ...

12BIT 在多通道使用的时候,每个通道的有效BIT更低,并且,这里需要用到斜坡上升和等响度补偿,幅度失真太大。另外1Msps,是载波的速度?1us算一次,是不是太快了?

代洪波 发表于 2024-11-25 14:39:05

scu319hy 发表于 2024-11-25 13:55
你现在的方案应该是PWM滤波?
这个方案依赖于定时器才能获得高精度
你选用STM32G474应该就是为了用它的 ...

目前用32G474应该比334好多了。主频168MHZ,RAM大小对于我目前的思路意义不大。多了DSP处理单元,计算sin函数更快,我的想法是能同时处理6个通道的sin,和斜坡启动,等响度补偿计算,把最高频率每个周期的点数做到32点或者64点就完美了。
页: 1 2 3 4 [5] 6 7
查看完整版本: 请推荐一个优秀的低频正弦波电路