打印

有没有朋友用过CS9236这个片子?MIDI合成用的,

[复制链接]
楼主: computer00
手机看帖
扫描二维码
随时随地手机跟帖
21
tyw| | 2007-8-8 20:26 | 只看该作者 回帖奖励 |倒序浏览

00的关键在于信号拾取及分析

键盘一一对应好办
你那六根钢丝弦就不好办了
从乐音倒过来求音符吃力不讨好
倒不如从钢丝弦上动脑筋来检测指位

使用特权

评论回复
22
computer00|  楼主 | 2007-8-8 20:52 | 只看该作者

想过这个方案,但是基本上没有收获

要改装吉他很难。如果只是钢弦吉他的话,我们想过可以把它当作6行20列的矩阵键盘
来看待,在弦和品丝上分别接扫描线,但是不好接,接了也不好弹。而且也没法
判断拨了哪根弦,力度是多大。如果是使用玲珑弦的古典琴时,就没法用了。
并且这样搞也就体现不出DSP在系统中的作用了,不适合我们的比赛,嘿嘿。

没有办法,最后只好从音频信号出发,再去检测音符。

但是检测很难,最低的E音大约82.7Hz,跟它上面的F音只差几Hz。而且有大量的谐波(幅度比基频还大),
会让程序分辨不出是实际弹了这个音还是由于谐波引起的。好在谐波是八度关系,即便误检,也不会
太糟糕。而且FFT又存在着时间分辨率和频率分辨率之间的测不准关系,但是我们的系统要求采样时间
又不能太长,真是麻烦。现在检测到的准确度大概只有70%左右,再优化一些参数或者算法,
或许可以再有点提高。

使用特权

评论回复
23
tyw| | 2007-8-8 21:04 | 只看该作者

试试薄膜键


做一长条薄膜键衬在弦下面(这就与弦材无关了,成本也不会很高),缺点是没有力度信息,除非薄膜键是电阻材料做的.另外象颤音,滑音也不大好处理,除非分割得足够细,那样的话引线会太多,除非并→串接芯片做到薄膜键上
还记得我贴过的有关midi键盘力度处理的工艺资料吗,可参考一下.

转贴一篇好东东"电子琴力度键是靠测速得到的",希望对你有所启发

使用特权

评论回复
24
computer00|  楼主 | 2007-8-8 21:21 | 只看该作者

恩,当然还记得。

吉他跟键盘不一样,键盘一按下就要发声,但是吉他光按了还不一定发声,还要拨了弦才发声,并且还有空弦音。
并且那样改装了很不好弹啊,我们希望的是用普通吉他,不用改装,使用我们的系统就可以变成一把带效果器的
MIDI吉他,那才有点意思啊。所以我觉得还是多想想怎样准确的去识别音符比较好~~~

老T,帮忙想想怎样才能即快又准的识别出来呢?

使用特权

评论回复
25
tyw| | 2007-8-8 21:25 | 只看该作者

难,史无前例了,祝00好运

使用特权

评论回复
26
computer00|  楼主 | 2007-8-8 21:42 | 只看该作者

估计不是好运,是好晕了...

还好现在已经基本上能够检测出来,就是灵敏度和准确度不够,先不管这么多了,做好了马马虎虎能演示就好。

好象我在网上看到别的公司做的产品效果也不大好,估计是蛮难做了。

使用特权

评论回复
27
chunyang| | 2007-8-9 00:12 | 只看该作者

呵呵,要做得好可是高难度的东西

觉得还是做音高、音长识别好些,用DSP做简单的快速傅立叶展开就可以,然后查表找到音高,只确定音高的相对关系就行,这样不要求吉他定音,只要各弦的音高关系正确就行,然后采样点足够密集以保证实时性并检测音长,难点是混合音的通道分离。如此找到音程、音长输入合成器,调高和效果由合成器实现。这样应该是最简单的“软”吉他了,只是某些演奏技巧无法表现如滑音、颤音、哑音等,不过可以用脚踏开关辅助实现。这样的方案直接用电吉他做输入会更方便些。

使用特权

评论回复
28
computer00|  楼主 | 2007-8-9 01:49 | 只看该作者

吉他定音倒不是问题,难就难在如何快速正确的识别出弹了

这个效果器的一个功能就是吉他调音器,首先要根据它把吉他定到标准音.

我开始也觉得用FFT应该很容易找出对应的音的,可是实际情况却没那么理想.

