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

[复制链接]
7794|45
tyw 发表于 2007-8-8 20:26 | 显示全部楼层

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

键盘一一对应好办<br />你那六根钢丝弦就不好办了<br />从乐音倒过来求音符吃力不讨好<br />倒不如从钢丝弦上动脑筋来检测指位<br />
 楼主| computer00 发表于 2007-8-8 20:52 | 显示全部楼层

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

要改装吉他很难。如果只是钢弦吉他的话,我们想过可以把它当作6行20列的矩阵键盘<br />来看待,在弦和品丝上分别接扫描线,但是不好接,接了也不好弹。而且也没法<br />判断拨了哪根弦,力度是多大。如果是使用玲珑弦的古典琴时,就没法用了。<br />并且这样搞也就体现不出DSP在系统中的作用了,不适合我们的比赛,嘿嘿。<br /><br />没有办法,最后只好从音频信号出发,再去检测音符。<br /><br />但是检测很难,最低的E音大约82.7Hz,跟它上面的F音只差几Hz。而且有大量的谐波(幅度比基频还大),<br />会让程序分辨不出是实际弹了这个音还是由于谐波引起的。好在谐波是八度关系,即便误检,也不会<br />太糟糕。而且FFT又存在着时间分辨率和频率分辨率之间的测不准关系,但是我们的系统要求采样时间<br />又不能太长,真是麻烦。现在检测到的准确度大概只有70%左右,再优化一些参数或者算法,<br />或许可以再有点提高。<br />
tyw 发表于 2007-8-8 21:04 | 显示全部楼层

试试薄膜键

<br />做一长条薄膜键衬在弦下面(这就与弦材无关了,成本也不会很高),缺点是没有力度信息,除非薄膜键是电阻材料做的.另外象颤音,滑音也不大好处理,除非分割得足够细,那样的话引线会太多,除非并→串接芯片做到薄膜键上<br />还记得我贴过的有关midi键盘力度处理的工艺资料吗,可参考一下.<br /><br />转贴一篇好东东&quot;电子琴力度键是靠测速得到的&quot;,希望对你有所启发<br />
 楼主| computer00 发表于 2007-8-8 21:21 | 显示全部楼层

恩,当然还记得。

吉他跟键盘不一样,键盘一按下就要发声,但是吉他光按了还不一定发声,还要拨了弦才发声,并且还有空弦音。<br />并且那样改装了很不好弹啊,我们希望的是用普通吉他,不用改装,使用我们的系统就可以变成一把带效果器的<br />MIDI吉他,那才有点意思啊。所以我觉得还是多想想怎样准确的去识别音符比较好~~~<br /><br />老T,帮忙想想怎样才能即快又准的识别出来呢?
tyw 发表于 2007-8-8 21:25 | 显示全部楼层

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

  
 楼主| computer00 发表于 2007-8-8 21:42 | 显示全部楼层

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

还好现在已经基本上能够检测出来,就是灵敏度和准确度不够,先不管这么多了,做好了马马虎虎能演示就好。<br /><br />好象我在网上看到别的公司做的产品效果也不大好,估计是蛮难做了。
chunyang 发表于 2007-8-9 00:12 | 显示全部楼层

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

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

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

这个效果器的一个功能就是吉他调音器,首先要根据它把吉他定到标准音.<br /><br />我开始也觉得用FFT应该很容易找出对应的音的,可是实际情况却没那么理想.<br /><br />直接用FFT变换,要分辨到1Hz,就需要1s钟的采样信号,这显然是不现实的,所以要另想办法.<br />还好,有一些频率细分的方法.但即使在比较短的时间内能够做出频谱图,结果也发现频谱泄露<br />严重,原因主要有截断效应,振动幅度变化时引起的调制等,并且谐波很多,导致无法正确识别<br />较高音是否真的有弹响.我使用matlab读取数据进行FFT,结果人眼都很难正确识别出正确的音,<br />更何况用程序来搞了。我们只好将算法尽量简单,力求实现最基本的单音识别先,如果这个能够<br />做好,拿来做旋律吉他也还是不错的。我们队的三个人都是弹吉他的,到时给两个伴奏,一个<br />弹主旋律,呵呵,还是蛮好玩的,想想就有点动力了~~~~~
tyw 发表于 2007-8-9 06:17 | 显示全部楼层

确实如此

越是和的弦越是难分离,等00成功了俺也整个midi二胡玩玩,哈哈
xwj 发表于 2007-8-9 06:57 | 显示全部楼层

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

  
 楼主| computer00 发表于 2007-8-9 08:48 | 显示全部楼层

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

弹啥都没问题,哈哈~~~~~借用一下周星星在国产007里面的话:“听上去我是在吹笛子,其实我是在弹吉他...”<br /><br /><br />当然,要是tyw整个MIDI二胡出来,那就可以用来拉吉他了,也可以用来拉钢琴,拉笛子,拉鼓,拉萧...恩,就这么多吧,拉多了可不好...
chunyang 发表于 2007-8-9 12:12 | 显示全部楼层

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

先录制一遍所有弦音的频谱,然后选择合适的匹配方法进行查对,频率上具有整倍数关系的音,直接对照频谱的话还是可以分辨的,这样可以避免细节分析,速度就快多了,至少对于单音旋律来说是没有问题的。
 楼主| computer00 发表于 2007-8-9 12:29 | 显示全部楼层

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

但是实现起来同样也会有不少问题,估计比直接使用频率识别法还麻烦,因为事实上,<br />这个频谱我是已经知道的了,然后再直接去编程比较容易.
chunyang 发表于 2007-8-10 01:46 | 显示全部楼层

等你做好了,也让俺玩玩

n年没碰吉他了,想起来还真有点手痒。
 楼主| computer00 发表于 2007-8-10 09:06 | 显示全部楼层

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

  
 楼主| computer00 发表于 2007-8-12 15:55 | 显示全部楼层

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

昨天中午去赛格买了元件,搭好电路,直接通过串口把数据塞给它就出声音了,真好用...<br /><br />PS:&nbsp;昨天晕死了,去买元件,叫小MM拿2个28脚的PLCC插座,结果她给我拿了2个20脚的,<br />我也没数,看大小差不多,就拿走了,回来发现芯片大很多...当时就倒塌了,数了下,<br />才发现只有20脚...没办法,我只好从以前的电路板上撬了个32脚贴片的PLCC座,<br />把引脚掰出来,然后贴到万用板上去了...幸好这个芯片只有两边引脚有用,另两边<br />都是NC,我可以只用长的那两条边,还好,看来好人还是有好报的...偶以后不去她那<br />买元件了...
xwj 发表于 2007-8-12 15:59 | 显示全部楼层

哈哈,色令智昏

  
xwj 发表于 2007-8-12 16:01 | 显示全部楼层

那个,合成效果怎么样?

--和创新声卡或雅马哈的软波表相比
chunyang 发表于 2007-8-12 16:07 | 显示全部楼层

那应该是不同档次的

价钱放在那。
 楼主| computer00 发表于 2007-8-12 19:52 | 显示全部楼层

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

就是有些乐器的音色表现不太明显...不过对于我们比赛来用,已经足够拉,演示效果应该是不错的...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部