Exemple #1
0
    // 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);
    }
Exemple #2
0
    public bool IsToneInRange(MusicTone tone, int octave)
    {
        int toneIndex = (int)tone + octave * 12;

        if (toneIndex >= MinToneIndex && toneIndex <= MaxToneIndex)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemple #3
0
    // Get all the tone names from scale
    public List <string> GetToneNames(MusicTone baseTone, ToneRange toneRange)
    {
        List <string> toneNames = GetToneNames(baseTone, toneRange.MinOctave, toneRange.ToneCount);

        for (int i = 0; i < toneNames.Count; i++)
        {
            if (!toneRange.IsToneInRange(toneNames[i]))
            {
                toneNames.RemoveAt(i);
                i--;
            }
        }

        return(toneNames);
    }
Exemple #4
0
    // PLAYS A SPECIFIC TONE
    public void PlayTone(string instrument, ToneDuration duration, MusicTone tone, int octave)
    {
        string toneClipName = instrument + Underline + duration.ToString() + Underline + tone + Underline + octave;

        Debug.Log(toneClipName);

        ToneInfo info = new ToneInfo()
        {
            Tone     = tone,
            Octave   = octave,
            Duration = duration,
            TimeOfPlaySinceStartup = Time.realtimeSinceStartup
        };

        RecordToneInfo(info);
        AudioController.Play(toneClipName);
    }
Exemple #5
0
    /// <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);
    }
Exemple #6
0
	public void SetMusicTone(MusicTone newTone) {
		// Debug.Log("Changing music to: " + newTone);

		if(newTone != MusicTone.Title) {
			weatherGameplaySong = newTone;
		}

		if(MenuStateMachine.instance.MenusAllowInGameMusic() == false) {
			newTone = MusicTone.Title;
			// Debug.Log("In-menu, overriding music to: " + newTone);
		}

		switch(newTone) {
		case MusicTone.Title:
			songEvt.setParameterValue("Level", 0.0f);
			break;
		case MusicTone.Calm:
			songEvt.setParameterValue("Level", 1.0f);
			break;
		case MusicTone.Storm:
			songEvt.setParameterValue("Level", 2.0f);
			break;
		}
	}
Exemple #7
0
    // returns merged tone name and octave
    public string GetRandomTone(ToneRange toneRange, MusicTone baseTone)
    {
        List <string> toneNames = GetToneNames(baseTone, toneRange);

        return(toneNames[Random.Range(0, toneNames.Count)]);
    }
Exemple #8
0
 public static void StringToToneOctave(string toneString, out MusicTone tone, out int octave)
 {
     string[] toneData = toneString.Split('_');
     tone   = (MusicTone)Enum.Parse(typeof(MusicTone), toneData[0]);
     octave = int.Parse(toneData[1]);
 }
Exemple #9
0
 /// <summary>
 /// Plays the specific tone with current instrument and current duration
 /// </summary>
 /// <param name="tone"></param>
 /// <param name="octave"></param>
 public void PlayTone(MusicTone tone, int octave)
 {
     PlayTone(CurrentInstrument, ToneDuration, tone, octave);
 }