Pitch constructor
Pitch(
{ - required int chromaticIndex,
- int accidentalSemitones = 0,
- 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);
}