jjzjj

coremidi

全部标签

ios - 使用 MusicTrackNewMIDINoteEvent 在播放时添加音符

我正在构建一个鼓机来学习如何在iOS上使用MIDI。我设法让它工作到一点,但是,我遇到了以下问题。当用户点击某个按钮时,我需要在MIDI播放器播放时向我的MIDI循环添加声音,不幸的是我不能简单地这样做:MusicTrackNewMIDINoteEvent(track,0,&message);虽然轨道是循环的并且有确定的长度,所以理论上它应该在某一点回到0。我也试过这个:MusicTrackNewMIDINoteEvent(track,noteTimestamp,&message);其中noteTimestamp是我从播放器收到的时间戳。最后,我设法让它与这样的东西一起工作:Music

ios - 是否可以控制 AVMIDIPlayer 的音量

我想用AVMIDIPlayer在游戏中播放一个多声道的MIDI文件作为背景音乐,但是我希望在游戏结束时能够淡出背景音乐。不幸的是,AVMIDIPlayer没有像AVAudioPlayer那样的音量参数。有什么方法可以控制AVMIDIPlayer的音量吗?(改变全局音量是不能接受的)我能看到的唯一其他解决方案是弄清楚如何识别MIDI文件中的音轨,创建多乐器AUGraph,并在最后打混音器。我还没有能够挖掘出任何多乐器CoreMIDI示例,而且它看起来非常令人生畏。 最佳答案 使用MusicSequence播放低级核心音频AUGraph

ios - UIAnimations 响应 Swift 中的 MIDI 事件

我正在尝试使用Apple的AudioToolbox框架编写一个MIDI序列,该框架会在UI中触发动画。感谢GeneDeLisa的博客,我已经成功地创建了序列,由于代码的长度,我不会在这里完整地复制它。基本过程是设置一个AUGraph、一个采样器单元(AudioUnit())、一个musicPlayer和一个音乐序列:varprocessingGraph:AUGraphvarsamplerUnit:AudioUnitvarmusicPlayer:MusicPlayervarmusicSequence:MusicSequence然后我做了一个函数来填充音乐序列:funccreateMusi

swift - Swift 3 不允许 Core Midi Read 回调

我在Swift3项目中有一个midireadproc回调设置。我想将项目完全保留在Swift中,而不必为了完成这项工作而求助于ObjectiveC。有很多关于CoreMidi和Swift的文章,但由于框架经常变化,这些文章中的语法不再适用。//MidiMessageCallbackfuncMIDIReadCallback(pktList:UnsafePointer,refCon:UnsafeMutableRawPointer?,srcConRef:UnsafeMutableRawPointer?)->Void{letpacket=pktList.pointee.packetfor_in

swift - 使用 CoreMIDI 发送系统独有消息

我正在开发一个使用MIDI的MacOS应用程序。我想做的是将SysEx消息发送到MIDI设备。现在,我在Java中做过一次,但从未在Swift中做过。因为coremidi库对我来说几乎是全新的,所以我不知道它是如何工作的。到目前为止,我发现我必须编写一个MIDISysexSendRequest,我已经走到这一步了:letSysEx=MIDISysexSendRequest(destination:self.endpointRef,data:UnsafePointer,bytesToSend:8,complete:complete,reserved:(UInt8,UInt8,UInt8)

ios - Audiokit MIDI 初始化令人困惑

CoreMIDI术语已经非常困惑且记录不当,Audiokit并没有像我希望的那样提供帮助。据我所知,每个应用程序都应该有一个MIDI客户端引用实例(MIDIClientRef)。Audiokit有AKMIDI类,它为每个AKMIDI实例创建一个新的客户端引用,实例被创建在左、右和中心(包括每个AKMIDIInstrument的初始化、AKCallbackInstrument和AKMIDISampler实例)。所有这些还在其内置构造函数中创建具有硬编码名称的端点,因此我不明白我应该如何创建具有适当名称的端点。价格最高的是AKMIDISampler,其来源首先说:///Initialize

swift - 需要帮助将 (CFPropertyListRef *)nsdictionary 转换为 swift

我需要一点帮助来转换它MIDIDeviceRefmidiDevice=MIDIGetDevice(i);NSDictionary*midiProperties;MIDIObjectGetProperties(midiDevice,(CFPropertyListRef*)&midiProperties,YES);NSLog(@"Midiproperties:%d\n%@",i,midiProperties);swift。我有这个,但我对转换CFPropertList挂断了电话。varmidiDevice=MIDIGetDevice(index)letmidiProperties=NSDi

objective-c - 在 swift 中使用 MIDIPacketList

我正在查看一些使用核心midi的midi输出示例。特别是thisquestion和this我在objC中有基于这些的代码,我现在想尝试将其转换为swift。我最不理解的是这一行:MIDIPacketList*pktList=(MIDIPacketList*)pktBuffer;我将其理解为声明了一个MIDIPacketList类型的指针pktlist并为其分配了pktBuffer的值,转换为MIDIPacketList类型我是C和objC的新手,这对我来说毫无意义。MIDIPacketList是一个定义的结构here:以何种方式将字节数组转换为结构类型MIDIPacketList是有意

swift - 将 CoreMIDI 输入与 AVAudioUnit 结合使用

我正在尝试实现一些看起来应该很简单的事情:在Mac应用程序中收听MIDI消息,并使用这些消息从现有的AVAudioUnit乐器中演奏音符。假设:我需要在与我的CoreMIDI客户端关联的MIDIReadBlock(通过带有MIDIClientRef的MIDIInputPortCreateWithBlock)和我可以从我的AVAudioUnit的AUAudioUnit获取的AUScheduleMIDIEventBlock(通过scheduleMIDIEventBlock)。这似乎比它应该的更复杂,因为我会处理原始MIDI数据——我觉得音频单元必须支持某种MIDI抽象,这种抽象很容易与Co

swift - 将 CoreMIDI 输入与 AVAudioUnit 结合使用

我正在尝试实现一些看起来应该很简单的事情:在Mac应用程序中收听MIDI消息,并使用这些消息从现有的AVAudioUnit乐器中演奏音符。假设:我需要在与我的CoreMIDI客户端关联的MIDIReadBlock(通过带有MIDIClientRef的MIDIInputPortCreateWithBlock)和我可以从我的AVAudioUnit的AUAudioUnit获取的AUScheduleMIDIEventBlock(通过scheduleMIDIEventBlock)。这似乎比它应该的更复杂,因为我会处理原始MIDI数据——我觉得音频单元必须支持某种MIDI抽象,这种抽象很容易与Co