<!--
{
  "documentType" : "article",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/music-player",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Music Player"
}
-->

# Music Player

Create and play a sequence of tracks, and manage aspects of playback in response to standard events.

## Topics

### Managing a Music Player

[`NewMusicPlayer`](/documentation/AudioToolbox/NewMusicPlayer(_:))

Creates a new music player.

[`DisposeMusicPlayer`](/documentation/AudioToolbox/DisposeMusicPlayer(_:))

Disposes of a music player.

[`MusicPlayerGetBeatsForHostTime`](/documentation/AudioToolbox/MusicPlayerGetBeatsForHostTime(_:_:_:))

Gets the beat number associated a specified host time.

[`MusicPlayerGetHostTimeForBeats`](/documentation/AudioToolbox/MusicPlayerGetHostTimeForBeats(_:_:_:))

Gets the host time associated with a specified beat.

[`MusicPlayerGetPlayRateScalar`](/documentation/AudioToolbox/MusicPlayerGetPlayRateScalar(_:_:))

Gets the playback rate multiplier for a music player.

[`MusicPlayerGetSequence`](/documentation/AudioToolbox/MusicPlayerGetSequence(_:_:))

Gets the music sequence associated with a music player.

[`MusicPlayerGetTime`](/documentation/AudioToolbox/MusicPlayerGetTime(_:_:))

Gets the playback point for a music player, in beats.

[`MusicPlayerIsPlaying`](/documentation/AudioToolbox/MusicPlayerIsPlaying(_:_:))

Indicates whether or not a music player is playing.

[`MusicPlayerPreroll`](/documentation/AudioToolbox/MusicPlayerPreroll(_:))

Prepares a music player to play.

[`MusicPlayerSetPlayRateScalar`](/documentation/AudioToolbox/MusicPlayerSetPlayRateScalar(_:_:))

Sets a playback rate multiplier for a music player.

[`MusicPlayerSetSequence`](/documentation/AudioToolbox/MusicPlayerSetSequence(_:_:))

Sets the music sequence for the music player to play.

[`MusicPlayerSetTime`](/documentation/AudioToolbox/MusicPlayerSetTime(_:_:))

Sets the playback point for a music player, in beats.

[`MusicPlayerStart`](/documentation/AudioToolbox/MusicPlayerStart(_:))

Starts playback of a music player.

[`MusicPlayerStop`](/documentation/AudioToolbox/MusicPlayerStop(_:))

Stops playback of a music player.

[`MusicPlayer`](/documentation/AudioToolbox/MusicPlayer)

A music player plays a music sequence (of type `MusicSequence`).

[`MusicTimeStamp`](/documentation/AudioToolbox/MusicTimeStamp)

A timestamp for use by a music sequence.

[`kMusicTimeStamp_EndOfTrack`](/documentation/AudioToolbox/kMusicTimeStamp_EndOfTrack)

Indicates a time immediately beyond the last music event in a music track. Use this value when selecting all music events starting at a designated time and extending to, and including, the last event in a track. Also use this value to position an iterator for moving backward through a track, from the end to the start. See also [`NewMusicEventIterator(_:_:)`](/documentation/AudioToolbox/NewMusicEventIterator(_:_:)) and [`MusicEventIteratorSeek(_:_:)`](/documentation/AudioToolbox/MusicEventIteratorSeek(_:_:)).

### Iterating Over Music Events

[`NewMusicEventIterator`](/documentation/AudioToolbox/NewMusicEventIterator(_:_:))

Creates a new music event iterator.

[`DisposeMusicEventIterator`](/documentation/AudioToolbox/DisposeMusicEventIterator(_:))

Disposes of a music event iterator.

[`MusicEventIteratorNextEvent`](/documentation/AudioToolbox/MusicEventIteratorNextEvent(_:))

Positions a music event iterator at the next event on a music track.

[`MusicEventIteratorSeek`](/documentation/AudioToolbox/MusicEventIteratorSeek(_:_:))

Positions a music event iterator at a specified timestamp, in beats.

[`MusicEventIteratorDeleteEvent`](/documentation/AudioToolbox/MusicEventIteratorDeleteEvent(_:))

Deletes the event at a music event iterator’s current position.

