iOS/C/C++/Cocos2D:如何"模拟"电吉他拨片滑音

mm2*_*m24 5 synthesizer cocos2d-iphone ios

我想是相当奇怪的问题,但让我们把它放在正确的背景下.我不是在寻找模拟整个吉他声音范围或者编写我自己的合成器,而是要模拟整个吉他(请在此处查看此类问题的答案).如果可能的话,我"只是"想要一个幻灯片选择声音的想法,而不会刺激音乐家.如果声音类型不清楚请看这里:

http://youtu.be/y4_wjNRLe4M?t=1m39s http://youtu.be/VdrFTyUCGYs?t=2m57s

我想给用户一种感觉,即如果滑动杆向右移动,产生的滑动声音的长度与滑动条的相对运动成比例.相反,如果用户向左移动滑动条,则将使用相同的概念播放向下滑动的声音.

以供参考.我正在使用Cocos2D 2.0和iOS 5.1.

我在Cocos2d Cookbook的第6章"修改音频属性" (这里是第4章到第6章的演示示例中的免费应用程序的链接)之后找到了与我的效果类似的东西,其中作者修改了单声道合成器音调根据用户在屏幕上的手指位置改变音高和增益(参见此视频,了解我在谈论的例子中仍然不清楚).

    //Play our sound with custom pitch and gain
    CDSoundSource *sound = [[sae soundSourceForFile:@"synth_tone_mono.caf"] retain];
    [sound play];
    sound.looping = YES;
    [notes setObject:sound forKey:key];
    sound.pitch = point.x/240.0f;
    sound.gain = point.y/320.0f;
Run Code Online (Sandbox Code Playgroud)

这不是最好的解决方案,而是一个不错的近似值.任何人都可以提出更好的建议吗?

编辑:我正在努力通过记录向上滑动和向下滑动声音等于最大长度来近似这个.然后一旦移动滑动拾取条就开始声音并且一旦移动完成就停止声音(在Cocos2d中,这将对应于触摸开始并且触摸结束于将代表滑动选择的特定精灵).然后滑动镐将在原始位置恢复,以避免必须处理滑动从不同位置开始的情况.当然是一个近似值,我会使用它,因为它在开发时间和计算性能方面都很便宜(我猜任何模拟声音的东西在计算上都会更"昂贵").我打开这个问题,看看是否有人提出了更好的想法或解决方案(库仍然很好,因为我仍在考虑完全模拟幻灯片拾音的可能性).