- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经在 Android 上制作了一些简单的应用程序,并且认为是时候制作一些更复杂的东西了。所以,我想我会尝试一些已经存在的东西,但是从头开始构建它。
这个想法是创建一个应用程序,允许用户通过按下显示屏上的虚拟键来弹奏钢琴。但我不确定如何合成每个音符的声音,最好是将每个音符的副本存储在文件中,还是有更动态的方式来动态合成音符和和弦。
我用过 C++,所以 NDK 的东西也可以。感谢您的帮助。
最佳答案
声音播放(传递缓冲区)几乎必须通过 Android java api 完成
综合可以在 native 或 java 中完成,视其偏好而定。
短的(未压缩的)样本可以重复播放,但您可能还需要一个起音 transient 。或许您可以进行起音、延音和释音,只要按下琴键就重复延音。理想情况下,每个样本都应该是其基本组成部分周期的整数倍,这样当您在攻击维持或维持衰减之间切换时就不会出现瞬变。
我相信您可以在某处找到 FM 或其他合成器的代码...您可能希望在 native 库中实现这一点,该库将缓冲区交给 Java 代码以传递给音频 API。
可惜的是android已经有一个内置的midi合成器,但显然缺少一个动态接口(interface),所以它只能播放midi文件。
关于java - 如何在android/java中合成钢琴音色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348039/
我正在尝试使用https://github.com/ptaoussanis/timbre记录到文件而不是控制台。以下是我找到的一些有关如何执行此操作的文档: ; The default setup i
我需要在 iPhone 中播放 midi 文件或 midi 音色。 我已经测试过MidiMonitor 。我认为我需要在 iPhone 上创建一个目标点来接收 MIDI,但我不知道该怎么做。 你能帮我
我是一名优秀的程序员,十分优秀!