Write User events to running sequence

I'm writing a MIDI sequencing tool using MusicPlayer and I need to write my events on-the-fly. I find that I can write MIDI events to a running track/sequence but User events don't seem to get written. They only seem to get written if the sequence is stopped.


The basic function I'm using to actually write the events is:

func addUserEventToSequence(event: Event, sequence: MusicSequence, track: MusicTrack) {
        var tempEvent = event
        withUnsafePointer(&tempEvent) { eventPtr in
            let dataPtr: UnsafePointer<MusicEventUserData> = UnsafePointer(eventPtr)
            if(MusicTrackNewUserEvent(track, event.timestamp, dataPtr) != noErr)
            {
                print("Couldn't add feedback event!")
            }
        }
    }


The "Event" struct is very close to MusicEventUserData but adds a few properties. This definitely works when the sequencer is stopped, but it seems to fail when the sequencer's running. Am I missing something?

Replies

> but it seems to fail when the sequencer's running.


What are/aren't you seeing that makes you unsure? Any errors? Is the print being hit?