Tag: midi

如何使用Swift采样器播放音调,然后在播放下一个之前暂停?

我有代码来获取string中的字母序列,并将其解释为笔记。 代码然后将播放音符。 问题是他们都在同一时间玩。 我怎么把它们当作四分音符来演奏,主要是为了演奏一个音符,等待它结束,然后演奏下一个音符? @IBAction func playButton(sender: AnyObject) { fractalEngine.output = "adgadefe" var notes = Array(fractalEngine.output.characters) var counter = 0 while counter < notes.count { var note = notes[counter] if note == "a" { play(58) } else if note == "b" { play(59) } else if note == "c" { play(60) } else if note […]

我如何在Swift中定义一个MIDINotifyProc?

我试图让MIDI会话使用swift代码,并且遇到了一些代表的问题。 这是Objective-C中的一个工作示例。 OSStatus status = MIDIClientCreate(CFSTR("MIDI Client"), MIDIStateChangedHandler, nil, &client); void MIDIStateChangedHandler(const MIDINotification *message, void *refCon) { NSLog(@"MIDIStateChanged!"); } 这就是我用Swift尝试的: var status = MIDIClientCreate("the client", notifyProc: MIDIStateChangedHandler, notifyRefCon: nil, outClient: client) func MIDIStateChangedHandler(message: MIDINotification, refCon: UnsafeMutablePointer<Void>) { println("MIDIStateChanged!"); } 这是我无法弄清楚的错误(我是iOS新手,拥有多年的C#经验): (StringLiteralConvertible,notifyProc:(MIDINotification,refCon:UnsafeMutablePointer) – >(),notifyRefCon:NilLiteralConvertible,outClient:@lvalue MIDIClientRef!)'来input'StringLiteralConvertible' var status = MIDIClientCreate("the client", notifyProc: MIDIStateChangedHandler, notifyRefCon: nil, outClient: client) […]

使用audiokit在AKsequencer中创build额外MIDI轨道的问题

我一直试图解决一个神秘的正弦波问题,并没有成功。 我在这里开始一个新的问题,因为我想我已经深入到这个问题的细节。 当build立一个AKSequencer,并给它一个MIDI文件,我看到一些奇怪的结果。 对于一首4首曲目(有相应的4首曲目midi文件,持续时间与歌曲的所有歌词相匹配),我看到音序器实际上是由5首曲目产生的。 什么是额外的轨道? 另外,我在控制台中出现错误: [seq] 1026: Invalid beat range 我相信当轨道是空的时候会发生这种情况。 所以这看起来像是我神秘的正弦波的罪魁祸首。 任何想法如何我可以解决这个问题? 这让我有点疯狂 😜谢谢!

在iOS上导出midi与声音的字体

是否有可能导出midi序列与分配给他们作为.wav文件的声音字体? 如果是的话,任何人都可以把我放在正确的方向? 我目前正在使用MIKMIDI ,而且我还没有遇到过这样的例子。

关于在网页上embeddedMIDI文件

我正在做一个与老式网页devise有关的项目。 我想embedded和自动播放一个MIDI文件,但是: 它没有IOS的工作(我尝试了我的iPad) 在Firefox上,有时调不起来,我不知道为什么。 midi玩家是依赖于浏览器还是插件? 我可以find一个播放我的曲调一个univeral替代? 我以这种方式使用<embed>标签: <embed src="tune.mid" hidden="true" autostart="true" autoplay="true">

我如何在iOS上生成音符并播放它们?

我正在创build一个音乐应用程序,产生一些音乐。 我已经在Mac上使用MIDIfunction创build一个带有MIDI事件的MIDI文件(不幸的是,我不记得那些function的名字)。 我正在寻找一种方法来创build工具音符(MIDI的或其他)编程方式来播放它们。 我也希望有多个频道同时播放这些音符。 我已经尝试了“SoundBankPlayer”,但显然,它不能同时播放多个乐器。 你有想法吗?

ios – 混合midi文件,每个文件都有自己的声音字体

我正在寻找一种方法来混合2个或更多的midi文件,每个文件都有自己的声音文件。 我已经find了一个文件的下面的代码,并试图做多个音乐播放器,但我想这不应该是正确的做法。 另外我每秒都会听到一些奇怪的stream行音乐。 那么有没有其他的方法,也许没有音乐播放器和音乐序列的方法,只使用au单位? 这是我在另一个线程中find的代码: -(void) playMusic:(NSString*) name { NSString *presetURLPath = [[NSBundle mainBundle] pathForResource:@"GortsMiniPianoJ1" ofType:@"SF2"]; NSURL * presetURL = [NSURL fileURLWithPath:presetURLPath]; [self loadFromDLSOrSoundFont: (NSURL *)presetURL withPatch: (int)3]; NSString *midiFilePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mid"]; NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath]; NewMusicPlayer(&musicPlayer); if (NewMusicSequence(&musicSequence) != noErr) { [NSException raise:@"play" format:@"Can't create MusicSequence"]; } if(MusicSequenceFileLoad(musicSequence, (CFURLRef)midiFileURL, […]

Swift UnsafeMutablePointer <Unmanaged <CFString>?>分配和打印

我是新来的迅速,我有一些困难来处理非托pipeCFString(或NSString)的指针。 我正在研究一个CoreMIDI项目,暗示了UnsafeMutablePointer?>的使用,正如你在这个函数中看到的那样: func MIDIObjectGetStringProperty(_ obj: MIDIObjectRef, _ propertyID: CFString!, _ str: UnsafeMutablePointer<Unmanaged<CFString>?>) -> OSStatus 我的问题是我想分配一个缓冲区来接收属性(_str)的内容,然后调用上面的函数,最后使用println在控制台中打印内容。 目前我写这个: // Get the first midi source (I know it exists) var midiEndPoint : Unmanaged<MIDIEndpointRef> = MIDIGetSource(0) //C reate a "constant" of 256 let buf = NSMutableData(capacity: 256) // Allocate a string buffer of 256 characters (I'm not even sure […]