0:00/0:00
// christmas songs — Misc Christmas
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/4 at bar 198) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 2 "Bb Clarinet" clarinet (copy of ch 6 "Bb Trumpet" trumpet)
// note: Transcription provider: pdmx. https://musescore.com/score/485556; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 244 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// other · flute
const flute = note(`<
A B C D E F G H I J K L M N O ~@4 P Q ~@2 R S ~@2 T U V W X Y ~@4 Z AA X Y AB AC AD@2 AE AF AG AH AI AJ AD@2 AE AF AK
AL AM AN ~@5 AO AP AQ ~@7 AR AD@2 AE AF AK AS AT AJ AD@2 AE AF AK AL AM AN AU AV AW AX AY AV AZ BA AU AV AW AX AY AV
BB BC ~@8 AU AV AW AX AY AV BD BE BF BG BH BI BJ BK BL BM BN@2 BO BP BQ AF BL BM BN@2 BO BP BR BS BT BU BT BV BW BX BY
BZ BT BU BT BV BW BX CA CB CC CD CE CF CG CH CG CH CG CH CG CH CD CI CJ CK CG CH CG CL CM CN CO CP CQ CR CS@2 CD CI CJ
CT ~@8 CU ~@4 CV CW@2 CX CY CZ DA DB ~@5 DC DD DE DF DG DH DI DJ DK DL DM DN DO DP A B C D E F G H I J DQ
>`.pickRestart({
A: "g5@2 g5@2 g5@2 g5!2", B: "f#5@3 e5 d5@2 b4@2", C: "g5@2 g5 f#5 d5@2 d5 g5", D: "f#5@3 e5 d5@4",
E: "~@2 g5@2 f#5!4", F: "~@2 f#5@2 e5!4", G: "~@2 e5@2 d5!4", H: "d5@3 d5 b4@4", I: "b4 c5 d5 e5", J: "d5!2", K: "b4",
L: "c5@2 f5@2 f5@3 e5", M: "f5 a5!2 g5", N: "c6@2 c6@2 c6@3 a#5", O: "a5 g5 a5@2", P: "c6!3 f5", Q: "a#5 a5!2 g5",
R: "d6!3 c6", S: "a#5 a5 a#5@2", T: "d5!3 c5", U: "a#4 a4 a#4@2", V: "g4@2 a4 a#4 c5@3 f4", W: "f4 g4 f4@2",
X: "d5@3 c5 b4@2 a4@2", Y: "g4 a4 b4 g4", Z: "b4 c#5 d5@2 e5 f#5 g5@2", AA: "f#5 e5 d5@2", AB: "e5!4 d5@3 c5",
AC: "b4 a4 g4@2", AD: "f5!2 f5@2", AE: "f5@2 f5@2 d5@3 e5", AF: "f5@3 ~", AG: "g5@2 g5@2 g5@3 g5",
AH: "g5@2 f5@2 f5@2 f5!2", AI: "f5 d5!2 f5", AJ: "d5 g5", AK: "d5@2 d5@2 d5@3 d5", AL: "d5@2 f5@2 f#5@2 f#5!2",
AM: "g5!2 f5 d5", AN: "c5@3 ~", AO: "~@3 c5", AP: "c5!2 a#4 g4", AQ: "a4 ~", AR: "~@2 g4 a4 a#4 c5 d5 e5",
AS: "d5@2 c5@2 c5@2 c5!2", AT: "c5 a#4!2 d5", AU: "g5 a5@2 g5 e5@2 c6@2", AV: "a5 g5@3", AW: "g5 a5 g5 a5 g5@2 c6@2",
AX: "b5@3 ~", AY: "f5 g5@2 f5 d5@2 b5@2", AZ: "g5 a5 g5 a5 g5@2 a5@2", BA: "e5@3 ~", BB: "g5 a5 g5 a5 g5@2 d6@2",
BC: "c6@3 ~", BD: "g5 a5 g5 a5", BE: "g5 d6", BF: "c6", BG: "c6 ~@3", BH: "~@2 d#6 ~ d#6@4",
BI: "d#6 d6 c#6 c6@2 g5 g#5 a5", BJ: "f5@2 g5@2 g#5 a5 a#5 d#5", BK: "~ a#5 c6 a#5 c6 a#5 f5 f#5",
BL: "g5 ~ g5@2 g5@3 a#4", BM: "g5!3 ~", BN: "[~ g5 a#5 d#5@3 f5 g5@7 ~@2]/2", BO: "~ g#5!2 g#5@3 a#5@2",
BP: "g#5 g5@2 g5@2 g5 g#5 a5", BQ: "a#5 d#5 g5 d#5 g5 g5@2 g5", BR: "a#5 d#5 g5 d#5 g5 g5@2 f5", BS: "d#5@3 ~",
BT: "d#5 ~@2 g5 ~@2 a#5 ~", BU: "~ d#5 ~@2 g5 ~@2 d5", BV: "~ d#5 ~@2 g5 ~@2 e5", BW: "f5 ~@2 g#5 ~@2 c6 ~",
BX: "~ f5 ~@2 g#5 ~@2 c5", BY: "a#4 ~@2 d5 ~@2 f5 ~", BZ: "~ g5 c6 a#5 c6 a#5 f5 e5", CA: "a#5 ~@3 a#5 ~@3",
CB: "d#5 a#5 c6 a#5 c6 a#5@3", CC: "c6 a#5", CD: "g#5 g5", CE: "f5 g5 g#5 a#5", CF: "g5 g#5 a#5 b5",
CG: "~@4 g#5 ~@3 g#5 ~@7", CH: "g#5 ~@3 g#5@3 g#5 ~@8", CI: "f5 d#5", CJ: "c6 a#5 g#5 g5", CK: "f5",
CL: "g#5 ~@3 g#5@3 g#5 ~@4 d#5@4", CM: "g#5 g5 f5 c5", CN: "d#5@2 c5@2 ~ b4 c5@2", CO: "c#5", CP: "d5 d#5@3",
CQ: "~ f5 g5 g#5", CR: "a#5 g#5 g5 f5", CS: "[d#5@3 ~]/2", CT: "f5 ~", CU: "c6 ~ c6 ~ c6 ~ c6 c#6 d#6@8",
CV: "g#5@14 f5 ~", CW: "f5@2 g#5 ~ f#5@2 f5 ~ f5@3 d#5 c#5 ~ f5 ~", CX: "f5 ~ f5 ~ f5 ~ f5 f#5 g#5@6 f#5 f5",
CY: "d#5 ~ d#5 ~ d#5 ~ d#5 f5 f#5@6 f5 d#5", CZ: "c#5 c#6@2 a#5 g#5 f#5 f5 f#5",
DA: "f5@4 d#5@4 g#5@3 f#5 f5 ~ f#5 ~", DB: "f5 d#5 c#5@2", DC: "g#5@6 f#5 ~ f5@4 d#5@4", DD: "c#5 d#5 f5 c#5",
DE: "d#5@2 f5@2 f#5 ~ d#5 ~ f5@6 d#5 ~", DF: "c#5 c5 c#5@2", DG: "d#5@6 f5 ~ f#5@4 d#5@4",
DH: "f5@6 f#5 ~ g#5@4 d#5@4", DI: "f5 ~ f#5 ~ g#5@4 a#5 ~ c6 ~ c#6@4", DJ: "c6 a#5 g#5@2",
DK: "c#5@6 a#4 ~ g#4@4 f#4@4", DL: "f4 g#4 c#5 f4", DM: "f#4@2 g#4@2 a#4 ~ f#4 ~ g#4@6 f#4 ~", DN: "f4 d#4 f4@2",
DO: "c#5 d#5 f5 c#5 c5@3 a#4", DP: "g#4 g4 f4 ~", DQ: "b4 ~",
})).s("gm_flute").gain(0.3)
// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
A B C D E F G H I J K L M N O P Q R@2 S T U V W X P@2 W X Y Z AA AB ~@6 AA AB AC AD AE@2 AF AG AH AI AJ AK AE@2 AL AG
AH AM AN AO AP AQ AP AR AS AT AN AU AP AQ AP AV AW AX AY AZ AE@2 AL AG AH AI AJ AK AE@2 BA AG AH BB AN AZ BC BD BC BE
BF BG BF BD BC BD BC BE BF BG BF BH BI BJ BK BL BM BN BO BP BC BD BC BE BF BG BQ BG BR BS BT BU BV BW BX BY BZ@2 CA CB
CC CD BX BY BZ@2 CA CE CF CG CH CI CH CJ CK CL CM CN CH CO CH CJ CK CL CP CQ CR CS CT CU CV CW CV CW CV CW CV CW CX CY
CS CZ CV CW CV CW DA DB DA DB DA DB DA DB CX CY CS DC ~@4 DD DE DF DG DH DI ~@3 DJ DK@2 DL DM DN DO DP DQ@2 DR DS DT
DQ DR DS DT DU DV DW DX DQ DR DS DY ~@2 A B C D E F G H I J K
>`.pickRestart({
A: "b3@2 b3@2 b3@2 b3 d4", B: "d4@3 c4 b3@2 g3@2", C: "d4@2 d4 c4 d4@2 d4 b3", D: "d4@3 c4 b3@4",
E: "d4@4 e4 d4 c4 b3", F: "c4@4 d4 c4 b3 a3", G: "b3@4 c4 b3 a3 g3", H: "a3@3 a3 d3@4", I: "g3 a3 b3 c4", J: "b3 a3",
K: "g3 ~", L: "c4@2 f3@2 f3@3 e3", M: "f3 a3!2 g3", N: "c4@2 c4@2 c4@3 a#3", O: "a3 g3 a3@2", P: "~ f3 ~ f3",
Q: "~ f3 ~ g3", R: "~ g3 ~ g3", S: "c4!3 f3", T: "a#3 a3!2 g3", U: "~ a3 ~ a3", V: "~ a3 ~ c4", W: "d4!3 c4",
X: "a#3 a3 a#3@2", Y: "g3@2 a3 a#3 c4@3 f3", Z: "f3 g3 f3@2", AA: "d4@3 c4 b3@2 a3@2", AB: "g3 a3 b3 g3",
AC: "e4!4 d4@3 c4", AD: "b3 a3 g3@2", AE: "c4", AF: "c4@4 a#3@3 c4", AG: "c4@3 ~", AH: "d4", AI: "d4 c4@3",
AJ: "c4 d4@3", AK: "d4 c4", AL: "c4@4 a#3@3 a#3", AM: "d4 c4@2 c4", AN: "c4!2 a#3 g3", AO: "f3@3 c4",
AP: "c4 a3 g3 f3", AQ: "c4@2 ~ c4", AR: "d4@2 ~ d4", AS: "d4 a#3 a3 g3", AT: "e3@2 ~ c4", AU: "a3@2 ~ c4",
AV: "d3@2 ~ d3", AW: "d3 a#3 a3 g3", AX: "c4!4", AY: "d4 c4 a#3 g3", AZ: "f3@3 ~", BA: "d4@4 a#3@3 a#3",
BB: "d4@2 c4@4 c4!2", BC: "~ c4 ~ c4", BD: "~ c4!3", BE: "~ d4!3", BF: "~ b3 ~ b3", BG: "~ b3!3", BH: "~ g3!3",
BI: "a3!2 c4 a3", BJ: "g3 e3 g3@2", BK: "f3 a3 g3 f3", BL: "e3@3 ~", BM: "d3@3 e3 g3@2 a3@2", BN: "b3!2 b3@2",
BO: "c4@3 c4 b3@2 a3@2", BP: "g3 f3@3 d3@4", BQ: "~ d4 ~ d4", BR: "~ c4 ~ d4", BS: "c4@2 ~@3 d#4 f4 g4",
BT: "~@2 d#4 ~ d#4 a#3 c4 d4", BU: "d#4 d4 c#4 c4@2 d#4@3", BV: "f4@4 a#3@3 d4", BW: "d#4!2 c4 a#3 c4 a#3 c#4 d4",
BX: "d#4@2 d#4@2 d#4@3 a#3", BY: "d#4!3 ~", BZ: "[~ d#4!2 a#3@3 d4 d#4@7 ~@2]/2", CA: "~ c4!2 c4@3 d4@2",
CB: "c4 a#3@2 a#3@2 g3 g#3 a3", CC: "a#3 d#4 g4 d#4 g4 d#4@2 c4", CD: "a#3@4 a#3!2 c#4 d4",
CE: "c4 d#4@2 d4@2 g3 g#3 a3", CF: "a#3 d#4 g4 d#4 g4 d#4@2 d#4", CG: "g3@3 ~", CH: "d#4 ~@2 d#4 ~@2 d#4 ~",
CI: "~ d#4 ~@2 g4 ~@2 d4", CJ: "~ d#4 ~@2 d#4 ~@2 e4", CK: "f4 ~@2 f4 ~@2 f4 ~", CL: "~ f4 ~@2 f4 ~@2 f4",
CM: "a#3 ~@2 a#3 ~@2 a#3 ~", CN: "~ a#3 c4 a#3 c4 a#3 c4 d4", CO: "~ d#4 ~@2 d#4 ~@2 d#4", CP: "d#4 ~@3 d4 ~@3",
CQ: "d#4 a#3 c4 a#3 c4 d4@3", CR: "d#4 d4", CS: "c#4 c4", CT: "a#3 g#3 g3 a#3", CU: "c4 a#3 g#3 f3",
CV: "~@4 [c4,d#4] ~@3 [c4,d#4] ~@7", CW: "[c4,d#4] ~@3 [c4,d#4]@3 [c4,d#4] ~@8", CX: "g#4@8 g4@3 d#4@2 g4@3",
CY: "f4@2 d#4 f4", CZ: "a#3", DA: "~@4 [d#4,g#4] ~@3 [d#4,g#4] ~@7", DB: "[d#4,g#4] ~@3 [d#4,g#4]@3 [d#4,g#4] ~@8",
DC: "a#3 ~", DD: "~@8 c#5@3 a#4 g#4 ~ f#4 ~", DE: "f4 ~ g#4 ~ c#5 ~ g#4@10",
DF: "d#5 f5 d#5 c5 c#5@3 c5 a#4 ~ g#4 ~ f#4 ~ f4 ~", DG: "a#3 ~ a#3 ~ a#3 ~ a#3 c4 c#4@8",
DH: "c4 ~ c4 ~ c4 ~ c4 c#4 d#4@8", DI: "g#4 ~ c4 c#4 d#4 ~ d#4 f4 f#4 ~ f#4 g#4 a#4 ~ c5@2", DJ: "g#3@14 f3 ~",
DK: "f3@2 g#3 ~ f#3@2 f3 ~ f3@3 d#3 c#3 ~ f3 ~", DL: "f3 ~ f3 ~ f3 ~ f3 f#3 g#3@6 f#3 f3",
DM: "d#3 ~ d#3 ~ d#3 ~ d#3 f3 f#3@6 f3 d#3", DN: "c#3 c#4@2 a#3 g#3 f#3 f3 f#3",
DO: "f3@4 d#3@4 g#3@3 f#3 f3 ~ f#3 ~", DP: "f4 d#4 c#4@2", DQ: "c#4 ~@5 g#3 ~ c#4 ~@5 g#3 ~",
DR: "c#4 ~@5 g#3 ~ c#4 ~@5 c#4 ~", DS: "g#3 ~@7 c#4 ~@3 a#3 ~@3", DT: "~@2 a#3 ~@3 g#3 ~@3 c#4 ~@3 g#3 ~",
DU: "c4 ~@7 d#4 ~@3 c4 ~@3", DV: "c#4 ~@7 f4 ~@3 d#4 ~@3", DW: "c#4 ~@7 c#4 ~@7",
DX: "d#4 ~@3 c4 ~@3 g#3 ~@3 a#3 ~@3", DY: "g#3 a3 a#3@2",
})).s("gm_alto_sax").gain(0.3)
// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
A B A B A C A C D E F G@2 H I G B J K L M C M N B O@2 P B Q R B@3 S T B U V B@2 W X G@4 M L A M G@2 H G P Y M G@4 P A
J@2 G@4 P A Y M G@3 H G M L A M G@2 H G Z Y M AA J@2 AB AC B A B J@3 AB AC B A B J G AD B J A@2 C A J@2 AB AC B A B A
O AE AF AG AH AI AJ AK AJ AL AM AN AO AP AJ AK AJ AL AM AN AO AQ AR AS AR AT AU AV AW AX AR AS AR AT AU AY AZ BA BB BC
BD BE BF@2 BG BH BI@2 BJ@2 BK BG BF@2 BL BM BN@2 BF@2 BG BH BI@2 BJ@2 BK BG BO@2 BP BQ BR@2 BS BT BU BV ~ BW ~@3 BX BY
BZ CA CB CC CD CE CF@2 CG CH CI CF CG CH CJ CK CL CM CN CF CG CH CO CP CQ A B A B A C A C D E CR
>`.pickRestart({
A: "g3 ~ d3 ~", B: "d3 ~ g3 ~", C: "a3 ~ d3 ~", D: "g3 d3 g3 c3", E: "g3 d3", F: "g3@2 f#3 d3", G: "f3 ~ c3 ~",
H: "f3 ~ a#3 ~", I: "c3@2 f3 ~", J: "c3 ~ g3 ~", K: "g3@2 c3 ~", L: "f3 ~ d3 ~", M: "g3 ~ c3 ~", N: "a#3 d3",
O: "c3 ~ f3 ~", P: "a#3 ~ d3 ~", Q: "c3@2 d3 ~", R: "c3 g3 f3 e3", S: "d3 f#3 d3 g3", T: "c3 ~ f#3 ~", U: "g3 f#3",
V: "a3 d3", W: "c3 ~ d3 ~", X: "d3!3 g3", Y: "f3 ~ f#3 ~", Z: "a#3 ~ f3 ~", AA: "f3 e3 d3 c3", AB: "c3 ~ d#3@2",
AC: "g3 d3 g3 ~", AD: "c3 ~ a3 ~", AE: "~@5 d#2 f2 g2", AF: "g#2 a2", AG: "d#3 d3 c#3 c3@3 e2 ~",
AH: "f2@2 g2@2 g#2 a2 a#2 d2", AI: "d#2 ~@4 d2@3", AJ: "d#2 ~@2 d#2 ~@2 d#2 ~", AK: "~ d#2 ~@3 d2@3",
AL: "~ d#2 ~@3 e2@3", AM: "f2 ~@2 f2 ~@2 f2 ~", AN: "~ f2 ~@3 g#2@3", AO: "a#2 ~@2 a#2 ~@2 a#2 ~",
AP: "~ a#2 ~@3 d2@3", AQ: "g2@3 ~", AR: "~ g3@2 g3 f3@2 d#3@2", AS: "a#2@3 ~", AT: "c3@3 ~",
AU: "c3 g#3@2 g#3 g3@2 f3@2", AV: "d3@3 ~", AW: "~ a#3@2 a#3 g#3@2 f3@2", AX: "g3@3 ~",
AY: "a#3@2 ~ a#3@2 g3 g#3 a#3", AZ: "c4@2 a#3@2 g#3@2 f3 d3", BA: "d#3 ~@7", BB: "g#2 g2", BC: "f2 d#2",
BD: "f2 g2 g#2 a#2", BE: "g2 g#2 a#2 g#2", BF: "g#2/2", BG: "a#2", BH: "b2 c3@3", BI: "[d#3@7 c#3]/2",
BJ: "[c3@6 g#2 a#2]/2", BK: "c3", BL: "g#2", BM: "g#2@2 g2 g#2", BN: "a#2/2", BO: "[g#2@6 g#2 a#2]/2", BP: "c3!2",
BQ: "f3@3 f2 g2@4", BR: "[c3 g#2@2 ~]/2", BS: "~@8 c#4@3 a#3 g#3 ~ f#3 ~", BT: "f3 ~ g#3 ~ c#4 ~ g#3@10",
BU: "d#3 f3 d#3 c3 c#3@3 c3 a#2 ~ g#2 ~ f#2 ~ f2 ~", BV: "a#2 ~ a#2 ~ a#2 ~ a#2 c3 c#3@8",
BW: "g#3 ~ c3 c#3 d#3 ~ d#3 f3 f#3 ~ f#3 g#3 a#3 ~ c4@2", BX: "c#3 g#2 f2 g#2 c#2@3 c#2", BY: "c#2@2 c#2@2 c#2@3 c#2",
BZ: "c#2@2 c#2@2 c#2@3 ~", CA: "~@8 c#2 ~ c#2 ~ c#2 ~ d#2 f2", CB: "g#2@8 g#2 ~ g#2 ~ g#2 ~ a#2 c3",
CC: "c#2@2 d#2 f2 f#2 g#2 a#2 c3 c#3@8", CD: "c#2@4 g#2@4 c#3@3 a#2 g#2 ~ f#2 ~", CE: "f3 d#3 c#3@2",
CF: "c#3 ~ g#2 ~ a#2 ~ c3 ~ c#3 ~ g#2 ~ a#2 ~ c3 ~", CG: "c#3 ~ g#2 ~ a#2 ~ c3 ~ c#3 ~ g#2 ~ a#2 ~ c#3 ~",
CH: "c3 ~ g#2 ~ a#2 ~ c3 ~ c#3 ~ g#2 ~ a#2 ~ f#2 ~", CI: "g#2 ~ a#2 ~ c3 ~ g#2 ~ c#3 ~ g#2 ~ a#2 ~ c3 ~",
CJ: "g#2 ~ a#2 ~ c3 ~ g#2 ~ c#3 ~ g#2 ~ a#2 ~ c#3 ~", CK: "c3 ~ a#2 ~ c3 ~ c#3 ~ d#3 ~ c3 ~ g#2 ~ c3 ~",
CL: "c#3 ~ c3 ~ c#3 ~ d#3 ~ f3 ~ c#3 ~ c3 ~ d#3 ~", CM: "c#3 ~ d#3 ~ f3 ~ d#3 ~ c#3 ~ d#3 ~ f3 ~ c#3 ~",
CN: "d#3 ~ g#2 ~ c3 ~ a#2 ~ g#2 ~ g#2 ~ a#2 ~ c3 ~", CO: "g#2 c#3 c3 f#3 f3 f#3 g#3 f3",
CP: "a#3 c4 c#4 a#3 g#3@3 g3", CQ: "f3 e3 f3 ~", CR: "g3 ~",
})).s("gm_baritone_sax").gain(0.3)
// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
A B C D E F G H I J K ~@4 L M N O ~@2 P Q ~@2 R S ~@2 R T ~@2 U V W X Y Z ~@2 AA AB AC@2 AD AE AF AG AH AI AC@2 AD AE
AF AG AJ AK ~@5 AL AM AN ~@7 AO AC@2 AD AE AF AG AH AI AC@2 AD AE AF AG AJ AK AP AQ AR AS AT AQ AU AV AP AQ AR AS AT
AQ AW AX ~@8 AP AQ AR AS AT AQ AY AZ BA BB BC BD BE BF BG BH BI@2 BJ BK BL AK BG BH BI@2 BJ BK BM BN BO BP BO BQ BR BS
BT BU BO BP BO BQ BR BS BV BW BX BY BZ CA CB CC CB CC CB CC CB CC BY CD CE CF CB CC CB CG CH CI CJ CK CL CM CN@2 BY CD
CE AN ~@8 CO ~ CP CQ CR CS CT@2 CU CV CW CX CY ~ CZ DA DB DC DD DE DF DG DH DI DJ DK CZ DA DB DC ~@2 A B C D E F G H I
J DL
>`.pickRestart({
A: "b4@2 b4@2 b4@2 b4 d5", B: "d5@3 c5 b4@2 g4@2", C: "b4@2 b4 a4 b4@2 b4 d5", D: "d5@3 c5 b4@4",
E: "d5@4 e5 d5 c5 b4", F: "c5@4 d5 c5 b4 a4", G: "b4@4 c5 b4 a4 g4", H: "a4@3 a4 d4@4", I: "g4 a4 b4 c5", J: "b4 a4",
K: "g4", L: "c4@2 f4@2 f4@3 e4", M: "f4 a4!2 g4", N: "c5@2 g4@2 g4@3 e4", O: "e4 d4 c4@2", P: "c5!3 f4",
Q: "a#4 a4!2 g4", R: "g4@2 a4 a#4 c5@3 f4", S: "f4 g4 a4@2", T: "f4 g4 f4@2", U: "a4 b4 c5 a4 b4@3 a4",
V: "g4 f#4 g4@2", W: "a4 b4 c5 a4", X: "b4 c5 d5 b4", Y: "b4 c#5 d5@2 e5 f#5 g5@2", Z: "f#5 e5 d5@2",
AA: "e5!4 d5@3 c5", AB: "b4 a4 g4@2", AC: "a4!2 a4@2", AD: "a4@2 c5@2 f4@3 g4", AE: "a4@3 ~",
AF: "a#4@2 a#4@2 a#4@3 a#4", AG: "a#4@2 a4@2 a4@2 a4!2", AH: "a4 g4!2 a4", AI: "g4 c5", AJ: "c5!2 a#4 g4",
AK: "f4@3 ~", AL: "~@3 a4", AM: "a4!2 g4 e4", AN: "f4 ~", AO: "~@2 a#3 c4 d4 e4 f4 g4", AP: "g4 a4@2 g4 e4@2 c5@2",
AQ: "a4 g4@3", AR: "g4 a4 g4 a4 g4@2 c5@2", AS: "b4@3 ~", AT: "f4 g4@2 f4 d4@2 b4@2", AU: "g4 a4 g4 a4 g4@2 a4@2",
AV: "e4@3 ~", AW: "g4 a4 g4 a4 g4@2 d5@2", AX: "c5@3 ~", AY: "g4 a4 g4 a4", AZ: "g4 d5", BA: "c5", BB: "c5 ~@3",
BC: "~@2 d#5 ~ d#5@4", BD: "d#5 d5 c#5 c5@2 g4 g#4 a4", BE: "f4@2 g4@2 g#4 a4 a#4 d#4",
BF: "~ a#4 c5 a#4 c5 a#4 f4 f#4", BG: "g4 ~ g4@2 g4@3 a#3", BH: "g4!3 ~", BI: "[~ g4 a#4 d#4@3 f4 g4@7 ~@2]/2",
BJ: "~ g#4!2 g#4@3 a#4@2", BK: "g#4 g4@2 g4@2 g4 g#4 a4", BL: "a#4 d#4 g4 d#4 g4 g4@2 g4",
BM: "a#4 d#4 g4 d#4 g4 g4@2 f4", BN: "d#4@3 ~", BO: "d#4 ~@2 g4 ~@2 a#4 ~", BP: "~ d#4 ~@2 g4 ~@2 d4",
BQ: "~ d#4 ~@2 g4 ~@2 e4", BR: "f4 ~@2 g#4 ~@2 c5 ~", BS: "~ f4 ~@2 g#4 ~@2 c4", BT: "a#3 ~@2 d4 ~@2 f4 ~",
BU: "~ g4 c5 a#4 c5 a#4 f4 e4", BV: "a#4 ~@3 a#4 ~@3", BW: "d#4 a#4 c5 a#4 c5 a#4@3", BX: "c5 a#4", BY: "g#4 g4",
BZ: "f4 g4 g#4 a#4", CA: "g4 g#4 a#4 b4", CB: "~@4 g#4 ~@3 g#4 ~@7", CC: "g#4 ~@3 g#4@3 g#4 ~@8", CD: "f4 d#4",
CE: "c5 a#4 g#4 g4", CF: "f4", CG: "g#4 ~@3 g#4@3 g#4 ~@4 d#4@4", CH: "g#4 g4 f4 c4", CI: "d#4@2 c4@2 ~ b3 c4@2",
CJ: "c#4", CK: "d4 d#4@3", CL: "~ f4 g4 g#4", CM: "a#4 g#4 g4 f4", CN: "[d#4@3 ~]/2",
CO: "c5 ~ c5 ~ c5 ~ c5 c#5 d#5@8", CP: "c#5@4 c5@3 a#4 g#4@6 f#4 ~", CQ: "f4@4 d#4@4 c#4@6 g#4 ~",
CR: "a#4@6 a#4 ~ c5@6 c5 ~", CS: "g#4@14 f4 ~", CT: "f4@2 g#4 ~ f#4@2 f4 ~ f4@3 d#4 c#4 ~ f4 ~",
CU: "f4 ~ f4 ~ f4 ~ f4 f#4 g#4@6 f#4 f4", CV: "d#4 ~ d#4 ~ d#4 ~ d#4 f4 f#4@6 f4 d#4",
CW: "c#4 c#5@2 a#4 g#4 f#4 f4 f#4", CX: "f4@4 d#4@4 g#4@3 f#4 f4 ~ f#4 ~", CY: "f4 d#4 c#4@2",
CZ: "g#4@6 f#4 ~ f4@4 d#4@4", DA: "c#4 d#4 f4 c#4", DB: "d#4@2 f4@2 f#4 ~ d#4 ~ f4@6 d#4 ~", DC: "c#4 c4 c#4@2",
DD: "c#5@6 a#4 ~ g#4@4 f#4@4", DE: "f4 g#4 c#5 f4", DF: "f#4@2 g#4@2 a#4 ~ f#4 ~ g#4@6 f#4 ~", DG: "f4 d#4 f4@2",
DH: "c5@3 c#5 d#5@2 c5@2", DI: "c#5@3 d#5 f5@2 c5@2", DJ: "c#5 d#5 f5@2 f5 d#5 c#5 d#5", DK: "f5 d#5 f5 g5 d#5@4",
DL: "g4 ~",
})).s("gm_trumpet").gain(0.3)
// other · french horn · "Horn"
const french_horn = note(`<
A B C D E F G H I J K L M N O P Q R@2 S T U V W X P@2 W X Y Z AA AB ~@4 AC AD AA AB AE AF AG@2 AH AI AJ AK AL AM AG@2
AN AI AJ AO AP AQ AR AS AR AT AU AV AP AW AR AS AR AT AU AX AY AZ AG@2 AN AI AJ AK AL AM AG@2 BA AI AJ BB AP AZ BC BD
BC BE BF BG BF BD BC BD BC BE BF BG BF BH BI BJ BK BL BM BN BO BP BC BD BC BE BF BG BQ BG BR BS BT BU BV BW BX BY BX
BY BZ CA CB CC BX BY BX BY BZ CA CD CE CF CG CF CH CI CE CJ CK CF CG CF CH CI CL CM BW CN CO CP CQ AG CR CS CT CU CV
CW@2 CX CY CZ DA AG DB DC CK DD DE DD DE DD DE DD DF DG DH ~ DI CX DJ DK@2 ~@6 DL DM DN DO DP@2 DQ DR DS DT DU ~ DV DW
DX DY DZ EA EB EC ED EE EF EG DV DW DX DY ~@2 A B C D E F G H I J K
>`.pickRestart({
A: "b3@2 b3@2 b3@2 b3 d4", B: "d4@3 c4 b3@2 g3@2", C: "b3@2 b3 a3 b3@2 b3 d4", D: "d4@3 c4 b3@4",
E: "d4@4 e4 d4 c4 b3", F: "c4@4 d4 c4 b3 a3", G: "b3@4 c4 b3 a3 g3", H: "a3@3 a3 d3@4", I: "g3 a3 b3 c4", J: "b3 a3",
K: "g3 ~", L: "c4@2 f3@2 f3@3 e3", M: "f3 a3!2 g3", N: "c4@2 c4@2 c4@3 a#3", O: "a3 g3 a3@2", P: "~ f3 ~ f3",
Q: "~ f3 ~ g3", R: "~ g3 ~ g3", S: "c4!3 f3", T: "a#3 a3!2 g3", U: "~ a3 ~ a3", V: "~ a3 ~ c4", W: "d4!3 c4",
X: "a#3 a3 a#3@2", Y: "g3@2 a3 a#3 c4@3 f3", Z: "f3 g3 f3@2", AA: "d4@3 c4 b3@2 a3@2", AB: "g3 a3 b3 g3",
AC: "b3 c#4 d4@2 e4 f#4 g4@2", AD: "f#4 e4 d4@2", AE: "e4!4 d4@3 c4", AF: "b3 a3 g3@2", AG: "c4", AH: "c4@4 a#3@3 c4",
AI: "c4@3 ~", AJ: "d4", AK: "d4 c4@3", AL: "c4 d4@3", AM: "d4 c4", AN: "c4@4 a#3@3 a#3", AO: "d4 c4@2 c4",
AP: "c4!2 a#3 g3", AQ: "f3@3 c4", AR: "c4 a3 g3 f3", AS: "c4@2 ~ c4", AT: "d3@2 ~ d3", AU: "d3 a#3 a3 g3",
AV: "e3@2 ~ c4", AW: "a3@2 ~ c4", AX: "c4!4", AY: "d4 c4 a#3 g3", AZ: "f3@3 ~", BA: "d4@4 a#3@3 a#3",
BB: "d4@2 c4@4 c4!2", BC: "~ c4 ~ c4", BD: "~ c4!3", BE: "~ d4!3", BF: "~ b3 ~ b3", BG: "~ b3!3", BH: "~ g3!3",
BI: "a3!2 c4 a3", BJ: "g3 e3 g3@2", BK: "f3 a3 g3 f3", BL: "e3@3 ~", BM: "d3@3 e3 g3@2 a3@2", BN: "b3!2 b3@2",
BO: "c4@3 c4 b3@2 a3@2", BP: "g3 f3@3 d3@4", BQ: "~ d4 ~ d4", BR: "~ c4 ~ d4", BS: "c4 ~@3", BT: "g#4 a4",
BU: "d#5 d5 ~ d#5@2 g4 g#4 a4", BV: "a#4@2 a#4@2 a#3@3 a#3", BW: "d#4 ~@7", BX: "d#4 ~@2 g4 ~@2 a#4 ~",
BY: "~ d#4 ~@2 g4 ~@2 a#4", BZ: "f4 ~@2 g#4 ~@2 c5 ~", CA: "~ f4 ~@2 g#4 ~@2 c5", CB: "a#4 ~@2 d5 ~@2 f4 ~",
CC: "~ a#4 ~@2 d5 ~@2 f4", CD: "a#3 ~@2 d4 ~@2 f4 ~", CE: "a#3@3 ~", CF: "~ g4@2 g4 f4@2 d#4@2", CG: "g3@3 ~",
CH: "g#3@3 ~", CI: "c4 g#4@2 g#4 g4@2 f4@2", CJ: "~ a#4@2 a#4 d4@2 d4@2", CK: "d#4@3 ~",
CL: "a#4@2 ~ a#4@2 g4 g#4 a#4", CM: "c5 d#4 g4 d#4 g4!2 f4 d4", CN: "d#4 d4", CO: "c4 a#3", CP: "g#4 g4 f4 d#4",
CQ: "g4 f4 d#4 d4", CR: "c#4 c4 b3 c4", CS: "c#4", CT: "d4 d#4@3", CU: "~ f4 g4 g#4", CV: "a#4 g#4 g4 f4",
CW: "[d#4@6 g#3 a#3]/2", CX: "c4!2", CY: "c4 f4@2 d#4", CZ: "g#3!2", DA: "g#3 d#4@2 c#4", DB: "c#4 c4 a#3 g#3",
DC: "a#3", DD: "~@4 c5 ~@3 c5 ~@7", DE: "c5 ~@3 c5@3 c5 ~@8", DF: "c5 ~@3 c5@3 c5 c5@4 a#4@4", DG: "g#4 a#4",
DH: "c5 f5@2 d#5", DI: "g#3@2 g#3 a#3", DJ: "f4@3 f3 g3@4", DK: "[c4 g#3@2 ~]/2", DL: "c#4@4 c4@3 a#3 g#3@6 f#3 ~",
DM: "f3@4 d#3@4 c#3@6 g#3 ~", DN: "a#3@6 a#3 ~ c4@6 c4 ~", DO: "g#4@14 f4 ~",
DP: "f4@2 g#4 ~ f#4@2 f4 ~ f4@3 d#4 c#4 ~ f4 ~", DQ: "f4 ~ f4 ~ f4 ~ f4 f#4 g#4@6 f#4 f4",
DR: "d#4 ~ d#4 ~ d#4 ~ d#4 f4 f#4@6 f4 d#4", DS: "c#4 c#5@2 a#4 g#4 f#4 f4 f#4",
DT: "f4@4 d#4@4 g#4@3 f#4 f4 ~ f#4 ~", DU: "f4 d#4 c#4@2", DV: "g#4@6 f#4 ~ f4@4 d#4@4", DW: "c#4 d#4 f4 c#4",
DX: "d#4@2 f4@2 f#4 ~ d#4 ~ f4@6 d#4 ~", DY: "c#4 c4 c#4@2", DZ: "c#5@6 a#4 ~ g#4@4 f#4@4", EA: "f4 g#4 c#5 f4",
EB: "f#4@2 g#4@2 a#4 ~ f#4 ~ g#4@6 f#4 ~", EC: "f4 d#4 f4@2", ED: "c5@3 c#4 d#4@2 c4@2", EE: "c#4@3 d#4 f4@2 c4@2",
EF: "c#4 d#4 f4@2 f4 d#4 c#4 d#4", EG: "f4 d#4 f4 g4 d#4@4",
})).s("gm_french_horn").gain(0.3)
// … 93 more lines
More by Misc Christmas
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.