0:00/0:00
// Symphony No.7 Op.92 — Ludwig van Beethoven
// 70 bpm, 2/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/949716; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 278 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/2)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · violin
const violin = note(`<
A@3 ~@47 B C B C D E F G H I J K B C L M H I J K B C L M N O P Q R S T U V W X Y N Z P AA V W X Y N Z P M AB AC AD AE
AF AG AH AI AJ AK AL AM@4 AN AO AP AQ AR AS AT AQ AU AV@2 AW@2 AX@2 AY AZ BA BB BA BB BA BC BD BE BF BG BF BG BF BH BI
BJ BK ~ BL BM BN BO BN BP BQ BR BS BT BU BV BN BM BN BW BX BY BU BZ BN BM BN BW CA CB CC CD CA CB CC CD CE CF CG CH CI
CJ CK CL CM CN CO ~@2 CP@4 CQ M CR CS@2 C CT CU CV CW@3 CX CY CZ DA DB DC DB DC DB DC DD M DE CO AD AE AF AG AH AI AJ
AK AL AM@4 AN DF DG DF DG DF DH DI DH DI DJ DK ~@2 DJ DK ~ DL DM DN ~@6 DM DO ~@6 AB DP ~@2 DQ DR ~@2
>`.pickRestart({
A: "[[c5,e5]@5 ~]/3", B: "e5@4 e5 ~ e5 ~", C: "e5 ~ e5 ~", D: "e5@4 e5 ~ f#5 ~", E: "g5 ~ g5 ~", F: "g5@4 g5 ~ g5 ~",
G: "g5 ~", H: "g5@4 g5 ~ a5 ~", I: "b5 ~ b5 ~", J: "f#5@4 f#5 ~ g#5 ~", K: "a5 ~ a5 ~", L: "e5@4 f#5 ~ g#5 ~",
M: "a5 ~", N: "c6", O: "b5", P: "b5 d6@11 c6@2 b5@2, ~ c6 ~@14", Q: "b5 c6 c6@2", R: "c6@2 c5 d5",
S: "d#5@2 e5@2 e5 ~ e5 ~", T: "d5 f5@11 e5@2 d5@2, ~ e5 ~@14", U: "d5 e5 e5@2", V: "e5 e6", W: "d#6",
X: "d6@2 b5 c#6 d6@2 e6 d6", Y: "d6 c#6 c6@2", Z: "b5 c6", AA: "a5 ~ a4 b4 c5 ~ c5 d5",
AB: "e5@4 [e5,f#5] ~ [e5,g#5] ~", AC: "[e5,a5] ~", AD: "~@8 e5@3 d5@2 b4@3", AE: "e5@3 c#5@2 a4@3 c#5@3 a4@2 e4@3",
AF: "a4@3 e4@2 c#4@3 c#5@3 a4@2 e4@3", AG: "c#5@3 f#4@2 d4@3 b4@3 f#4@2 d4@3", AH: "b4@3 f#4@2 d4@3 a4@3 c#4@2 a4@3",
AI: "b3@3 d4@2 g#4@3 a4@3 c#4@2 a4@3", AJ: "d4@3 f#4@2 b4@3 c#5@3 e4@2 c#5@3", AK: "f#4@3 a4@2 d5@3 e5@3 g#4@2 e5@3",
AL: "d5@3 g#4@2 b4@3 a4@3 c#5@2 a5@3", AM: "[a5 g5@4 f#5@2 e5]/4", AN: "d5 c#5", AO: "b4 d#5", AP: "e5 ~",
AQ: "a5@3 a5", AR: "a5@3 g#5@2 f#5 ~@2 e5 ~@2 d#5 ~ c#5 ~@2", AS: "b4@4 c#5@2 d#5 ~", AT: "e5@11 f#5@2 g#5@3",
AU: "a5@3 g#5@2 f#5@3 e5@3 d#5@2 e5@3", AV: "[e5@6 f#5 e5]/2", AW: "[e5@24 g#5@3 f#5@2 e5@3]/2",
AX: "[e5@19 d5@2 c#5@3 e5@3 d5@2 f#4@3]/2", AY: "[c#4,a4] [g#4,b4]", AZ: "[a4,c#5]@8 b4@3 c5@2 c#5@3",
BA: "e5@3 a#4@2 g4@3 e4@3 g4@2 a#4@3", BB: "e4@3 g#4@2 b4@3 e5@3 b4@2 g#4@3", BC: "a4@3 f5@2 a4@3 a4@3 d5@2 f5@3",
BD: "e5@3 c5@2 g4@3 f4@3 b4@2 d5@3", BE: "e4@3 c5@2 e5@3 c5@3 e5@2 g5@3", BF: "b4@3 d5@2 g5@3 b4@3 d5@2 g5@3",
BG: "c5@3 e5@2 g5@3 c5@3 e5@2 g5@3", BH: "~@13 a5 ~@2", BI: "g5 ~@2 f5 ~ e5 ~@2 d5 ~@2 c5 ~ b4 ~@2",
BJ: "a4 ~@2 g4 ~ f4 ~@2 e4 ~@2 d4 ~ c4 ~@2", BK: "b3 ~@3", BL: "~@4 e6 ~ e6 ~",
BM: "~@2 c5 ~ a4 ~ c5 ~ e5 ~ c5 ~ a4 ~ c5 ~", BN: "e4 ~@3", BO: "~@2 b4 ~ g#4 ~ b4 ~ e5 ~ b4 ~ g#4 ~ b4 ~",
BP: "~@2 c5 ~ g4 ~ c5 ~ e5 ~ c5 ~ a4 ~ c5 ~", BQ: "g3 ~@3", BR: "~@2 d5 ~ b4 ~ d5 ~ g5 ~ d5 ~ b4 ~ d5 ~",
BS: "g4 ~@3", BT: "~@2 g4 ~ e4 ~ g4 ~ c5 ~ e4 ~ c4 ~ f#4 ~", BU: "f#4 ~@3",
BV: "~@2 a4 ~ f#4 ~ a4 ~ d5 ~ a4 ~ e4 ~ b4 ~", BW: "~@2 b4 ~ e4 ~ b4 ~ e5 ~ b4 ~ e4 ~ d5 ~", BX: "[e4,c5] ~@3",
BY: "~@2 e4 ~ b3 ~ e4 ~ b4 ~ e4 ~ c4 ~ f#4 ~", BZ: "~@2 f#4 ~ d4 ~ f#4 ~ a4 ~ d4 ~ b3 ~ e4 ~", CA: "[e4,c#5] ~@3",
CB: "~@2 c#5 ~ g4 ~ c#5 ~ e5 ~ c#5 ~ g4 ~ e5 ~", CC: "f5 ~@3", CD: "~@2 f4 ~ d4 ~ f4 ~ b4 ~ f4 ~ d4 ~ d5 ~",
CE: "c#5 ~@3", CF: "~@2 f4 ~ d4 ~ f4 ~ b4 ~ f4 ~ d4 ~ g#4 ~", CG: "a4@4 a4 ~ b4 ~", CH: "c5 ~ c5 ~",
CI: "b4@4 b4 ~ c#5 ~", CJ: "d5 ~ c5 ~ b4 ~ a4 ~", CK: "g4 ~ a4 ~ b4 ~ a4 ~ g4 ~ a4 ~ g4 ~ f#4 ~",
CL: "e4 ~ f#4 ~ g4 ~ a4 ~ b4 ~ c#5 ~ d#5 ~ e5 ~", CM: "e5 ~ a4 ~ b4 ~ c#5 ~ d5 ~ b4 ~ e5 ~ d5 ~",
CN: "c5 ~ b4 ~ c5 ~ d5 ~ e5 ~ e4 ~ f#4 ~ g#4 ~", CO: "a4 ~", CP: "[~@3 f#5@2 e5@2 b5@2 e5@2 b5@2 a5@2 b5]/4",
CQ: "c6@2 ~@2 a5@2 ~@2 g#5 ~ g#5 ~ a5 ~ b5 ~", CR: "~@10 f#5 ~ g5 ~ a5 ~", CS: "[g5@2 g4@2 c5@8 c5 ~ d5 ~]/2",
CT: "b4 ~ c5 ~ d5 ~ c5 ~ b4 ~ d5 ~ c5 ~ b4 ~", CU: "a4 ~ b4 ~ c5 ~ d5 ~ e5 ~ f#5 ~ g#5 ~ a5 ~",
CV: "g4 ~ a4 ~ a#4 ~ a4 ~ g4 ~ a#4 ~ a4 ~ g4 ~", CW: "[f4 ~ g4 ~ a4 ~ a#4 ~ c5@4 a5@8 g5@8 g5@8 f5@8 f5@4]/3",
CX: "f5 ~ d5 ~ e5 ~ f5 ~ d5 ~ b4 ~ c5 ~ d5 ~", CY: "b4 ~ g#4 ~ a4 ~ b4 ~ g#4 ~ a4 ~ b4 ~ c5 ~",
CZ: "d5 ~ e5 ~ f5 ~ g#5 ~ a5 ~ b5 ~ c6 ~ c#6 ~", DA: "d6 ~ e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ e6 ~",
DB: "[e5,e6]@4 [e5,e6] ~ [e5,e6] ~", DC: "[e5,e6] ~ [e5,e6] ~", DD: "[e5,e6]@4 f#5 ~ g#5 ~",
DE: "d5 ~ b4 ~ c5 ~ d5 ~ e5 ~ d5 ~ c5 ~ b4 ~", DF: "d5 e5", DG: "c#5", DH: "[a4,a5]@4 [a4,a5] ~ [a4,a5] ~",
DI: "[a4,a5] ~ [a4,a5] ~", DJ: "[d5,b5]@4 [c5,a5] ~ [d5,b5] ~", DK: "[e5,c6] ~@3", DL: "b5@4 a5 ~ b5 ~",
DM: "e6@4 e6 ~ e6 ~", DN: "e6 ~ e6 ~", DO: "d#6 ~ d6 ~", DP: "[e5,a5] ~@3", DQ: "~ e5", DR: "f#5 g#5 a5@2",
})).s("gm_violin").gain(0.21)
// other · pizzicato strings
const pizzicato_strings = note("<~@256 A B A@2 C D ~@2 A B E F G H ~@2 G H@2 ~@3>".pickRestart({
A: "~ e4", B: "~ a4", C: "d4@2 c4 d4", D: "e4 ~", E: "~ c4", F: "d4 c4", G: "d4@2 d4!2", H: "c4 ~",
})).s("gm_pizzicato_strings").gain(0.15)
// other · pizzicato strings
const pizzicato_strings_2 = note("<~@258 A@2 B C ~@4 D E F G ~@2 F G ~@4>".pickRestart({
A: "~ c4", B: "b3@2 a3 b3", C: "c4 ~", D: "~ a3", E: "b3 a3", F: "b3@2 b3!2", G: "a3 ~",
})).s("gm_pizzicato_strings").gain(0.15)
// other · viola
const viola = note(`<
A@3 ~@3 B C D E F G H I J K L M F G H I J K L M N O P Q R S T U V W X Y N Z P AA V W X Y N Z P M AB AC AD AE AF AG AH
AI AJ AK AL AM AB AN AD AO AJ AK AL AM AB AN AD AP AQ AR AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE AX BF AZ BA BB
BC BD AD BD ~ BG@2 BH@2 BI BJ BK BL BM@4 BN BO V@3 BP BQ BR BS BT@2 BU@2 V BV BW V BX@5 BY BZ CA CB@2 CC CD CE CF CG
CH CI CJ CK ~ CL CM CN CM CO CP CO CP CQ CR CS CM CT CM CN CM CQ CR CS CM CT CM CU CP CV CW CU CP CV CW CX CW ~@8 CY
CZ DA DB DC DD BF DE DF ~@3 DG@3 DH DI DJ DK DL@3 DM DN DO DP DQ DN DR DS DT DU DV DW DX@2 BH@2 BI BJ BK BL DY@4 DZ EA
V EA V EA ~ EB EC EB ED EE DU DV ED EE DU DV EF EG EH EI EJ C ~@4 EK AZ EL EM ~@2 EN EO ~@3 EP@3
>`.pickRestart({
A: "[[c4,e4]@5 ~]/3", B: "~@6 f#3 ~", C: "g3 ~ g3 ~", D: "g3@4 g3 ~ g3 ~", E: "g3 ~", F: "g3@4 g3 ~ a3 ~",
G: "b3 ~ b3 ~", H: "f#3@4 f#3 ~ g#3 ~", I: "a3 ~ a3 ~", J: "e3@4 e3 ~ e3 ~", K: "e3 ~ e3 ~", L: "e3@4 f#3 ~ g#3 ~",
M: "a3 ~", N: "c4", O: "b3", P: "b3 d4@11 c4@2 b3@2, ~ c4 ~@14", Q: "b3 c4 c4@2", R: "c4@6 c4 d4",
S: "d#4@2 e4@2 e4 ~ e4 ~", T: "d4 f4@11 e4@2 d4@2, ~ e4 ~@14", U: "d4 e4 e4@2", V: "e4", W: "d#4",
X: "d4@2 b3 c#4 d4@2 e4 d4", Y: "d4 c#4 c4@2", Z: "b3 c4", AA: "a3 ~ a3 b3 c4 ~ c4 d4", AB: "c5", AC: "b4",
AD: "b4 d5@11 c5@2 b4@2, ~ c5 ~@14", AE: "b4 c5 c5@2", AF: "c5@6 c5 d5", AG: "d#5@2 e5@2 e5 ~ e5 ~",
AH: "d5 f5@11 e5@2 d5@2, ~ e5 ~@14", AI: "d5 e5 e5@2", AJ: "e5", AK: "d#5", AL: "d5@2 b4 c#5 d5@2 e5 d5",
AM: "d5 c#5 c5@2", AN: "b4 c5", AO: "a4 ~ a4 b4 c5 ~ c5 d5", AP: "a4 [e4,a4]", AQ: "[e4,e5]@4 [e4,e5] ~ [e4,e5] ~",
AR: "[e4,e5] ~ [e4,e5] ~", AS: "[e4,e5]@4 [e4,e5] ~ [f#4,f#5] ~", AT: "[g4,g5]@4 [g4,g5] ~ [g4,g5] ~",
AU: "[g4,g5] ~ [g4,g5] ~", AV: "[g4,g5] ~", AW: "[g4,e5]@4 g4 ~ a4 ~", AX: "b4 ~ b4 ~", AY: "[f#4,e5]@4 f#4 ~ g#4 ~",
AZ: "a4 ~ a4 ~", BA: "[e4,a4]@4 [e4,a4] ~ [e4,a4] ~", BB: "e4 ~ [e4,a4] ~", BC: "e4@4 f#4 ~ g#4 ~", BD: "a4 ~",
BE: "g4@4 g4 ~ a4 ~", BF: "f#4@4 f#4 ~ g#4 ~", BG: "e3/2", BH: "[f#3@6 e3 c#4]/2", BI: "[b3,d4]@2 c#4 c#3",
BJ: "d3 e3", BK: "f#3 g#3", BL: "[g#3,d4]@2 [a3,c#4]!2", BM: "[c#4 ~ a4 ~@2 d4@2 e4, ~ c#4@4 ~@3]/4",
BN: "f#4 g#4 a4 e4", BO: "e4 g#4 a4 f#4", BP: "a4@3 a4", BQ: "a4@3 g#4@2 f#4 ~@2 e4 ~@2 d#4 ~ c#4 ~@2",
BR: "b3@2 c#4 d#4", BS: "e4@11 d#4@2 e4@3", BT: "[e4@6 f#4 e4]/2", BU: "[e4@24 g#4@3 f#4@2 e4@3]/2", BV: "f#4",
BW: "e4!2", BX: "e4/5", BY: "a4", BZ: "g4!2", CA: "[c4,g4]", CB: "[f4 e4, g3]/2", CC: "f4@3 f4",
CD: "f4@3 e4@2 d4 ~@2 c4 ~@2 b3 ~ a3 ~@2", CE: "g3", CF: "~@13 a4 ~@2", CG: "g4 ~@2 f4 ~ e4 ~@2 d4 ~@2 c4 ~ b3 ~@2",
CH: "a3 ~@2 g4 ~ f4 ~@2 e4 ~@2 d4 ~ c4 ~@2", CI: "b3 ~@3", CJ: "~@4 b3 ~ b3 ~", CK: "b3 ~ b3 ~ b3 ~ b3 ~",
CL: "~@2 b3 ~ g#3 ~ b3 ~ e4 ~ b3 ~ g#3 ~ b3 ~", CM: "e3 ~@3", CN: "~@2 c4 ~ a3 ~ c4 ~ e4 ~ c4 ~ a3 ~ c4 ~",
CO: "~@2 e4 ~ c4 ~ e4 ~ g4 ~ e4 ~ c4 ~ e4 ~", CP: "g3 ~@3", CQ: "~@2 f#4 ~ d#4 ~ f#4 ~ b4 ~ f#4 ~ d#4 ~ f#4 ~",
CR: "a3 ~@3", CS: "~@2 c#4 ~ a3 ~ c#4 ~ e4 ~ c4 ~ a3 ~ c4 ~", CT: "~@2 b3 ~ g#3 ~ b3 ~ e4 ~ c4 ~ a3 ~ c4 ~",
CU: "~@2 e4 ~ c#4 ~ e4 ~ g4 ~ e4 ~ c#4 ~ e4 ~", CV: "~@2 f3 ~ d3 ~ f3 ~ a3 ~ f3 ~ d3 ~ d4 ~", CW: "g#3 ~@3",
CX: "~@2 e4 ~ c#4 ~ e4 ~ g4 ~ e4 ~ c#4 ~ g3 ~", CY: "c4 ~ d4 ~ e4 ~ d4 ~ c4 ~ d4 ~ c4 ~ b3 ~",
CZ: "a3 ~ b3 ~ c4 ~ d4 ~ e4 ~ f#4 ~ g#4 ~ a4 ~", DA: "g#4 ~ e4 ~ f#4 ~ g#4 ~ a4 ~ b4 ~ a4 ~ g4 ~",
DB: "f#4 ~ f#4 ~ g4 ~ a4 ~ b4 ~ b3 ~ c#4 ~ d#4 ~", DC: "e4@4 e4 ~ f#4 ~", DD: "g4 ~ g4 ~", DE: "a4 ~ f4 ~ e4 ~ d4 ~",
DF: "c#4 ~", DG: "[~@3 e4@2 d4@2 d4@2 c4@2 c5]/3", DH: "a#3 ~ c4 ~ d4 ~ c4 ~ a#3 ~ d4 ~ c4 ~ a#3 ~",
DI: "a3 ~ a#3 ~ c4 ~ d4 ~ e4 ~ f4 ~ g4 ~ a4 ~", DJ: "b3@2 b3 c#4", DK: "d4 ~ d4 ~",
DL: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
DM: "[b3,d4] ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ e4 ~ d4 ~", DN: "[e3,c4]@4 [e3,c4] ~ [e3,c4] ~", DO: "[e3,b3] ~ [e3,b3] ~",
DP: "[e3,b3]@4 [e3,b3] ~ [e3,b3] ~", DQ: "[e3,c4] ~ [e3,c4] ~", DR: "[e3,d4] ~ [e3,c4] ~",
DS: "[e3,b3]@4 [e3,a3] ~ [e3,b3] ~", DT: "[e3,c4] ~", DU: "d4@4 d4 ~ d4 ~", DV: "c4 ~@3",
DW: "d4 ~ b3 ~ c#4 ~ d4 ~ e4 ~ d4 ~ c#4 ~ b3 ~", DX: "a3/2", DY: "[c#4 c#4@4 d4@2 e4]/4", DZ: "f#4 e4", EA: "f#4 g#4",
EB: "[a3,a4]@4 [a3,a4] ~ [a3,a4] ~", EC: "[a3,a4] ~", ED: "[b3,d4]@4 [a3,c4] ~ [b3,d4] ~", EE: "[c4,e4] ~@3",
EF: "a4@4 a4 ~ a4 ~", EG: "g#4 ~ g#4 ~", EH: "[e4,g#4]@4 [e4,g#4] ~ [e4,g#4] ~", EI: "[e4,a4] ~ [e4,a4] ~",
EJ: "[e3,a3]@4 [e3,a3] ~ [e3,a3] ~", EK: "b4@4 b4 ~ b4 ~", EL: "c4@4 c4 ~ c4 ~", EM: "d4 ~ c4 ~",
EN: "[b3,d4]@4 [b3,d4] ~ [b3,d4] ~", EO: "[a3,c4] ~@3", EP: "[a3@3 ~]/3",
})).s("gm_viola").gain(0.2)
// other · pizzicato strings
const pizzicato_strings_3 = note("<~@260 A B C D ~@4 E F ~@2 E G H ~@3>".pickRestart({
A: "g3@2 g3!2", B: "g3 ~", C: "~ c4", D: "~ b4", E: "e3@2 e3!2", F: "e3 ~", G: "e3@2 f#3 g#3", H: "a3 ~",
})).s("gm_pizzicato_strings").gain(0.15)
// other · viola
const viola_2 = note(`<
~@2 A B C D A D E F G H I J A K L M G H I J A K L M G N G N O P Q R S T U V G N W X S T U V G N W X Y Z@2 Y AA AB AC
AB AD AE AF AG AH AI@2 AJ AD AE AF AG AH AI@2 AJ AK AL@2 AK AM AN AO AP@2 AQ AR AS AK AT AL AU AV AQ AR AS AK AT AW AX
~@2 AY AZ@2 BA@2 BB BC BD BE BF@3 BG BH BI BJ BK@4 BL@2 BM BN BM BN BO BP BQ BR BM BN BM BN BO BS BT BU BV BW BV BW BV
~ BX BY BZ CA CB ~@49 CC CD CE F ~@6 CF CG CH CI CJ CK CL CM CN CK CL CM X CO CP ~ CQ@2 BA@2 BB BC BD BE BF@3 BG CR BD
CS BD CS BD CT CU CV CW CX CY CZ DA CX CY CZ DA ~@4 DB DC ~@4 U V DD DE ~@2 DF DG ~@3 DH@3
>`.pickRestart({
A: "c4@4 c4 ~ c4 ~", B: "b3 ~ b3 ~", C: "[e3,b3]@4 [e3,b3] ~ [e3,b3] ~", D: "c4 ~ c4 ~", E: "b3@4 a3 ~ b3 ~",
F: "c4 ~", G: "e4@4 e4 ~ e4 ~", H: "d#4 ~ d#4 ~", I: "d4@4 d4 ~ d4 ~", J: "c#4 ~ c4 ~", K: "b3 ~ c4 ~",
L: "b3@4 [e3,b3] ~ [e3,b3] ~", M: "[e3,c4] ~", N: "e4 ~ e4 ~", O: "e4@4 e4 ~ f#4 ~", P: "g4 ~ g4 ~",
Q: "g4@4 g4 ~ g4 ~", R: "g4 ~", S: "g4@4 g4 ~ a4 ~", T: "b4 ~ b4 ~", U: "f#4@4 f#4 ~ g#4 ~", V: "a4 ~ a4 ~",
W: "e4@4 f#4 ~ g#4 ~", X: "a4 ~", Y: "~ a3 c4 e3", Z: "~ g#3 b3 e3", AA: "~ a3 c4 c3", AB: "~ g3 c4 c3",
AC: "~ b3 d4 g3", AD: "~ c4 e4 e3", AE: "~ f#4 b4 b3", AF: "~ b3 d4 d3", AG: "~ e4 a4 a3", AH: "~ a3 e4 e3",
AI: "~ b3 e4 e3", AJ: "~ c4 e4 a3", AK: "~@3 a3 ~ c4 ~@2 e3@8", AL: "~@3 g#3 ~ b3 ~@2 e3@8",
AM: "~@3 a3 ~ c4 ~@2 c3@8", AN: "~@3 g3 ~ c4 ~@2 [c3,g3]@8", AO: "~@3 b3 ~ d4 ~@2 g3@8", AP: "~@3 g3 ~ c4 ~@2 c3@8",
AQ: "~@3 b3 ~ b4 ~@2 b3@8", AR: "~@3 b3 ~ d4 ~@2 d3@8", AS: "~@3 a3 ~ a4 ~@2 a3@8", AT: "~@3 g#3 ~ b3 ~@2 [e3,a3]@8",
AU: "~@3 a3 ~ a4 ~@2 a3@3 a3@2 b3@3", AV: "c4@3 g4@2 c5@3 c3@4 ~@4", AW: "~@3 g#3 ~ e4 ~@2 e3@3 e3@2 e4@3",
AX: "a3 ~", AY: "b3 d4@11 c#4@2 b3@2, ~ c#4 ~@14", AZ: "[c#3,a3]/2", BA: "[[d3,b3]@3 [c#3,a3]]/2", BB: "g#3 a3",
BC: "f#3 g3", BD: "a3 b3", BE: "b3@2 a3 [g3,g4]", BF: "[g4@2 g4@7 [a3,g4] [a3,f#4]@2]/3", BG: "[a3,f#4] a3",
BH: "a3 b3 c#4!2", BI: "g#3 b3!2 a3", BJ: "g#3 [b3,g#4]", BK: "[a4 g#4, b3]/2", BL: "[a4@2 g#4 g#3, b3@3 ~]/2",
BM: "[e3,a#3]", BN: "[e3,b3]", BO: "[e3,a#3] g3", BP: "f#3!2 d3 f#3", BQ: "c#3 e3!2 d3",
BR: "c#3@4 a3@4 b3@3 c4@2 c#4@3", BS: "a3!2 f3 a3", BT: "e3 g3!2 f3", BU: "e3 c4", BV: "d4", BW: "[c4,g4]",
BX: "~@13 b3 ~@2", BY: "a3 ~@2 g3 ~ f3 ~@2 e3 ~@2 d3 ~ c4 ~@2", BZ: "b3 ~@2 a3 ~ g3 ~@2 f3 ~@2 e3 ~ d3 ~@2",
CA: "c3@2 ~@2 e3 ~ e3 ~", CB: "e3 ~ e3 ~@5", CC: "c#4 ~ c#4 ~ d4 ~ e4 ~ a3 ~ a3 ~ b3 ~ c#4 ~",
CD: "d4 ~ c4 ~ a#3 ~ a3 ~", CE: "b3 ~ b3 ~ c4 ~ d4 ~ g3 ~ g3 ~ a3 ~ b3 ~", CF: "d4@4 d4 ~ e4 ~",
CG: "g#4@4 g#4 ~ a4 ~", CH: "b4@4 b4 ~ c5 ~", CI: "d5@4 d5 ~ e5 ~", CJ: "f5@2 e5 d#5 e5 e4 f#4 g#4",
CK: "a4 ~ b4 ~ c5 ~ b4 ~ a4 ~ c5 ~ b4 ~ a4 ~", CL: "e4 ~ f#4 ~ g#4 ~ a4 ~ b4 ~ c5 ~ d5 ~ e5 ~",
CM: "d5 ~ b4 ~ c5 ~ d5 ~ e5 ~ d5 ~ c5 ~ b4 ~", CN: "c5 ~ b4 ~ c5 ~ d5 ~ e5 ~ e4 ~ f#4 ~ g#4 ~", CO: "b3@4 b3 ~ b3 ~",
CP: "a3 ~@3", CQ: "[c#3,e3]/2", CR: "a3 g3", CS: "a3@3 g3", CT: "e3", CU: "a3", CV: "g3", CW: "f3",
CX: "g3 ~ [g3,g4] ~", CY: "[c3,c4] ~", CZ: "g#4@4 f#4 ~ g#4 ~", DA: "a4 ~@3", DB: "e3@4 e3 ~ f#3 ~", DC: "e3 ~ e3 ~",
DD: "[e3,a3]@4 [e3,a3] ~ [e3,a3] ~", DE: "[e3,g#3] ~ [e3,a3] ~", DF: "[e3,e4]@4 [e3,e4] ~ [e3,e4] ~",
DG: "[e3,e4] ~@3", DH: "[[c4,e4]@3 ~]/3",
})).s("gm_viola").gain(0.2)
// chords · pizzicato strings
const pizzicato_strings_4 = note(`<
~@149 A B C D E F G H I J K L M N O P I J K L M N O Q R S T Q U V@2 W X ~@72 Y Z AA Y ~@2 AB AC AD AE ~@4 AF AG ~@2 AF
AG@2 ~@3
>`.pickRestart({
A: "a3@2 a3!2", B: "g#3!2", C: "[b3,g#4]@2 [b3,g#4]!2", D: "[c4,a4]!2", E: "g3@2 g3 [a3,a4]", F: "[c4,e4]!2",
G: "[b3,d4]@2 [b3,d4]!2", H: "[c4,e4] ~", I: "[c4,e4]@2 [c4,e4] [c4,f#4]", J: "[b3,f#4] [b3,f#4,b4]",
K: "[a3,d4]@2 [a3,d4] [b3,e4]", L: "[a3,e4] [a3,e4,a4]", M: "[c4,a4]@2 [c4,a4] a3", N: "g#3 ~ [c4,a4] a3",
O: "[b3,g#4]@2 a4 b4", P: "[c4,e4] ~@3", Q: "[c#4,e4] ~", R: "[c#4,e4]@2 [c#4,e4]!2", S: "[d4,f4] ~",
T: "[d4,f4]@2 [d4,f4]!2", U: "[c#4,e4]!3 ~", V: "[d4,f4]!3 ~", W: "~@2 [c#4,e4]!2", X: "~@2 [d4,f4] d4", Y: "~ a3",
Z: "~ e4", AA: "~ e3", AB: "d3@2 c3 d3", AC: "e3 ~", AD: "~ c3", AE: "~ b3", AF: "d3@2 d3!2", AG: "c3 ~",
})).s("gm_pizzicato_strings").gain(0.2)
// other · cello
const cello = note(`<
A@2 B C D E F G H I J K L M N O D P J K L M N O D P Q R S T Q U V W X Y Z T Q AA S T X Y Z T Q AA S T AB AC AD AB@2
AE@2 AF@2 AG@2 AB@2 AH AD AB AF AG@2 AB@2 AH AD AB AI AJ AK AI@2 AL@2 AM@2 AN@2 AO@2 AP AQ AR AM AN@2 AO@2 AP AQ P
~@47 AS AT AU ~@42 AV AW AX AY AZ BA BB BC BD BE BF@3 ~@2 BG BH BI BJ BK BL@2 BM N BN D M N O BO P D BP ~@19 BQ BR BS
BT BU BV BW BX BU BV BW BX ~@21 P ~@2
>`.pickRestart({
A: "a3/2", B: "[e2,a2]@4 [e2,a2] ~ [e2,a2] ~", C: "[e2,g#2] ~ [e2,g#2] ~", D: "e2@4 e2 ~ e2 ~",
E: "[e2,a2] ~ [e2,a2] ~", F: "[e2,a2]@4 [e2,a2] ~ [d2,a2] ~", G: "[e2,g2] ~ [e2,g2] ~",
H: "[d2,g2]@4 [c2,g2] ~ [d2,g2] ~", I: "e2 ~", J: "c3@4 c3 ~ c3 ~", K: "b2 ~ b2 ~", L: "b2@4 b2 ~ b2 ~",
M: "a2 ~ a2 ~", N: "a2@4 a2 ~ a2 ~", O: "g#2 ~ a2 ~", P: "a2 ~", Q: "~@4 a2 ~ a2 ~", R: "g#2 ~@3 g#3 ~@3",
S: "~@4 e2 ~ e2 ~", T: "a2 ~@3 a3 ~@3", U: "g2 ~@3 g3 ~@3", V: "~@4 g3 ~ g3 ~", W: "c3 ~@3 c4 ~@3",
X: "~@4 c3 ~ c3 ~", Y: "b2 ~@3 b3 ~@3", Z: "~@4 e3 ~ e3 ~", AA: "g#2 ~@3 a2 ~@3", AB: "a2@2 ~ a3", AC: "g#2@2 ~ g#3",
AD: "e2@2 ~ e3", AE: "g2@2 ~ g3", AF: "c3@2 ~ c4", AG: "b2@2 ~ b3", AH: "g#2@2 ~ a2", AI: "a2@4 a2 ~ a3 ~",
AJ: "g#2@4 g#2 ~ g#3 ~", AK: "e2@4 e2 ~ e3 ~", AL: "g2@2 g2 g3", AM: "c3@2 c3 c4", AN: "b2@2 b2 b3", AO: "a2@2 a2 a3",
AP: "g#2@2 a2 a3", AQ: "e2@2 e2 e3", AR: "a2@2 a2 b2", AS: "~@13 c4 ~@2", AT: "b3 ~@2 a3 ~ g3 ~@2 f3 ~@2 e3 ~ d3 ~@2",
AU: "c3 ~@2 b2 ~ a2 ~@2 g#2@2 ~@2 g#2@2 ~@2", AV: "a3@4 a3 ~ b3 ~", AW: "c4 ~ c4 ~", AX: "b3@4 b3 ~ c#4 ~",
AY: "d4 ~ c4 ~ b3 ~ a3 ~", AZ: "g3 ~ a3 ~ b3 ~ a3 ~ g3 ~ a3 ~ g3 ~ f#3 ~",
BA: "e3 ~ f#3 ~ g3 ~ a3 ~ b3 ~ c#4 ~ d#4 ~ e4 ~", BB: "e4 ~ a3 ~ b3 ~ c#4 ~ d4 ~ b3 ~ e4 ~ d4 ~",
BC: "c4 ~ b3 ~ c4 ~ d4 ~ e4 ~ e3 ~ f#3 ~ g#3 ~", BD: "a3 ~ g3 ~ f#3 ~ e3 ~",
BE: "f#3 ~ f#3 ~ g3 ~ a3 ~ d3 ~ d3 ~ e3 ~ f#3 ~", BF: "[g3 ~ f3 ~ e3 ~ d3@4 c3@4 g3@4 c3@4 c4@2]/3",
BG: "d4@4 d4 ~ e4 ~", BH: "f4 ~ f4 ~", BI: "f3 ~ e3 ~ g3 ~ f3 ~ e3 ~ g3 ~ f3 ~ e3 ~",
BJ: "d3 ~ e3 ~ f3 ~ g3 ~ a3 ~ b3 ~ c#4 ~ d4 ~", BK: "d4 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
BL: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", BM: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ c3 ~ b2 ~", BN: "g#2 ~ g#2 ~",
BO: "e2@4 e3 ~ e3 ~", BP: "a2 ~@3", BQ: "a3", BR: "f3", BS: "e3", BT: "d3", BU: "g2 ~ g3 ~", BV: "c3 ~",
BW: "[e3,b3]@4 [e3,b3] ~ [e3,b3] ~", BX: "[a2,a3] ~@3",
})).s("gm_cello").gain(0.23)
// other · pizzicato strings
const pizzicato_strings_5 = note(`<
~@100 A B@12 C D E@7 F G F G F G E B F G F G H I J K@6 ~@6 L M L M N O P Q R S T U L M A V R S T U L M A V W V W V X@3
Y@3 ~@40 A B@18 ~@12 Z AA@2 AB@2 AC P Q AD AE AF AB@2 AG A V ~@2 A V@2 ~@3
>`.pickRestart({
A: "e2@2 f#2 g#2", B: "a2@2 a3!2", C: "f#2 g#2 a2!2", D: "b2@2 b3!2", E: "e3@2 e4!2", F: "c#3@2 c#4!2",
G: "d3@2 d4!2", H: "c#3@2 c3!2", I: "f2@2 f3!2", J: "g2@2 g3!2", K: "c3@2 c4!2", L: "e2@2 e2!2", M: "e2!2",
// … 9 more lines
More by Ludwig van Beethoven
5th SymphonyC minor · 160 bpmFur EliseA minor · 105 bpm12 Variations on 'Menuet a la Vigano' WoO 68D major · 120 bpmAir from 'little Russia' Op.107 No.3B♭ major · 120 bpmChristus am Ölberge Op.85C major · 156 bpmCoriolan Op.62E♭ major · 150 bpmDie Ruinen von Athen Op.113E major · 84 bpmDuett mit zwei obligaten AugengläsernE♭ major · 71 bpm
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.