Pitch constructor

Pitch({
  1. required int chromaticIndex,
  2. int accidentalSemitones = 0,
  3. int octave = -1,
})

Implementation

factory Pitch(
    {required int chromaticIndex,
    int accidentalSemitones = 0,
    int octave = -1}) {
  octave += chromaticIndex ~/ 12;
  chromaticIndex = chromaticIndex % 12;
  if (noteNames[chromaticIndex].length > 1) {
    accidentalSemitones += 1;
    chromaticIndex -= 1;
  }
  final key = "$octave:$chromaticIndex:$accidentalSemitones";
  if (_interned.containsKey(key)) return _interned[key]!;
  return _interned[key] = new Pitch._internal(
      chromaticIndex: chromaticIndex,
      accidentalSemitones: accidentalSemitones,
      octave: octave);
}