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++; } } } }