private void ChordButtonMouseUp(object sender, MouseEventArgs e) { recorder.StopChord(); ChordName chord = GetChordNameFromButton((Button)sender); AddChord(chord); }
private void ChordButtonMouseDown(object sender, MouseEventArgs e) { recorder.StopChord(); ChordName chord = GetChordNameFromButton((Button)sender); recorder.PlayChord(chord); AddChord(ChordName.None); }
private void AddChord(ChordName chordName) { long elapsed = stopwatch.ElapsedMilliseconds; long duration = elapsed - lastElapsedMillis; lastElapsedMillis = elapsed; recorder.AddChord(chordName, duration); }
public static DraggableChordUI Instantiate(DraggableChordUI prefab, Transform parent, ChordName chord) { DraggableChordUI instance = Instantiate(prefab, parent); instance.Chord = chord; instance.isProperlyInstantiated = true; return(instance); }
public bool TryToRevealChord(int index, ChordName guessedChord) { if (!TryToRevealName(index, guessedChord)) { return(false); } chordUIs[index].Chord = guessedChord; return(true); }
/// <summary> /// Plays given chord. /// </summary> /// <param name="chordName">Name of chord played</param> public void PlayChord(ChordName chordName) { Chord chord = new Chord(scale, chordName); foreach (Pitch pitch in chord.Tones) { harmonyProvider.AddInputStream(PitchSelector.GetWavePlayer(pitch, session.WaveForm).Channel); } lastChord = chord; }
public Chord(ChordName name) { if (name == ChordName.Hidden || name == ChordName.Custom) { throw new Exception("Invalid chord name"); } Notes = new List <Note>(); string nameStr = name.ToString(); var rootName = (NoteName)Enum.Parse(typeof(NoteName), nameStr.Substring(0, 1)); Notes.Add(Note.Create(rootName, defaultOctave)); Notes.Add(Note.Create(rootName + 7, defaultOctave)); // add fifth if (nameStr.Contains("m")) { Notes.Add(Note.Create(rootName + 3, defaultOctave)); } else { Notes.Add(Note.Create(rootName + 4, defaultOctave)); } Name = name; }
/// <summary> /// Add one chord and its duration to harmony. /// </summary> /// <param name="chordName">Name of chord played</param> /// <param name="duration">Length of chord in milliseconds</param> public void AddChord(ChordName chordName, long duration) { Chord chord = new Chord(scale, chordName); harmonyEpochs.Add(Epoch.CreateEpoch(duration, chord.Tones)); }
public Chord(Scale scale, ChordName chordName) { this.scale = scale; this.chordName = chordName; Tones = GetChord(); }
public void AddChord(ChordName chord) { DraggableChordUI.Instantiate(chordPrefab, content, chord); }
public Chord(params Note[] notes) { Notes = new List <Note>(notes); Name = ChordName.Custom; }
public void AttachChord(ChordName chord) { AttachChord(DraggableChord.Instantiate(chordPrefab, transform, camera, chord, this)); }