Iterable<Interval> get intervals => positions .map((pos) => new Interval.fromSemitones( (pos.semitones - chord.root.semitones) % 12)) .toList();