MusicPlayer vol5 -MusicTrack-

2011/12/04

MusicTrack についての内容 ※間違いが含まれている場合があるので注意

MusicTrackGetSequence

/*!
    @function   MusicTrackGetSequence
    @abstract   Gets the sequence which the track is a member of
    @param      inTrack     the track
    @param      outSequence the track's sequence
*/
extern OSStatus
MusicTrackGetSequence(  MusicTrack          inTrack,
                        MusicSequence       *outSequence)                       __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

トラックがメンバーになっているシーケンスを取得する。

MusicTrackSetDestNode

/*!
    @function   MusicTrackSetDestNode
    @abstract   Sets the track's target to the specified AUNode
    @discussion The node must be a member of the graph that the track's sequence is using. When played, the track
                will send all of its events to that node.
    @param      inTrack     the track
    @param      inNode      the new node
*/
extern OSStatus
MusicTrackSetDestNode(  MusicTrack          inTrack,
                        AUNode              inNode)                             __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

指定したノード(AUNode)に トラック(MusicTrack)のターゲットを設定する。 ノードは、利用されるトラックシーケンスであるグラフのメンバーを持たなければいけない。

MusicTrackSetDestMIDIEndpoint

/*!
    @function   MusicTrackSetDestMIDIEndpoint
    @abstract   Sets the track's target to the specified MIDI endpoint
    @discussion When played, the track will send all of its events to the specified MIDI Endpoint.
    @param      inTrack     the track
    @param      inEndpoint  the new MIDI endpoint
*/
extern OSStatus
MusicTrackSetDestMIDIEndpoint(  MusicTrack          inTrack,
                                MIDIEndpointRef     inEndpoint)                 __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_5_0);

指定されたMIDIエンドポイント(MIDIEndpointRef)に、トラックのターゲットを設定する。 再生されたとき、トラック(MusicTrack)は指定された MIDI に全てのイベントを送信する。

MusicTrackGetDestNode

/*!
    @function   MusicTrackGetDestNode
    @abstract   Gets the track's target if it is an AUNode
    @discussion Returns kAudioToolboxErr_IllegalTrackDestination if the track's target is a MIDIEndpointRef 
                and NOT an AUNode
    @param      inTrack     the track
    @param      outNode     the node target for the track
*/
extern OSStatus
MusicTrackGetDestNode(          MusicTrack          inTrack,
                                AUNode *            outNode)                    __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_5_0);

トラック(MusicTrack)から、AUNode を取得する。

MusicTrackGetDestMIDIEndpoint

/*!
    @function   MusicTrackGetDestMIDIEndpoint
    @abstract   Gets the track's target if it is a MIDI Endpoint
    @discussion Returns kAudioToolboxErr_IllegalTrackDestination if the track's target is an AUNode 
                and NOT a MIDI Endpoint
    @param      inTrack     the track
    @param      outEndpoint the MIDI Endpoint target for the track
*/
extern OSStatus
MusicTrackGetDestMIDIEndpoint(  MusicTrack          inTrack,
                                MIDIEndpointRef *   outEndpoint)                __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_5_0);

トラック(MusicTrack)から、MIDIエンドポイント(MIDIEndpointRef) を取得する。

MusicTrackSetProperty

/*!
    @function   MusicTrackSetProperty
    @abstract   Sets the specified property value
    @discussion Property values are always get and set by reference
    @param      inTrack         the track
    @param      inPropertyID    the property ID
    @param      inData          the new property value
    @param      inLength        the size of the property value being set
*/
extern OSStatus
MusicTrackSetProperty(  MusicTrack          inTrack,
                        UInt32              inPropertyID,
                        void                *inData,
                        UInt32              inLength)                           __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

MusicTrack に指定されたプロパティを設定する。 プロパティ値は、常に参照による getter、setter である。

MusicTrackGetProperty

/*!
    @function   MusicTrackGetProperty
    @abstract   Gets the specified property value
    @discussion If outData is NULL, then the size of the data will be passed back in ioLength
                This allows the client to allocate a buffer of the correct size (useful for variable
                length properties -- currently all properties have fixed size)
                Property values are always get and set by reference
    @param      inTrack         the track
    @param      inPropertyID    the property ID
    @param      outData         if not NULL, points to data of size ioLength
    @param      ioLength        on input the available size of outData, on output the size of the valid data that outData
                                will then point too.
*/
extern OSStatus
MusicTrackGetProperty(  MusicTrack          inTrack,
                        UInt32              inPropertyID,
                        void                *outData,
                        UInt32              *ioLength)                          __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

