diff --git a/packages/tonal/test/tonleiter.test.mjs b/packages/tonal/test/tonleiter.test.mjs index 960d3770..ecced7e7 100644 --- a/packages/tonal/test/tonleiter.test.mjs +++ b/packages/tonal/test/tonleiter.test.mjs @@ -80,9 +80,9 @@ describe('tonleiter', () => { }); test('note2pc', () => { expect(note2pc('C5')).toBe('C'); - // expect(note2pc('C52')).toBe('C'); // <- 2 digits fail + expect(note2pc('C52')).toBe('C'); expect(note2pc('Bb3')).toBe('Bb'); - //expect(note2pc('F')).toBe('F'); // <- fails + expect(note2pc('F')).toBe('F'); }); test('note2oct', () => { expect(note2oct('C5')).toBe(5); diff --git a/packages/tonal/tonleiter.mjs b/packages/tonal/tonleiter.mjs index e23edf13..d491a2d9 100644 --- a/packages/tonal/tonleiter.mjs +++ b/packages/tonal/tonleiter.mjs @@ -27,7 +27,7 @@ export function tokenizeChord(chord) { } return match.slice(1); } -export const note2pc = (note) => note.slice(0, -1); +export const note2pc = (note) => note.match(/^[A-G][#b]?/i)[0]; export const note2oct = (note) => Number(note.slice(-1)); export const note2chroma = (note) => {