fromMidiNumber static method
Pitch
fromMidiNumber(
- int midiNumber, {
- AccidentalType preferredAccidental = AccidentalType.sharp,
Converte um nĂºmero MIDI para Pitch
Implementation
static Pitch fromMidiNumber(
int midiNumber, {
AccidentalType preferredAccidental = AccidentalType.sharp,
}) {
final octave = (midiNumber ~/ 12) - 1;
final semitone = midiNumber % 12;
const sharpNames = [
'C',
'C',
'D',
'D',
'E',
'F',
'F',
'G',
'G',
'A',
'A',
'B',
];
const flatNames = [
'C',
'D',
'D',
'E',
'E',
'F',
'G',
'G',
'A',
'A',
'B',
'B',
];
const isSharp = [
false,
true,
false,
true,
false,
false,
true,
false,
true,
false,
true,
false,
];
if (!isSharp[semitone]) {
return Pitch(step: sharpNames[semitone], octave: octave);
}
if (preferredAccidental == AccidentalType.sharp) {
return Pitch(
step: sharpNames[semitone],
octave: octave,
alter: 1.0,
accidentalType: AccidentalType.sharp,
);
} else {
return Pitch(
step: flatNames[semitone],
octave: octave,
alter: -1.0,
accidentalType: AccidentalType.flat,
);
}
}