0:00/0:00
// Auf der Reeperbahn nachts um halb eins — Hans Albers
// 190 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 169 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(190/4)
// 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.
// bass · tremolo strings · "TREMOLOSTR"
const bass = note(`<
~ A B C D E F G H I G J K L M I N J K O P Q D R Q D S T U@2 ~@6 I V W X V Y Z V AA AB AC AD AE V Y AF V Y AF D ~ AG ~
AH@2 ~@2 G E AI G AJ I D E AK AL AM X G E AI G AJ I D E AK G AA F G E AN AL E AO AP E AQ AL E AR AS R AT AL R AU AV ~
AW ~@6 G E AX AY E Z V Y AZ G BA BB BC AA Z BD BE Z BD BE BF ~ BG ~ BH ~@3 I G AA BI G E C V AM BJ AY E I G AA BI G E
C V BK BF BL BM BN BO BP
>`.pickRestart({
A: "~@4 g1 ~@3", B: "~@2 g#1 ~@5", C: "a2 ~@5 a2 ~", D: "~@4 a2 ~@3", E: "~@2 a2 ~@5", F: "d2 ~@5 a1 ~",
G: "~@4 d2 ~@3", H: "~@2 a1 ~@5", I: "d2 ~@5 a2 ~", J: "~@2 f#2 ~@5", K: "e2 ~@5 a2 ~", L: "~@4 a1 ~ b1 ~",
M: "c#2@2 ~@2 d2@2 ~@2 f#2 ~@3 a2@2 ~@2", N: "~@4 d3 ~@3", O: "~@4 a2 ~ b2 ~",
P: "c#3@2 ~@2 d2@2 ~@2 f#2 ~@3 a2@2 ~@2", Q: "e2 ~@5 e2 ~", R: "~@2 e2 ~@5", S: "~@4 a2 ~@3 a2 ~@3 f#2 ~@3",
T: "e2 ~@15", U: "[~@9 d2@16 ~@7]/2", V: "~@8 d2 ~@7", W: "~@4 d3 ~@11", X: "a2 ~@11 a2@2 ~@2", Y: "~@4 d2 ~@11",
Z: "d2 ~@11 d2 ~@3", AA: "~@4 a2 ~@11", AB: "d2@2 ~@10 f#2 ~@3", AC: "~@8 a2 ~@3 b2 ~@3",
AD: "a2 ~@3 g2 ~@3 f#2 ~@3 e2 ~@3", AE: "a2 ~@11 a2 ~@3", AF: "g2 ~@11 g2 ~@3", AG: "~@8 a1@3 ~@5",
AH: "[~@15 d2@3 ~@14]/2", AI: "d2@2 ~@10 a2 ~@3", AJ: "~@2 g2 ~@5", AK: "d2 ~@11 b2 ~@3", AL: "~@4 e2 ~@3",
AM: "~@4 b2 ~@11", AN: "d2 ~@5 f#2 ~", AO: "a1 ~ b1 ~ c#2 ~ d2 ~", AP: "f#2 ~@3 a2@2 ~@2 d2@2 ~@6",
AQ: "d3 ~@5 f#2 ~", AR: "a2 ~ b2 ~ c#3 ~ d2 ~", AS: "f#2 ~@3 a2@2 ~@2 e2@2 ~@6", AT: "a2 ~@5 e2 ~",
AU: "a2@2 ~@10 a2 ~@3", AV: "a2 ~@3 f#2 ~@3 e2 ~@7", AW: "~ d2@15", AX: "d2 ~@11 d3 ~@3", AY: "~@8 a2 ~@7",
AZ: "d2 ~@11 a2 ~@3", BA: "~@4 f#2 ~@11", BB: "a2 ~@3 b2 ~@3 a2 ~@3 g2 ~@3", BC: "f#2 ~@3 e2 ~@3 a2 ~@7",
BD: "~@8 g2 ~@7", BE: "~@4 g2 ~@11", BF: "a2 ~@7", BG: "a1@3 ~@13", BH: "~@7 d2@3 ~@6", BI: "d2 ~@5 g2 ~",
BJ: "e2@2 ~@10 b2 ~@3", BK: "~@4 b2 ~@3 b2 ~@3 a#2 ~@3", BL: "~@2 c#3@3 ~@11", BM: "~@7 d2@9",
BN: "~@4 a1@3 b2 ~@2 a#2 ~ a2@3 ~", BO: "~@2 a2 ~ a2@3 ~@2 a2 ~@2 d2 ~@3", BP: "~@3 d2 ~@12",
})).s("gm_tremolo_strings").gain(0.56)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A@2 B@2 C D@2 ~@2 E@2 F G@2 H E@2 F G@2 H I@6 J@2 ~@3 K@4 L@3 M@3 N@3 O@3 ~@3 P Q@2 R S@2 T@4 U V W X@2 Y Z AA@2 AB AC
AD@6 Y Z AA@2 AB AC AE AF@2 ~ AG AH@2 AI AJ@2 AG AH@2 AI AJ@2 ~@15 AK AL@2 AM AN AO@2 AP@4 ~@3 AQ AR AS@2 AT AU ~ AV@4
AW AX AY AZ@2 BA BB@2 BC BD BE BF@3 BG@3 BA BB@2 BC BD BH BI BJ BK BL BM BN
>`.pickRestart({
A: "[~@5 d4@7 [d5,b5] ~@3]/2", B: "[[d5,b5] ~@3 [d5,b5]@3 [c#5,a5]@4 [b4,g5]@4 [a4,f#5]@11 ~@6]/2", C: "~ [a4,e5]",
D: "[~@4 [e5,g5]@8 ~@3 [d5,f#5]@2 ~@15]/2", E: "[~@8 a4@4 d5@8 f#5@4 a5 ~@7]/2", F: "a5@3 f#5",
G: "[g5 ~@7 g5@10 ~@2 g5 ~@3 f#5@5 ~@3]/2", H: "e5 ~@3 d5@11 ~",
I: "[~@12 d6@11 ~ c#6@7 ~ c#6 ~@2 c#6@5 [f#4,b5]@3 ~ a5@3 g#4@24 ~@9 b5@3 c#6@5 b5@4 a5@3 ~, e4@43 e4@5 ~@24 a4@13 ~@11, g#4@24 a4@16 ~@7 g#5@22 ~@27]/6", // B5
J: "[g#4@21 ~@11]/2", K: "[~@9 a4@46 ~@9]/4", L: "[~@8 [f#4,d5]@10 [g4,e5]@5 [a4,f#5] ~@7 [a4,f#5]@11 [b4,g5]@5 ~]/3",
M: "[[a4,f#5] ~@7 [a4,f#5]@11 [g4,e5]@5 d5@10 ~ [e4,f#5] [f#4,a5]@4 [a4,d6]@4 [d5,f#6]@4, ~@3 f#4 ~@2]/3", // D C Esus2 F#m D5 D
N: "[[f#5,a6]@12 [g5,b6]@11 ~ [f#5,a6]@12 [e5,g6]@12]/3", // F#m G F#m Em
O: "[d5@4 b5@4 a5@3 e6 [d5,f#6]@4 [c#5,e6]@4 [b4,d6]@3 [c#5,e6]@17 ~@8, f#6@10 ~ g#5@11 ~@26]/3", // D C#m Bm C#m
P: "[g4,g5] ~@7 [a4,b5]@4 [b4,d6]@4", Q: "[[a4,c#6]@3 [g4,b5]@5 [f#4,a5]@19 ~@5]/2",
R: "[b4,b5] ~@7 [b4,b5] ~@3 [b4,b5]@4", S: "[[a4,a5]@2 [g4,g5]@2 [f#4,a5]@7 ~@5]/2", T: "[~@8 a3@22 e4@16 d4@17 ~]/4",
U: "~@12 [a5,c#6]@3 ~", V: "~@5 [b5,d6]@2 ~", W: "~@6 [a4,f#5]@3 ~@6 [a4,f#5]",
X: "[~@4 [a4,f#5]@4 [g4,e5]@4 [f#4,a4]@3 [a4,f#5]@12 ~@5]/2", Y: "[a4,f#5]@3 ~ [g4,a4]@4 [f#4,d5]@4 ~@3 [b4,e5]",
Z: "[c#5,f#5] ~@3 [d5,g5]@3 ~@5 [g5,b5] ~@3, ~@11 [f#5,a5]@2 ~@3", // F#5 G5 G F#m
AA: "[[f#5,a5]@11 ~@4 f#5@5 [d5,a5]@4 g5@4 b5@4, ~@15 d5 ~@8 c#5 ~@7]/2", // F#m D5
AB: "[c#5,e5]@7 ~ e5@4 [c#5,g5]@4, ~@8 c#5 ~@7", AC: "f#5@4 a5 ~@3 d5 ~@7, d5 ~@7",
AD: "[e5@4 [d5,f#5]@4 e5@4 g5@3 b5@4 ~ d6@3 c#6@4 b5@4 ~@13 c#6@6 ~@2 a5 b5@2 ~ d6@2 ~@5 a5 a5 ~@3 [f#5,a5] ~@2 [g4,e5]@2 ~@3 [f#4,a4]@3 [a4,f#5]@12 ~@5, d5 ~@7 b4@23 [c#5,a5]@19 ~@6 a5 ~@6 b5@2 ~@31]/6", // D F#m C F#m D F#m
AE: "d5@2 e5 ~ [f#5,a5]@2 a5 ~", AF: "[f#5@4 [e5,g5]@4 a4@2 ~ e5 ~@4 d5@2 ~@14, ~@15 f#5@2 ~@15]/2",
AG: "a4 d5@2 f#5", AH: "[a5 ~@7 a5@12 f#5@4 g5 ~@7]/2", AI: "g5@10 ~@2 g5 ~@3", AJ: "[f#5@5 ~@3 e5 ~@3 d5@11 ~@9]/2",
AK: "[f#4,d5]@10 [g4,e5]@5 [a4,f#5]", AL: "[~@7 [a4,f#5]@11 [b4,g5]@5 ~ [a4,f#5] ~@7]/2", AM: "[a4,f#5]@11 [g4,e5]@5",
AN: "d5@10 ~ [e4,f#5] [f#4,a5]@4, f#4 ~", AO: "[[a4,d6]@4 [d5,f#6]@4 [f#5,a6]@12 [g5,b6]@11 ~]/2",
AP: "[[f#5,a6]@12 [e5,g6]@12 d5@4 b5@4 a5@3 e6 [d5,f#6]@4 [c#5,e6]@4 [b4,d6]@3 [c#5,e6]@17, ~@24 f#6@10 ~ g#5@11 ~@18]/4", // F#m Em D C#m Bm C#m
AQ: "~@8 [g4,g5] ~@7", AR: "[a4,b5]@4 [b4,d6]@4 [a4,c#6]@3 [g4,b5]@5", AS: "[[f#4,a5]@19 ~@5 [b4,b5] ~@7]/2",
AT: "[b4,b5] ~@3 [b4,b5]@4 [a4,a5]@4 [g4,g5]@4", AU: "[f#4,a5]@7 ~", AV: "[a3@22 e4@16 d4@17 ~@9]/4",
AW: "~@4 [a5,c#6]@3 ~@9", AX: "~ [b5,d6]@2 ~@4 [a4,f#5]", AY: "~@7 [a4,f#5] ~@4 [a4,f#5]@4",
AZ: "[[g4,e5]@4 [f#4,a4]@3 [a4,f#5]@12 ~@5 [a4,f#5]@3 ~ [g4,a4]@4]/2", // C F#m D Gsus2
BA: "[f#4,d5]@4 ~@3 [b4,e5] [c#5,f#5] ~@3 [d5,g5]@3 ~", // D E5 F#5 G5
BB: "[~@4 [g5,b5] ~@3 [f#5,a5]@11 ~@4 f#5@5 [d5,a5]@4, ~@3 [f#5,a5]@2 ~@18 d5 ~@8]/2", // G F#m D5 F#m
BC: "g5@4 b5@4 [c#5,e5]@7 ~, c#5 ~@15", BD: "e5@4 [c#5,g5]@4 f#5@4 a5 ~@3, c#5 ~@7 d5@2 ~@6",
BE: "d5 ~@7 e5@4 [d5,f#5]@4, ~@8 d5 ~@7", // D
BF: "[e5@4 g5@3 b5@4 ~ d6@3 c#6@4 b5@4 ~@13 c#6@6 ~ a5 ~ b5@2 ~, b4@23 [c#5,a5]@19 ~@6]/3", // F#m
BG: "[d6@2 ~@5 a5!2 ~@3 [f#5,a5] ~@2 [g4,e5]@2 ~@3 [f#4,a4]@3 [a4,f#5]@12 ~@5 [a4,f#5]@3 ~ [g4,a4]@4, a5 ~@6 b5@2 ~@39]/3", // F#m C F#m D Gsus2
BH: "d5 ~@7 d5@4 e5@2 ~@2", BI: "[f#5,a5]@4 ~@2 [f#5,a5]@3 ~@3 [d5,f#5]@3 ~", BJ: "~@2 [e5,g5]@5 ~ a4@3 ~@3 e5@2",
BK: "~@7 [d5,f#5]@9", BL: "~@7 [a4,d5] ~ [a4,e5] ~@2 [a4,f#5]@2 a4 ~",
BM: "~ [a4,d5] ~@2 [a4,e5]@2 a4 ~ a4!2 ~ [f#4,d5] ~@4", BN: "~ a4 ~ [f#4,d5] ~@12",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.6)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
A@2 B@2 C D@2 ~@3 E F G@2 H ~ E F G@2 H I@2 J K L@5 ~@6 M@3 N@2 O P@3 Q@3 R@3 S@3 T@3 ~@4 U V W X@2 Y Z AA@2 AB AC
AD@3 AE@3 Y Z AA@2 AB AC AF AG AH ~@2 AI@2 AJ AK@2 ~ AI@2 AJ AK@2 ~@15 AL ~ AM AN AO AP@2 AQ@2 AR AS AT@2 AU@3 ~ AV AW
AX ~@5 AY AZ BA BB@2 BC BD@2 BE BF BG BH@3 BI BJ@2 BC BD@2 BE BF BK BL BM@2 BN BO BP
>`.pickRestart({
A: "[~@5 d3@7 d4 ~@3]/2", B: "[d4 ~@3 d4@3 c#4@4 b3@4 a3@11 ~@6]/2", C: "~ a3", D: "[~@4 e4@8 ~@3 d4@2 ~@15]/2",
E: "~@8 d5 ~@7", F: "d5@3 a4", G: "[c#5 ~@7 c#5@10 ~@2 b4 ~@3 a4@5 ~@3]/2", H: "g4 ~@3 f#4@11 ~",
I: "[b2@6 ~ b2 ~@3 b2@4 c#3@4 d3@4 ~ e3@6 ~@2]/2", J: "e3@2 ~@2 e3@3 d3@4 c#3@4 ~", K: "b2@5 ~@3 b2 ~@3 b2@4",
L: "[c#3@3 d3@4 c#3@8 b2@4 ~ a2@11 b2@6 ~@3 b2 ~@3 b2@3 c#3@4 ~ d3@4 c#3@12 d3@12]/5",
M: "[~@8 d4@10 [g3,e4]@5 [a3,f#4] ~@7 f#4@11 [b3,g4]@5 ~]/3", N: "[[a3,f#4] ~@7 [a3,f#4]@11 [g3,e4]@5 [f#3,d4]@8]/2",
O: "~@4 a2@3 ~ [d3,d5]@4 f#5@4", P: "[a5@12 b5@11 ~ a5@12 g5@12]/3",
Q: "[~@4 b4@4 a4@4 [f#3,g#4]@11 ~ a4@13 ~@11, f#5@8 f#3@2 ~@13 e3@17 ~@8]/3", R: "[~ a3@23 f#3@24]/3",
S: "[g3 f#3]/3", T: "[b3 ~@7 b3 ~@3 b3@3 a3@4 ~ g3@4 f#3@14 ~@10]/3", U: "~@12 c#4@3 ~", V: "~@10 d4@3 ~@3",
W: "~@6 f#4@3 ~@6 f#4", X: "[~@4 f#4@4 e4@3 ~ a3@3 f#4@12 ~@5]/2", Y: "f#4@3 ~ a3@4 d4@4 ~@3 e4",
Z: "f#4 ~@3 g4@3 ~@5 b4 ~@3, ~@11 a4@2 ~@3", AA: "[a4@11 ~@4 f#4@5 a4@3 ~ g4@4 b4@4]/2", AB: "e4@7 ~ e4@4 g4@4",
AC: "f#4@4 a4 ~@3 d4@5 ~@3", AD: "[e4@4 f#4@3 ~ e4@11 ~ g4@3 f#4@4 e4@4 c#4@12 ~ c#4@3 ~]/3",
AE: "[~@4 a4 b4@2 ~ d5@2 ~@6 a4 ~@3 f#4@2 ~@2 e4@2 ~@2 a3@3 f#4@12 ~@5, ~@15 b4@2 ~@31]/3",
AF: "d4@2 e4 ~ f#4@2 a4 ~", AG: "f#4@4 e4@4 a3@2 ~ e4 ~@4", AH: "d4 ~@7", AI: "[d5 ~@7 d5@12 a4@4 c#5 ~@7]/2",
AJ: "c#5@10 ~@2 b4 ~@3", AK: "[a4@5 ~@3 g4 ~@3 f#4@11 ~@9]/2", AL: "~@10 e5@5 [a4,f#5]",
AM: "~@2 g5@5 ~ [a4,f#5] ~@7", AN: "f#5@11 e5@5", AO: "d5@8 ~@4 a3@3 ~", AP: "[d6@4 f#6@4 a6@12 b6@11 ~]/2",
AQ: "[a6@3 g6@3 ~ b5]/2", AR: "a5@2 g#5@5 ~", AS: "a5@13 ~@3", AT: "[~@9 a4@23]/2", AU: "[f#4 g4]/3",
AV: "~@8 b4 ~@7", AW: "b4 ~@3 b4@3 a4@4 ~ g4@4", AX: "f#4@7 ~", AY: "~@4 c#5@3 ~@9", AZ: "~@2 d5@3 ~@9 f#5@2",
BA: "~@7 f#5 ~@4 f#5@4", BB: "[e5@3 ~ a4@3 f#5@12 ~@9 a4@4]/2", BC: "d5@4 ~@3 e5 f#5 ~@3 g5@3 ~",
BD: "[~@4 b5 ~@3 a5@11 ~@4 f#5@5 a5@3 ~, ~@3 a5@2 ~@27]/2", BE: "g5@4 b5@4 e5@7 ~", BF: "e5@4 g5@4 f#5@4 a5 ~@3",
BG: "d5@5 ~@3 e5@4 f#5@3 ~", BH: "[e5@11 ~ g5@3 f#5@4 e5@4 c#5@12 ~ c#5@3 ~@4 a5 ~ b5@2 ~]/3",
BI: "d6@2 ~@6 a5 ~@3 f#5@2 ~@2, ~@7 b5@2 ~@7", BJ: "[e5@2 ~@2 a4@3 f#5@12 ~@9 a4@4]/2", BK: "d5@5 ~@3 d5@4 e4@2 ~@2",
BL: "f#4@3 ~@3 a4@3 ~@3 f#4@3 ~", BM: "[~@2 e4@5 ~ a3@4 ~@2 e4@5 ~@4 d4@9]/2",
BN: "~@7 [g3,f#4] ~@2 [g#3,g4] ~ [a3,a4]@3 ~, ~@4 d4@9 ~@3", // Gmaj7 G#maj7 A
BO: "~ [a3,f#4] ~ [a3,g4]@3 ~@3 [a3,e4]@2 [d4,f#4]@2 ~@3", BP: "~ [a3,e4] ~@2 [d4,f#4]@2 ~@10",
})).s("gm_string_ensemble_1").gain(0.26)
// other · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note(`<
~@36 A@3 ~@2 B C@3 D ~@11 E@5 ~@53 F G@2 H I J@2 K L M@2 ~@5 N@2 ~@3 O@4 ~@4 P ~@11 P ~@12
>`.pickRestart({
A: "[~@8 f#3@10 ~@13 a3@12 ~@5]/3", B: "~@3 f#3", C: "[a3@12 b3@11 ~ a3@16 g3@8]/3", D: "f#3@7 ~@9",
E: "[~@8 e3@38 f#3@23 ~@11]/5", F: "[f#4,d5]@5 g4@3", G: "[~@7 [a4,f#5]@11 b4@5 ~@9]/2", H: "a4@11 g4@5", I: "f#4 ~",
J: "[d4@4 f#4@4 a4@12 b4@11 ~]/2", K: "a4", L: "g4 [f#4,f#6]", M: "[f#4@2 ~@2 f#4@11 e4@17]/2", N: "[f#4@3 ~]/2",
O: "[e4@38 f#4@23 ~@3]/4", P: "~@8 f#5@3 ~@5",
})).s("gm_string_ensemble_1").gain(0.13)
// chords · accordion
const accordion = note(`<
~@2 A B C D B E F B G ~@22 H@3 ~@27 I F J E K B C L B M N O P F J E K B C L B Q R S G ~@23 T@4 ~@27 S U V W X F O P Y
Z AA L B U V W X F O P Y AB AC@2 AD AE AF
>`.pickRestart({
A: "[g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g#3,b3,d4] ~@3 [g#3,b3,d4] ~@3", B: "~@4 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@7",
C: "[d4,f#4,a4] ~@3 [d4,f#4,a4] ~@7 [a3,c#4,e4] ~@3", D: "[a3,c#4,e4] ~@7 [c#4,e4,g4] ~@3 [c#4,e4,g4] ~@3",
E: "[d4,f#4,a4] ~@3 [d4,f#4,a4] ~@7 [d4,f#4,a4] ~@3", F: "[d4,f#4,a4] ~@7 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3",
G: "[d4,f#4,a4] ~@3 [d4,f#4,a4] ~@11", // D
H: "[~ [c#4,e5]@7 [d4,f#5]@7 [e4,g5]@7 [d4,f#5]@8 [c#4,e5]@11 ~@7, ~ a3@44 ~@3]/3", // C#m D Em D C#m
I: "~@8 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3", J: "~@4 [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~@3",
K: "[d4,g4,b4] ~@7 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3", L: "[a3,c#4,e4] ~@7 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3",
M: "[b3,f#4,a4] ~@3 [b3,f#4,a4] ~@7 [e4,b4,d5] ~@3", N: "[e4,b4,d5] ~@7 [e4,b4,d5] ~@3 [e4,b4,d5] ~@3",
O: "~@4 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@7", P: "[a3,c#4,e4] ~@3 [a3,c#4,e4] ~@7 [d4,f#4,a4] ~@3",
Q: "[b3,f#4,a4] ~@3 [b3,f#4,a4] ~@7 [d4,f#4,a4] ~@3", R: "[d4,f#4,a4] ~@7 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3",
S: "[d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@7", // D
T: "[~@9 [c#4,e5]@7 [d4,f#5]@7 [e4,g5]@7 [d4,f#5]@8 [c#4,e5]@11 ~@15, ~@9 a3@44 ~@11]/4", // C#m D Em D C#m
U: "[d4,f#4,a4] ~@3 [d4,f#4,a4] ~@7 [f#4,a4] ~ [f#4,a4] ~", // D F#m
V: "[f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~@3 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3", W: "~@4 [d4,f#4,a4] ~@3 [d4,g4,b4] ~@7",
X: "[d4,g4,b4] ~@3 [d4,g4,b4] ~@7 [d4,f#4,a4] ~@3", Y: "[d4,f#4,a4] ~@7 [b3,f#4,a4] ~@3 [b3,f#4,a4] ~@3",
Z: "~@4 [e4,b4,d5] ~@3 [e4,b4,d5] ~@7", AA: "[e4,b4,d5] ~@3 [e4,b4,d5] ~@7 [a3,c#4,e4] ~@3",
AB: "~@6 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@3 ~", // D
AC: "[~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@4 [a3,c#4,e4]@4 ~@4 [d4,f#4,a4]@2 ~@7]/2", // A D
AD: "~@7 [f#4,a4] ~ [f#4,a4] ~@2 [f#4,a4] ~ [f#4,a4] ~", // F#m
AE: "~ [f#4,a4] ~@2 [f#4,a4] ~ [f#4,a4] ~@2 [f#4,a4] ~@2 [d4,f#4] ~@3", AF: "~ [a3,a4] ~ [d4,d5] ~@12",
})).s("gm_accordion").gain(0.2).pan(0.6)
// chords · orchestral harp · "HARP"
const orchestral_harp = note(`<
~ A ~@2 B C D E F G E F H I J G E F H I J H I K H I L H I M ~@6 G E F N O P Q E F H R P S T F U V P U V W X Y Z AA@2 ~
AB F G E AC AD AE K G AF AG AH AI F G E AC AD AJ K G AK AL Q E F G AM AG AN E F G AM AG AN AM AG AO AP AG AH AP AG AN
~@6 AQ F G AR AS AD P F G AM AG AD AT K G AU AV AD AU AV AD ~ AW@2 AX AY ~ AZ BA E F G V P BB T BC H I L Q E F G V P
AO T BD BE BF BG BH ~@2
>`.pickRestart({
A: "~@4 g3 [a3,b3] [c4,d4] [e4,f4] g4@3 ~@5", B: "~@5 g#4 a4 b4", C: "c#5 d#5 e5 f#5 g5 a5 b5 c#6",
D: "d6@2 ~@2 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7", E: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7 [d3,f#3,a3] ~@3",
F: "[d3,f#3,a3] ~@7 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3", G: "~@4 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7",
H: "~@4 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@7", I: "[e3,g#3,b3] ~@3 [e3,g#3,b3] ~@7 [a2,c#3,e3] ~@3",
J: "[a2,c#3,e3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3", // A D
K: "[a2,c#3,e3] ~@7 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3", // A
L: "[a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3", M: "[a2,c#3,e3] ~@3 [d3,f#3,a3] ~@11",
N: "~@4 [a2,c#3,g3] ~@3 [a2,c#3,g3] ~@7", O: "[a2,c#3,g3] ~@3 [a2,c#3,g3] ~@7 [d3,f#3,a3] ~@3",
P: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3", // D
Q: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7", R: "[e3,g#3,b3] ~@3 [e3,g#3,b3] ~@7 [d3,f#3,a3] ~@3",
S: "[a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@7", T: "[a2,c#3,e3] ~@3 [a2,c#3,e3] ~@7 [d3,f#3,a3] ~@3",
U: "~@4 [g2,b2,d3] ~@3 [g2,b2,d3] ~@7", V: "[g2,b2,d3] ~@3 [g2,b2,d3] ~@7 [d3,f#3,a3] ~@3",
W: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@11", X: "~@14 [a3,c#4,e4] ~", Y: "~@3 [a3,c#4,e4] ~@10 [a3,c#4,e4] ~",
Z: "~@3 [a3,c#4,e4] ~@11 [f#3,a3,d4]", AA: "[~@5 [f#3,a3,d4] ~@8 d4@10 ~@8, ~@12 f#3@13 ~@7, ~@12 a3@11 ~@9]/2",
AB: "~@2 c3 [d3,e3] [f3,g3] [a3,b3] [c4,d4] [e4,f4] g4@3 ~ [d3,f#3,a3] ~@3", // Dsus2 Fsus2 Asus2 Csus2 Fmaj7 D
AC: "[d3,f#3,a3] ~@7 [g2,b2,d3] ~@3 [g2,b2,d3] ~@3", AD: "~@4 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3",
AE: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [a2,c#3,e3] ~@3", // D A
AF: "[b2,d#3,f#3] ~@3 [b2,d#3,f#3] ~@7 [e3,g#3,b3] ~@3", AG: "[e3,g#3,b3] ~@7 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3",
AH: "~@4 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3", // A
AI: "[a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3", // A D
AJ: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7 [a2,c#3,e3] ~@3", // D A
AK: "[b2,d3,a3] ~@3 [b2,d3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3", // Bm7 D
AL: "[d3,f#3,a3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3", // D A
AM: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7 [e3,g#3,b3] ~@3", AN: "~@4 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3 [d3,f#3,a3] ~@3",
AO: "~@4 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@7", AP: "[a2,c#3,e3] ~@3 [a2,c#3,e3] ~@7 [e3,g#3,b3] ~@3",
AQ: "~@12 [d3,f#3,a3] ~@3", AR: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7 [a2,c#3,g3] ~@3",
AS: "[a2,c#3,g3] ~@7 [a2,c#3,g3] ~@3 [a2,c#3,g3] ~@3", // A7
AT: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@3", // D A
AU: "[d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7 [g2,b2,d3] ~@3", AV: "[g2,b2,d3] ~@7 [g2,b2,d3] ~@3 [g2,b2,d3] ~@3",
AW: "~@6 [a3,c#4,e4] ~@4 [a3,c#4,e4] ~@4", AX: "~@7 [f#3,a3,d4] ~@5 [f#3,a3,d4] ~@2", AY: "~@3 d4@5, ~ [f#3,a3]@3",
AZ: "~@10 c3 [d3,e3] [f3,g3] [a3,b3] [c4,d4] [e4,f4]", BA: "g4@3 ~ [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@7",
BB: "[d3,f#3,a3] ~@3 [a2,c#3,e3] ~@3 [a2,c#3,e3] ~@7", BC: "[d3,f#3,a3] ~@7 [b2,d#3,f#3] ~@3 [b2,d#3,f#3] ~@3",
BD: "[d3,f#3,a3] ~@7 [b2,d3,a3] ~@3 [b2,d3,a3] ~@3", BE: "[d3,f#3,a3] ~@5 [d3,f#3,a3] ~@5 [d3,f#3,a3] ~@3",
BF: "~@2 [a2,c#3,e3] ~@5 [a2,c#3,e3] ~@6 [a2,c#3,e3]", // A
BG: "~@7 [d3,f#3,a3] ~@3 [d2,e2] [f2,g2] [a2,b2] [c3,d3,e3] [f3,g3,a3]", // D Dsus2 Fsus2 Asus2 C F
BH: "[b3,c4] [d4,e4,f4] [g4,a4] [b4,c5] d5 ~@11", // Cmaj7 Dm Gsus2 Cmaj7
})).s("gm_orchestral_harp").gain(0.17)
// other · whistle
const whistle = note("<~@74 A@2 ~@77 B ~@15>".pickRestart({
A: "[~@4 g7@15 ~@13]/2", B: "g7@15 ~",
})).s("gm_whistle").gain(0.23).pan(0.6)
// other · clarinet
const clarinet = note(`<
~@9 A@2 B C@2 D E@2 F G@2 H ~@6 I@3 J@6 ~@12 K L M N O@2 P Q R ~@31 S T@2 U V@2 W X@2 U Y@2 ~@5 Z@2 AA@2 AB@6 ~@11 AC
AD AE@2 AF AG AH AI AJ@2 ~@33
>`.pickRestart({
// … 82 more lines
More by
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.