0:00/0:00
// Rauschende Birken — Mosch
// 170 bpm, 3/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "BaesseDo" synth brass 2 (copy of ch 3 "Baesse" tuba)
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/3)
// 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.
// chords · french horn · "F-Hoerne"
const french_horn = note(`<
A B C ~@5 D E F G H E I@2 J K L J M L N@2 O P Q R J L S@2 T U V W J X Y@2 D E F G H E I@2 J K L J M L N@2 O P Q R J L
S@2 T U V W J X Y@2 Z AA AB AC AD AE AF@2 AG AH AI AJ AK AL AM@2 AN AO AP AQ AR AS AT AU AV AW@2 AX AY AZ BA@2 ~@8
BB@4 BC BD BB BE BB@4 BF@2 BG BH BI AA BJ AC AD AE AF@2 AG AH AI AJ AK AL AM@2 AN AO AP AQ AR AS AT AU AV AW@2 AX AY
AZ BA@2
>`.pickRestart({
A: "f4 ~@2 g4 ~ f4@7 ~ g4 ~@2", B: "a4 ~@2 bb4 ~ a4@8 bb4 ~@2", C: "[a4,c5] ~@7", D: "[f4,d5]@15 ~",
E: "[f4,d5]@11 [g4,eb5]@5", F: "[f4,d5]@11 [eb4,c5]@5", G: "[d4,bb4]@15 ~", H: "[f4,d5]@7 ~",
I: "[[eb4,c5]@21 ~@11]/2", J: "[eb4,c5]", K: "[f4,a4]@11 [a4,f5]@4 ~", L: "[a4,f5]@11 [g4,eb5]@5", M: "[a4,f5]@15 ~",
N: "[[f4,d5]@23 ~@9]/2", O: "[g4,eb5]@11 [eb4,g4]@5", P: "[eb4,g4]@11 [g4,eb5]@5", Q: "[f4,d5]@11 [d4,f4]@4 ~",
R: "[d4,f4]@10 ~ [f4,d5]@5", S: "[[f4,d5]@21 ~@11]/2", T: "[g4,eb5]@10 ~ [eb4,g4]@5", U: "[eb4,g4]@11 [gb4,eb5]@5",
V: "[f4,d5]@10 ~ [d4,f4]@5", W: "[d4,f4]@11 [f4,d5]@5", X: "[f4,a4]@11 [eb4,c5]@5", Y: "[[d4,bb4]@9 ~@7]/2",
Z: "[g4,bb4]@5 [g4,eb5]@6 [bb4,d5]@5", AA: "[ab4,c5]@11 [g4,bb4]@5", AB: "[g4,bb4]", AC: "[eb4,g4]@15 ~",
AD: "[g4,bb4]@3 [ab4,c5]@2 [g4,bb4]@8 [ab4,c5]@3", AE: "bb4@2 ~@3 [g4,bb4]@8 [c4,eb4]@3, g4 ~@15",
AF: "[[bb3,d4]@3 ~]/2", AG: "[f4,ab4]@5 [f4,d5]@5 ~ [ab4,c5]@5", AH: "ab4@5 d4@5 ~ [f4,ab4]@5, bb4@11 ~@5",
AI: "[f4,ab4]", AJ: "[d4,f4]@7 ~", AK: "[d4,f4]@3 [eb4,g4]@2 [f4,ab4]@8 [g4,bb4]@3", AL: "[ab4,c5]@11 [bb4,d5]@5",
AM: "[[g4,bb4]@21 ~@6 [g4,bb4]@5]/2", AN: "[c5,eb5] ~@4 [c5,eb5]@8 [c5,eb5]@2 ~", AO: "[c5,eb5]@10 ~ [c5,eb5]@4 ~",
AP: "[c5,eb5]@10 ~ [ab4,c5]@5", AQ: "[ab4,c5]@13 ~@3", AR: "[ab4,c5]@5 [bb4,d5]@6 [c5,eb5]@5",
AS: "[d5,f5] ~@4 [c5,eb5]@8 [ab4,c5]@2 ~", AT: "[g4,bb4]@11 [ab4,c5]@5", AU: "[g4,bb4]@7 ~",
AV: "[eb4,g4]@5 [g4,bb4]@5 ~ [bb4,eb5]@4 ~", AW: "[[bb4,eb5]@11 d5@5 d5@16, ~@11 ab4@20 ~]/2", AX: "[ab4,c5]@15 ~",
AY: "[ab4,bb4] ~@4 [ab4,bb4]@7 ~ [ab4,c5]@2 ~", AZ: "[ab4,bb4]@10 ~ [ab4,d5]@5", BA: "[[g4,eb5]@9 ~@7]/2",
BB: "~@5 [g4,eb5] ~@5 [g4,eb5] ~@4", BC: "~@5 [ab4,f5] ~@5 [g4,eb5] ~@4", BD: "~@5 [ab4,d5] ~@5 [ab4,d5] ~@4",
BE: "[g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5] ~@5 [g4,eb5] ~@4", BF: "~@5 [a4,eb5] ~@5 [a4,eb5] ~@4",
BG: "~@5 [bb4,d5] ~@5 [bb4,d5] ~@4", BH: "[bb4,d5] ~@15", BI: "bb4@5 [g4,eb5]@6 [bb4,d5]@5, g4 ~@3",
BJ: "[g4,bb4] ~@15", // Gm
})).s("gm_french_horn").gain(0.4).pan(0.3)
// bass · tuba · "Baesse"
const bass = note(`<
A@2 B C D E F G H I H I H@2 I J I K L I@2 M N O P@2 H@2 Q R S O P@2 H@2 I@2 T U H I H I H@2 I J I K L I@2 M N O P@2
H@2 Q R S O P@2 H@2 I@2 T H ~@2 P V P H I H I H I W I H P H X@2 Y X@3 P Z P@2 X@2 H@2 AA P H AB I H AC D AD AA AE AF
AG AH AI AJ AK AL AE AF AM AN AO AP AQ@2 ~@2 P V P H I H I H I W I H P H X@2 Y X@3 P Z P@2 X@2 H@2 AA P
>`.pickRestart({
A: "[f2,f3] ~@4 [f2,f3]@9 ~@2", B: "[f2,f3]@2 ~@3 [c3,c4] ~@2 [d3,d4] ~@2 [eb3,eb4] ~ [d3,d4] ~@2, [e2,e3] ~@15",
C: "[c3,c4] ~@4 [a2,a3]@6 [f2,f3]@5", D: "[bb2,bb3] ~@15", E: "[g2,g3]", F: "[f2,f3]", G: "[d2,d3]@15 ~",
H: "[bb1,bb2] ~@15", I: "[f2,f3] ~@15", J: "[f2,f3] ~@4 [a2,a3] ~@5 [c3,c4] ~@4",
K: "[f2,f3] ~@4 [a2,a3] ~@5 [f2,f3] ~@4", L: "[c3,c4] ~@15", M: "[f2,f3]@5 [g2,g3]@5 ~ [a2,a3]@5", N: "[bb2,bb3]@3 ~",
O: "[bb2,bb3] ~@2 [a2,a3] ~ [g2,g3] ~@5 [f2,f3] ~@4", P: "[eb2,eb3] ~@15", Q: "[f2,f3] ~@7",
R: "[f2,f3]@2 ~@3 [g2,g3] ~@5 [a2,a3] ~@4", S: "[bb2,bb3]@7 ~", T: "[bb1,bb2] ~@4 [f2,f3] ~@5 [d2,d3] ~@4",
U: "[bb1,bb2] ~@4 [f2,f3] ~@2 [g2,g3] ~@2 [f2,f3]@5", V: "[eb2,eb3] ~@10 [bb1,bb2]@2 ~@3",
W: "[f2,f3] ~@10 [bb1,bb2] ~@4", X: "[ab1,ab2] ~@15", Y: "[ab1,ab2] ~@4 [c2,c3] ~@5 [eb2,eb3] ~@4",
Z: "[eb2,eb3]@2 ~@3 [bb2,bb3] ~@5 [g2,g3] ~@4", AA: "[eb2,eb3] ~@4 [bb2,bb3] ~@5 [g2,g3] ~@4", AB: "[d2,d3] ~@15",
AC: "[g2,g3] ~@15", AD: "[eb2,eb3] ~@10 [bb2,bb3] ~@4", AE: "[eb2,eb3]@6 ~@2 [d2,d3] ~@2 [eb2,eb3] ~ [f2,f3] ~@2",
AF: "[g2,g3]@6 ~@2 [eb2,eb3] ~@2 [g2,g3] ~ [c3,c4] ~@2", AG: "[bb2,bb3]@9 ~@2 [g2,g3] ~@4", AH: "[eb2,eb3]@11 ~@5",
AI: "[d2,d3]@9 ~@2 [eb2,eb3] ~@4", AJ: "[f2,f3]@2 ~ [g2,g3] ~ [ab2,ab3] ~@5 [bb2,bb3] ~@4",
AK: "[eb3,eb4]@8 ~@3 [g2,g3]@2 ~@3", AL: "[bb2,bb3]@5 ~@3", AM: "[bb2,bb3]@15 ~", AN: "[g2,g3]@3 ~",
AO: "[f2,f3]@6 ~@2 [g2,g3] ~@2 [a2,a3] ~ [g2,g3] ~@2", AP: "[f2,f3]@8 ~@3 [c3,c4]@5", AQ: "[[bb2,bb3]@9 ~@7]/2",
})).s("gm_tuba").gain(0.5).pan(0.7)
// chords · synth brass 2 · "B-Hoerne"
const synth_brass_2 = note(`<
A B C D E ~@19 F G H I J K L@2 M N O P J Q R@2 S T U V W X Y@2 Z AA K J AB K AC@2 F G H I J K L@2 M N O P J Q R@2 AD
AE AF AG AH AI AJ@2 AK AL AM AN AO AP AQ@2 ~@8 AR AS AT AU AV@2 AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN
BO BP BQ BR BS BT BU@2 BV BW AF AG AH AI AJ@2 AK AL AM AN AO AP AQ@2 ~@8 AR AS AT AU AV@2 AW ~
>`.pickRestart({
A: "a3 ~@2 bb3 ~ a3@7 ~ bb3 ~@2", B: "c4 ~@2 d4 ~ c4@7 ~ d4@2 ~", C: "eb4@2 ~@3 c4 ~@2 d4 ~@2 eb4 ~ d4 ~@2",
D: "c4 ~@4 a3@6 f3@5", E: "bb3 ~@7", F: "[eb4,g4]@11 [g3,eb4]@5", G: "[g3,eb4]@9 ~@2 [eb4,g4]@5",
H: "[d4,f4]@10 ~ [f3,d4]@5", I: "[f3,d4]@10 ~ [d4,f4]@5", J: "[c4,eb4]", K: "[f4,a4]@11 [eb4,g4]@5",
L: "[[d4,f4]@19 ~@13]/2", M: "g4@15 ~", N: "g4@10 ~ gb4@5", O: "f4@7 ~", P: "f4@11 d4@5", Q: "[a3,f4]@11 [c4,eb4]@5",
R: "[[bb3,d4]@19 ~@13]/2", S: "[d4,f4]@15 ~", T: "[d4,f4]@11 [eb4,g4]@5", U: "[d4,f4]@11 [c4,eb4]@5",
V: "[bb3,d4]@15 ~", W: "[d4,f4]", X: "d4@11 [eb4,g4]@5, f4 ~@15", Y: "[[c4,eb4]@21 ~@11]/2", Z: "[c4,eb4]@15 ~",
AA: "[a3,c4]@11 [f4,a4]@5", AB: "[f4,a4]@15 ~", AC: "[[d4,f4]@21 ~@11]/2", AD: "[bb3,g4]@5 [eb4,g4]@6 [d4,bb4]@5",
AE: "[c4,ab4]@10 ~ [bb3,g4]@5", AF: "[bb3,g4]", AG: "[g3,eb4]@15 ~",
AH: "[bb3,g4]@3 [c4,ab4]@2 [bb3,g4]@8 [c4,ab4]@3", AI: "[bb3,g4]@2 ~@3 [bb3,g4]@8 [eb3,c4]@3", AJ: "[[d3,bb3]@3 ~]/2",
AK: "ab3@5 [d4,f4]@6 [c4,ab4]@5, f4 ~@3", AL: "[bb3,d4]@11 [ab3,f4]@5", AM: "[ab3,f4]@15 ~", AN: "[f3,d4]@15 ~",
AO: "f3@3 [g3,eb4]@2 [ab3,f4]@8 [bb3,g4]@3, d4 ~@7", AP: "[c4,ab4]@11 [d4,bb4]@5", AQ: "[[bb3,g4]@21 ~@11]/2",
AR: "bb3@5 eb4@5 ~ g4@4 ~", AS: "~@5 g3@6 ~@2 g3@3, g4@11 f4@5", AT: "ab3@8 bb3@3 ~@2 d4@3, eb4@15 ~, ~@11 c4@4 ~",
AU: "eb4@15 ~", AV: "[d4@19 c4@2 bb3@3 ab4@2 ~ g4@2 f4@2 ~]/2", AW: "eb4", AX: "~@5 [g3,eb4]@5 ~ [bb3,g4]@5",
AY: "[ab3,f4] ~", AZ: "[ab3,f4]@9 ~@7", BA: "[ab3,f4]@11 [g3,eb4]@5", BB: "[f3,d4]@7 ~", BC: "[bb3,g4]@7 ~@9",
BD: "[bb3,g4] ~", BE: "[bb3,g4]@10 ~ [ab3,f4]@5", BF: "[g3,eb4]@3 ~@2 bb3 ~@5 g3 ~@4",
BG: "eb3@8 d3 ~@2 eb3@2 f3 ~@2", BH: "g3@6 ~@2 eb3 ~@2 g3 ~ c4 ~@2", BI: "bb3@10 ~ g3@5", BJ: "eb3@3 ~",
BK: "d3@9 ~@2 eb3@2 ~@3", BL: "f3 ~@2 g3 ~ ab3 ~@5 bb3 ~@4", BM: "eb4@8 ~@3 g3@2 ~@3", BN: "bb3@3 ~",
BO: "eb3@8 d3 ~@2 eb3@2 f3@2 ~", BP: "g3@7 ~ eb3 ~@2 g3@2 c4 ~@2", BQ: "bb3@15 ~", BR: "g3@15 ~",
BS: "f3@7 ~ g3 ~@2 a3 ~ g3 ~@2", BT: "f3@9 ~@2 c4@5", BU: "[bb3@19 ~@13]/2",
BV: "bb3@5 [eb4,g4]@6 [d4,bb4]@5, g4 ~@3", BW: "[c4,ab4]@11 [bb3,g4]@5",
})).s("gm_synth_brass_2").gain(0.43)
// chords · trombone · "Posaunen"
const trombone = note(`<
A B C D E F@4 G H F@2 G I J I@6 F K L@2 M F I@2 F N L O F@2 I@2 F P F G H F@2 G I J I@6 F K L@2 M F I@2 F N L O F@2
I@2 F P Q@2 L@4 R S T@6 L U V@6 W X L@2 V@2 T@2 L Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AH AP AQ AR AS AT
AU@2 AV@2 L@4 R S T@6 L U V@6 W X L@2 V@2 T@2 L AW
>`.pickRestart({
A: "[a3,c4,f4] ~@4 [a3,c4,f4]@8 ~@3", B: "[a3,c4,f4] ~@4 [a3,c4,f4]@9 ~@2",
C: "[c4,f4]@2 ~@3 c4 ~@2 d4 ~@2 eb4 ~ d4 ~@2, a3 ~@15", D: "c4@2 ~@3 a3@5 ~ f3@5",
E: "bb3 ~@4 [f3,bb3,d4] ~@5 [f3,bb3,d4] ~@4", F: "~@5 [f3,bb3,d4] ~@5 [f3,bb3,d4] ~@4",
G: "~@5 [f3,bb3,d4] ~@5 [g3,bb3,eb4] ~@4", H: "~@5 [f3,bb3,d4] ~@5 [f3,a3,eb4] ~@4",
I: "~@5 [f3,a3,eb4] ~@5 [f3,a3,eb4] ~@4", J: "[f3,a3,eb4] ~@2 [f3,a3,eb4] ~ [f3,a3,eb4] ~@5 [f3,a3,eb4] ~@4",
K: "[f3,bb3,d4]", L: "~@5 [g3,bb3,eb4] ~@5 [g3,bb3,eb4] ~@4", M: "~@5 [f3,bb3,d4] ~@5 [f3,bb3] ~@4, ~@11 d4@2 ~@3",
N: "[f3,bb3,d4]@15 ~", O: "~@5 [g3,bb3,eb4] ~@5 [bb3,eb4] ~@4, ~@11 gb3@2 ~@3", P: "[bb3,d4] ~@15, f3 ~@7",
Q: "[eb3@31 ~]/2", R: "~@5 [ab3,d4,f4] ~@5 [ab3,d4,f4] ~@4", S: "[ab3,d4,f4] ~@4 [ab3,d4,f4] ~@5 [ab3,d4,f4] ~@4",
T: "~@5 [f3,ab3,d4] ~@5 [f3,ab3,d4] ~@4", U: "[g3,bb3,eb4] ~@4 [g3,bb3,eb4] ~@5 [g3,bb3,eb4] ~@4",
V: "~@5 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@4", W: "~@5 [g3,bb3,eb4] ~@5 [ab3,c4,eb4] ~@4",
X: "[g3,bb3,eb4] ~@2 [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@5 [g3,bb3,eb4] ~@4", Y: "[g3,bb3,eb4] ~@4 [eb3,bb3]@6 [g3,eb4]@5",
Z: "[bb2,f3,bb3] ~", AA: "[bb2,f3,bb3]@7 ~@9", AB: "[bb2,f3,bb3]@8 ~@3 [bb2,eb3,bb3]@4 ~", AC: "[bb2,d3,bb3]@11 ~@5",
AD: "[eb3,g3,eb4]@5 ~@3", AE: "[eb3,g3,eb4] ~", AF: "[bb2,g3,eb4]@11 [f3,bb3]@5",
AG: "[eb3,bb3]@3 ~@2 bb3 ~@5 g3 ~@4", AH: "eb3@7 ~ d3 ~@2 eb3 ~ f3 ~@2", AI: "g3@6 ~@2 eb3 ~@2 g3 ~ c4 ~@2",
AJ: "bb3@8 ~@3 g3 ~@4", AK: "eb3@13 ~@3", AL: "d3@9 ~@2 eb3 ~@4", AM: "f3 ~@2 g3 ~ ab3 ~@5 bb3 ~@4",
AN: "eb4@9 ~@2 g3 ~@4", AO: "bb3@3 ~", AP: "g3@7 ~ eb3 ~@2 g3 ~ c4 ~@2", AQ: "bb3@15 ~", AR: "g3@7 ~",
AS: "f3@7 ~ g3 ~@2 a3 ~ g3 ~@2", AT: "f3@8 ~@3 c4@5", AU: "[bb3@19 ~@13]/2", AV: "[eb3@15 ~]/2",
AW: "[g3,bb3,eb4] ~@15", // Eb
})).s("gm_trombone").gain(0.19).pan(0.2)
// chords · clarinet · "Kl.nette"
const clarinet = note(`<
A B C ~@9 D E F G H ~@3 I J K L M@2 N@2 O P Q R S T U V W X Y Z ~@4 D E F G H ~@3 I J K L M@2 N@2 O P Q R S T U V W X
Y Z ~@6 AA AB AC ~@5 AD AE ~@8 AF AG AH@2 AI AJ AK@2 AL@2 AM AN AO@2 AP AQ AR@4 AS AT AR AU AR@4 AV@2 AT AW ~@6 AA AB
AC ~@5 AD AE ~@8 AF AG AH@2 AI AJ AK@2
>`.pickRestart({
A: "[a4,f5] ~@2 [bb4,g5] ~ [a4,f5]@7 ~ [bb4,g5] ~@2", B: "[c5,f5,a5] ~@2 [d5,bb5] ~ [c5,f5,a5]@7 ~ [d5,f5,bb5] ~@2",
C: "[eb5,f5,a5] ~@15", D: "[f4,d5,f5] ~@4 [f4,d5,f5] ~@2 [f4,d5,f5] ~@2 [f4,d5,f5] ~ [f4,d5,f5] ~@2",
E: "[d5,f5] ~@2 [bb4,d5] ~ [f4,d5,f5] ~@2 [d4,bb4,d5] ~@2 [eb5,g5] ~ [f4,d5,f5] ~@2, f4@3 d4@2 ~@6 g4@2 ~@3", // Dm Bb Dm Gm Eb Dm
F: "[eb4,c5,eb5] ~@4 [eb4,c5,eb5] ~@2 [f4,d5,f5] ~@2 [g4,eb5,g5] ~ [f4,d5,f5] ~@2", // Cm Dm Cm Dm
G: "[eb4,c5,eb5] ~@2 [a4,a5] ~ [a4,f5,a5] ~@2 [g4,eb5,g5] ~@2 [g4,eb5,g5] ~ [f4,d5,f5] ~@2, ~@3 f5@2 ~@11", // Cm A Dm Cm Dm
H: "[eb4,eb5] ~@15, c5 ~@7", I: "[a4,f5,a5] ~@4 [a4,f5,a5] ~@2 [a4,f5,a5] ~@2 [a4,f5,a5] ~ [a4,f5,a5] ~@2",
J: "[a4,f5,a5]@3 [g4,g5] ~ [g4,eb5,g5]@3 [d5,f5] ~@2 [g4,eb5,g5]@2 [a4,a5]@2 ~, ~@3 eb5@2 ~@3 f4@2 ~@3 f5 ~@2", // Dm G Cm Dm Cm A
K: "[f4,d5,f5] ~@4 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~ [bb4,d5,f5]@2 ~", L: "[f5,bb5,d6]@5 ~@11",
M: "~@5 [g4,bb4,eb5] ~@5 [eb5,g5,bb5] ~@4", N: "~@5 [f4,bb4,d5] ~@5 [bb4,f5,bb5] ~@4",
O: "[eb4,c5,eb5] ~@4 [eb4,c5,eb5]@3 [f4,d5,f5]@3 [eb4,c5,eb5]@2 [f4,d5,f5]@3", // Cm Dm Cm Dm
P: "[a4,f5,a5] ~@4 [a4,f5,a5] ~@5 [g4,eb5,g5] ~@4", // Dm Cm
Q: "[f4,d5,f5]@3 [eb4,c5,eb5]@2 [d4,bb4,d5]@3 [eb4,c5,eb5]@3 [f4,d5,f5]@2 [g4,eb5,g5]@3", R: "[d5,f5,bb5]@5 ~@11",
S: "[bb4,eb5,g5]@11 [g4,bb4,eb5]@5", T: "[g4,bb4,eb5]@10 ~ [bb4,eb5,gb5]@5", U: "[bb4,d5,f5]@10 ~ [f4,bb4,d5]@5",
V: "[f4,bb4,d5]@10 ~ [bb4,d5,f5]@5", W: "[c5,f5,a5]@5 [f4,a4,f5]@3 [g4,c5,g5]@3 [a4,bb4,a5]@2 [f4,a4,f5]@2 ~",
X: "f5@3 g5@2 [a4,f5]@3 [c5,a5]@3 [eb5,c6]@2 [f5,a5]@3, [a4,eb5]@5 f4@5 ~@6, ~@8 a4 ~@2 c5 ~ eb5 ~@2", // Dm F Cm F Adim
Y: "[bb4,d5]@3 [a4,db5,e5]@2 [bb4,d5,f5]@3 [d5,f5] ~@2 [bb4,f5]@2 [bb4,d5] ~@2, f5 ~@7 bb5@3 d5 ~ f4@3", // Bb A Bb Dm Bb5 Bb
Z: "[bb4,f5]@3 ~@13, d5 ~@15", AA: "[d4,bb4,d5] ~@2 [eb4,c5,eb5] ~ [d4,bb4,d5]@8 [eb4,c5,eb5] ~@2",
AB: "[f4,d5,f5] ~@4 [f4,d5,f5]@8 [g4,g5] ~@2, ~@13 eb5@2 ~", AC: "[ab4,f5,ab5]@5 ~@11",
AD: "[eb5,g5,bb5] ~@2 [d5,gb5,a5] ~ [eb5,g5,bb5]@8 [bb4,f5,ab5]@3", // Eb D Eb Bb7
AE: "[bb4,eb5,g5]@5 [bb4,eb5] ~@5 [g4,bb4] ~@4, ~@5 g4@5 ~ eb4@5", // Eb Eb5 Gm
AF: "[g4,bb4,eb5]@5 [bb4,eb5] ~@5 [eb5,g5] ~@4, ~@5 g5@5 ~ bb5@4 ~", AG: "[eb5,g5,bb5]@11 [d5,f5,bb5]@5",
AH: "[[ab4,eb5]@4 [c5,eb5]@3 ~, ab5@29 ~@3]/2", AI: "[bb4,d5,ab5]@3 ~@2 [bb4,d5,ab5]@7 ~ [c5,ab5] ~@2, ~@13 eb5@2 ~",
AJ: "[bb4,f5,ab5]@10 ~ [bb4,f5,ab5]@5", AK: "[[bb4,eb5,g5]@9 ~@7]/2",
AL: "~@5 [c5,f5,ab5] ~@2 [bb4,eb5,g5] ~@2 [ab4,d5,f5] ~@4", // Fm Eb Ddim
AM: "[ab4,d5,f5]@5 [c5,ab5]@6 [bb4,eb5]@5, ~@5 f5 ~@5 g5@3 ~@2", // Ddim Fm Eb5
AN: "[ab4,d5,f5] ~@2 [bb4,eb5,g5] ~ [c5,f5,ab5] ~@2 [bb4,eb5,g5] ~@2 [ab4,f5] ~@4, ~@11 d5@2 ~@3", // Ddim Eb Fm Eb Db
AO: "~@5 [eb5,g5,bb5] ~@2 [bb4,f5,ab5] ~@2 [bb4,eb5,g5] ~@4", // Eb Bb7 Eb
AP: "[bb4,eb5,g5]@5 [eb5,g5] ~@5 [bb4,f5,ab5]@5, ~@5 bb5@5 ~@6", AQ: "[bb4,g5] ~@7, eb5 ~@15",
AR: "~@5 [eb5,g5,bb5] ~@5 [eb5,g5,bb5] ~@4", AS: "~@5 [f5,ab5,bb5] ~@5 [eb5,g5,bb5] ~@4",
AT: "~@5 [d5,f5,bb5] ~@5 [d5,f5,bb5] ~@4", AU: "[eb5,g5,bb5] ~@2 [eb5,g5,bb5] ~ [eb5,g5,bb5] ~@5 [eb5,g5,bb5] ~@4",
AV: "~@5 [eb5,f5,c6] ~@5 [eb5,f5,c6] ~@4", AW: "[d5,f5,bb5] ~@15",
})).s("gm_clarinet").gain(0.14).pan(0.1)
// drums · kick
const kick = s("bd").struct("<A@2 B ~ B@11 C B@31 C B@24 ~@2 B@54 ~@2 B@30>".pickRestart({
A: "x ~@4 x ~@10", B: "x", C: "x ~@4 x ~@5 x ~@4",
})).gain(0.24)
// drums · snare
const snare = s("sd").struct(`<
A@2 B ~ C@11 D C@7 E C@7 F G C@6 B C@7 D C@7 E C@7 F G C@6 B ~@2 C@5 G C@7 G C@7 D C@7 B C@7 G C@7 D C@7 B ~@2 C@5 G
C@7 G C@7 D C@7 B
>`.pickRestart({
A: "~@5 x ~@10", B: "x", C: "~@5 x ~@5 x ~@4", D: "x ~@2 x ~ x ~@5 x ~@4", E: "~@2 x!13 ~", F: "~@7 x!9",
G: "x ~@4 x ~@5 x ~@4",
})).gain(0.2)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@23 A ~@7 B ~@23 A ~@7 B ~@96>".pickRestart({
A: "x!2 ~@14", B: "x!7 ~@9",
})).gain(0.12)
// drums · crash
const crash = s("cr").struct("<A@2 ~@30 A ~@31 A ~@31 A@6 ~@10 A@7 ~ A@7 ~@25 A@6 ~@2>".pickRestart({
A: "x",
})).gain(0.28)
stack(french_horn, bass, synth_brass_2, trombone, clarinet, kick, snare, snare_soft, crash)
More by Mosch
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.