[`MusicEventIteratorGetEventInfo`](/documentation/AudioToolbox/MusicEventIteratorGetEventInfo(_:_:_:_:_:))

Gets information about the event at a music event iterator’s current position.

[`MusicEventIteratorHasCurrentEvent`](/documentation/AudioToolbox/MusicEventIteratorHasCurrentEvent(_:_:))

Indicates whether or not a music track contains an event at the music event iterator’s current position.

[`MusicEventIteratorHasNextEvent`](/documentation/AudioToolbox/MusicEventIteratorHasNextEvent(_:_:))

Indicates whether or not a music track contains an event beyond the music event iterator’s current position.

[`MusicEventIteratorHasPreviousEvent`](/documentation/AudioToolbox/MusicEventIteratorHasPreviousEvent(_:_:))

Indicates whether or not a music track contains an event before the music event iterator’s current position.

[`MusicEventIteratorPreviousEvent`](/documentation/AudioToolbox/MusicEventIteratorPreviousEvent(_:))

Positions a music event iterator at the previous event on a music track.

[`MusicEventIteratorSetEventInfo`](/documentation/AudioToolbox/MusicEventIteratorSetEventInfo(_:_:_:))

Sets information for the event at a music event iterator’s current position.

[`MusicEventIteratorSetEventTime`](/documentation/AudioToolbox/MusicEventIteratorSetEventTime(_:_:))

Sets the timestamp for the event at a music event iterator’s current position.

[`MusicEventIterator`](/documentation/AudioToolbox/MusicEventIterator)

A music event iterator sequentially handles events on a music track.

[`MusicEventType`](/documentation/AudioToolbox/MusicEventType)

MIDI and other music event types, used by music event iterator functions.

[`ExtendedNoteOnEvent`](/documentation/AudioToolbox/ExtendedNoteOnEvent)

Describes a note-on event with extended parameters.

[`ExtendedTempoEvent`](/documentation/AudioToolbox/ExtendedTempoEvent)

Describes a music track tempo in beats-per-minute.

[`MusicEventUserData`](/documentation/AudioToolbox/MusicEventUserData)

Describes a user-defined event.

[`ParameterEvent`](/documentation/AudioToolbox/ParameterEvent)

Describes an audio unit parameter automation event.

[`MusicDeviceNoteParams`](/documentation/AudioToolbox/MusicDeviceNoteParams)

[`MusicDeviceStdNoteParams`](/documentation/AudioToolbox/MusicDeviceStdNoteParams)

[`NoteParamsControlValue`](/documentation/AudioToolbox/NoteParamsControlValue)

### Managing Music Sequences

[`NewMusicSequence`](/documentation/AudioToolbox/NewMusicSequence(_:))

Creates a new empty music sequence.

[`DisposeMusicSequence`](/documentation/AudioToolbox/DisposeMusicSequence(_:))

Disposes of a music sequence.

[`MusicSequenceBarBeatTimeToBeats`](/documentation/AudioToolbox/MusicSequenceBarBeatTimeToBeats(_:_:_:))

Formats a music sequence’s bar-beat time to its beat time.

[`MusicSequenceBeatsToBarBeatTime`](/documentation/AudioToolbox/MusicSequenceBeatsToBarBeatTime(_:_:_:_:))

Formats a music sequence’s beat time to its bar-beat time.

[`MusicSequenceDisposeTrack`](/documentation/AudioToolbox/MusicSequenceDisposeTrack(_:_:))

Removes a music track from a music sequence, and disposes of the track.

[`MusicSequenceFileCreate`](/documentation/AudioToolbox/MusicSequenceFileCreate(_:_:_:_:_:))

Creates a MIDI file from the events in a music sequence.

[`MusicSequenceFileCreateData`](/documentation/AudioToolbox/MusicSequenceFileCreateData(_:_:_:_:_:))

Creates a data object containing the events from a music sequence.

[`MusicSequenceFileLoad`](/documentation/AudioToolbox/MusicSequenceFileLoad(_:_:_:_:))

Loads data into a music sequence from a URL reference.

[`MusicSequenceFileLoadData`](/documentation/AudioToolbox/MusicSequenceFileLoadData(_:_:_:_:))

Load data into a music sequence from a data reference.

[`MusicSequenceGetAUGraph`](/documentation/AudioToolbox/MusicSequenceGetAUGraph(_:_:))

