abc-notation-transposition
Version:
A robust utility for transposing ABC Notation by half steps.
27 lines (23 loc) • 622 B
JavaScript
const {transposeABC, INTERVALS} = require('../../index');
const pierrotAClarinet =
`X:1
T:Pierrot Lunaire
C:Arnold Schoenberg
M:C
L:1/8
K:
[V:Clarinet name="Klarinette in A."]
!ppp!(f4F4)|z2(_A2g2(d2|d6).D)z|(=B=F=G)zz2._B,z|`;
const pierrotAtConcertPitch =
`X:1
T:Pierrot Lunaire
C:Arnold Schoenberg
M:C
L:1/8
K:
[V:Clarinet name="Klarinette in A."]
!ppp!(d4D4)|z2(F2e2(B2|B6).B,)z|(_ADE)zz2.G,z|`
test("Expect atonal music to transpose correctly.", () =>{
const transposedPierrot = transposeABC(pierrotAClarinet, INTERVALS.DESCENDING.MINOR_THIRD);
expect(transposedPierrot).toBe(pierrotAtConcertPitch);
});