public bool IsToneInRange(string toneString) { MusicTone tone; int octave; MusicUtilities.StringToToneOctave(toneString, out tone, out octave); return(IsToneInRange(tone, octave)); }
// play random tone from given variables - scale and range public void PlayTone(string instrument, ToneDuration duration, MusicTone baseTone, ToneRange toneRange, string scale) { string toneString = MusicScale.MusicScales[scale].GetRandomTone(toneRange, baseTone); MusicTone tone; int octave; MusicUtilities.StringToToneOctave(toneString, out tone, out octave); PlayTone(instrument, duration, tone, octave); }
/// <summary> /// Gets names of tones made from MusicTone and its octave index /// </summary> /// <param name="baseTone">Starting tone of the scale</param> /// <param name="startOctave">Index of starting tone octave</param> /// <param name="toneCount">Number of tones, including starting tone</param> /// <returns></returns> public List <string> GetToneNames(MusicTone baseTone, int startOctave, int toneCount) { List <string> tones = new List <string>(); tones.Add(baseTone.ToString() + "_" + startOctave.ToString()); List <int> offsets = MusicUtilities.GetAbsoluteListFromRelativeList(this.ToneOffsets, toneCount - 1); int currentOctave; foreach (int toneOffset in offsets) { currentOctave = startOctave + toneOffset / 12; tones.Add(((MusicTone)(toneOffset % 12)).ToString() + "_" + currentOctave.ToString()); } return(tones); }