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.