MusicTrack から指定されたプロパティを取得する。 outData が NULL だった場合、データサイズは ioLength(UInt32)で受け渡される。 これにより、クライアントは正しいサイズのバッファ(現在、全てのプロパティがもつ固定サイズの可変長プロパティとして便利)に割り当てる事ができます。 プロパティ値は、常に参照による getter、setter である。

MusicTrackGetProperty

/*!
    @function   MusicTrackMoveEvents
    @abstract   Move events in a track
    @discussion Moves all of the events in the specified time range by the moveTime. MoveTime maybe negative to 
                move events backwards (towards zero).
                
                All time ranges are [starttime < endtime]
                
    @param      inTrack         the track
    @param      inStartTime     the start time for the range of events
    @param      inEndTime       the end time up to which will form the range of the events to move
    @param      inMoveTime      amount of beats to move the selected events.
*/
extern OSStatus
MusicTrackMoveEvents(   MusicTrack          inTrack,
                        MusicTimeStamp      inStartTime,
                        MusicTimeStamp      inEndTime,
                        MusicTimeStamp      inMoveTime)                         __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

移動時間で、指定した時間範囲内の全てのイベントを移動します。 移動時間は、イベント後方(0 に向かって)にマイナス移動します。 全ての時間範囲は、「starttime < endtime」です。

MusicTrackClear

/*!
    @function   MusicTrackClear
    @abstract   Removes all events within the specified range
    @discussion All time ranges are [starttime < endtime]
    @param      inTrack     the track
    @param      inStartTime the start time for the range of events
    @param      inEndTime   the end time up to which will form the range of the events to clear
*/
extern OSStatus
MusicTrackClear(        MusicTrack          inTrack,
                        MusicTimeStamp      inStartTime,
                        MusicTimeStamp      inEndTime)                          __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

指定した範囲内の、全てのイベントを削除します。

MusicTrackClear

/*!
    @function   MusicTrackCut
    @abstract   Removes all the events within the specified range
    @discussion Events that fall past the specified range will be moved back by the specified range time.
                
                All time ranges are [starttime < endtime]
                
    @param      inTrack     the track
    @param      inStartTime the start time for the range of events
    @param      inEndTime   the end time up to which will form the range of the events to cut out
*/
extern OSStatus
MusicTrackCut(          MusicTrack          inTrack,
                        MusicTimeStamp      inStartTime,
                        MusicTimeStamp      inEndTime)                          __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

指定した時間範囲でイベントを削除して、指定時間内に戻ります。

MusicTrackCopyInsert

/*!
    @function   MusicTrackCopyInsert
    @abstract   Copies events from one track and inserts them into another
    @discussion Copies all of the events with the specified time range of the source track. It then inserts
                those events into the destination track. All events at and after inDestInsertTime in inDestTrack 
                are moved forward by the range's duration
                
                All time ranges are [starttime < endtime]
                
    @param      inSourceTrack       the source track
    @param      inSourceStartTime   the start time for the range of events
    @param      inSourceEndTime     the end time up to which will form the range of the events to copy from the source track
    @param      inDestTrack         the destination track to copy too
    @param      inDestInsertTime    the time at which the copied events will be inserted.
*/
extern OSStatus
MusicTrackCopyInsert(   MusicTrack          inSourceTrack,
                        MusicTimeStamp      inSourceStartTime,
                        MusicTimeStamp      inSourceEndTime,
                        MusicTrack          inDestTrack,
                        MusicTimeStamp      inDestInsertTime)                   __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

元のトラック(MusicTrack)で指定した範囲時間で全てのイベントをコピーし、対象のトラック(MusicTrack)にコピーしたイベントを挿入します。 全てのイベントは、inDestTrack(MusicTrack)に、inDestInsertTime(MusicTimeStamp) 後に置かれます。

MusicTrackMerge

/*!
    @function   MusicTrackMerge
    @abstract   Copies events from one track and merges them into another
    @discussion Copies all of the events with the specified time range of the source track. It then merges
                those events into the destination track starting at inDestInsertTime.
                
                All time ranges are [starttime < endtime]
                
    @param      inSourceTrack       the source track
    @param      inSourceStartTime   the start time for the range of events
    @param      inSourceEndTime     the end time up to which will form the range of the events to copy from the source track
    @param      inDestTrack         the destination track to copy too
    @param      inDestInsertTime    the time at which the copied events will be merged.
*/
extern OSStatus
MusicTrackMerge(        MusicTrack          inSourceTrack,
                        MusicTimeStamp      inSourceStartTime,
                        MusicTimeStamp      inSourceEndTime,
                        MusicTrack          inDestTrack,
                        MusicTimeStamp      inDestInsertTime)                   __OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_5_0);

元のトラック(MusicTrack)で指定した範囲時間で全てのイベントをコピーし、対象のトラックに inDestInsertTime(MusicTImeStamp)でイベントをマージします。