Interval.fromSemitones constructor
Interval.fromSemitones(
- dynamic semitones, {
- int? number,
Implementation
factory Interval.fromSemitones(semitones, {int? number}) {
if (semitones < 0 || 12 < semitones) semitones %= 12;
var interval = Interval.parse(intervalNames[semitones]);
if (number != null) {
interval = new Interval(number: number);
final qs = _numberIsPerfect(number) ? "dPA" : "dmMA";
final i = semitones - interval.semitones + (qs.length ~/ 2);
if (!(0 <= i && i < qs.length))
throw new ArgumentError(
"can't qualify $interval to $semitones semitone(s)");
final q = qs[i];
interval = new Interval(number: number, qualityName: q);
}
return interval;
}