目前我正在使用AKKeyboardView
本质上连接到AKRhodesPiano
对象,我想知道是否有一种简单的方法可以从中生成 MIDI 文件?
我看到AKKeyboardView
有noteOn
and noteOff
函数,这确实产生了MIDINoteNumber
但我在 AudioKit 库中找不到任何其他地方可以真正接受此输入并生成 MIDI 文件,即使只是一个简单的文件。
您需要在后台运行 AKSequencer(可能带有节拍器轨道)。制作一个您将录制的附加轨道。还将长度设置为录音所需的长度。
当您从键盘收到注释 On 消息时,您可以检查音序器currentPosition
并将其记录到字典中。当您收到匹配音高的 noteOff 消息时,再次检查currentPosition
。使用这两个时间之间的差异来获取持续时间并向音序器上的录音轨道添加注释:
myRecordingTrack.add(noteNumber: noteNumber,
velocity: 127,
position: timeAtNoteOn,
duration: timeAtNoteOff - timeAtNoteOn,
channel: 0)
然后你就可以轻松使用AKSequencer
's genData()
创建 MIDI 文件(可能删除节拍器轨道,或将录制的轨道复制到新的轨道)AKSequencer
实例)。
查看 SequencerDemo 进行设置AKSequencer
并构建序列和 MIDIFileEditAndSync (均位于 AudioKit 存储库的 iOS 示例文件夹中)作为编写示例AKSequencer
到 MIDI 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)