Beispiel #1
0
 void SetupEnvelopes()
 {
     wholeNoteEnv     = MusicUtil.CreateEnvelope(ConstFile.NoteLen.WHOLE);
     halfNoteEnv      = MusicUtil.CreateEnvelope(ConstFile.NoteLen.HALF);
     quarterNoteEnv   = MusicUtil.CreateEnvelope(ConstFile.NoteLen.QUARTER);
     eighthNoteEnv    = MusicUtil.CreateEnvelope(ConstFile.NoteLen.EIGHTH);
     sixteenthNoteEnv = MusicUtil.CreateEnvelope(ConstFile.NoteLen.SIXTEENTH);
 }
Beispiel #2
0
    void QuarterBeat(int rep)
    {
        IGATProcessedSample sample;

        string[] chordArray = MusicUtil.CreateMajorChord(majorProgression[rep], keyScale, ConstFile.PIANO_NOTES, majorChord);
        for (int i = 0; i < chordArray.Length; i++)
        {
            sample = sampleBank.GetProcessedSample(chordArray[i], halfNoteEnv);
            sample.Play(0);
        }
    }
Beispiel #3
0
    /// <summary>
    /// Adjust height of fieldSurfaces and position of field lineRenderers, dependant on the chord notes' heights.
    /// </summary>
    /// <param name="fields"></param>
    public static void AdjustFieldHeights(MusicField[] fields)
    {
        var vars = VisualController.inst;

        // 1. get highest & lowest note
        int lowestNote  = MusicUtil.LowestFieldNote(fields);
        int highestNote = MusicUtil.HighestFieldNote(fields);

        // 2. set scale of fieldSurface & z-pos of lineRend
        for (int i = 0; i < fields.Length; i++)
        {
            int[] curChordNotes = fields[i].chord.notes;
            int   curNote       = curChordNotes[curChordNotes.Length - 1];

            float targetScale = vars.minFieldSurfaceHeight + ExtensionMethods.Remap(curNote, lowestNote, highestNote, 0, vars.maxFieldSurfaceHeight);

            fields[i].SetLineRendZPos(Player.inst.transform.position.z - targetScale);
            fields[i].fieldSurface.transform.localScale = new Vector3(1, 1, targetScale);

            fields[i].height = targetScale;
        }
    }
Beispiel #4
0
    private static Chord[][][] AllChordsFromData(Key key, ChordData[] chordTypes, int minNote, int maxNote)
    {
        Chord[][] basicChords = new Chord[chordTypes.Length][];
        Chord[][] bigChords   = new Chord[chordTypes.Length][];

        // 1. Gehe jeden CHORD TYPE durch
        for (int i = 0; i < chordTypes.Length; i++)
        {
            int   degree    = chordTypes[i].degree;
            int[] intervals = chordTypes[i].intervals;
            //Chord basicChord = MusicUtil.Triad(key, degree, intervals);
            basicChords[i] = MusicUtil.AllBasicChordInversions(key, degree, intervals, minNote, maxNote);
            bigChords[i]   = MusicUtil.AllBigTriads(key, degree, intervals, minNote, maxNote);
        }

        Chord[][][] chords = new Chord[][][]
        {
            basicChords,
            bigChords
        };

        return(chords);
    }
Beispiel #5
0
 private void OnValidate()
 {
     this.audioClipDict.Clear();
     this.activeClips.Clear();
     this.UpdateLengthInBars();
     for (int i = 0; i < this.clips.Count; i++)
     {
         MusicTheme.PositionedClip item = this.clips[i];
         int num  = this.ActiveClipCollectionID(item.startingBar - 8);
         int num1 = this.ActiveClipCollectionID(item.endingBar);
         for (int j = num; j <= num1; j++)
         {
             if (!this.activeClips.ContainsKey(j))
             {
                 this.activeClips.Add(j, new List <MusicTheme.PositionedClip>());
             }
             if (!this.activeClips[j].Contains(item))
             {
                 this.activeClips[j].Add(item);
             }
         }
         if (item.musicClip != null)
         {
             AudioClip audioClip = item.musicClip.audioClip;
             if (!this.audioClipDict.ContainsKey(audioClip))
             {
                 this.audioClipDict.Add(audioClip, true);
             }
             if (item.startingBar < 8 && !this.firstAudioClips.Contains(audioClip))
             {
                 this.firstAudioClips.Add(audioClip);
             }
             item.musicClip.lengthInBarsWithTail = Mathf.CeilToInt(MusicUtil.SecondsToBars(this.tempo, (double)item.musicClip.audioClip.length));
         }
     }
 }
 private void OnValidate()
 {
     this.audioClipDict.Clear();
     this.activeClips.Clear();
     this.UpdateLengthInBars();
     for (int index = 0; index < this.clips.Count; ++index)
     {
         MusicTheme.PositionedClip clip = this.clips[index];
         int num1 = this.ActiveClipCollectionID(clip.startingBar - 8);
         int num2 = this.ActiveClipCollectionID(clip.endingBar);
         for (int key = num1; key <= num2; ++key)
         {
             if (!this.activeClips.ContainsKey(key))
             {
                 this.activeClips.Add(key, new List <MusicTheme.PositionedClip>());
             }
             if (!this.activeClips[key].Contains(clip))
             {
                 this.activeClips[key].Add(clip);
             }
         }
         if (Object.op_Inequality((Object)clip.musicClip, (Object)null))
         {
             AudioClip audioClip = clip.musicClip.audioClip;
             if (!this.audioClipDict.ContainsKey(audioClip))
             {
                 this.audioClipDict.Add(audioClip, true);
             }
             if (clip.startingBar < 8 && !this.firstAudioClips.Contains(audioClip))
             {
                 this.firstAudioClips.Add(audioClip);
             }
             clip.musicClip.lengthInBarsWithTail = Mathf.CeilToInt(MusicUtil.SecondsToBars(this.tempo, (double)clip.musicClip.audioClip.get_length()));
         }
     }
 }
Beispiel #7
0
 public static float SecondsToBars(float tempo, double seconds)
 {
     return(MusicUtil.SecondsToBeats(tempo, seconds) / 4f);
 }
Beispiel #8
0
 public static int BeatsToSamples(float tempo, float beats)
 {
     return(MusicUtil.SecondsToSamples(MusicUtil.BeatsToSeconds(tempo, beats)));
 }
Beispiel #9
0
 public static int BarsToSamples(float tempo, float bars)
 {
     return(MusicUtil.SecondsToSamples(MusicUtil.BarsToSeconds(tempo, bars)));
 }
Beispiel #10
0
 public static int SecondsToSamples(float seconds)
 {
     return(MusicUtil.SecondsToSamples(seconds, AudioSettings.get_outputSampleRate()));
 }
Beispiel #11
0
 public static double BarsToSeconds(float tempo, float bars)
 {
     return(MusicUtil.BeatsToSeconds(tempo, bars * 4f));
 }
Beispiel #12
0
 public static int SecondsToSamples(float seconds)
 {
     return(MusicUtil.SecondsToSamples(seconds, UnityEngine.AudioSettings.outputSampleRate));
 }