diff --git a/packages/tonal/tonal.mjs b/packages/tonal/tonal.mjs index 4bba4561a..4c65caf0b 100644 --- a/packages/tonal/tonal.mjs +++ b/packages/tonal/tonal.mjs @@ -137,7 +137,10 @@ export const { transpose, trans } = register(['transpose', 'trans'], function tr const interval = !isNaN(Number(intervalOrSemitones)) ? Interval.fromSemitones(intervalOrSemitones) : String(intervalOrSemitones); - const targetNote = Note.transpose(note, interval); + + let n = Note.get(note); + n.oct = Interval.num(interval) < 8 ? n.oct : (n.oct ?? 3); + const targetNote = Note.transpose(n, interval); if (typeof hap.value === 'object') { return hap.withValue(() => ({ ...hap.value, note: targetNote })); }