/// <summary> /// Initializes a Chord. /// </summary> /// <param name="root">The root of the chord. So for a C major, it would be C. For a F# minor in third inversion with A as bass, it would be F#. Ignores octave.</param> /// <param name="type">The type of the chord. Might be called colour. Diminished/minor/major/augmented.</param> /// <param name="bassNote">The bass note of the chord. Defaults to the root, but can be anything. Ignores octave, but the octave can always be retrieved at a later date.</param> /// <param name="inversion">The inversion of the chord.</param> public Chord(Tone root, ChordType type, Tone bassNote = null, int inversion = 1) { Root = root; BassNote = bassNote ?? root; Type = type; Inversion = inversion; }
public Scale(XElement element, IReadOnlyDictionary <string, ChordType> chordTypes) { Name = element.ElementValue("name"); RootChordType = chordTypes[element.ElementValue("rootChordType")]; new int[] { 0 }.Union(element.Elements("step").Select(e => int.Parse(e.Value))).ToArray(); }
public Scale(string name, ChordType rootChordType, params int[] steps) { Name = name; Steps = steps.OrderBy(i => i).ToArray(); RootChordType = rootChordType; }