直接用FFT变换,要分辨到1Hz,就需要1s钟的采样信号,这显然是不现实的,所以要另想办法.
还好,有一些频率细分的方法.但即使在比较短的时间内能够做出频谱图,结果也发现频谱泄露
严重,原因主要有截断效应,振动幅度变化时引起的调制等,并且谐波很多,导致无法正确识别
较高音是否真的有弹响.我使用matlab读取数据进行FFT,结果人眼都很难正确识别出正确的音,
更何况用程序来搞了。我们只好将算法尽量简单,力求实现最基本的单音识别先,如果这个能够
做好,拿来做旋律吉他也还是不错的。我们队的三个人都是弹吉他的,到时给两个伴奏,一个
弹主旋律,呵呵,还是蛮好玩的,想想就有点动力了~~~~~

使用特权

评论回复
29
tyw| | 2007-8-9 06:17 | 只看该作者

确实如此

越是和的弦越是难分离,等00成功了俺也整个midi二胡玩玩,哈哈

使用特权

评论回复
30
xwj| | 2007-8-9 06:57 | 只看该作者

哈哈,到时用吉他“弹”二胡...

使用特权

评论回复
31
computer00|  楼主 | 2007-8-9 08:48 | 只看该作者

呵呵,别说是弹二胡了,就是弹笛子,弹口琴,弹鼓,弹提

弹啥都没问题,哈哈~~~~~借用一下周星星在国产007里面的话:“听上去我是在吹笛子,其实我是在弹吉他...”


当然,要是tyw整个MIDI二胡出来,那就可以用来拉吉他了,也可以用来拉钢琴,拉笛子,拉鼓,拉萧...恩,就这么多吧,拉多了可不好...

使用特权

评论回复
32
chunyang| | 2007-8-9 12:12 | 只看该作者

所以我才建议你用查表法啊

先录制一遍所有弦音的频谱,然后选择合适的匹配方法进行查对,频率上具有整倍数关系的音,直接对照频谱的话还是可以分辨的,这样可以避免细节分析,速度就快多了,至少对于单音旋律来说是没有问题的。

使用特权

评论回复
33
computer00|  楼主 | 2007-8-9 12:29 | 只看该作者

恩,这个就有点类似模式识别里面的特征提取了

但是实现起来同样也会有不少问题,估计比直接使用频率识别法还麻烦,因为事实上,
这个频谱我是已经知道的了,然后再直接去编程比较容易.

使用特权

评论回复
34
chunyang| | 2007-8-10 01:46 | 只看该作者

等你做好了,也让俺玩玩

n年没碰吉他了,想起来还真有点手痒。

使用特权

评论回复
35
computer00|  楼主 | 2007-8-10 09:06 | 只看该作者

好的,哈哈~~~~不过我们的DSP开发板好象做完了就要上交啊,

使用特权

评论回复
36
computer00|  楼主 | 2007-8-12 15:55 | 只看该作者

CS9236 MIDI合成出声音了,灌水庆祝~~~

昨天中午去赛格买了元件,搭好电路,直接通过串口把数据塞给它就出声音了,真好用...

PS: 昨天晕死了,去买元件,叫小MM拿2个28脚的PLCC插座,结果她给我拿了2个20脚的,
我也没数,看大小差不多,就拿走了,回来发现芯片大很多...当时就倒塌了,数了下,
才发现只有20脚...没办法,我只好从以前的电路板上撬了个32脚贴片的PLCC座,
把引脚掰出来,然后贴到万用板上去了...幸好这个芯片只有两边引脚有用,另两边
都是NC,我可以只用长的那两条边,还好,看来好人还是有好报的...偶以后不去她那
买元件了...

使用特权

评论回复
37
xwj| | 2007-8-12 15:59 | 只看该作者

哈哈,色令智昏

使用特权

评论回复
38
xwj| | 2007-8-12 16:01 | 只看该作者

那个,合成效果怎么样?

--和创新声卡或雅马哈的软波表相比

使用特权

评论回复
39
chunyang| | 2007-8-12 16:07 | 只看该作者

那应该是不同档次的

价钱放在那。

使用特权

评论回复
40
computer00|  楼主 | 2007-8-12 19:52 | 只看该作者

那是比不上,它是标准的GM库. 不过声音还是有点象模象样的

就是有些乐器的音色表现不太明显...不过对于我们比赛来用,已经足够拉,演示效果应该是不错的...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则