Exemplo n.º 1
0
 public MusicClip(int id, PercussionMusicClip percussionClip, InputMusicClip inputClip, LayerMusicClip[] layerClips)
 {
     ID             = ++idCounter;
     PercussionClip = percussionClip;
     InputClip      = inputClip;
     LayerClips     = layerClips;
 }
    private void GenerateTutorialClips()
    {
        ChordProgression chordProgression = chordProgressionLibrary.GetFirstChordProgression();
        Rhythm           rhythm           = GetRandomEnum <Rhythm>();
        Tempo            tempo            = GetRandomEnum <Tempo>();
        Key key = GetRandomEnum <Key>();

        for (int i = 0; i < loopCount; i++)
        {
            for (int j = 0; j < 2; j++)
            {
                MusicalChange change = GetRandomMusicalChange();
                if (change == MusicalChange.Tempo)
                {
                    tempo = GetRandomEnumOtherThan(tempo);
                }
                else
                {
                    rhythm = GetRandomEnumOtherThan(rhythm);
                }

                int chordIndex = 0;
                for (int k = 0; k < 4; k++)
                {
                    PercussionMusicClip percussionClip = percussionClipLibrary.GetRandomClipWithRhythmAndTempo(rhythm, tempo);
                    InputMusicClip      inputClip      = inputClipLibrary.GetClipWithInstrumentAndChord(
                        Instrument.ElectricGuitar,
                        KeyNotationToChordHelper.GetChord(key, chordProgression.chords[chordIndex]));
                    MusicClip clip = new MusicClip(percussionClip, inputClip, null);
                    musicMixer.QueueClip(clip);
                    chordIndex++;
                }
            }
        }
    }
Exemplo n.º 3
0
 public MusicClip(Tempo tempo, Rhythm rhythm)
 {
     ID             = ++idCounter;
     PercussionClip = new PercussionMusicClip(tempo, rhythm);
 }