Gets the audio processing graph associated with a music sequence.

[`MusicSequenceGetBeatsForSeconds`](/documentation/AudioToolbox/MusicSequenceGetBeatsForSeconds(_:_:_:))

Calculates the number of beats that correspond to a number of seconds.

[`MusicSequenceGetIndTrack`](/documentation/AudioToolbox/MusicSequenceGetIndTrack(_:_:_:))

Gets the music track at the specified track index.

[`MusicSequenceGetInfoDictionary`](/documentation/AudioToolbox/MusicSequenceGetInfoDictionary(_:))

Returns a dictionary containing music sequence information.

[`MusicSequenceGetSMPTEResolution`](/documentation/AudioToolbox/MusicSequenceGetSMPTEResolution(_:_:_:))

[`MusicSequenceGetSecondsForBeats`](/documentation/AudioToolbox/MusicSequenceGetSecondsForBeats(_:_:_:))

Calculates the number of seconds that correspond to a number of beats.

[`MusicSequenceGetSequenceType`](/documentation/AudioToolbox/MusicSequenceGetSequenceType(_:_:))

Gets the sequence type for a music sequence.

[`MusicSequenceGetTempoTrack`](/documentation/AudioToolbox/MusicSequenceGetTempoTrack(_:_:))

Gets the tempo track for a music sequence.

[`MusicSequenceGetTrackCount`](/documentation/AudioToolbox/MusicSequenceGetTrackCount(_:_:))

Gets the number of music tracks owned by a music sequence.

[`MusicSequenceGetTrackIndex`](/documentation/AudioToolbox/MusicSequenceGetTrackIndex(_:_:_:))

Gets the index number for a specified music track.

[`MusicSequenceNewTrack`](/documentation/AudioToolbox/MusicSequenceNewTrack(_:_:))

Add a new, empty music track to a music sequence.

[`MusicSequenceReverse`](/documentation/AudioToolbox/MusicSequenceReverse(_:))

Reverses the MIDI and tempo events in a music sequence, so the start becomes the end.

[`MusicSequenceSetAUGraph`](/documentation/AudioToolbox/MusicSequenceSetAUGraph(_:_:))

Associates an audio processing graph with a music sequence.

[`MusicSequenceSetMIDIEndpoint`](/documentation/AudioToolbox/MusicSequenceSetMIDIEndpoint(_:_:))

Associates a specified MIDI endpoint with all music tracks in a music sequence.

[`MusicSequenceSetSMPTEResolution`](/documentation/AudioToolbox/MusicSequenceSetSMPTEResolution(_:_:))

[`MusicSequenceSetSequenceType`](/documentation/AudioToolbox/MusicSequenceSetSequenceType(_:_:))

Sets the sequence type for a music sequence.

[`MusicSequenceSetUserCallback`](/documentation/AudioToolbox/MusicSequenceSetUserCallback(_:_:_:))

Registers a user callback function with a music sequence.

[`MusicSequence`](/documentation/AudioToolbox/MusicSequence)

A music sequence.

[`MusicSequenceUserCallback`](/documentation/AudioToolbox/MusicSequenceUserCallback)

[`MusicSequenceFileFlags`](/documentation/AudioToolbox/MusicSequenceFileFlags)

