Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从键盘视图创建MIDI文件_Ios_Audiokit - Fatal编程技术网

Ios 从键盘视图创建MIDI文件

Ios 从键盘视图创建MIDI文件,ios,audiokit,Ios,Audiokit,目前我正在使用AKKeyboardView基本上连接到AKRhodesPiano对象,我想知道是否有一种简单的方法可以从中生成MIDI文件 我看到AKKeyboardView具有noteOn和noteOff功能,这确实产生了MIDINoteNumber,但我在AudioKit库中找不到其他地方可以真正获取此输入并生成MIDI文件,即使只是一个简单的音序器。您也需要在后台运行AKSequencer(可能带有节拍器音轨)。制作一个你将录制到的附加曲目。还可以将长度设置为录制所需的长度 当您从键盘收到

目前我正在使用
AKKeyboardView
基本上连接到
AKRhodesPiano
对象,我想知道是否有一种简单的方法可以从中生成MIDI文件


我看到
AKKeyboardView
具有
noteOn
noteOff
功能,这确实产生了
MIDINoteNumber
,但我在AudioKit库中找不到其他地方可以真正获取此输入并生成MIDI文件,即使只是一个简单的音序器。

您也需要在后台运行AKSequencer(可能带有节拍器音轨)。制作一个你将录制到的附加曲目。还可以将长度设置为录制所需的长度

当您从键盘收到noteOn消息时,您可以检查sequencer的
currentPosition
,并将其记录到字典中。当您收到匹配音高的noteOff消息时,再次检查
currentPosition
。使用这两次之间的差异获取持续时间,并在sequencer上的录制曲目中添加注释:

myRecordingTrack.add(noteNumber: noteNumber,
              velocity: 127,
              position: timeAtNoteOn,
              duration: timeAtNoteOff - timeAtNoteOn,
              channel: 0)
然后,您可以轻松使用
AKSequencer
genData()
创建MIDI文件(可能删除节拍器音轨,或者将录制的音轨复制到新的
AKSequencer
实例)

查看SequencerDemo以设置
AKSequencer
并构建序列和MIDIFileEditAndSync(都在AudioKit repo的iOS示例文件夹中),了解将
AKSequencer
写入MIDI文件的示例