transpose static method

Pitch transpose(
  1. Pitch pitch,
  2. double semitones
)

Transpõe uma altura por um número de semitons

Implementation

static Pitch transpose(Pitch pitch, double semitones) {
  final newMidiNumber = pitch.midiNumber + semitones.round();
  final remainder = semitones - semitones.round();
  final newPitch = fromMidiNumber(newMidiNumber);

  return Pitch(
    step: newPitch.step,
    octave: newPitch.octave,
    alter: newPitch.alter + remainder,
  );
}