public static int SchedulePercussion(PercussionEnum percussionEnum, int volume, float scheduleTime = 0) { if (!instance) { return(0); } if (scheduleTime <= 0) { return(Percussion(percussionEnum, volume)); } else { instance.percussionAudioClip = percussionSettings.GetAudioClip(percussionEnum); if (instance.percussionAudioClip) { var item = new ScheduledPercussion(); item.clip = instance.percussionAudioClip; item.volume = volume.ToVolume(); item.dspTime = AudioSettings.dspTime + scheduleTime; instance.scheduledPercussionItems.Add(item); //Debug.Log("Adding percussion : " + item.dspTime); instance.scheduledPercussionItems.Sort((a, b) => { return(-1 * a.dspTime.CompareTo(b.dspTime)); }); return(1); } } return(0); }
/// <summary> /// Throws an exception if percussion is not valid. /// </summary> /// <param name="percussion">The percussion to validate.</param> /// <exception cref="ArgumentOutOfRangeException">The percussion is out-of-range. /// </exception> public static void Validate(this PercussionEnum percussion) { if (!percussion.IsValid()) { throw new ArgumentOutOfRangeException("Percussion out of range"); } }
public AudioClip GetAudioClip(PercussionEnum percussionEnum) { int index = (int)percussionEnum - (int)PercussionEnum.AcousticBassDrum; if (index >= 0 && index < percussionClips.Length) { return(percussionClips[index]); } return(null); }
static int Percussion(PercussionEnum percussionEnum, int volume) { if (!instance) { return(0); } instance.percussionAudioClip = percussionSettings.GetAudioClip(percussionEnum); if (instance.percussionAudioClip) { instance.audioSource.PlayOneShot(instance.percussionAudioClip, volume.ToVolume()); return(1); } return(0); }
public static int Percussion(PercussionEnum aPercussion, int aVolume = 80) { return(NoteOn((int)aPercussion, aVolume, 9)); }
public static int SchedulePercussion(PercussionEnum aPercussion, int aVolume = 80, float scheduleTime = 0) { return(MIDI.SchedulePercussion(aPercussion, aVolume, scheduleTime)); }
/// <summary> /// Returns the human-readable name of a MIDI percussion. /// </summary> /// <param name="percussion">The percussion.</param> public static string Name(this PercussionEnum percussion) { percussion.Validate(); return(PercussionNames[(int)percussion - 35]); }
/// <summary> /// Returns true if the specified percussion is valid. /// </summary> /// <param name="percussion">The percussion to test.</param> public static bool IsValid(this PercussionEnum percussion) { return((int)percussion >= 35 && (int)percussion <= 81); }