Beispiel #1
0
 public Chord(NoteLetter key, MajorMinor majorMinor)
 {
     _key        = key;
     _majorMinor = majorMinor;
     _baseNotes  = new List <NoteLetter>();
     _addedNotes = new List <NoteLetter>();
 }
 public ChordSongInterpreter(NoteLetter key, MajorMinor majorMinor, int sampleRate, int beatsPerMinute, int beatsPerMeasure)
 {
     _key                 = key;
     _majorMinor          = majorMinor;
     _sampleRate          = sampleRate;
     _tempo               = beatsPerMinute;
     _timeSignature       = beatsPerMeasure;
     _fallbackInterpreter = new DefaultSongInterpreter(sampleRate, beatsPerMinute, beatsPerMeasure);
     SetupChordLookup();
 }
Beispiel #3
0
 public SixChord(NoteLetter key, MajorMinor majorMinor) : base(key, majorMinor)
 {
     if (_majorMinor == MajorMinor.Major)
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 9), AddHalfSteps(key, 12), AddHalfSteps(key, 16)
         };
     }
     else
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 9), AddHalfSteps(key, 13), AddHalfSteps(key, 16)
         };
     }
 }
Beispiel #4
0
 public TwoChord(NoteLetter key, MajorMinor majorMinor) : base(key, majorMinor)
 {
     if (_majorMinor == MajorMinor.Major)
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 2), AddHalfSteps(key, 5), AddHalfSteps(key, 9)
         };
     }
     else
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 2), AddHalfSteps(key, 5), AddHalfSteps(key, 8)
         };
     }
 }
Beispiel #5
0
 public ThreeChord(NoteLetter key, MajorMinor majorMinor) : base(key, majorMinor)
 {
     if (_majorMinor == MajorMinor.Major)
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 4), AddHalfSteps(key, 7), AddHalfSteps(key, 11)
         };
     }
     else
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 4), AddHalfSteps(key, 8), AddHalfSteps(key, 11)
         };
     }
 }
Beispiel #6
0
 public SevenChord(NoteLetter key, MajorMinor majorMinor) : base(key, majorMinor)
 {
     if (_majorMinor == MajorMinor.Major)
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 11), AddHalfSteps(key, 14), AddHalfSteps(key, 17)
         };
     }
     else
     {
         _baseNotes = new List <NoteLetter>(3)
         {
             AddHalfSteps(key, 11), AddHalfSteps(key, 15), AddHalfSteps(key, 18)
         };
     }
 }
Beispiel #7
0
        public IList <Note> GetNotes(Inversion inversion, short lowestOctave)
        {
            var        notes         = new List <Note>(_baseNotes.Count);
            NoteLetter prevNote      = NoteLetter.C;        // Set to lowest note so first note in chord gets lowest octave
            short      currentOctave = lowestOctave;

            for (int i = 0; i < _baseNotes.Count; ++i)
            {
                var noteLetter = _baseNotes[((int)inversion + i) % _baseNotes.Count];
                if (prevNote > noteLetter)
                {
                    currentOctave++;
                }
                notes.Add(new Note(noteLetter, currentOctave));
                prevNote = noteLetter;
            }
            return(notes);
        }
Beispiel #8
0
 public Note(NoteLetter letter, int octave, bool black, ComponentLength length, int x, int absoluteX) : base(length, x, (int)letter, absoluteX, octave)
 {
     this.Black = black;
 }
Beispiel #9
0
 public static NoteLetter AddWholeSteps(NoteLetter note, int wholeSteps)
 {
     return(AddHalfSteps(note, WholeStepsToHalfSteps[wholeSteps % 7]));
 }
Beispiel #10
0
 public static NoteLetter AddHalfSteps(NoteLetter note, int halfSteps)
 {
     return((NoteLetter)(((int)note + halfSteps) % DistinctNotes));
 }
Beispiel #11
0
 public Note(NoteLetter letter, short octave)
 {
     Letter = letter;
     Octave = octave;
 }
 public ChordSongInterpreter(NoteLetter key, int sampleRate, ISongInterpreter fallbackInterpreter)
 {
     _key                 = key;
     _sampleRate          = sampleRate;
     _fallbackInterpreter = fallbackInterpreter;
 }