SonicBloom.Koreo
The Interface that Koreographer uses to get certain runtime information
about the state of audio.
A slice of the unscaled delta time of a given frame. This enables users to properly offset
logic based on where the current timing is.
The starting point of the current unscaled delta of this slice. Range: [0,1].
The length in seconds that this slice "consumes" of the unscaled delta.
A Timing Record for delayed processing of Koreography.
The Koreographer is the object responsible for triggering events. It takes the current music
point, querries the Koreography for events at those times, and then sends cues to "actors" that
are listening for directions.
This setup *does not* stop an "actor" from looking directly at a specific Koreography Track.
This is fully supported. It just means that that actor will only get cues for the Tracks for
which it has registered.
The music is "reported" to the Koreographer. In this sense, the Koreographer "Hears" the
music.
The Koreographer manages a list of Koreography. These are considered "loaded" and any
time the associated music is played, their events are triggered.
When Koreography is loaded, the Koreographer finds-or-adds a string->EventObj mapping to a managed
list. This allows the Koreographer to get notified when Koreography Events occur directly from the
triggered tracks. The events are then automatically forwarded to those who registered for
such events with the Koreographer.
A reference to the currently configured Music Playback Controller.
Returns the static Koreographer singleton instance.
The current singleton instance of Koreographer.
Gets or sets the Event Delay In Seconds.
Time in seconds by which Koreography Event triggering should be delayed.
Process Koreography with AudioClip given the
specified timing information.
The AudioClip for which Koreography Events should
be triggered.
The start time in samples of the range of time within
that should be processed.
The end time in samples of the range of time within
that should be processed.
Extra timing information to be passed to events about
the current processing pass.
Process loaded Koreography associated with the audio data identified by
using the specified timing information.
The name of the audio data for which Koreography Events should
be triggered.
The start time in samples of the range of time within the audio
that should be processed.
The end time in samples of the range of time within the audio
that should be processed.
Extra timing information to be passed to events about
the current processing pass.
Flushes timing information entries for a given Koreography. This will stop any delayed events
and timing updates from reaching the event system and effectively "reset" the Koreography.
true, if the delay queue for the was flushed,
false otherwise.
The Koreography to target for clearing out the delay
queue.
Loads into the Koreographer, making it available
for Koreography Event processing. Koreography cannot be loaded more than
once.
The Koreography to load.
Unloads from the Koreographer, removing it from
Koreography Event processing.
The Koreography to unload.
Determines whether is loaded or not.
true if is loaded; otherwise,
false.
The Koreography to check.
Gets the number of loaded Koreography.
The number of loaded Koreography.
Returns the Koreography currently loaded at the specified
.
The Koreography at the specified .
The index of the Koreography to retrieve.
Adds all loaded Koreography into the passed in .
The internal list is not directly returned, although the returned order of
Koreography should match that of the internal List. It should be noted that
list is NOT cleared prior to adding Koreography.
The List container into which to add the loaded
Koreography.
Registers with the internal event management
system, activating it for Koreography Events that occur from Koreography
Tracks identified by .
The Event ID of Koreography Tracks for which this
callback should be triggered.
The callback to register.
Registers with the internal event management
system, activating it for Koreography Events that occur from Koreography
Tracks identified by .
The Event ID of Koreography Tracks for which this
callback should be triggered.
The callback to register.
Unregisters with the internal event management
system, removing it from consideration for Koreography Event triggering for
Koreography Tracks identified by .
The Event ID of Koreography Tracks for which this
callback should be unregistered.
The callback to unregister.
Unregisters with the internal event management
system, removing it from consideration for Koreography Event triggering for
Koreography Tracks identified by .
The Event ID of Koreography Tracks for which this
callback should be unregistered.
The callback to unregister.
Unregisters any callbacks of from consideration
for any and all Koreography Events, across all Event IDs.
The object whose callbacks will be unregistered.
Clears the Event Register, a system that maintains mappings between callbacks,
Event IDs, and Koreography Tracks. This effectively unregisters ALL callbacks.
Searches loaded Koreography for instances configured with the audio clip specified by
. It then filters by , returning
all events encountered in the sample range defined by and
.
This method is now implemented as a wrapper.
All of the events in the range found within any Koreography loaded
that references .
The name of the audio clip to look up timing info on.
The Event ID for events to look up.
Start of the search range.
End of the search range.
Searches loaded Koreography for instances configured with the audio clip specified by
. It then filters by and adds
all events encountered in the sample range defined by and
to . It should be noted that
list is NOT cleared prior to adding Koreography Events.
The name of the audio clip to look up timing info on.
The Event ID for events to look up.
Start of the search range.
End of the search range.
The List container into which to add the located Koreography
Events.
Returns the sample rate of the music specified by .
[Note: This method is part of the Music Time API.]
The sample rate of the audio specified by
or, if not specified, that of the currently playing audio.
The name of the audio of which to get the sample rate. If not
specified, it will return a value for the currently playing music, if available.
Gets the total time in samples of the music specified by
.
[Note: This method is part of the Music Time API.]
The total time in samples of the audio specified by
or, if not specified, that of the currently playing
audio.
The name of the audio from which to get the total sample time.
If not specified, it will return a value for the currently playing music, if
available.
Gets the playback time in samples of the music specified by
.
[Note: This method is part of the Music Time API.]
The playback time in samples of the audio specified by
or, if not specified, that of the currently playing audio.
The name of the audio of which to check the playback time. If not
specified, it will return a value for the currently playing music, if available.
Gets the delta time of the music in samples of the most recent Koreography processing
pass.
[Note: This method is part of the Music Time API.]
The delta time in samples of the current Koreography processing pass.
The name of the audio from which to get the delta time in samples.
If not specified, it will return a value for the currently playing music, if
available.
Gets the total time in seconds of the music specified by
.
[Note: This method is part of the Music Time API.]
The total time in seconds of the audio specified by
or, if not specified, that of the currently playing
audio.
The name of the audio from which to get the total time in seconds.
If not specified, it will return a value for the currently playing music, if
available.
Gets the playback time in seconds of the music specified by
.
[Note: This method is part of the Music Time API.]
The playback time in seconds of the audio specified by
or, if not specified, that of the currently playing audio.
The name of the audio of which to check the playback time. If not
specified, it will return a value for the currently playing music, if available.
Gets the delta time of the music in seconds of the most recent Koreography processing
pass.
[Note: This method is part of the Music Time API.]
The delta time in seconds of the current Koreography processing pass.
The name of the audio from which to get the delta time in seconds.
If not specified, it will return a value for the currently playing music, if
available.
Gets the current Beats Per Minute (BPM) of the music.
[Note: This method is part of the Music Time API.]
The current Beats Per Minute of the audio with the name
.
The name of the audio from which to get the current BPM.
If not specified, it will return a value for the currently playing music, if
available.
Gets the total time in beats of the music specified by
.
[Note: This method is part of the Music Time API.]
The total time in beats of the audio specified by
or, if not specified, that of the currently playing
audio.
The name of the audio from which to get the total beat time.
If not specified, it will return a value for the currently playing music, if
available.
The number of subdivisions of a standard beat that
determine the beat.
Gets the current time of the music in beats with the beat value specified by
.
[Note: This method is part of the Music Time API.]
The current time in beats of audio with name .
The name of the audio from which to get the current beat
time. If not specified, it will return a value for the currently playing
music, if available.
The number of subdivisions of a standard beat that
determine the beat.
Gets the delta time of the music in beats of the most recent Koreography processing
pass, with the beat value specified by .
[Note: This method is part of the Music Time API.]
The delta time in beats of the current Koreography processing pass.
The name of the audio from which to get the beat time delta. If
not specified, it will return a value for the currently playing music, if available.
The number of subdivisions of a standard beat that
determine the beat.
Gets the percentage of the way between beats of the current music beat time in
the range [0,1), with the beat value specified by .
[Note: This method is part of the Music Time API.]
The percentage of the way between beats the current beat time is in the range
[0,1).
The name of the audio from which to get the time information. If
not specified, it will return a value for the currently playing music, if
available.
The number of subdivisions of a standard beat that determine
the beat.
Returns the sample rate of the music specified by .
This method is merely a wrapper that uses the singleton (global)
Koreographer.Instance.
[Note: This method is part of the Music Time API.]
The sample rate of the audio specified by
or, if not specified, that of the currently playing audio.
The name of the audio of which to get the sample rate. If not
specified, it will return a value for the currently playing music, if available.
Gets the total time in samples of the music specified by
. This method is merely a wrapper that uses the singleton
(global) Koreographer.Instance.
[Note: This method is part of the Music Time API.]
The total time in samples of the audio specified by
or, if not specified, that of the currently playing
audio.
The name of the audio from which to get the total sample time.
If not specified, it will return a value for the currently playing music, if
available.
Gets the playback time in samples of the music specified by
. This method is merely a wrapper that uses the singleton (global)
Koreographer.Instance.
[Note: This method is part of the Music Time API.]
The playback time in samples of the audio specified by
or, if not specified, that of the currently playing audio.
The name of the audio of which to check the playback time. If not
specified, it will return a value for the currently playing music, if available.
Gets the current time of the music in beats with the beat value specified by
. This method is merely a wrapper that uses the singleton
(global) Koreographer.Instance. This version is less precise than using
directly as it returns a float rather than the more
precise double.
[Note: This method is part of the Music Time API.]
The current time in beats of audio with name .
The name of the audio from which to get the current beat
time. If not specified, it will return a value for the currently playing
music, if available.
The number of subdivisions of a standard beat that
determine the beat.
Gets the delta time of the music in beats of the most recent Koreography processing
pass, with the beat value specified by . This method is
merely a wrapper that uses the singleton (global) Koreographer.Instance. This
version is less precise than using directly as it
returns a float rather than the more precise double.
[Note: This method is part of the Music Time API.]
The delta time in beats of the current Koreography processing pass.
The name of the audio from which to get the beat time delta. If
not specified, it will return a value for the currently playing music, if available.
The number of subdivisions of a standard beat that
determine the beat.
Gets the percentage of the way between beats of the current music beat time in
the range [0,1), with the beat value specified by .
This method is merely a wrapper that uses the singleton (global)
Koreographer.Instance. This version is less precise than using
directly as it returns a float rather
than the more precise double.
[Note: This method is part of the Music Time API.]
The percentage of the way between beats the current beat time is in the range
[0,1).
The name of the audio from which to get the time information. If
not specified, it will return a value for the currently playing music, if
available.
The number of subdivisions of a standard beat that determine
the beat.
The glue object that maintains registration information between
callbacks and registrants.
A group of n-KoreographyTrack objects associated with a single AudioClip object.
Each track is uniquely tied to a single AudioClip. Each Koreography
Track is uniquely (for the purposes of this Koreography) tied to a single
string Event ID.
Gets or sets the AudioClip associated with this Koreography.
Note: This will clear any previous SourceClipPath setting.
The AudioClip object.
Gets or sets the Path for the Audio File associated with this Koreography.
Note: This will clear any previous SourceClip setting.
The Path to the Audio File associated with this Koreography.
Gets the name of the source clip or audio file associated with this Koreography.
The name of the source AudioClip or audio file.
Gets or sets the Sample Rate of the audio data that Koreography Tracks were authored against.
This may be different between Edit-time and Runtime.
The 'authored' sample rate.
Gets or sets a value indicating whether this Koreography should ignore any configured
latency or delay offsets.
true if processing Koreography Events in Tracks within this
Koreography should ignore the configured latency/delay; otherwise, false.
Returns a COPY of the internal list of Koreography Tracks. This grants access to
configured tracks but does not allow for editing of the internal Track List itself.
A list of Koreography Tracks contained in this Koreography.
Checks the integrity of the internal Koreography Track list, removing any null
entries.
true, if there was a change to the list during this operation,
false otherwise.
Checks the integrity of the internal Tempo Section list, removing any null
entries.
true, if there was a change to the list during this operation,
false otherwise.
Completely replaces the currently configured list of Tempo Sections with the
one passed in.
The list of sections to overwrite the current list
with.
Gets the index of the given Tempo Section.
The index of the Tempo Section, -1 if not found.
The Tempo Section to check.
Creates a new Tempo Section with default values at the given index and returns it.
The newly created and added Tempo Section.
The index location at which to insert.
Removes the TempoSection at the index provided.
true, if a Tempo Section was removed, false otherwise.
The index at which to remove a Tempo Section.
Removes the given Tempo Section from the Koreography.
true, if a Tempo Section was removed, false otherwise.
The Tempo Section to remove.
Get the name of all configured Tempo Sections.
An array of strings containing the configured name, if any, of Tempo Sections
in the Koreography.
Get the Tempo Section at a given index.
The Tempo Section found at the given index, if any.
The index of the Tempo Section to retrieve.
Gets the number of Tempo Sections in the Koreography.
The total number of Tempo Sections.
Sorts the Tempo Sections in the Koreography by configured StartSample,
ensuring proper order.
Determines whether the can be added to the Koreography.
A Koreography Track cannot be added if another Koreography Track with the same
Event ID already exists in the Koreography.
true if the can be added; otherwise, false.
The Koreography Track to check with.
Adds the to the Koreography.
true, if was added, false otherwise.
The Koreography Track to add.
Removes the Koreography Track from the Koreography.
The Koreography Track to remove.
Removes the Koreography Track an Event ID matching from the
Koreography.
Event I.
Returns a string Array that contains the Event IDs for all Koreography
Tracks in the Koreography.
A string Array with Event IDs from configured Koreography
Tracks.
Returns the Koreography Track with Event ID matching .
The Koreography Track with Event ID matching ,
null otherwise.
The Event ID of the Koreography Track to retrieve.
Gets the Koreography Track at .
The Koreography Track at if one exists,
null otherwise.
The index of the Koreography Track within the internal
Koreography Track list.
Gets the index of within the internal Koreography Track
list.
The index of within the internal Koreography
Track list if it exists, -1 otherwise.
The Koreography Track to get the index of.
Determines whether exists within the Koreography.
true if exists within the Koreography;
otherwise, false.
The Koreography Track to check.
Gets the number of Koreography Tracks in the Koreography.
The number of Koreography Tracks in the Koreography.
Checks whether a Koreography Track with the Event ID exists.
true, if a Koreography Track with Event ID exists,
false otherwise.
The Event ID to check.
Resets the internally tracked sample timings.
Gets the amount of time in Beats the current update pass represents.
The amount of time in Beats the current update pass represents.
The number of subdivisions of a standard Beat that
determine the Beat.
Gets the time in samples of the current update pass.
The time in samples for the current update pass.
Gets the amount of time in samples the current update pass represents.
The amount of time in samples the current update pass represents.
Gets the amount of time in samples the current update pass represents.
The amount of time in samples the current update pass represents.
This method is obsolete and will be removed in an upcoming version. Please use
GetBeatTimeFromSampleTime instead.
The Beat Time equivalent of .
The time in samples.
The number of subdivisions of a standard Beat that
determine the Beat.
Converts the from Sample Time into Beat Time with
the subdivision value specified by .
The Beat Time equivalent of .
The time in samples.
The number of subdivisions of a standard Beat that
determine the Beat.
Converts the from Beat Time into Sample Time with
the subdivision value specified by .
The Sample Time equivalent of .
The time in beats.
The number of subdivisions of a standard Beat that
determine the Beat.
Converts the from Sample Time into Measure Time.
The Measure Time equivalent of .
The time in samples.
Converts the from Measure Time into Sample Time.
The Sample Time equivalent of .
The time in measures.
Converts the from Measure Time into Sample Time.
The Sample Time equivalent of .
The time in measures.
Gets the Beat Time within the Measure represented by .
The Beat Time within the Measure represented by .
The time in samples to convert.
Returns the number of samples within a beat at the location specified by
, with the beat value specified by .
The number of samples within a 'beat' at the location specified by
.
The sample location within the audio to check.
The number of subdivisions of a standard Beat that
determine the Beat.
Returns the Beats Per Minute at the location specified by .
The Beats Per Minute at the location specified by
.
The sample location within the audio to check.
Gets the sample location of the nearest beat to .
The sample of the nearest beat to .
The sample location to check.
The number of subdivisions of a standard Beat that
determine the Beat.
Gets the Tempo Section that contains .
The Tempo Section that contains ,
null otherwise.
The sample location to retrieve.
Gets the index of the Tempo Section that contains
within the Tempo Section list.
The index of the Tempo Section that contains ;
-1 otherwise.
The sample location to retrieve.
Part of the Event Triggering process. This will trigger all Koreography
Events that fall within the range specified by
and across all configured Koreography Tracks,
inclusive.
The start time in samples of the range to trigger.
The end time in samples of the range to trigger.
The update timing information to pass to events in
callbacks with time.
An object that stores metadata necessary to properly define the tempo
for a part of a song.
Gets or sets the name of the Tempo Section.
The name of the Tempo Section.
Gets or sets the Start Sample position. This is guaranteed to be
non-negative.
The start sample.
Gets or sets the number of samples in a beat for this Tempo
Section. Guaranteed to be greater than zero.
The samples per beat.
Gets or sets the Beats Per Measure for this Tempo Section.
Guaranteed to be greater than zero.
The beats per measure.
Gets the Samples Per Measure for this Tempo Section.
Guaranteed to be greater than zero.
The samples per measure.
Gets or sets the flag indicating whether this Tempo Section forces the
start of a new measure in the beat timeline.
true if does reset beat count; otherwise, false.
Compares Tempo Sections by their Start Sample. This is generally used by
sorting functions.
-1 if the Start Sample of is lower than
that of , 0 if they are equal, and 1
otherwise.
The first Tempo Section to compare.
The second Tempo Section to compare.
Gets the Samples Per Beat of the Tempo Section, given the beat value
specified by .
The Samples Per Beat of the Tempo Section, given the beat value
specified by .
The number of subdivisions of a standard Beat that
determine the Beat.
Gets the amount of beat time this section contains at the specified
given the beat value specified by
.
The amount of beat time in this section at .
The time in samples to convert to beat time.
The number of subdivisions of a standard Beat that
determine the Beat.
Gets the amount of measure time this section contains at the specified
.
The amount of measure time in this section at .
This value is 0-indexed!
The time in samples to convert to measure time.
Gets the tempo of this section described in Beats Per Minute.
The Beats Per Minute of this tempo section.
The Sample Rate for the data.
The Interface used to define Koreography Payloads. This is currently used
mainly as a classifier but does provide functionality in Editor contexts.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
The base Koreography Event definition. Each event instance can carry
a single Payload. Events can span a range of samples or can be tied
to a single one.
Sample values (Start/End) are in "Sample Time" range, *NOT* absolute
sample position. Be sure that querries/comparisons occur in TIME and
not DATA space.
Gets or sets the start sample.
The start sample of the Koreography Event.
Gets or sets the end sample.
The end sample of the Koreography Event.
Gets or sets the payload.
The payload of the Koreography Event. Can be null.
Compares two Koreography Events by their start sample.
-1 if the StartSample of is earlier
than the StartSample of , 0 if they are equal;
-1 otherwise.
A first Koreography Event to compare.
A second Koreography Event to compare.
Determines whether this Koreography Event is a OneOff or not. OneOff events have a
range/span of 0 (their EndSample is the same as their StartSample).
true if this Koreography Event is a OneOff; otherwise, false.
Gets the event delta at . The delta is clamped
to a range of [0,0, 1.0]. If is not within this
event's range, it returns 0 or 1 depending of if it comes
before or after, respectively.
The delta within the range of the event represented by .
The sample time to get the delta of.
A single list of Koreography Events. This class attempts to guarantee that
all events in the track are stored in order by Start Sample position.
An instance of this struct is required by the GetEventsInRangeTracked method.
It contains state information that helps optimize consecutive calls to the method.
Please use the SAME INSTANCE of this struct in consecutive calls within the same
logical process.
Returns the last end sample position checked in the most recent lookup.
The last checked end sample position.
Gets the index of the first event to check against in the next lookup.
The index of the first event to check in the next lookup.
Resets the state of the crumbs with the expectation that the tracking will
start at the beginning of the internal KoreographyEvent List.
Gets or sets the Event ID of the Koreography Track.
The string Event ID.
Checks the integrity of the internal Koreography Event list, removing any null
entries.
true, if there was a change to the list during this operation,
false otherwise.
Returns the ID for a given Koreography Event. The ID of a Koreography Event
is its current position within the Koreogrpahy Track list.
The ID for the given Koreography Event.
The Koreography Event to retrieve the ID of.
Ensures the order of Koreography Events in the event list (StartSample
position).
Returns the first Koreography Event found at the passed in sample position.
The event, if any, with a StartSample at the given sample position.
The sample position to check.
Adds a Koreography Event to the Koreography Track. The event is inserted
in order by StartSample position. The event is NOT added if it is a OneOff
event and another OneOff event already exists with the same StartSample
position.
true, if the event was added, false otherwise.
The Koreography Event to add.
Removes the given Koreography Event from the Koreography Track.
true, if the Koreography Event was found and removed,
false otherwise.
The Koreography Event to remove.
Removes all Koreography Events from the Koreography Track.
Returns a list of events in the provided range. The check includes events
that intersect the range and is inclusive of Start/End positions.
This method is now a wrapper. Please use the other version of
GetEventsInRange directly.
The events defined within the given range.
First sample of the range to search.
Last sample of the range to search.
Adds events in the provided range to the specified list. The check includes
events that intersect the range and is inclusive of Start/End positions. The list
is NOT cleared prior to adding events.
This method works in O(n) time and is built for random access.
First sample of the range to search.
Last sample of the range to search.
The List into which to add KoreographyEvents.
Returns a list of events in the provided range. This includes events that
intersect the range and is inclusive of Start/End positions!
This method is now a wrapper. Please use the other version of
GetEventsInRangeTracked directly. This will be removed in a future update.
It should be noted that use of this method may result in sub-optimal performance
for complex situations.
The events defined within the given range.
First sample of the range to search.
Last sample of the range to search.
Adds any events found within the provided range to the specified list. This
includes events that intersect the range and is inclusive of Start/End
positions! The list is NOT cleared prior to adding events.
Please note that the TrackingCrumbs parameter is a struct. Proper use of
this method involves sending the SAME struct each time. The contents of the struct are
modified internally in preparation for the next range check. This is the Tracking
portion of the method. If you only need a specific set of events and do not need to
track subsequent checks, please use GetEventsInRange instead.
First sample of the range to search.
Last sample of the range to search.
The tracking information about where to begin looking.
The List into which to add KoreographyEvents.
Get a List of all Koreography Events in this Koreography Track.
Returns a new List with all Koreography Events in the track.
Operations on this list do not affect the internally maintained list.
Checks for Koreography Events within the current time range. If events are found,
they are triggered.
Note that this startTime should NOT be the same as the previous call's
endTime as the check is inclusive of both startTime and endTime.
This means that if a OneOff were to fall on a boundary and this frame's endTime
became next frame's startTime, that event would be triggered twice.
Start time of the range in samples.
End time of the range in samples.
The timing information to be passed to any triggered callbacks.
Koreography Tracks require special serialization marshalling. This is for use
by Unity's serialization system only! (From: ISerializationCallbackReceiver
interface.)
Koreography Tracks require special serialization marshalling. This is for use
by Unity's serialization system only! (From: ISerializationCallbackReceiver
interface.)
Retrieves the FieldInfo object that describes the field of a specific name.
The System.Type to look for.
The name of the list to look up.
The FieldInfo object that identifies the requested List<type> field.
Retrieves the FieldInfo object that describes the field of a specific name.
The fully qualified (i.e. namespace included) name of the type as a string.
The name of the list to look up.
The FieldInfo object that identifies the requested List<type> field.
Determines whether the passed in System.Type describes a generic List<> container or not.
The System.Type to check.
True if it is a generlic list, false otherwise.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the Color associated with the ColorPayload. If the
Payload is not actually of type , this
will return the default color, white.
The Color value.
The ColorPayload class allows Koreorgraphy Events to contain a Color value
as a payload.
Gets or sets the Color value.
The Color value.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the curve data associated with the CurvePayload. If the
Payload is not actually of type , this will return
null.
The curve data.
Gets the value of the curve at . Returns 0f if the
Payload is not a CurvePayload.
The float value of the curve at .
The 'this' KoreographyEvent for the extension method.
The specified sample time.
The CurvePayload class allows Koreorgraphy Events to contain an AnimationCurve
as a payload.
Initializes a new instance of the class.
Gets or sets the AnimationCurve data.
The AnimationCurve data.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Gets the value of the curve at (range [0,1]).
The value at .
A value in the range of [0,1].
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the float associated with the FloatPayload. If the
Payload is not actually of type , this will return
0f.
The float value.
The FloatPayload class allows Koreorgraphy Events to contain a float value
as a payload.
Gets or sets the float value.
The float value.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the gradient data associated with the GradientPayload. If the
Payload is not actually of type , this will return
null.
The Gradient data.
Gets the color of the gradient at . Returns the default
color (white) if the payload is not a .
The color of the gradient at .
The 'this' KoreographyEvent for the extension method.
The specified sample time.
The GradientPayload class allows Koreorgraphy Events to contain a Gradient
as a payload.
Gets or sets the Gradient data.
The Gradient data.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the integer associated with the IntPayload. If the
Payload is not actually of type , this will return
0.
The int value.
The IntPayload class allows Koreorgraphy Events to contain an int value
as a payload.
Gets or sets the int value.
The int value.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Fills the passed in array with spectrum values. The returned
values are interpolated between recorded spectrum entries. If the
array is null or not the correct length, it will be overwritten with a newly created array of
the correct length. The array is not touched if the payload is
not a .
If is greater than zero, the number of bins return will be
clamped and the values averaged. The averaging is equal: each bin will only affect a single returned
bin. When this clamping occurs, the number of bins in the spectrum after the process completes will
likely be less than .
The 'this' KoreographyEvent for the extension method.
The specified sample time.
An array of float values into which spectrum data will be added.
The maximum number of bins to fit data into. If this number is lower than
the number of bins available, bin-averaging will occur.
The SpectrumPayload class allows Koreorgraphy Events to contain a Spectrum
series as a payload.
Gets or sets the Spectrum data.
The Spectrum data.
Gets or sets the SpectrumInfo struct.
The SpectrumInfo data that describes the spectra.
Gets the number of entries (bins) for each Spectrum.
The number of spectrum entries per spectrum.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Fills the passed in array with spectrum values. The returned
values are interpolated between spectrum entries based on . If the
array is null or not the correct length, it will be overwritten
with a newly created array of the correct length.
If is greater than zero, the number of bins return will be
clamped and the values averaged. The averaging is equal: each bin will only affect a single returned
bin. When this clamping occurs, the number of bins in the spectrum after the process completes will
likely be less than .
An array of float values into which spectrum data will be added.
The time at which to look up in the range [0,1].
The maximum number of bins to fit data into. If this number is lower than
the number of bins available, bin-averaging will occur.
Fills the passed in array with spectrum values. The returned
values are interpolated between spectrum entries based on the time.
If the array is null or not the correct length, it will be
overwritten with a newly created array of the correct length.
If is greater than zero, the number of bins return will be
clamped and the values averaged. The averaging is equal: each bin will only affect a single returned
bin. When this clamping occurs, the number of bins in the spectrum after the process completes will
likely be less than .
An array of float values into which spectrum data will be added.
The sample position to check.
The maximum number of bins to fit data into. If this number is lower than
the number of bins available, bin-averaging will occur.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
Extension Methods for the class that add
-specific functionality.
Determines if the payload is of type .
true if the payload is of type ;
otherwise, false.
Returns the string associated with the TextPayload. If the
Payload is not actually of type , this will return
the empty string.
The string.
The TextPayload class allows Koreorgraphy Events to contain a string
as a payload.
Gets or sets the string value.
The string value.
This is used by the Koreography Editor to create the Payload type entry
in the UI dropdown.
The friendly name of the class.
Returns a copy of the current object, including the pertinent parts of
the payload.
A copy of the Payload object.
The will attempt to play multiple synchronized layers
of audio. These layers can be configured using raw AudioClip references
or with Koreography references. The interface disallows setting both for
a single layer.
Under certain conditions, the layers may not all start at the same time.
This is usually due to heavy CPU load. Use the SyncPlayDelay feature to
schedule the playback of audio in a synchronized fashion.
Internally, each layer requires an AudioSource component for playback of
the AudioClip. It is possible to specify a specific AudioSource component
for a layer to use. If no AudioSource is specified, the system will add
one to use automatically.
Gets or sets the pitch.
The pitch.
Gets or sets a value indicating whether the audio should loop.
true if the audio should loop; otherwise, false.
Sets the volume to all AudioSources at once.
The volume [0,1].
Gets a value indicating whether the audio is playing or not (paused/stopped).
true if the audio is playing; otherwise, false.
Load a new song, as described by .
This will stop the currently playing song.
A List of s that comprise the song.
The time within the layers at which playback should begin.
If set to true auto play.
Plays the audio.
Stops the audio.
Pauses the audio.
Seeks the audio to the target sample location.
The location to seek the audio to.
Sets the volume for the given layer.
The number of the layer to set the volume for.
The value to set the volume in the range of [0,1].
Sets the volume for the given layer.
The name of the layer to set the volume for.
The value to set the volume in the range of [0,1].
Gets the current sample position of the AudioClip with name .
The current sample position of the AudioClip with name
.
The name of the AudioClip to check.
Gets the total sample time for AudioClip with name .
This total time is not necessarily the same at runtime as it was at edit time.
The total sample time for AudioClip with name .
The name of the AudioClip to check.
Determines whether the AudioClip with name is playing.
true, if AudioClip with name is
playing,false otherwise.
The name of the AudioClip to check.
Gets the pitch. The parameter is ignored.
The pitch of the audio.
Gets the name of the current AudioClip.
The name of the AudioClip in the currently playing 'base'
MusicLayer, if any.
A single layer of the music. Layers are played back simultaneously by
the MultiMusicPlayer.
Initializes a new instance of the class.
The Koreography to use.
The AudioSource to use.
The name of the layer.
Initializes a new instance of the class.
The AudioClip to use.
The AudioSource to use.
The name of the layer.
Gets the Koreography.
The Koreography.
Gets the AudioClip for this layer.
The AudioClip.
Gets the name of the AudioClip used by this layer.
The name of the AudioClip used by this layer.
Gets the AudioSource component this MusicLayer uses
for playback.
The configured AudioSource component.
Gets the AudioVisor linked to this MusicLayer.
The linked AudioVisor.
The string name configured for this MusicLayer.
The string name.
Initializes the MusicPlayer
An optional AudioSource that can be used to override a previously
configured AudioSource.
An optional Koreographer to use for time reporting.
If not specified, the global Koreographer instance will be used.
The SimpleMusicPlayer component plays audio using Koreography. Instead of
taking an AudioClip reference, it takes a single Koreography reference.
At runtime, the Koreography is loaded into the static Koreographer Instance.
Adding this component will also add an AudioSource component, which is
used internally to control audio. The SimpleMusicPlayer uses the AudioClip
reference in the referenced Koreography for audio playback.
Gets a value indicating whether the audio is playing or not (paused/stopped).
true if the audio is playing; otherwise, false.
Loads the and begins playing its configured
at time .
If is true, playback will begin
immediately.
This immediately unloads the Koreography for any previously playing
audio.
Koreo.
Start sample time.
If set to true auto play.
Plays the loaded audio.
Stop playback.
Pauses playback.
Seeks the audio playback to the target sample location.
The location to seek to.
Gets the current sample position of the AudioClip with name
.
The current sample position of the AudioClip with name
.
The name of the AudioClip to check.
Gets the total sample time for AudioClip with name .
This total time is not necessarily the same at runtime as it was at edit time.
The total sample time for AudioClip with name .
The name of the AudioClip to check.
Determines whether the AudioClip with name
is playing.
true, if AudioClip with name
is playing,false otherwise.
The name of the AudioClip to check.
Gets the pitch. The parameter is ignored.
The pitch of the audio.
The name of the AudioClip to check. Currently ignored.
Gets the name of the current AudioClip.
The name of the currently playing AudioClip.
This audio player is EXPERIMENTAL. This audio player guarantees that all configured
audio layers play back in a sample-synchronized fashion. Currently this comes at a
tradeoff in memory as all layers must be fully loaded in order to play back.
The AudioBus component through which this audio player should play samples.
Occurs when playback ends.
Plays the music in starting at sample time
for time.
If is true, the group will interrupt
current audio playback as well as any scheduled audio.
The AudioGroup to play.
The time in samples at which to begin playback
of .
The amount of audio in samples to play.
If set to true, this operation will interrupt
playing or scheduled audio; if false it will fail with a warning in the case that
audio is already playing.
Schedules for playback, beginning at
and set to continue for . The
parameter allows you to schedule where in the playback of any currently
playing audio the transition should occur in sample time. If the playhead
is beyond the specified location, the scheduling will fail. If
is true, the scheduling will override any previously scheduled audio.
The AudioGroup to schedule.
The sample location in the currently playing audio
at which to transition.
The sample position in at which
to begin playing audio.
The amount of to play back in
samples.
If set to true, this operation will interrupt
playing or scheduled audio; if false it will fail with a warning in the case that
audio is already playing.
Pause audio playback.
Unpauses audio playback.
Stops audio playback.
Gets the current sample position of the audio with name .
The current sample position of the audio with name .
The name of the AudioClip to check.
Gets the total sample time of the audio with the name .
The total sample time of the audio with the name .
The name of the AudioClip to check.
Determines whether audio with name is playing.
true, if audio with name is
playing,false otherwise.
The name of the AudioClip to check.
Gets the pitch of the audio with name .
In this case, is ignored as pitch is a
global setting.
The pitch of the audio.
Gets the name of the current AudioClip.
The name of the 'base' AudioClip of the currently playing
AudioGroup, if any.
The manages the feeding of a specific buffer of audio
to the Audio System. Samples are fed into the audio buffer when the underlying
audio system requests them.
Occurs when Playback of an AudioGroup ends.
Gets or sets the pitch.
The pitch.
Sets the internal AudioSource component with which to play audio. Also initializes
an internal AudioClip with the specified channel count and frequency.
The AudioSource component that this wraps.
The number of channels in the audio that will be played through the bus.
The sample frequency of the audio that will be played through the bus.
Begin playback of . If other audio is already scheduled to play, returns
false.
true, if was played, false otherwise.
The to play.
The number of samples to offset playback from.
The number of samples to play, starting at
.
If set to true, this will override previously scheduled
audio to playback.
Schedule's the provided Audio to be started at the sample location in the currently
playing track indicated in the curSongSampleTransLoc parameter.
If no song is currently playing, the playback occurs immediately.
If the currently playing song has already played (or been read) beyond the transition
point, this returns false.
true, if audio was scheduled, false otherwise.
The audio group to schedule.
The sample location in the currently playing song
to transition at. A value of 0 means "when the current song ends".
The start sample offset for the scheduled audio
group.
The sample length of the audio to playback. A value of
0 means "until the end".
If set to true any previously queued song will
be overwritten.
Resumes playback of a Paused AudioBus.
Pauses the AudioBus.
Stops the AudioBus, optionally triggering the callback.
If set to true, triggers the callback.
Returns the time in samples of the currently playing AudioGroup.
The time in samples of the currently playing audio.
Returns the playback position in samples of .
The playback position in samples of .
The AudioGroup to retrieve timing information about.
Determines whether currently playing.
true if audio data from is playing; otherwise,
false.
The AudioGroup to check.
Determines whether this AudioBus is paused.
true if this AudioBus is paused; otherwise, false.
Determines whether an AudioGroup is scheduled for playback.
true if an AudioGroup is scheduled; otherwise, false.
This class collects several audio layers, or stems, into one logical "piece" of
audio. The properties revealed by the class are all based on the base layer;
the AudioLayer at position 0 in the Audio Layers list.
Gets the total sample time of the AudioGroup.
The total sample time.
Gets the number of audio channels used by the AudioGroup.
The number of audio channels.
Gets the frequency of the audio data (sample rate).
The frequency of the audio data.
Gets the number AudioLayer layers.
The number layers.
Initializes the audio data of all AudioLayers.
Clears the audio data prepped by all AudioLayers.
Registers any Koreography configured within AudioLayers.
Unregisters any Koreography configured within AudioLayers.
Determines whether any Koreography configured within AudioLayers is
loaded.
true if Koreography is registered; otherwise, false.
Determines whether all layers are ready for playback.
true if all layers are ready for playback; otherwise, false.
Determines whether or not this AudioGroup has any configured layers.
true if this AudioGroup contains at least one layer;
otherwise, false.
Checks to see whether the AudioClip with name
is used in any layer.
true, if was used in a layer,
false otherwise.
The name of the AudioClip to check.
Gets the AudioClip at position 0 in the AudioLayer list.
The base clip.
Gets the name of the AudioClip at position 0 in the AudioLayer list.
The name of the base clip.
Gets the the AudioClip, if any, of the AudioLayer at index
.
The AudioClip at layer .
Layer index.
Fills with audio data compiled across all AudioLayers.
The position in the audio from which to begin reading.
The audio data array to fill.
The position in to begin filling from.
The number of samples to read.
This class is a data supplier: it logically combines Koreography with an
AudioClip for playback purposes.
Note that EITHER the Koreography or the clip is sufficient to work. This
is designed to allow non-choreographed layers in the audio system. In the
case that both exist, the AudioClip specified by the user is
preferred. WARNING: this will cause issues with the specified Koreography
if the clip is different.
Gets the layer's AudioClip.
The AudioClip.
Gets the layer's AudioClip's name.
The name of the AudioClip.
Gets the layer's Koreography.
The Koreography.
Gets the total sample time of the layer.
The total sample time.
Gets the number of audio channels.
The number of audio channels.
Gets the audio data sample frequency (sample rate).
The audio data sample frequency.
Gets or sets the volume of the layer.
The volume of the layer.
Gets the total number of samples across all channels of audio data.
The total number of samples across all channels of audio data.
Initializes the audio data, reading all samples into a set
of buffers. This cannot be a single buffer as Mono's Garbage
Collection fails for very large arrays, never properly freeing
the memory.
Clears the audio buffers.
Determines whether this AudioLayer is ready for playback.
true if this AudioLayer is ready for playback;
otherwise, false.
Reads audio data from the buffers beginning at
into beginning at .
If is true, the audio data is multiplied
into rather than overwritten.
Time in samples to begin reading from.
The array to fill with audio data.
The offset into at which to
begin filling.
The amount of audio data to read into .
If set to true, samples will be multiplied (mixed)
into ; if set to false the samples will replace
anything in .
The EventID Attribute allows you to mark a serializable or public string
field as being an EventID. When this happens, the field gets special
consideration in the Inspector, showing a customizable field and a list of
Event ID options configured across Koreography Tracks found within the current
project.
The NoEditorCreate Attribute allows you to mark a Payload class such that it
cannot be created using the standard Draw/Edit tools in the Koreography Editor.
The Audio Source Visor adds Koreographer event triggering support
to a single, targeted AudioSource. Any audio played back
through the AudioSource will be reported to either the
default Koreographer or the ,
if specified.
An optional Koreographer component. Set this to force targeting a specific Koreographer for
event driving.
A struct to hold information that uniquely identifies an
AudioClip.
The Object.InstanceID associated with a specific AudioClip.
The cached name of a specific AudioClip.
The AudioVisor is built on top of VisorBase, specifically adding support for
Unity's built-in audio system. It is built around the AudioSource
component and sends timing information based on its intricacies.
Private default constructor means we require a different constructor.
Initializes a new instance of the class. This will
connect the AudioSource to a Koreographer.
The AudioSource component to watch.
If specified, updates are sent to this
Koreographer. Otherwise they use the default global Koreographer.
The AudioSource component that this AudioVisor watches over.
The ID of the AudioClip this AudioVisor is watching over.
If a change is detected, this should get updated.
Used internally to track sample-time steps.
This is used when the AudioSource has a clip change or a jump within the audio.
The AudioVisor attempts to catch "seeks" automatically. Using this is far
better.
Gets the current time in samples.
The current time in samples.
Convert this frame's delta time from solar time to sample time. Note that this
does not respect Time.timeScale: that kind of math comes in with the audio pitch
settings.
The delta time in samples.
The Visor is the glue that binds the Audio Player and the Koreographer component
together. The Visor's sole responsibility is to provide the Koreographer
component with information with which it can process Koreography Events. This
base class provides a common interface and set of core processing that handles
most potential audio update scenarios. Override and fill in the blanks!
The Koreographer to report audio time updates to.
The current sample time, possibly estimated.
The most recently read sample time from the audio hardware (or equivalent).
Gets the name of the audio currently playing back. This is used to identify Koreography for
event triggering.
The name of the currently playing audio.
Gets whether or not the audio is currently playing back.
true if the audio is playing, false otherwise.
Gets whether the audio is set to loop or not.
true if audio should be looping, false otherwise.
Gets whether the audio looped this frame or not.
true if the audio looped, false otherwise.
Get the current time in samples of the current audio (the playhead position in samples).
The current sample time.
Gets the first *playable* sample position of the current audio.
The first playable sample position.
Get the last *playable* sample position of the current audio.
The last playable sample position.
Get the number of samples that were played in the last frame. Be sure to consider current settings
and playback state.
The delta time in samples.
Looks at the Audio System and determines how far the audio has moved. It then
reports those results, if necessary, to the specified Koreographer to trigger
any encountered Koreography Events.
This implementation is fairly robust in that it recognizes that some audio systems
will not report a change in sample position until more samples are requested (no
estimation). In such cases it attempts to estimate the time spent.
Gets the total number of samples that will be played back.
The total number of samples in the audio that will be played back.
Gets the deltaTime used to process the frame *without* modification from Time.timeScale.
The raw frame time.
The basic Koreography Event callback format. Use this format when no specific
timing information is necessary.
The Koreography Event callback format that includes timing information. Use
this format to gain access to specific information about the timing of the
event, both globally and within the current frame.