Flags that configure the behavior of the [`MusicSequenceFileCreate(_:_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileCreate(_:_:_:_:_:)) and [`MusicSequenceFileCreateData(_:_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileCreateData(_:_:_:_:_:)) functions.

[`MusicSequenceLoadFlags`](/documentation/AudioToolbox/MusicSequenceLoadFlags)

Flags used to configure the behavior of the [`MusicSequenceFileLoad(_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileLoad(_:_:_:_:)) and [`MusicSequenceFileLoadData(_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileLoadData(_:_:_:_:)) functions.

### Managing Music Tracks

[`NewMusicTrackFrom`](/documentation/AudioToolbox/NewMusicTrackFrom)

[`MusicTrackClear`](/documentation/AudioToolbox/MusicTrackClear(_:_:_:))

Removes a specified range of music track events.

[`MusicTrackCopyInsert`](/documentation/AudioToolbox/MusicTrackCopyInsert(_:_:_:_:_:))

Copies a range of events from one music track and inserts them into another music track.

[`MusicTrackCut`](/documentation/AudioToolbox/MusicTrackCut(_:_:_:))

Removes a specified range of music track events, and shifts later events toward the start of the track to fill in the gap.

[`MusicTrackGetDestMIDIEndpoint`](/documentation/AudioToolbox/MusicTrackGetDestMIDIEndpoint(_:_:))

Gets the MIDI endpoint that is the event target for a music track.

[`MusicTrackGetDestNode`](/documentation/AudioToolbox/MusicTrackGetDestNode(_:_:))

Gets the audio unit node that is the event target for a music track.

[`MusicTrackGetProperty`](/documentation/AudioToolbox/MusicTrackGetProperty(_:_:_:_:))

Gets a music track property value.

[`MusicTrackGetSequence`](/documentation/AudioToolbox/MusicTrackGetSequence(_:_:))

Gets the music sequence that the music track is a member of.

[`MusicTrackMerge`](/documentation/AudioToolbox/MusicTrackMerge(_:_:_:_:_:))

Copies a range of events from one music track and merges them into another music track.

[`MusicTrackMoveEvents`](/documentation/AudioToolbox/MusicTrackMoveEvents(_:_:_:_:))

Shifts music track events forward or backward in time, in terms of beats.

[`MusicTrackNewAUPresetEvent`](/documentation/AudioToolbox/MusicTrackNewAUPresetEvent(_:_:_:))

Adds an event of type `AUPresetEvent` to a music track.

[`MusicTrackNewExtendedNoteEvent`](/documentation/AudioToolbox/MusicTrackNewExtendedNoteEvent(_:_:_:))

Adds an event of type `ExtendedNoteOnEvent` to a music track.

[`MusicTrackNewExtendedTempoEvent`](/documentation/AudioToolbox/MusicTrackNewExtendedTempoEvent(_:_:_:))

Adds a tempo to a music track.

[`MusicTrackNewMIDIChannelEvent`](/documentation/AudioToolbox/MusicTrackNewMIDIChannelEvent(_:_:_:))

Adds an event of type `MIDIChannelMessage` to a music track.

[`MusicTrackNewMIDINoteEvent`](/documentation/AudioToolbox/MusicTrackNewMIDINoteEvent(_:_:_:))

Adds an event of type `MIDINoteMessage` to a music track.

[`MusicTrackNewMIDIRawDataEvent`](/documentation/AudioToolbox/MusicTrackNewMIDIRawDataEvent(_:_:_:))

Adds an event of type `MIDIRawData` to a music track.

[`MusicTrackNewMetaEvent`](/documentation/AudioToolbox/MusicTrackNewMetaEvent(_:_:_:))

Adds an event of type `MIDIMetaEvent` to a music track.

[`MusicTrackNewParameterEvent`](/documentation/AudioToolbox/MusicTrackNewParameterEvent(_:_:_:))

Adds an event of type `ParameterEvent` to a music track.

[`MusicTrackNewUserEvent`](/documentation/AudioToolbox/MusicTrackNewUserEvent(_:_:_:))

Adds an event of type `MusicEventUserData` to a music track.

[`MusicTrackSetDestMIDIEndpoint`](/documentation/AudioToolbox/MusicTrackSetDestMIDIEndpoint(_:_:))

Sets the music track’s event target to a MIDI endpoint.

[`MusicTrackSetDestNode`](/documentation/AudioToolbox/MusicTrackSetDestNode(_:_:))

Sets the music track’s event target to an audio unit node.

[`MusicTrackSetProperty`](/documentation/AudioToolbox/MusicTrackSetProperty(_:_:_:_:))

Sets a music track property value.

[`MusicTrack`](/documentation/AudioToolbox/MusicTrack)

A music track consists of a series of music events, each timestamped using units of beats.

[`MusicTrackLoopInfo`](/documentation/AudioToolbox/MusicTrackLoopInfo)

Supports control of the looping behavior of a music track.

[`MIDIChannelMessage`](/documentation/AudioToolbox/MIDIChannelMessage)

Describes a MIDI channel message.

[`MIDIMetaEvent`](/documentation/AudioToolbox/MIDIMetaEvent)

Describes a MIDI metaevent such as lyric text, time signature, and so on.

[`MIDINoteMessage`](/documentation/AudioToolbox/MIDINoteMessage)

Describes a MIDI note.

[`MIDIRawData`](/documentation/AudioToolbox/MIDIRawData)

Describes a MIDI system-exclusive (SysEx) message.

### Interacting with Music Devices

[`MusicDeviceMIDIEvent`](/documentation/AudioToolbox/MusicDeviceMIDIEvent(_:_:_:_:_:))

[`MusicDeviceMIDIEventList`](/documentation/AudioToolbox/MusicDeviceMIDIEventList(_:_:_:))

[`MusicDeviceStartNote`](/documentation/AudioToolbox/MusicDeviceStartNote(_:_:_:_:_:_:))

[`MusicDeviceStopNote`](/documentation/AudioToolbox/MusicDeviceStopNote(_:_:_:_:))

[`MusicDeviceSysEx`](/documentation/AudioToolbox/MusicDeviceSysEx(_:_:_:))

[`MusicDeviceComponent`](/documentation/AudioToolbox/MusicDeviceComponent)

[`MusicDeviceGroupID`](/documentation/AudioToolbox/MusicDeviceGroupID)

[`MusicDeviceInstrumentID`](/documentation/AudioToolbox/MusicDeviceInstrumentID)

[`MusicDeviceMIDIEventProc`](/documentation/AudioToolbox/MusicDeviceMIDIEventProc)

[`MusicDeviceStartNoteProc`](/documentation/AudioToolbox/MusicDeviceStartNoteProc)

[`MusicDeviceStopNoteProc`](/documentation/AudioToolbox/MusicDeviceStopNoteProc)

[`MusicDeviceSysExProc`](/documentation/AudioToolbox/MusicDeviceSysExProc)

### Enumerations

[Music Instrument Audio Unit Subtypes](/documentation/AudioToolbox/1619498-music-instrument-audio-unit-subt)

[Music Track Properties](/documentation/AudioToolbox/1515456-music-track-properties)

Properties for music tracks.

[`MusicSequenceFileFlags`](/documentation/AudioToolbox/MusicSequenceFileFlags)

Flags that configure the behavior of the [`MusicSequenceFileCreate(_:_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileCreate(_:_:_:_:_:)) and [`MusicSequenceFileCreateData(_:_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileCreateData(_:_:_:_:_:)) functions.

[`MusicSequenceFileTypeID`](/documentation/AudioToolbox/MusicSequenceFileTypeID)

The various types of files that can be parsed by a music sequence.

[`MusicSequenceLoadFlags`](/documentation/AudioToolbox/MusicSequenceLoadFlags)

Flags used to configure the behavior of the [`MusicSequenceFileLoad(_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileLoad(_:_:_:_:)) and [`MusicSequenceFileLoadData(_:_:_:_:)`](/documentation/AudioToolbox/MusicSequenceFileLoadData(_:_:_:_:)) functions.

[`MusicSequenceType`](/documentation/AudioToolbox/MusicSequenceType)

The various types of music sequences.

[Music Extended Control Event Type](/documentation/AudioToolbox/1515446-music-extended-control-event-typ)

[Music Player Errors](/documentation/AudioToolbox/1515472-music-player-errors)

[Music Event Types](/documentation/AudioToolbox/1515479-music-event-types)

[Music Note Events](/documentation/AudioToolbox/1473494-music-note-events)

[Music Device Selectors](/documentation/AudioToolbox/1473469-music-device-selectors)

[Music Device Properties](/documentation/AudioToolbox/1533931-music-device-properties)

[Music Device Sample Frame Mask](/documentation/AudioToolbox/1533978-music-device-sample-frame-mask)

[Music Device Unit Properties](/documentation/AudioToolbox/1533963-music-device-unit-properties)

[Instrument Types](/documentation/AudioToolbox/1534202-instrument-types)

[Music Device Generic Properties](/documentation/AudioToolbox/1533930-music-device-generic-properties)

[Music Effect and Instrument Unit Properties](/documentation/AudioToolbox/1533941-music-effect-and-instrument-unit)

[DLS Music Device Properties](/documentation/AudioToolbox/1534153-dls-music-device-properties)

[DLS Music Device Parameters](/documentation/AudioToolbox/1389667-dls-music-device-parameters)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)