0:00/0:00
// Trumpet Concerto — Johann Nepomuk Hummel
// 116 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "Trumpet - Hummel" named as a brass, played on trumpet (its pizzicato strings patch is not one)
// note: Full arrangement: all 132 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · trumpet · "Trumpet - Hummel"
const trumpet = note("<~@33 A B ~@51 C D E F G H I J K L M N O P ~@20 Q ~ R S T ~@7>".pickRestart({
A: "~@21 [e3,b3,e4,g4]@2 ~", B: "[b2,b3,d#4,f#4]@3 ~@6 [e3,b3,e4,g4]@3 [b2,b3,d#4,f#4]@2 ~@10",
C: "~@4 e3@3 g#3@2 ~ e3@3 g#3@2 ~ f#3@2 ~ a3@3 f#3@2",
D: "~ a3@2 ~ g#3@3 e3@2 ~ g#3@2 ~ e3@3 d#3@2 ~ [b2,b3]@3 d#3@2", // B
E: "~ [b2,b3]@2 ~ [e3,e4]@3 [d#3,d#4]@2 ~ [c#3,c#4]@2 ~ [b2,b3]@3 [a2,a3]@2 ~ [g#2,g#3]@2 ~ [f#2,f#3]@2", // B E D# C# B A G# F#
F: "~ [e2,e3]@2 ~ [b2,b3]@3 g#3@2 ~ a3@2 ~ g#3@3 f#3@2 ~ b3@2 ~ a3@2", // E B
G: "~ [e3,e4]@2 ~ [d#3,d#4]@3 [b2,b3]@2 ~ g#3@2 ~ [e3,e4]@3 [d#3,d#4]@2 ~ [b2,b3]@2 ~ g#3@2", // E D# B E D# B
H: "~ [e3,e4]@2 ~ [c#3,c#4]@2 ~ [e3,e4]@3 [f#3,f#4]@2 ~ [f#2,f#3]@3 [b2,b3]@2 ~ [b3,b4]@2 ~ [f#3,f#4]@2", // E C# E F# B F#
I: "~ [b3,b4]@2 ~ [d3,d4]@2 ~ [f#3,f#4]@3 [b2,b3]@2 ~ [d3,d4]@2 ~ [c#3,c#4]@2 ~ [f3,f4]@2 ~ [a2,a3]@2", // B D F# B D C# F A
J: "~ [f#3,f#4]@2 ~ [d3,d4]@2 ~ [f#3,f#4]@3 [b2,b3]@2 ~ [d3,d4]@2 ~ [c#3,c#4]@3 [f3,f4]@2 ~ [a2,a3]@2", // F# D F# B D C# F A
K: "~ [c#3,c#4]@2 ~ [f#3,f#4]@2 ~ [e3,e4]@3 [d#3,d#4]@2 ~ [c#3,c#4]@2 ~ [b2,b3]@3 ~@5", // C# F# E D# C# B
L: "~ [b2,b3]@3 [d3,d4]@2 ~ [f#3,f#4]@3 b3@2 ~ a3@2 ~ g#3@3 g#3 f#3 ~ e3@2", // B D F#
M: "~ [b2,b3]@3 [d#3,d#4]@2 ~ [f#3,f#4]@2 ~ b3@2 ~ a3@2 ~ g#3@3 [e3,e4] [f#3,f#4] ~ [g#3,g#4]@2", // B D# F# E F# G#
N: "~ e3@3 [c#4,e4]@2 ~ [b3,d#4]@2 ~ [a3,c#4]@3 [g#3,b3]@2 ~ [f#3,a3]@3 [e3,g#3]@2 ~ [d#3,f#3]@2", // C#m B A G#m F#m E D#m
O: "~ [c#3,e3]@3 d#3@2 ~ [c#3,c#4]@2 ~ [b2,b3]@3 [a2,a3]@2 ~ [g#2,g#3]@2 ~ [e2,e3]@3 c#4@2", // C#m C# B A G# E
P: "~ a3@3 f#3@2 ~ a3@2 ~ b3@3 [b2,b3]@2 ~ [e3,b3]@2 ~@6", Q: "~@4 b3@3 b3@2 ~ b2@2 ~ b2@3 e3@2 ~@6",
R: "~@4 b3@2 ~ b3@3 b2@2 ~ b2@2 ~ e3@2 ~@6", S: "~@4 b3@2 ~ b3@3 b2@2 ~ b2@2 ~ e3@3 ~@5",
T: "~@4 b3@2 ~ b3@3 b2@2 ~ b2@2 ~@9",
})).s("gm_trumpet").gain(0.25)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@2 A ~ B C D E F G H I J I K L M N O P Q R S T U V W X Y Z AA AB AC ~@3 AD AE AF C D E AG AH AI I AJ I AK AL AM AN@2
AO@2 AP@2 AQ@2 AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI@2 BJ BK BL BM BN BO BP@2 ~@13 BQ BR BS BT BU BV
BW BV BX BY BZ CA ~@2 CB CC CD CE CF CG CH CI CH CJ@2 CK CL CM CL CN CO@3
>`.pickRestart({
A: "~ g#4 ~ f#4 e4@2 ~@2", B: "~ a4 ~ g#4 f#4@2 ~@2", C: "a4@11 ~ g#4@11 ~", D: "a4@11 ~ g#4@8 ~@4",
E: "g#4 ~ b4 ~ e5 ~ g#5 ~", F: "g#4@2 ~ g#4@3 f#4@2 ~ f#4@2 ~ g#4@6 ~@3 e4 f#4 ~",
G: "g#4@2 ~ g#4 a4 ~ b4@2 ~ c#5 d#5 ~ e5@3 e5 f#5 ~ g#5@3 ~@3",
H: "g#4@2 ~ g#4@3 [b3,f#4]@2 ~ [b3,f#4]@2 ~ e4@3 [e4,e5]@5 ~ e5@3", // B5 E
I: "f#5 [g#5,a5] ~ a5@6 g#5 f#5 ~ f#5 e5 ~ e5@6 d#5 c#5 ~", // Amaj7
J: "b4 c#5 ~ d#5 e5 ~ f#5 g#5 ~ f#5 g#5 ~ e5@3 [e4,e5]@6 e5@3", // E
K: "b4@2 c#5 d#5@2 e5 g#5 f#5 e5 f#5@2 g#5 e5@3 b5@2 b5 b5@2 ~ [b4,a5]@3", // B7
L: "[b4,g#5]@2 ~ g#5@2 g#5 g#5@3 [b4,f#5]@2 ~ e5@6 e4@4 e4 ~", M: "e4 ~ b4 f#4", N: "d#4 ~@3", O: "a#4@2 b4 ~@5",
P: "c#5 g#4 e4 ~", Q: "~@4 b4@2 a#4 ~", R: "f#4@4 g#4 ~ f#4@2 ~@4 f#4@4 g#4 ~ f#4@3 ~@3",
S: "f#4@2 ~ f#4@3 f#4@2 ~ f#4@3 b4@6 d#5@3 f#4@2 ~", T: "f#4@2 ~@4 f#4@2 ~ f#4@2 ~ f#4@2 ~ f#4@2 ~@4 f#4@2 ~",
U: "a#4@2 ~ a#4@3 ~@3 a#4@2 ~ b4@3 f#4@2 ~ b4@6", V: "~ g#4 e5@2 ~ a#4 f#5@2",
W: "d#5@2 ~ d#5@3 c#5@2 ~ c#5@2 ~ d#5@3 f#4@2 ~ b4@6", X: "g#4@11 ~ a#4@11 ~",
Y: "b4@2 ~ c#5@2 ~ b4@3 a#4@2 ~ b4@3 f#4@3 g#4@3 a#4@3",
Z: "b4@2 ~ c#5@2 ~ b4@3 a#4@2 ~ b4@2 ~ [b4,b5]@3 ~@4 b3 [c#4,d#4]", // B C#sus2
AA: "e4@2 ~ [b4,b5]@2 ~@5 g#4 [e4,f#4] d#4@2 ~ [b4,b5]@3 ~@4 b3 [c#4,d#4]", // B Esus2 B C#sus2
AB: "e4@2 ~ [b4,b5]@2 ~@5 g#4 [e4,f#4] d#4@2 ~@2 b3 [c#4,d#4] e4@2 ~@2 g#4 [e4,f#4]", // B Esus2 C#sus2 Esus2
AC: "d#4@3 ~ b3 [c#4,d#4] e4@3 ~ g#4 [e4,f#4] d#4@3 ~@9", AD: "g#4@3 g#4@2 ~ f#4@2 ~ f#4@3 e4@6 ~@6",
AE: "~@21 g#4@2 ~", AF: "a4@2 ~ a4@3 [b3,g#4]@2 ~ [b3,g#4]@2 ~ [a3,f#4]@6 ~@6",
AG: "g#4@3 g#4@3 f#4@3 f#4@3 g#4@6 ~@3 e4 f#4 ~", AH: "g#4@2 ~ g#4 a4 ~ b4@3 c#5 d#5 ~ e5@3 e5 f#5 ~ g#5@3 ~@3",
AI: "g#4@2 ~ g#4@2 ~ [b3,f#4]@3 [b3,f#4]@2 ~ e4@2 ~ [e4,e5]@5 ~ e5@3", // B5 E
AJ: "b4@2 c#5 d#5@2 e5 f#5@2 g#5 f#5@2 g#5 e5@2 ~ [e4,e5]@6 e5@3", // E
AK: "b4@2 c#5 d#5@2 e5 g#5 f#5 e5 f#5@2 g#5 e5@3 b5@2 b5 b5@2 ~ [b4,a5]@2 ~", // B7
AL: "[b4,g#5]@3 g#5@2 g#5 g#5@2 ~ [b4,f#5]@3 e5@6 e4@4 e4 ~", AM: "e4@6 ~@9 g4@3 g4@3 ~ g4@2",
AN: "[~@4 g4@3 g4@3 g4@3 ~@4 a4@3 a4@3 a4@3 ~@4 a4@3 a4@3 a4@3 ~@3 a4@3 a4@3]/2",
AO: "[~ a4@3 ~@3 a4@3 a4@3 a4@3 ~@4 g4@3 g4@3 g4@3 g4@3 ~ g4@3 f#4@3 e4@3 d4@3 g4@3]/2",
AP: "[~ g4@3 g4@3 ~@3 g4@3 g4@3 ~ g4@3 ~@3 g4@3 g4@3 g4@3 ~@4 f#4@3 f#4@3 f#4@3 ~@3]/2",
AQ: "[d5@3 ~@4 c5@3 ~@3 b4@3 ~@4 a4@3 g4@3 b4 ~ c5 d5@3 e5 ~ f#5 ~ g5@3 g5 a5 ~ b5 ~ g5 d5 ~ b4]/2",
AR: "c5@3 ~ a5 g5 ~ g5 f#5 ~ f#5 ~ e5!2 ~ d5!2 ~ c5!2 ~ b4 ~ b4", AS: "a4 ~ g4@3 b4@3 ~@3 d5@3 ~@4 b5@3 ~@3",
AT: "b5@3 ~@4 c6@3 ~@3 a5@3 ~@3 f#5@3 ~@2", AU: "~@2 c5@3 b4@3 [b4,b5]@6 ~ g5 e5 ~ d#5@3 e5@3",
AV: "g5@3 a#4@3 b4@3 ~ b4@3 ~@3 a4@3 ~@3 g4@2", AW: "~@5 a#4@3 b4@3 [b4,b5]@6 ~ g5 e5 ~ d#5!2 ~",
AX: "e5 ~ e5 g5 ~ g5 a#4 ~ a#4 ~ b4@3 b4@3 ~@3 a4@3 ~@2", AY: "~@2 g#4@3 ~@3 g4@3 f#4@3 b3@3 ~ d#4@3 f#4@3",
AZ: "b4@3 c5@3 b4@3 d#5@3 ~ e5@3 g4@3 g4@3 g4@2", BA: "~@5 g4@3 g4@3 g4@3 ~@3 a4@3 ~ a4@3",
BB: "a4@3 ~@3 a4@3 a4@3 ~ a4@3 ~@3 a4@3 a4@2", BC: "~ a4@3 ~@4 a4@3 a4@3 a4@3 ~@3 g#4@3 ~",
BD: "g#4@3 g#4@3 ~@3 g#4@3 g#4@3 ~ g#4@3 ~@3 a4@2", BE: "~@4 b4@3 ~@4 c5@3 ~@3 d#5@3 ~@4",
BF: "e5@3 ~@3 a4@3 ~@3 g4@3 ~@4 b4@3 ~@2", BG: "~ e5@3 e5@3 e5@3 ~@4 a#4@3 a#4@3 a#4@3 b4",
BH: "~ b3 ~ c#4 d#4 ~ e4 f#4 ~ g4 ~ a4 b4@3 [b4,a5]@3 ~ [b4,g5]@3 [b4,f#5]@2", // B7 Em B5
BI: "[~ b3@3 c#4 ~ d#4 e4 ~ f#4 ~ g4 a4 ~ b4@3 [b4,g5]@3 [b4,f#5]@3 e5@3 ~ d#5@3 b4@3 ~@3 b4@3 ~@3 b4@3 ~@3]/2", // Em B5
BJ: "~ b4@3 ~@3 b4@3 ~@4 b4@3 ~@3 b4@3 ~", BK: "~@2 b4@3 ~ b4@3 ~@15", BL: "~@10 b3!3 ~ d#4!3 f#4!3 b4!3 d#4",
BM: "d#4!2 f#4!3 ~ b4!3 d#5!3 f#4!3 b4!3 d#5!3 f#5 ~ f#5", BN: "f#5 d#5!3 b4!3 f#4!3 d#4!3 c4!2 ~ c4 b3!3 a#3!3 b3",
BO: "b3!2 a#3!3 b3!2 ~ b3 a#3!3 b3!3 a#3!3 b3!3 a#3!3", BP: "[~ b3@9 a#3@3 b3@9 ~ a#3@3 b3@12 ~@10]/2",
BQ: "~@19 g#4@3 ~@2", BR: "~ b4@3 ~@3 e5@3 ~@3 g#5@3 ~@3 g#4@3 ~@2", BS: "~ b4@3 ~@3 e5@3 ~@3 g#5@3 ~@3 a4@3 ~@2",
BT: "~ d#5@3 ~@3 f#5@3 ~@3 a5@3 ~@3 a4@3 ~@2", BU: "~ d#5@3 ~@3 f#5@3 ~@3 a5@3 g#5@3 g#5 f#5 ~ d#5 b4",
BV: "~ g#5 e5 ~ d#5 b4 ~ g#5 e5 ~ d#5 b4 ~ g#5 e5 ~ d#5@3 ~@5", BW: "~@16 e4@3 g#5 e5 ~ d#5 b4",
BX: "~@19 b4@2 ~ b4@2", BY: "~ b4@2 ~@4 d5@3 d5@2 ~ d5@2 ~@4 c#5@2 ~ c#5@2",
BZ: "~ c#5@2 ~@4 c5@3 c5@2 ~ c5@2 ~@4 b4@2 ~ b4@2", CA: "~ b4@3 ~@3 a#4@3 a#4@2 ~ a#4@2 ~ b4@3 ~@5",
CB: "~@19 b4@3 ~@2", CC: "~ c5@3 ~@3 c#5@3 ~@3 d5@3 ~@3 d#5@3 ~@2", CD: "~ d#5@3 ~@3 e5@3 ~@3 f5@3 f#5@3 ~@5",
CE: "~ a#3@2 ~ b3@3 ~@6 a#3@2 ~ b3@2 ~@6", CF: "~ a#3@2 ~ b3@3 ~@9 b3@2 ~ c#4 d#4 ~ e4 f#4",
CG: "~ g#4 a4 ~ b4@3 ~@3 [f#4,d#5,b5]@3 ~@3 [e4,e5]@3 ~@5", // B E
CH: "~ b3@3 [f#4,g#4] g#4 f#4 [f#4,g#4] e4 f#4 g#4@2 ~ f#4@3 e4@7 b3", // F#sus2
CI: "~ e4 f#4 ~ g#4@3 g#4@2 ~ f#4@2 ~ f#4@3 e4@3 ~@5", CJ: "~ e4 f#4 ~ g#4@2 ~ g#4@3 f#4@2 ~ f#4@2 ~ e4@3 ~@5",
CK: "~ e4 f#4 ~ g#4@2 ~ g#4@3 f#4@2 ~ f#4@2 ~ e4@3 [e4,e5]@5", // E
CL: "~ e5@3 [f#5,g#5] a5 ~ [b4,a5]@6 g#5 f#5 ~ f#5 e5 ~ e5@5", // F#sus2 B7
CM: "~ d#5 c#5 ~ b4@2 c#5 d#5@2 e5 f#5@2 g#5 f#5@2 g#5 e5@3 [e4,e5]@5", // E
CN: "~ d#5 c#5 ~ b4@2 c#5 d#5@2 e5 g#5 f#5 e5 f#5@2 ~ g#5 e5@3 [b4,b5]@3 [b4,b5]", // B
CO: "[[b4,b5]@3 ~ [b4,a5]@3 ~ [b4,g#5]@4 ~ g#5@3 g#5 g#5@4 ~ [b4,f#5]@4 ~@2 [e4,e5]@11 ~ e4@10 e4@3 ~ e4@15 ~@3]/3", // B B7 E B5 E
})).s("gm_string_ensemble_1").gain(0.35)
// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@86 A B C D E F G@2 H I@2 J K L ~@32>".pickRestart({
A: "~@4 e4@6 g#4@3 e4@2 ~ d#4@6 b3@2", B: "~@4 e4@6 b3@2 ~ e4@3 f#4@6 b3@2",
C: "~ f#4@2 ~ [g#4,a4] a4 g#4 [g#4,a4] f#4 g#4 a4@2 ~ g#4@3 f#4@2 ~ e4@2 ~ d#4@2", // Amaj7
D: "~ e4@2 ~ f#4@3 b3@3 d#4 c#4 ~ b3@3 d#4@6 e4@2", E: "~ g#4@2 ~ f#4@6 b3@2 ~ g#4@3 f#4@6 b3@2",
F: "~ c#4 d#4 ~ e4@3 e4 d#4 ~ c#4@2 ~ f#4@3 b3@3 ~@5", G: "~@4 b4@6 d5@2 ~ b4@2 ~ c#5@6 f#5@2",
H: "~ c#5@2 ~ a4@2 ~ g#4@3 f#4@2 ~ a#4@2 ~ b4@3 b3@3 d#4 c#4",
I: "~ b3@3 [f#4,g#4] g#4 f#4 [f#4,g#4] e4 f#4 g#4@2 ~ f#4@2 ~ e4@6 b4@2", // F#sus2
J: "~ b3@3 [g#4,a4] a4 g#4 [g#4,a4] f#4 g#4 a4@3 g#4@2 ~ f#4@3 e4@2 ~ d#4@2", // Amaj7
K: "~ e4@3 b4@6 b3@3 d#5@2 ~ e5@2 ~ e4@3 e4@2", L: "~ f#4 g#4 ~ a4@3 a4 g#4 ~ f#4@3 b4@2 ~ e4@3 ~@5",
})).s("gm_string_ensemble_1").gain(0.2)
// other · string ensemble 1
const string_ensemble_1_2 = note(`<
~@2 A ~ B C D E F G H I J K L M ~@2 N O P Q@2 R S T U V@2 W ~@6 X Y Z C D E AA AB AC K J K AD AE AF AG@2 AH@2 AI@2
AJ@2 AK@2 AL AM AN AO AP AQ AR AS AT AU AV AW AX AY@2 AZ@2 BA BB ~@19 BC BD BE BF BG BH BI BJ BK BL BM BN ~@2 BO BP BQ
~@2 BR BS BT BU BV@2 BW BX BY BZ CA CB@2 ~
>`.pickRestart({
A: "~ e4 ~ d#4 e4@2 ~@2", B: "~ f#4 ~ f4 f#4@2 ~@2", C: "f#4@11 ~ e4@11 ~", D: "f#4@11 ~ e4@8 ~@4",
E: "e4 ~ g#4 ~ b4 ~ e5 ~", F: "e4@2 ~ e4@3 d#4@2 ~ d#4@2 ~ e4@6 ~@6",
G: "e4@2 ~ e4 f#4 ~ g#4@2 ~ a4 f#4 ~ g#4@3 g#4 a4 ~ b4@3 ~@3",
H: "e4@2 ~ e4@3 d#4@2 ~ d#4@2 ~ e4@3 [b3,g#4]@6 [b3,g#4]@3", I: "[b3,a4] [b3,a4]@2 [b3,a4] [b3,b4] [b3,b4]@2 [b3,b4]",
J: "[b3,f#4] [b3,f#4]@2 [b3,f#4] e4 [b3,g#4]@2 [b3,g#4]", K: "[b3,a4] [b3,a4]@2 [b3,a4] [b3,g#4] [b3,g#4]@2 [b3,g#4]",
L: "[b3,f#4]@3 [b3,f#4]@6 [b3,f#4]@3 e4@3 g#5@2 g#5 g#5@2 ~ [b4,f#5]@3", // B5
M: "[e4,e5]@2 ~ b4@2 b4 b4@3 [b3,a4]@2 ~ [b3,g#4]@6 ~@6", N: "e4@3 d#4 ~@8", O: "e4@5 ~ c4@5 ~ c#4@5 ~@7",
P: "~@4 d#4@2 c#4 ~", Q: "e4!4 d#4!4", R: "e4@2 ~ e4@3 ~@3 e4@2 ~ d#4@2 ~ d#4@2 ~@4 d#4@2 ~",
S: "e4@2 ~ e4@3 ~@3 e4@2 ~ d#4@3 f#4@2 ~ f#4@6", T: "~ e4 g#4@2 ~ f#4 c#5@2", U: "b4 b4@2 a#4 b4 ~@2 f#4",
V: "[e4@15 f4@3 f#4@9 g#4@2 ~ f#4@3 f#4@2 ~ f#4@6 f4@3 e4@3]/2", W: "d#4@2 ~ g#4@2 ~ f#4@3 e4@2 ~ d#4@2 ~ b4@3 ~@6",
X: "e4@3 e4@2 ~ b3@2 ~ b3@3 g#3@6 ~@6", Y: "~@21 f4@2 ~", Z: "f#4@2 ~ f#4@3 f4@2 ~ f4@2 ~ f#4@6 ~@6",
AA: "e4@2 ~ e4@2 ~ d#4@2 ~ d#4@2 ~ e4@6 ~@6", AB: "e4@2 ~ e4 f#4 ~ g#4@3 a4 f#4 ~ g#4@3 g#4 a4 ~ b4@3 ~@3",
AC: "e4@2 ~ e4@2 ~ d#4@3 d#4@2 ~ e4@3 [b3,g#4]@6 [b3,g#4]@3", // E
AD: "[b3,f#4]@3 [b3,f#4]@6 [b3,f#4]@3 e4@3 g#5@2 g#5 g#5@2 ~ [b4,f#5]@2 ~", // B5
AE: "[e4,e5]@3 b4@2 b4 b4@2 ~ [b3,a4]@3 [b3,g#4]@6 ~@6", AF: "~@15 e4@3 e4@3 ~ e4@2",
AG: "[~@4 e4@3 e4@3 e4@3 ~@4 d#4@3 d#4@3 d#4@3 ~@4 d#4@3 d#4@3 d#4@3 ~@3 f#4@3 f#4@3]/2",
AH: "[~ f#4@3 ~@3 f#4@3 f#4@3 f#4@3 ~@4 e4@3 e4@3 e4@3 e4@3 ~ g4@3 f#4@3 e4@3 d4@3 d4@3]/2",
AI: "[~ d4@3 d4@3 ~@3 d4@3 d4@3 ~ d#4@3 ~@3 e4@3 e4@3 e4@3 ~@4 d4@3 d4@3 d4@3 ~@3]/2",
AJ: "[g4@3 ~@4 a4@3 ~@3 g4@3 ~@4 f#4@3 g4@3 [b3,d4]@3 [b3,d4]@3 [b3,d4]@3 ~ [b3,d4]@3 [b3,d4]@3 [b3,d4]@3 [b3,d4]@3]/2", // Bm
AK: "[[c4,d4]@3 ~ [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 ~ [c4,d4]@3 [b3,d4]@3 g4@3 ~@3 b4@3 ~@4 d5@3 ~@3]/2", // Csus2 Bm
AL: "g5@3 ~@4 a5@3 ~@3 f#5@3 ~@3 c5@3 ~@2", AM: "~@2 f#4@3 g4@3 ~@16", AN: "~@10 d#4@3 ~@3 f#4@3 ~@3 e4@2",
AO: "~@5 e4@3 d#4@3 ~@13", AP: "~@13 d#4@3 ~@3 d#4@3 ~@2", AQ: "~@2 e4@3 ~@3 e4@3 d#4@3 b3@3 ~ d#4@3 f#4@3",
AR: "b4@3 d#4@3 e4@3 [b3,a4]@3 ~ [b3,g4]@3 e4@3 e4@3 e4@2", AS: "~@5 e4@3 e4@3 e4@3 ~@3 d#4@3 ~ d#4@3",
AT: "d#4@3 ~@3 d#4@3 e4@3 ~ e4@3 ~@3 f#4@3 f#4@2", AU: "~ f#4@3 ~@4 f#4@3 f#4@3 f#4@3 ~@3 f4@3 ~",
AV: "f4@3 f4@3 ~@3 f4@3 f4@3 ~ f4@3 ~@3 e4@2", AW: "~@4 g#4@3 ~@4 a4@3 ~@3 c5@3 ~@4",
AX: "b4@3 ~@3 d#4@3 ~@3 e4@3 ~@4 g#4@3 ~@2",
AY: "[~ a4@3 a4@3 a4@3 ~@4 g4@3 g4@3 g4@3 b3@3 ~@13 [b3,f#4]@3 ~ [b3,g4]@3 [b3,a4]@2]/2", // B5 Em B7
AZ: "[~@20 [b3,a4]@3 [b3,g4]@3 ~ [b3,f#4]@3 f#4@3 ~@3 f#4@3 ~@3 f#4@3 ~@3]/2", // B7 Em B5
BA: "~ f#4@3 ~@3 g4@3 ~@4 g4@3 ~@3 g4@3 ~", BB: "~@2 g4@3 ~ f#4@3 ~@15", BC: "~@19 e4@3 ~@2",
BD: "~ g#4@3 ~@3 g#4@3 ~@3 b4@3 ~@3 b3@3 ~@2", BE: "~ g#4@3 ~@3 g#4@3 ~@3 b4@3 ~@3 f#4@3 ~@2",
BF: "~ a4@3 ~@3 a4@3 ~@3 f#5@3 ~@3 f#4@3 ~@2", BG: "~ a4@3 ~@3 a4@3 ~@3 f#5@3 e5@3 g#4 e4 ~ d#4 b3",
BH: "~ g#4 e4 ~ d#4 b3 ~ g#4 e4 ~ d#4 b3 ~ g#4 e4 ~ d#4@2 ~ f#4@2 ~ g#4@2",
BI: "~ f#4@2 ~ g#4@3 f#4@2 ~ g#4@2 ~ f#4@3 e4@2 ~ g#4 e4 ~ d#4 b3",
BJ: "~ g#4 e4 ~ d#4 b3 ~ g#4 e4 ~ d#4 b3 ~ g#4 e4 ~ b3@3 a4@2 ~ g#4@2",
BK: "~ a4@2 ~ g#4@2 ~ a4@3 g#4@2 ~ a4@2 ~ g#4@2 ~ g#4@2 ~ g#4@2",
BL: "~ g#4@2 ~@4 f4@3 f4@2 ~ f4@2 ~@4 f#4@2 ~ f#4@2", BM: "~ f#4@2 ~@4 d#4@3 d#4@2 ~ d#4@2 ~@4 e4@2 ~ e4@2",
BN: "~ e4@3 ~@3 e4@3 e4@2 ~ e4@2 ~ e4@3 ~@5", BO: "~@19 f#4@3 ~@2", BP: "~ f#4@3 ~@3 g#4@3 ~@3 g#4@3 ~@3 a4@3 ~@2",
BQ: "~ c5@3 ~@3 b4@3 ~@3 b4@3 b4@3 ~@5", BR: "~@10 [b3,f#4,d#5]@3 ~@3 [b3,g#4,e5]@3 ~@5", BS: "~@16 e4@3 ~@5",
BT: "~ e4 d#4 ~ e4@3 e4@2 ~ b3@2 ~ b3@3 g#3@3 ~@5", BU: "~@4 d#4@11 ~ e4@3 ~@5",
BV: "~ e4 d#4 ~ e4@2 ~ e4@3 b3@2 ~ b3@2 ~ g#3@3 ~@5", BW: "~ e4 d#4 ~ e4@2 ~ e4@3 b3@2 ~ b3@2 ~ g#3@3 [b3,g#4]@5",
BX: "~ [b3,g#4]@3 [b3,a4]@6 [b3,a4]@3 [b3,a4]@3 [b3,g#4]@3 [b3,g#4]@5", // E B7 E
BY: "~ [b3,g#4]@3 [b3,f#4]@3 [b3,f#4]@6 [b3,f#4]@3 [b3,g#4]@3 [b3,g#4]@5", // E B5 E
BZ: "~ [b3,g#4]@3 [b3,a4]@3 [b3,a4]@6 [b3,a4]@3 [b3,g#4]@3 [b3,g#4]@5", // E B7 E
CA: "~ [b3,g#4]@3 [b3,f#4]@3 [b3,f#4]@6 [b3,f#4]@3 ~ e4@3 g#5@3 g#5", // E B5
CB: "[g#5@3 ~ [b4,f#5]@3 ~ [e4,e5]@4 ~ b4@3 b4 b4@4 ~ [b3,a4]@4 ~@2 [b3,g#4]@11 ~@9]/2", // B5 E B7 E
})).s("gm_string_ensemble_1").gain(0.25)
// other · string ensemble 1
const string_ensemble_1_3 = note(`<
~@2 A ~ B C D E F G H I J I K L M ~ N O P Q R S T U V@2 W X ~@8 Y C D E Z G AA I J I K L AB AC@2 AD@2 AE@2 AF@2 AG@2
AH@2 AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV@2 AW AX AY AZ BA ~@2 BB ~@14 BC BD BE BF BG BH BI BJ BK BL BM ~@2 BN BO
BP BQ BR BS BT BU BT BV@3 BW BX BY BZ CA@3
>`.pickRestart({
A: "~ b3 ~ a3 g#3@2 ~@2", B: "~ c#4 ~ b3 a3@2 ~@2",
C: "b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~",
D: "b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3 c#4 ~ b3@3 ~@3", E: "b3 ~ e4 ~ g#4 ~@3",
F: "b3@2 ~ b3@3 b3@2 ~ b3@2 ~ b3@6 ~@6", G: "e4 ~ e4 ~ e4 ~@3", H: "b3@2 ~ b3@3 a3@2 ~ a3@2 ~ g#3@3 e4@6 e4@3",
I: "[d#4,f#4] [d#4,f#4]@2 [d#4,f#4] e4 e4@2 e4", J: "[a3,d#4] [a3,d#4]@2 [a3,d#4] [g#3,b3] e4@2 e4",
K: "[a3,d#4] [a3,d#4]@2 [a3,d#4] [g#3,e4] ~@2 b3", L: "e4@3 ~@6 d#4@3 e4@6 e3@4 e3 ~", M: "e3 ~@3",
N: "~@3 a#3 b3@2 c4@2", O: "c#4@5 ~ d#4@5 ~ g#3@5 ~@7", P: "~@3 f#4@2 ~", Q: "c#4!4 b3!4", R: "a#3!4 b3!4",
S: "c#4@2 ~ c#4@3 ~@3 a#3@2 ~ b3@2 ~ b3@2 ~@4 b3@2 ~", T: "f#4@2 ~ f#4@3 ~@3 f#4@2 ~ f#4@3 ~@3 b3@6",
U: "~ b3 c#4@2 ~ c#4 e4@2", V: "[~@3 g#4@6 f#4@3 f#4@3 f#3@2 ~ b3@9 c4@3 c#4@17 ~]/2",
W: "b3@2 ~ e4@2 ~ d#4@3 c#4@2 ~ b3@8 ~ c#4@3", X: "b3@2 ~ e4@2 ~ d#4@3 c#4@2 ~ b3@2 ~ b4@3 ~@6",
Y: "c#4@2 ~ c#4@3 c#4@2 ~ c#4@2 ~ c#4@6 ~@6", Z: "b3@2 ~ b3@2 ~ b3@2 ~ b3@2 ~ b3@6 ~@6",
AA: "b3@2 ~ b3@2 ~ a3@3 a3@2 ~ g#3@3 e4@6 e4@3", AB: "e3@6 ~@9 b3@3 b3@3 ~ b3@2",
AC: "[~@4 b3@3 b3@3 b3@3 ~@4 c4@3 c4@3 c4@3 ~@4 c4@3 c4@3 c4@3 ~@3 b3@3 b3@3]/2",
AD: "[~ b3@3 ~@3 c4@3 b3@3 b3@3 ~@4 b3@3 b3@3 b3@3 b3@3 ~ [g3,g4]@3 [g3,g4]@3 [g3,g4]@3 ~@3 b3@3]/2", // G
AE: "[~ b3@3 b3@3 ~@3 b3@3 b3@3 ~ b3@3 ~@3 a3@3 a3@3 a3@3 ~@4 a3@3 a3@3 a3@3 ~@3]/2",
AF: "[b3@3 ~@4 e4@3 ~@3 d4@3 ~@4 c4@3 b3@3 b3@3 d3@3 b3@3 ~ g3@3 b3@3 d3@3 b3@3]/2",
AG: "[f#3@3 ~ a3@3 d3@3 a3@3 f#3@3 a3@3 d3@3 ~ a3@3 g3@3 [b3,d4]@3 [b3,d4]@3 [b3,d4]@3 ~ [b3,d4]@3 [b3,d4]@3 [b3,d4]@3]/2", // Bm
AH: "[[b3,d4]@3 [c4,d4]@3 ~ [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 ~ [a3,d4]@3 [a3,d4]@3 [g3,d4]@3 b4@6 ~ g4 e4 ~ d#4@3 e4@3]/2", // Bm Csus2 D5 G5
AI: "g4@3 a#3@3 b3@3 ~ b3@3 ~@3 b3@3 ~@3 b3@2", AJ: "~@5 g4@3 f#4@3 b4@6 ~ g4 e4 ~ d#4!2 ~",
AK: "e4 ~ e4 g4 ~ g4 a#3 ~ a#3 ~ b3@3 b3@3 ~@3 c4@3 ~@2", AL: "~@2 b3@3 ~@3 a#3@3 b3@3 b3@3 ~ d#4@3 f#4@3",
AM: "b4@3 f#4@3 g4@3 b3@3 ~ e4@3 b3@3 b3@3 b3@2", AN: "~@5 b3@3 b3@3 b3@3 ~@3 c4@3 ~ c4@3",
AO: "c4@3 ~@3 c4@3 c4@3 ~ c4@3 ~@3 b3@3 b3@2", AP: "~ b3@3 ~@4 c4@3 b3@3 b3@3 ~@3 b3@3 ~",
AQ: "b3@3 b3@3 ~@3 b3@3 b3@3 ~ b3@3 ~@3 c4@2", AR: "~@4 d4@3 ~@4 e4@3 ~@3 f#4@3 ~@4",
AS: "g4@3 ~@3 b3@3 ~@3 b3@3 ~@4 f4@3 ~@2", AT: "~ e4@3 e4@3 e4@3 ~@4 e4@3 e4@3 e4@3 ~", AU: "~@15 d#4@3 ~ e4@3 f#4@2",
AV: "[~@17 e4@3 d#4@3 e4@3 ~ b3@3 d#4@3 ~@3 d#4@3 ~@3 d#4@3 ~@3]/2", AW: "~ d#4@3 ~@3 e4@3 ~@4 e4@3 ~@3 e4@3 ~",
AX: "~@2 e4@3 ~ d#4@3 ~@15", AY: "~@20 b3!3 ~", AZ: "~@6 b3!3 d#4!3 f#3!3 b3!3 d#4!3 f#4 ~ f#4",
BA: "f#4 d#4!3 b3!3 f#3!3 d#3!3 ~@11", BB: "~@2 b3@19 ~@3", BC: "~ e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@3 ~@2",
BD: "~ e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 b3@3 ~@2", BE: "~ b3@3 ~@3 b3@3 ~@3 b3@3 ~@3 b3@3 ~@2",
BF: "~ b3@3 ~@3 b3@3 ~@3 b3@3 b3@2 ~ e4@2 ~ b3@2", BG: "~ e4@2 ~ b3@3 e4@2 ~ b3@2 ~ e4@3 b3@2 ~ b3@2 ~ e4@2",
BH: "~ b3@2 ~ e4@3 b3@2 ~ e4@2 ~ b3@3 e4@2 ~ e4@2 ~ b3@2", BI: "~ e4@2 ~ b3@2 ~ e4@3 b3@2 ~ e4@3 b3@2 ~ f#4@2 ~ e4@2",
BJ: "~ f#4@2 ~ e4@2 ~ f#4@3 e4@2 ~ f#4@2 ~ e4@2 ~ e4@2 ~ e4@2", BK: "~ e4@2 ~@4 b3@3 b3@2 ~ b3@2 ~@4 a3@2 ~ a3@2",
BL: "~ a3@2 ~@4 a3@3 a3@2 ~ a3@2 ~@4 g3@2 ~ g3@2", BM: "~ g3@3 ~@3 g3@3 g3@2 ~ g3@2 ~ g#3@3 ~@5",
BN: "~@19 d#4@3 ~@2", BO: "~ d#4@3 ~@3 e4@3 ~@3 f4@3 ~@3 f#4@3 ~@2", BP: "~ f#4@3 ~@3 g#4@3 ~@3 d4@3 d#4@3 ~@5",
BQ: "~ a#3@3 b3@3 ~@6 a#3@2 ~ b3@2 ~@6", BR: "~ a#3@2 ~ b3@3 ~@17",
// … 106 more lines
More by Johann Nepomuk Hummel
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.