0:00/0:00
// Sailing — Stewart Rod
// 130 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "FINGERDBA"
const bass = note(`<
~@8 A@2 B@2 C@2 A@2 D@2 E@2 D@2 F G H@2 I@2 C@2 J@2 K@2 L@2 M@2 N G O P Q R S T N U V W X Y V Z AA AB AC P AD AE AF AG
AC AH AI W AJ AK AL Z N AM AN AO AP AQ AR AS AT X AU AV AW N AX AY AZ BA BB O P Q R S T BC@2 V W X Y V Z BD BE V Z BD
BE V Z BD BE V Z BD BF V Z BD BE V Z BD BF
>`.pickRestart({
A: "[b1@15 ~]/2", B: "[g#2@15 ~]/2", C: "[e2@29 ~@3]/2", D: "[c#2@15 ~]/2", E: "[g#1@15 ~]/2", F: "b1@7 ~",
G: "f#2@15 ~", H: "[b1@11 ~ d#2@2 f#2@2]/2", I: "[g#2@27 ~ d#2@4]/2", J: "[b1@11 ~ f#1@2 g#1@2]/2",
K: "[c#2@22 ~@2 c#2@7 ~]/2", L: "[g#1@23 ~ f#1@4 g#1@4]/2", M: "[c#2@23 ~ g#1@4 c#2@4]/2", N: "b1", O: "b1@6 b1!2",
P: "b1@2 d#2 f#2", Q: "g#2@6 g#2!2", R: "g#2 d#2", S: "e2@12 e2 ~ e2 ~", T: "e2@7 ~ e2@2 f#2@6",
U: "~ g#2@2 d#2 b1@4", V: "c#2@13 ~ c#2 ~", W: "c#2@6 d#1 f#1", X: "g#1@15 ~", Y: "g#1@7 ~ g#1@4 b1@4",
Z: "c#2@2 g#1 c#2", AA: "b1@7 b1", AB: "f#1@3 f#1@3 a#1@2", AC: "b1@13 ~ b1 ~", AD: "g#2@13 ~ g#2 ~",
AE: "g#2@2 b2 g#2", AF: "e2@13 ~ e2@2", AG: "e2@7 ~ e2@4 g#2@4", AH: "b1@2 g#2 d#2", AI: "c#2@11 ~ c#2 ~ c#2 ~",
AJ: "g#1@14 g#1 ~", AK: "g#1@11 ~ g#1@2 b1@2", AL: "c#2@11 ~ c#2@3 ~", AM: "f#1@5 ~ f#1 ~ f#1@5 ~ f#1 ~",
AN: "f#1@5 ~ f#1 ~ f#1 ~ f#1 ~ f#1@3 ~", AO: "e1@13 ~ e1 ~", AP: "e1 e2 e1 b1", AQ: "g#1@11 ~ g#1@4",
AR: "g#2@2 g#1@2 g#2 d#2 g#1@2", AS: "f#1@6 f#2 f#1", AT: "f#2@7 ~ f#2@2 c#2@2 f#1@4",
AU: "b2 a#2 g#2 f#2 g#2 f#2 g#2 f#2", AV: "e2@6 b1 d#2", AW: "e2@3 ~ e2@2 f#2@2 g#2@4 f#2@4",
AX: "b1@7 ~ b1@2 a#1 ~ g#1@3 ~", AY: "f#1@11 ~ f#1 ~ f#1 ~", AZ: "f#1@7 ~ f#1@4 g#1@4", BA: "a#1@7 ~ a#1@4 b1@4",
BB: "c#2 f#2", BC: "[b1@9 g#2@2 d#2 b1@4]/2", BD: "b1@6 b1 ~", BE: "f#1@5 ~ f#1 ~ f#1@5 ~@3", BF: "f#1@2 ~ f#1@3 ~@2",
})).s("gm_electric_bass_finger").gain(0.44)
// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
~@6 A@3 ~@15 B@8 C@6 D E F@6 G@2 C@6 H I J@8 K@2 L@2 M@2 N O@2 P@4 Q@2 R@2 S@4 T@4 U@6 V@2 W@6 X@2 Y@2 H Z Y@2 X@2 Y@2
X@2 Y@2 X@2 Y@2 X@2
>`.pickRestart({
A: "[f#8@11 ~@5]/3", B: "[f#4 ~ e5 [f#4,d#5], b4, d#5 ~, ~ g#4@2 ~]/8",
C: "[[c#5,f5]@32 [b4,d#5]@31 ~ [c#5,e5]@32, g#4]/6", D: "[f#4,b4,d#5]", E: "f#5@3 e5, [a#4,c#5]",
F: "[f#5@31 ~@9 d#5@2 c#5@2 ~@2 c#5@2 [g#4,d#5]@16 e5@32, b4@95 ~, ~@32 g#5@63 ~]/6", G: "[b4,d#5,f#5]/2",
H: "[b4,d#5,f#5]", I: "[c#5,f#5,a#5]",
J: "[f#5@32 ~@14 f#5@2 ~@2 c#5@2 b4@12 e5@32 f#5@23 ~ [f#5,f#6]@8, b5@127 ~, d#5@61 ~@35 d#5@31 ~, ~@32 g#5@63 ~@33]/8", // F#
K: "[c#5,f5,g#5,f6]/2", L: "[~@6 d#6 c#6 b5@8, [d#5,g#5], b5@15 ~@17]/2", M: "[c#5,e5,g#5,c#6]/2", N: "[d#5,f#5,b5]",
O: "[a#4,c#5,f#5]/2", P: "[e5@31 ~ d#5@32, [g#4,b4]@63 ~]/4", Q: "[f#4,a#4,c#5]/2", R: "[[g#4,d#5]@31 ~]/2",
S: "[[g#4,e5] [f#4,d#5], b4]/4", T: "[~ e5, [f#4,a#4,c#5]]/4",
U: "[f#5@31 ~@11 c#5@2 b4@2 c#5@2 ~@4 d#5@12 e5@32, d#5@17 ~@15, b4@11 ~ g#4@3 ~@9, ~@32 g#5@63 ~]/6",
V: "[d#5,f#5]/2", W: "[[c#5,f5]@32 [b4,d#5]@31 ~ [c#5,e5,g#5]@32, g#4]/6", X: "[[b4,d#5] [a#4,c#5], f#5]/2",
Y: "[c#5,e5,g#5]/2", Z: "[a#4,c#5,f#5]",
})).s("gm_percussive_organ").gain(0.22).pan(0.2)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
A@2 B@2 A@2 C@2 D@2 E@2 F@2 D@2 G@2 E@2 H@2 I J@4 K@6 L@6 M@3 E@2 F@2 D@2 G@2 E@2 H@2 C@2 D@2 E@2 F@2 D@2 G@2 E@2 H@2
N@2 ~@17 D@2 E@2 F@2 D@2 G@2 E@2 H@2 I O H@2 I O H@2 I O H@2 I O H@2 I O H@2 I O
>`.pickRestart({
A: "[~@3 e4 ~@3 e4 ~@3 e4 ~@3 e4, e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~, ~ g#4@4 g#4@4 g#4@4 g#4@3, ~ a4@2 a4@2 a4@2 a4]/2",
B: "[~@7 d#4 ~@7 d#4, b3@8 b3@9 ~@5 d#4@8 ~@2, ~ f#4@4 f#4@4 f#4@4 f#4@3, ~ b4@2 b4@2 b4@2 b4, ~@3 d#4@4 ~ f#3@4 b3@4]/2",
C: "[~@7 d#4 ~@2 a#4 c#4 [g#3,f#4,b4]@2 [a#3,f#4,c#5]@2, b3@8 b3@9 ~@15, ~@2 f#4@8 f#4@8 f#4@5 ~@9, ~ b4@2 b4@2 ~@3, ~@3 d#4@4 ~ f#3@3 ~@5]/2", // G#m7 F#
D: "~@7 d#4, b3 f#3, ~ f#4@4 f#4@3, ~ b4@2 b4, ~@3 d#4@4 ~",
E: "~@7 d#4, g#3!2, ~ g#4@4 g#4@3, ~ b4@2 b4, ~@3 d#4@4 ~",
F: "~@3 e4 ~@3 e4, e4@3 ~ e4@3 ~, ~ g#4@4 g#4@3, ~ b4@2 b4", G: "~@7 f4, c#4!2, ~ g#4@4 g#4@3, ~ b4@2 b4, ~@3 f4@4 ~",
H: "[~@15 g#4, c#4!2 c#4 e4, ~ g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 ~, ~ c#5@2 c#5@2 c#5@2 c#5]/2",
I: "~@7 d#4, b3!2, ~ f#4@4 f#4@3, ~ b4@2 b4, ~@3 d#4@4 ~",
J: "[~@2 a#4 c#4 [g#3,f#4,b4]@2 ~@25 d#4, f#3@6 ~@6 [a#3,f#4,c#5]@3 d#3@21 b4@8 b4@2 d#4@2 b3@12 b4@4, ~@2 f#4@5 ~@7 b2@24 d#4@8 g#2@18, ~@15 f#3 d#4@2 f#4@2 b4@2 d#4@2 f#3@10 f#4@8 f#4@5 d#3@17, ~@16 b3@10 f#4@2 b4@2 d#4@2 b3@8 f#3@7 g#3 d#4@2 g#4@2 b4@2 d#4@2 g#3@2 g#4@6]/4", // G#m7 F#
K: "[~@30 e4 ~@63 f4@2, g#3@6 d#4@8 d#4@2 b3@18 g#4@8 g#4@5 d#3@23 d#4@8 c#3@18, ~@2 g#4@8 g#4@5 [e3,g#3]@21 b4@8 b4@3 f#3 d#4@2 f#4@2 b4@2 d#4@2 f#3@10 f#4@2 b4@6 f#4@4 d#4@2 f4@2 g#4@4 f4@4 g#4@6, ~@4 b4@8 b4@4 e4@2 g#4@2 b4@4 e4@2 g#4@2 b4@4 e4@8 e4@6 e4@2 b3@10 f#4@2 b4@2 d#4@2 b3@12 b4@3 g#3@17, ~@8 g#3@6 [e2,b2]@26 ~@6 b2@26 f#3@7 c#4@5 b4@4 c#4@4 b4@4]/6", // E E5
L: "[~@47 d#4, c#4@14 f4@2 b3@26 g#4@5 g#3@28 ~@3 b2@14 b4@4, ~@2 g#4@8 g#4@5 d#3@21 b4@8 b4@3 c#4@3 g#4@2 c#5@2 g#4@2 c#4@2 g#4@2 c#5@2 g#4@2 c#4@8 e4@7 [d#3,f#3]@17, ~@4 b4@8 b4@3 g#3 d#4@2 g#4@2 b4@2 d#4@2 g#3@2 g#4@2 b4@2 d#4@2 g#3@2 g#4@4 d#4@8 d#4@2 e4@18 g#4@2 c#5@8 c#5@4 d#4@2 f#4@4 d#4@4 f#4@6, ~@6 f4@8 g#2@26 g#3@5 ~ c#3@24 g#4@4 g#4@4 g#4@2 b3@4 b4@4 b3@8]/6", // D#m
M: "[~@2 a#4 c#4 [g#3,f#4,b4]@2 ~@17 d#4, f#3@6 ~@6 [a#3,f#4,c#5]@3 d#3@21 b4@8 b4@4, ~@2 f#4@5 ~@7 b2@24 d#4@8 ~@2, ~@15 f#3 d#4@2 f#4@2 b4@2 d#4@2 f#3@10 f#4@8 f#4@6, ~@8 b3@5 f#4 b4 d#4 b3@4 f#3@4]/3", // G#m7 F#
N: "[~@7 d#4 ~@8, b3@8 b3@9 ~@15, ~ f#4@4 f#4@4 ~@7, ~ b4@2 b4@2 ~@3, ~@3 d#4@4 ~@9]/2",
O: "~@2 a#4 c#4 ~@2 a#4 c#4, f#3@3 ~ f#3@3 ~, ~@2 f#4@5 ~@3 f#4@5 ~",
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.2)
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<A ~ B C D ~ E F G ~@5 H I ~ J K L M N O ~@102>".pickRestart({
A: "e7 ~ e7 e7@2 e7@2 e7!2 ~ e7 ~ e7!2 ~@2", B: "f#7 ~ f#7 ~ f#7@2 ~ f#7 ~ f#7!2 ~ f#7 ~ f#7!2",
C: "~@2 e7 ~ e7 d#7 e7 [d#7,e7] b6 [d#7,e7] [b6,d#7] [b6,e7] [d#7,e7] b6 [d#7,e7] [b6,d#7]", // Emaj7 B E5 Emaj7 B
D: "[b6,e7] [d#7,e7] b6 d#7 b6!2 ~ b6 ~@8", E: "f#5 ~ f#5 ~@13",
F: "f#5 ~ [f#5,g#5] ~ [f#5,g#5,b5] [f#5,g#5] [b5,c#6] [f#5,g#5,b5] [c#6,d#6] [f#5,g#5,b5,c#6] [f#5,g#5,d#6] [b5,c#6,d#6] [f#5,g#5,b5,f#6] [c#6,d#6] [f#5,g#5,b5,c#6,f#6,g#6] [g#5,d#6,f#6]", // F#sus2 G#m7 F#sus2 Bsus2 G#m7 C#sus2 F#sus4 G#7 …
G: "[b5,c#6,d#6,f#6,g#6] [b5,f#6,g#6] [c#6,d#6,f#6] [f#6,g#6] [d#6,f#6] [d#6,f#6,g#6] [f#6,g#6] [d#6,f#6] [f#6,g#6] [d#6,f#6] [d#6,f#6,g#6] [f#6,g#6] f#6 [f#6,g#6] ~ f#6", // G#m7 D#m7 F#sus2 D#m G#7 F#sus2 D#m F#sus2 …
H: "~@12 d#6 ~ [c#6,d#6] ~", // C#sus2
I: "[b5,c#6,d#6] [c#6,d#6] b5 [b5,c#6,d#6] ~ [b5,c#6,d#6] [c#6,d#6] b5 [b5,d#6] ~ [b5,d#6] d#6 ~@4", // B C#sus2 B C#sus2 B
J: "f6 ~ [f6,f#6] f6 [f#6,g#6] [f6,f#6] g#6 [f6,f#6,g#6] f6 [f#6,g#6] f#6 g#6 [f#6,g#6] ~ [f#6,g#6] ~", // F#maj7 F#sus2 F#maj7 Fm F#sus2
K: "g#6!2 ~@14",
L: "b5 ~ [b5,c#6] b5 [c#6,d#6] [b5,c#6] d#6 [b5,c#6,d#6] b5 [c#6,d#6] [b5,c#6] d#6 [b5,c#6,d#6] ~ [c#6,d#6] c#6", // Bsus2 C#sus2 Bsus2 B C#sus2 Bsus2 B C#sus2
M: "d#6 ~@15", N: "e6 ~ [e6,f#6] ~ [e6,f#6,g#6] [e6,f#6] g#6 [e6,f#6,g#6] ~ [e6,f#6,g#6] f#6 g#6 [f#6,g#6] ~ g#6 ~",
O: "[f#6,g#6] ~ f#6!2 ~ f#6 ~ f#6!2 ~ f#6 ~ f#6!2 ~@2", // F#sus2
})).s("gm_epiano1").gain(0.23).pan(0.6)
// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note("<A B ~ C D ~ E F G H ~@5 I ~ J K L M N O P ~@101>".pickRestart({
A: "~@15 e7", B: "~ e7!2 ~@13", C: "~ f#7 ~ f#7 ~@12", D: "~@3 e7 d#7 e7 d#7 ~ d#7 b6!2 ~@5",
E: "~@3 f#5 ~ f#5 ~ f#5!2 ~ f#5 ~ f#5!2 ~ f#5", F: "d#6!2 ~@13 f#5",
G: "~ [f#5,g#5] ~ [f#5,g#5,b5,c#6] g#5 [b5,c#6] b5 c#6!2 ~@5 f#6 g#6", H: "g#6 f#6 f#6@2 ~@12",
I: "~@8 c#6 ~ c#6!2 b5 [b5,c#6,d#6] ~ [b5,c#6,d#6]", J: "~@10 f6 ~ f6!2 ~ [f6,f#6]",
K: "~ [f6,f#6] f6 [f#6,g#6] f#6 g#6!2 ~@9", L: "~@13 b5 ~ b5", M: "~ [b5,c#6,d#6] b5 [c#6,d#6] c#6 d#6!2 ~@9",
N: "~@10 e6 ~ e6 ~ [e6,f#6]!2", O: "~ [e6,f#6,g#6] ~ [e6,g#6] f#6 g#6!2 ~@8 f#6", P: "~ f#6!2 ~@13",
})).s("gm_epiano1").gain(0.08).pan(0.6)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@85 A B C D E@8 F@6 G H I@2 G H I@2 G H I@2 G ~ I@2 G H I@2 G ~>".pickRestart({
A: "f#3@7 ~ f#3@3 ~ g#3@3 ~", B: "a#3@7 ~ a#3@3 ~ b3@3 ~", C: "c#4@7 ~ c#4@4 [d#4,d#5]@4",
D: "[e4,e5] [f#4,f#5] [g#4,g#5] [e4,a#5]", E: "[f#5 ~ [e4,e5] [d#4,b4,d#5,f#5], b5@127 ~, [d#4,d#5] ~, ~ g#5@2 ~]/8",
F: "[[c#4,c#5,f5] [g#3,b4,d#5] [c#5,e5], g#4, g#5@16 c#4@7 ~]/6", G: "[f#4,b4,d#5]", H: "[c#4,f#4]",
I: "[c#4,c#5,e5]/2", // C#m
})).s("gm_string_ensemble_1").gain(0.3).pan(0.9)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@73 A@2 B@2 C@4 D@2 E@2 F G H I J@2 ~@34>".pickRestart({
A: "[a#4@3 a#4]/2", B: "[f#4@3 f#4]/2", C: "[f#4@3 g#4@5]/4", D: "[a#4@6 b4 c#5]/2", E: "[c#5@29 ~@3]/2",
F: "g#4@3 a#4", G: "b4@12 c5@3 ~", H: "d#5", I: "f#5@15 ~", J: "d#5/2",
})).s("gm_overdriven_guitar").gain(0.18).pan(0.9)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_2 = note("<~@25 A B@3 ~ C D E F G@2 H ~ I ~@32 J K@2 ~@51>".pickRestart({
A: "~@3 d#4 f#4@2 d#4@2", B: "[b3@20 f#3@2 g#3@2 b3@2 c#4@2 b3@15 ~@5]/3", C: "[f#4,b4] [g#4,c#5] [b4,d#5]@6",
D: "[b4,d#5]@2 [a#4,d5] ~ [b4,d#5] ~ [a#4,d5] ~ [b4,d#5] ~ [a#4,d5]@2 [b4,d#5]@2 ~@2", E: "[g#4,c#5] ~", F: "~@3 c#5",
G: "[g#4@22 ~@2 g#4@3 ~ b4@3 ~]/2", H: "c#5", I: "[f#4,b4] [g#4,c#5] ~@2 f#4@4, ~ [b4,d#5]@3",
J: "~@2 a#4 c#4 b3 g#4 b3 a#3", K: "[f#4@4 e4 d#4 c#4 b3@3 ~@6]/2",
})).s("gm_acoustic_guitar_steel").gain(0.45)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note("<~@71 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K@2 ~@34>".pickRestart({
A: "[~@4 c#3@4 f#3@4 b3@3 c#4@6 f#4@3 ~ f#4@3 g#4@2 f#4@2, ~@12 d#4 ~@3]/2", B: "[g#4 f#4@11 f#4@4]/2",
C: "[c#4@3 c#4]/2", D: "[c#4@6 c#4!2]/2", E: "[c#4@6 c#4 g#3 a#3@14 [f#3,g#3] [d#4,g#4] b4@2 g#4@2 g4@2 d#4@2]/2",
F: "[f#4@3 f#4]/2", G: "[c#4@11 g#4@7 d#4@6 b3@8]/2", H: "[c#4@3 d#4@4 f4]/2", I: "f#4@12 a#4 b4 ~ c#5",
J: "d#5 e5 ~ d#5 f#5 d#5 ~ g#5 e5 c#5 ~ a#5 f#5 c#5 ~ a#5", K: "a#5/2",
})).s("gm_overdriven_guitar").gain(0.4).pan(0.3)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note("<~@71 A B@3 C@2 D@2 E@4 F@2 G@2 H I J@2 ~@34>".pickRestart({
A: "~@5 c#4@4 f#4@4 b4@3", B: "[c#5@6 f#5@3 ~ f#5@3 g#5@2 f#5@2 g#5@2 f#5@22 f#5@7, ~@9 d#5@2 ~@37]/3",
C: "[~ c#5@24 c#5@7]/2", D: "[~ c#5@24 c#5@4 c#5@3]/2",
E: "[~ c#5@6 c#5 g#4 a#4@14 [f#4,g#4] [d#5,g#5] b5@2 g#5@2 g5@2 d#5@2 f#5@24 f#5@7]/4", // F#sus2 G#5
F: "[~ c#5@11 g#5@7 d#5@6 b4@7]/2", G: "[c#5@3 d#5@4 f5]/2", H: "f#5@12 c#5 d#5 ~ e5",
I: "f#5 g#5 ~ f#5 a#5 f#5 ~ b5 g#5 e5 ~ c#6 a#5 f#5 ~ c#6", J: "c#6/2",
})).s("gm_overdriven_guitar").gain(0.22).pan(1)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_4 = note("<~@73 A@2 B@2 C@4 D@2 E@2 F G H I J@2 ~@34>".pickRestart({
A: "d#5/2", B: "[a#4@3 a#4]/2", C: "[a#4@3 b4@5]/4", D: "[d#5@6 d#5 d5]/2", E: "[e5@29 ~@3]/2", F: "e4@12 f#4@3 ~",
G: "f#4@11 ~ a#4@4", H: "a#4", I: "c#5@15 ~", J: "b4/2",
})).s("gm_overdriven_guitar").gain(0.18).pan(0.1)
// drums · kick
const kick = s("bd").struct(`<
~@40 A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B ~ A B A B@3 A B A@2 B@2 A B A B A B A B A B A B A
B A B A B A B@2 A B A B A B A B A B D B A B A B A B D
>`.pickRestart({
A: "x ~@6 x", B: "x", C: "x ~@2 x", D: "x ~@2 x!2 ~@3",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct("<~@40 [~ x]!32 [x ~@2 x!4 ~] ~@16 [~ x]!13 [~@5 x ~@2] [~ x]!22>").gain(0.57)
// drums · low tom
const low_tom = s("lt").struct("<~@72 [~@3 x!4 ~] ~@29 [~@3 x] ~@22>").gain(0.36)
// drums · hihat
const hihat = s("hh").struct("<~@24 A@16 B@32 C D E D E D E D E D E D E D E D E B@36>".pickRestart({
A: "~ x", B: "x!4", C: "x!3 ~", D: "x ~ x ~ x ~ x!2", E: "x ~ x!2",
})).gain(0.36)
// drums · mid tom
const mid_tom = s("mt").struct("<~@73 [~ x]!16 ~@36>").gain(0.5)
// drums · open hat
const open_hat = s("oh").struct("<~@72 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@13 C ~@22>".pickRestart({
A: "~@3 x", B: "~ x ~@2", C: "~@7 x",
})).gain(0.36)
// drums · crash
const crash = s("cr").struct("<~@70 x ~@54>").gain(0.36)
// drums · ride
const ride = s("rd").struct("<~@73 [x!4]!16 ~@36>").gain(0.29)
// drums · tambourine
const tambourine = s("tb").struct("<~@40 [~ x]!32 x ~@16 [~ x]!13 [~@5 x ~@2] [~ x]!22>").gain(0.36)
stack(
bass, percussive_organ, acoustic_guitar_steel, epiano1, epiano1_soft, string_ensemble_1, overdriven_guitar,
acoustic_guitar_steel_2, overdriven_guitar_2, overdriven_guitar_3, overdriven_guitar_4, kick, snare, low_tom, hihat,
mid_tom, open_hat, crash, ride, tambourine
)
More by Rod Stewart
Maggie May1971 · D major · 130 bpmIt Takes TwoB♭ major · 122 bpmTwistin The Night Away (From "Innerspace")1987 · D major · 136 bpmDa Ya Think I'm SexyD minor · 114 bpmSome Guys Have All the LuckD major · 118 bpmRhythm of My HeartD♭ major · 94 bpmTom Traubert's Blues (Waltzing Matilda)C major · 73 bpmTonight's the NightB major · 91 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.