How to play MIDI on the iPhone?

后端 未结 5 1799
广开言路
广开言路 2020-12-28 22:37

As far as I know, there is not native or third party library available to play MIDI on the iPhone. But there seem to be quite a few apps that do exactly that. What are they

相关标签:
5条回答
  • 2020-12-28 23:19

    This worked for me for playing midi file on iPhone:

    import AVFoundation
    
    class MidiPlayer: NSObject {
        static let shared = MidiPlayer()
        var musicPlayer: MusicPlayer?
        var sequence: MusicSequence?
    
        func play(file: String) {
            guard let midiFile = Bundle.main.url(forResource: file, withExtension: "mid") else {
                return
            }
    
            NewMusicPlayer(&musicPlayer)
            NewMusicSequence(&sequence)
    
            if let musicPlayer = musicPlayer, let sequence = sequence {
                MusicSequenceFileLoad(sequence, midiFile as CFURL, .midiType, MusicSequenceLoadFlags())
                MusicPlayerSetSequence(musicPlayer, sequence)
                MusicPlayerStart(musicPlayer)
            }
        }
    
        func stop() {
            if let musicPlayer = musicPlayer {
                MusicPlayerStop(musicPlayer)
            }
        }
    }
    

    and then MidiPlayer.shared.play(file: "midifile")

    0 讨论(0)
  • 2020-12-28 23:22

    I found this library that is available for licensing. Hope it helps someone else.

    http://www.crimsontech.jp/eng/softsynth/

    0 讨论(0)
  • 2020-12-28 23:27

    FYI for those going down this road: AVMIDIPlayer was introduced in iOS 8. Seems to work well on device, sim not so much.

    0 讨论(0)
  • 2020-12-28 23:31

    I've written a tutorial on how to play MIDI using CoreMIDI through an AUGraph here.

    0 讨论(0)
  • 2020-12-28 23:35

    Check out the MusicPlayer class. Combined with the AUSampler audio unit available since iOS 5.0 you can build a MIDI player quite easily. (The link is OS X, but it applies for iOS as well)

    https://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/ARoadmaptoCommonTasks/ARoadmaptoCommonTasks.html#//apple_ref/doc/uid/TP40003577-CH6-SW13

    About the sampler audio unit see: Simple embeddable MidiSynth for iOS?

    0 讨论(0)
提交回复
热议问题