0:00/0:00
// Keep on Smiling — Wet Willie
// 92 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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.
// chords · piano
const piano = note(`<
~ A@5 B@2 A@2 B@2 C D E F B@2 C F@2 B@2 C F@2 G H I F G H J K F B@2 L A B@2 A@2 B@2 M N O P@2 Q O@2 R@2 S O@2 T U V O
T U W X@3 P@2 X@2 P@2 V O Y
>`.pickRestart({
A: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3 [a4,c#5,e5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~", // A F#m A F#m A F#m
B: "~@2 [g#4,b4,d5] ~ [g#4,b4,d5] ~@3 [g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~", // G#dim
C: "~@2 [g#4,b4,d5] ~ [g#4,b4,d5] ~@3 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // G#dim A F#m
D: "[a4,c#5,e5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5]!2 ~ [a4,c#5,e5]", // A F#m A F#m A
E: "[a4,c#5,e5] ~@7 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // A F#m
F: "[a4,c#5,e5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // A F#m A F#m A F#m
G: "[a4,c#5,e5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~ [a4,c#5,e5] [a4,c#5,f#5] ~@3 [g#4,b4,d5] ~ [g#4,b4,d5] ~@3", // A F#m A F#m G#dim
H: "[g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~@3 [g#4,b4,d5] ~ [g#4,b4,d5] ~@3", // G#dim
I: "[g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // G#dim A F#m
J: "[g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~", // G#dim
K: "[e4,a4,c#5] ~@7 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", L: "~@2 [g#4,b4,d5] ~ [g#4,b4,d5] ~@11",
M: "[g#4,b4,d5] ~ [g#4,b4,d5]!2 ~ [g#4,b4,d5]!2 ~@9", N: "~@8 [a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3",
O: "[a#4,d5,f5] ~ [a#4,d5,f5] [a#4,d5,g5] ~ [a#4,d5,f5] [a#4,d5,g5] ~ [a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", // A# Gm A# Gm A# Gm
P: "~@2 [a4,c5,d#5] ~ [a4,c5,d#5] ~@3 [a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~", // Adim
Q: "~@2 [a4,c5,d#5] ~ [a4,c5,d#5] ~@3 [a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", // Adim A# Gm
R: "[a4,c5,d#5] ~ [a4,c5,d#5] ~ [a4,c5,d#5] ~@3 [a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~", // Adim
S: "[a4,c5,d#5] ~ [a4,c5,d#5] ~ [a4,c5,d#5] ~@3 [a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", // Adim A# Gm
T: "[a#4,d5,f5] ~ [a#4,d5,f5] [a#4,d5,g5] ~ [a#4,d5,f5] [a#4,d5,g5] ~@3 [a4,c5,d#5] ~ [a4,c5,d#5] ~@3", // A# Gm A# Gm Adim
U: "[a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~@3 [a4,c5,d#5] ~ [a4,c5,d#5] ~@3", // Adim
V: "[a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~ [a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", // Adim A# Gm
W: "[a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5] ~ [a4,c5,d#5]!2 ~ [a4,c5,d#5]!2 ~", // Adim
X: "[a#4,d5,f5] ~ [a#4,d5,f5] ~ [a#4,d5,g5] ~@3 [a#4,d5,f5] ~ [a#4,d5,f5] [a#4,d5,g5] ~ [a#4,d5,f5] [a#4,d5,g5] ~", // A# Gm A# Gm A# Gm
Y: "[a#4,d5,f5] ~ [a#4,d5,f5] [a#4,d5,g5] ~ [a#4,d5,f5] [a#4,d5,g5] ~@9", // A# Gm A# Gm
})).s("gm_piano").gain(0.39)
// bass · electric bass finger
const bass = note(`<
~@3 A@3 B@2 A@2 B@2 C D E A B@2 C A@2 B@2 C A@2 F B C A F B@2 G A B@2 C A B@2 A@2 B@2 H I J K@2 L M@2 K@2 L M@2 N K L
M N K@2 M@3 K@2 M@2 K@2 L M O
>`.pickRestart({
A: "a1 ~ e2 ~ a1 ~ e2 ~", B: "e2 ~ b1 ~ e2 ~ b1 ~", C: "e2 ~ b1 ~ a1 ~ e2 ~",
D: "a1@2 ~@2 e2@2 ~@2 a1 ~ a1 ~ e2!2 ~ e2", E: "a1 ~@7 a1@2 ~@2 e2@2 ~@2", F: "a1 ~ e2 ~ e2 ~ b1 ~",
G: "a1 ~@3 a1 ~ e2 ~", H: "e2@2 ~@2 b1@2 ~@6 a1!2 ~ a1", I: "a#1@4 a#1 ~ f2 ~",
J: "a#1@2 ~@2 f2@2 ~@2 a#1@2 ~ a#1 e2 ~ f2 ~", K: "f2 ~ c2 ~ f2 ~ c2 ~", L: "f2 ~ c2 ~ a#1 ~ f2 ~",
M: "a#1 ~ f2 ~ a#1 ~ f2 ~", N: "a#1 ~ f2 ~ f2 ~ c2 ~", O: "a#1 ~ f2 ~@5",
})).s("gm_electric_bass_finger").gain(0.45)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@14 A@2 B@3 C@2 D@5 ~@20 E@2 F@3 G@2 H@4 ~@20>".pickRestart({
A: "[~ [a4,c#5]@3]/2", B: "[[e4,g#4] [f#4,a4] [g4,a#4] [g#4,b4]@7 [a4,c#5] [b4,d5]]/3", C: "[[c5,d#5] [c#5,e5]@7]/2",
D: "[[e4,g#4] [f#4,a4] [g4,a#4] [g#4,b4]@7 [a4,c#5]@7 ~@3]/5", E: "[~ [a#4,d5]@3]/2",
F: "[[f4,a4] [g4,a#4] [g#4,b4] [a4,c5]@7 [a#4,d5] [c5,d#5]]/3", G: "[[c#5,e5] [d5,f5]@7]/2",
H: "[[f4,a4] [g4,a#4] [g#4,b4] [a4,c5]@7 [f4,a#4]@6]/4", // F Gm G#m Am A#5
})).s("gm_string_ensemble_1").gain(0.17)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~ A@2 B@3 C@2 B@2 C@2 D E F G C@2 D G@2 C@2 D G@2 H I J G H I@2 K G C@2 L B C@2 B@2 C@2 M N O P@2 Q O@2 P@2 Q O R S T
U V S T W X@3 Y@2 X@2 Y@2 U V Z
>`.pickRestart({
A: "[e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4 [e3,a3,c#4,e4,a4]!3 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]", // A F#m7 A F#m7 A F#m7 A
B: "[e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4 [e3,a3,c#4,e4,a4]!3 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4], ~@3 e2", // A F#m7 A F#m7 A F#m7 A
C: "[e3,g#3,b3,e4,g#4]!4 [e3,g#3,b3,f#4,g#4]!4 [e3,g#3,b3,e4,g#4]!3 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4]!2 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4], ~@3 e2", // E
D: "[e3,g#3,b3,e4,g#4]!4 [e3,g#3,b3,f#4,g#4]!4 [e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4", // E A F#m7
E: "[e3,a3,c#4,e4,a4]!3 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 ~ [e3,a3,c#4,e4,a4] ~ [e3,a3,c#4,e4,a4]!2 ~ [e3,a3,c#4,e4,a4], ~ e2 ~@2", // A F#m7 A F#m7 A
F: "[e3,a3,c#4,e4,a4] ~@7 [e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4", // A F#m7
G: "[e3,a3,c#4,e4,a4]!3 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!5 [e3,a3,c#4,f#4,a4]!4, ~ e2 ~@2", // A F#m7 A F#m7 A F#m7
H: "[e3,a3,c#4,e4,a4]!3 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4]!2 [e3,a3,c#4,f#4,a4] [e3,a3,c#4,e4,a4] [e3,g#3,b3,e4,g#4]!4 [e3,g#3,b3,f#4,g#4]!4, ~ e2 ~@2", // A F#m7 A F#m7 A E
I: "[e3,g#3,b3,e4,g#4]!3 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4]!2 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4]!5 [e3,g#3,b3,f#4,g#4]!4, ~ e2 ~@2", // E
J: "[e3,g#3,b3,e4,g#4]!3 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4]!2 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4] [e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4, ~ e2 ~@2", // E A F#m7
K: "~@8 [e3,a3,c#4,e4,a4]!4 [e3,a3,c#4,f#4,a4]!4", L: "[e3,g#3,b3,e4,g#4]!4 [e3,g#3,b3,f#4,g#4]!4 ~@8",
M: "[e3,g#3,b3,e4,g#4]!3 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4]!2 [e3,g#3,b3,f#4,g#4] [e3,g#3,b3,e4,g#4] [e3,a3,c#4,e4] ~@7, ~ e2 ~@2", // E A
N: "~@8 [d3,f3,a#3,d4,f4]!8", O: "[d3,f3,a#3,d4,f4]!16", P: "[c3,f3,a3,c4,f4]!16",
Q: "[c3,f3,a3,c4,f4]!8 [d3,f3,a#3,d4,f4]!8", R: "[d3,f3,a#3,d4,f4]!8 [f3,a#3,d4,f4,a#4]!4 [f3,a#3,d4,g4,a#4]!4",
S: "[f3,a#3,d4,f4,a#4]!3 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4]!2 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4] [f3,a3,c4,f4,a4]!4 [f3,a3,c4,g4,a4]!4, ~ f2 ~@2", // A# Gm7 A# Gm7 A# F
T: "[f3,a3,c4,f4,a4]!3 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!2 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!5 [f3,a3,c4,g4,a4]!4, ~ f2 ~@2", // F
U: "[f3,a3,c4,f4,a4]!3 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!2 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4] [f3,a#3,d4,f4,a#4]!4 [f3,a#3,d4,g4,a#4]!4, ~ f2 ~@2", // F A# Gm7
V: "[f3,a#3,d4,f4,a#4]!3 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4]!2 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4]!5 [f3,a#3,d4,g4,a#4]!4, ~ f2 ~@2", // A# Gm7 A# Gm7 A# Gm7
W: "[f3,a3,c4,f4,a4]!3 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!2 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!4 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!2 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4], ~ f2 ~ f2", // F
X: "[f3,a#3,d4,f4,a#4]!4 [f3,a#3,d4,g4,a#4]!4 [f3,a#3,d4,f4,a#4]!3 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4]!2 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4], ~@3 f2", // A# Gm7 A# Gm7 A# Gm7 A#
Y: "[f3,a3,c4,f4,a4]!4 [f3,a3,c4,g4,a4]!4 [f3,a3,c4,f4,a4]!3 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4]!2 [f3,a3,c4,g4,a4] [f3,a3,c4,f4,a4], ~@3 f2", // F
Z: "[f3,a#3,d4,f4,a#4]!3 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4]!2 [f3,a#3,d4,g4,a#4] [f3,a#3,d4,f4,a#4] ~@8, ~ f2 ~@2", // A# Gm7 A# Gm7 A#
})).s("gm_acoustic_guitar_steel").gain(0.25)
// chords · marimba
const marimba = note(`<
~ A@5 B@2 A@2 B@2 C D E F B@2 C F@2 B@2 C F@2 G H I F G H J K F L M N A B@2 A@2 O B P Q R S@2 T U@2 S@2 T U V W X Y Z
AA AB AC AD@3 AE@2 AD@2 AF AE AG Z AH
>`.pickRestart({
A: "[a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3 [a4,c#5] ~ [a4,c#5]!2 ~@4", // A
B: "[g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~@3 [g#4,b4] ~ [g#4,b4]!2 ~@4", // G#m
C: "[g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~@3 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3", D: "[a4,c#5] ~ [a4,c#5]!2 ~@12",
E: "~@8 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3", F: "[a4,c#5] ~ [a4,c#5]!2 ~@4 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3",
G: "[a4,c#5] ~ [a4,c#5]!2 ~@4 [g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~@3", // A G#m
H: "[g#4,b4] ~ [g#4,b4]!2 ~@4 [g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~@3", // G#m
I: "[g#4,b4] ~ [g#4,b4]!2 ~@4 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3", // G#m A
J: "[g#4,b4] ~ [g#4,b4]!2 ~@4 [g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~", // G#m
K: "[a4,c#5] ~@7 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~@3", // A
L: "g#4 [e4,g#4]!2 e4 a4 [f#4,a4]!2 f#4 a#4 [g4,a#4]!2 g4 b4 [g#4,b4]!3", // E F#m Gm G#m
M: "[g#4,b4,e5] [g#4,b4] [g#4,b4,e5] [g#4,b4] [g#4,b4,f#5] [g#4,b4]!3 [g#4,b4,e5] [g#4,b4] [g#4,b4,e5] [g#4,b4,f#5] [g#4,b4] [g#4,b4,e5] [g#4,b4,f#5] [g#4,b4]", // E G#m E G#m G#m7 G#m E G#m …
N: "[g#4,b4,e5] ~ [b4,e5] ~ [b4,f#5] ~@11", // E E5 B5
O: "[g#4,b4] ~ [g#4,b4,e5] ~ [g#4,b4,f#5] ~@3 [g#4,b4,e5] ~ [g#4,b4,e5] [g#4,b4,f#5] ~ [g#4,b4,e5] [g#4,b4,f#5] ~", // G#m E G#m7 E G#m7 E G#m7
P: "[g#4,b4] ~ [g#4,b4]!5 ~ [a4,c#5] ~@7", Q: "~@8 [d5,f5] ~ [d5,f5] ~ [d5,g5] ~@3",
R: "[d5,f5] ~@2 [d5,g5] ~ [d5,g5]!2 ~ [d5,f5] ~ [d5,f5] ~ [d5,g5] ~@3", // Dm G5 Dm G5
S: "[d#5,f5] ~ [d#5,f5] ~ [d#5,g5] ~@3 [d#5,f5] ~ [d#5,f5] [d#5,g5] ~ [d#5,g5]!2 ~", // D#sus2 D# D#sus2 D#
T: "[d#5,f5] ~ [d#5,f5] ~ [d#5,g5] ~@3 [d5,f5] ~ [d5,f5] ~ [d5,g5] ~@3", // D#sus2 D# Dm G5
U: "[d5,f5] ~ [d5,f5] [d5,g5] ~ [d5,g5]!2 ~ [d5,f5] ~ [d5,f5] ~ [d5,g5] ~@3", // Dm G5 Dm G5
V: "[d5,f5] ~ [d5,f5] [d5,g5] ~ [d5,g5]!2 ~ [a#4,d5] ~ [a#4,d5] ~ [a#4,d5] ~@3", // Dm G5 A#
W: "[a#4,d5] ~ [a#4,d5]!2 ~@4 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~@3", // A# Am
X: "[a4,c5] ~ [a4,c5]!2 ~@4 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~@3", // Am
Y: "[a4,c5] ~ [a4,c5]!2 ~@4 [a#4,d5] ~ [a#4,d5] ~ [a#4,d5] ~@3", // Am A#
Z: "[a#4,d5] ~ [a#4,d5]!2 ~@4 [a#4,d5] ~ [a#4,d5] ~ [a#4,d5] ~@3", // A#
AA: "[a#4,d5] ~ [a#4,d5]!2 ~@4 [a4,c5] ~ [a4,c5,f5] ~ [a4,c5,g5] ~@3", // A# Am F Am7
AB: "[a4,c5,f5] ~ [a4,c5,f5] [a4,c5,g5] ~ [a4,c5,f5] [a4,c5,g5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~@3", // F Am7 F Am7 Am
AC: "[a4,c5] ~ [a4,c5]!2 ~@4 [a4,c5] ~ [a4,c5]!2 ~ [a4,c5]!2 ~", // Am
AD: "[a#4,d5] ~ [a#4,d5] ~ [a#4,d5] ~@3 [a#4,d5] ~ [a#4,d5]!2 ~@4", // A#
AE: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~@3 [a4,c5] ~ [a4,c5]!2 ~@4", // Am
AF: "[a4,c5] ~ [a4,c5,f5] ~ [a4,c5,g5] ~@3 [a4,c5,f5] ~ [a4,c5,f5] [a4,c5,g5] ~ [a4,c5,f5] [a4,c5,g5] ~", // Am F Am7 F Am7 F Am7
AG: "[a4,c5] ~ [a4,c5]!2 ~ [a4,c5]!2 ~ [a#4,d5] ~ [a#4,d5] ~ [a#4,d5] ~@3", AH: "[a#4,d5] ~ [a#4,d5]!2 ~@12",
})).s("gm_marimba").gain(0.43)
// chords · trombone
const trombone = note(`<
~@3 A@3 ~ B ~ A ~ C D E ~@9 F G@2 E H I D E J@2 ~@5 K L@2 ~ K ~ M ~ N ~@10 O P Q R O S T@2 ~@2 U V@2 ~ U ~ W ~@3
>`.pickRestart({
A: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4]!2 ~@4", // A
B: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,f#4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] [g#3,b3,f#4] ~@4", C: "e2@3 ~",
D: "~@8 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~@3", E: "[a3,c#4,e4]@2 [a3,c#4,e4]!2 ~@12",
F: "~@10 [a3,c#4,e4] ~ [a3,c#4,e4] ~@3", // A
G: "[a3,c#4,e4]@2 [a3,c#4,e4]!2 ~@4 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~@3", // A
H: "~@8 [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,f#4] ~@3", I: "[g#3,b3,e4]@2 [g#3,b3,e4] [g#3,b3,f#4] ~@12",
J: "[~@2 e2@5 ~]/2", K: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,f#4] ~@3 [a3,c#4,e4]@2 ~ [a3,c#4,f#4] ~@4",
L: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,f#4] ~@3 [g#3,b3,e4]@2 ~ [g#3,b3,f#4] ~@4", M: "e2", N: "[f3,a#3] ~",
O: "~@8 [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,g4] ~@3", // A# Gm
P: "[a#3,d4,f4]@2 ~ [a#3,d4,g4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,g4] ~@3", // A# Gm F Am7
Q: "[a3,c4,f4]@2 ~ [a3,c4,g4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,g4] ~@3", R: "[a3,c4,f4]@2 ~ [a3,c4,g4] ~@12",
S: "[a#3,d4,f4]@2 ~ [a#3,d4,g4] ~@12", T: "[~ f2@2 ~]/2",
U: "[a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,g4] ~@3 [a#3,d4,f4]@2 ~ [a#3,d4,g4] ~@4", // A# Gm A# Gm
V: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,g4] ~@3 [a3,c4,f4]@2 ~ [a3,c4,g4] ~@4", W: "f2",
})).s("gm_trombone").gain(0.36).pan(0.4)
// chords · trumpet
const trumpet = note(`<
~@3 A@2 ~ B ~ C ~@2 D E F G ~@3 H@2 ~ I@2 J K L M N J L ~ O@2 P@3 Q R S B T C S ~ U V W ~@3 X@2 ~ Y@2 Z AA AB AC AD AE
AB AF AG@2 AH@2 AI AJ AK AH AI ~ AL Z AA AM
>`.pickRestart({
A: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3 [a4,c#5,e5]@3 [a4,c#5,f#5] ~@4", // A F#m A F#m
B: "~@2 [g#4,b4,e5] ~ [g#4,b4,f#5] ~@3 [g#4,b4,e5]@3 [g#4,b4,f#5] ~@4", // E G#m7 E G#m7
C: "~@2 [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3 [a4,c#5,e5]@3 [a4,c#5,f#5] ~@4", D: "e2@3 ~",
E: "~@8 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", F: "[a4,c#5,e5]@3 [a4,c#5,f#5] ~@8 e4!2 ~ e4", G: "a3 ~@15",
H: "[~@11 a4 b4 c#5@2 e4@11 ~@6]/2",
I: "[~@3 [a4,c#5] [b4,d5] [c#5,e5] ~ [b4,d5] ~ [a4,c#5] ~ [g#4,b4] ~ [f#4,a4] ~ [e4,g#4]@9 ~@8]/2", // A Bm C#m Bm A G#m F#m E
J: "~@10 [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // A F#m
K: "[a4,c#5,e5]@3 [a4,c#5,f#5] ~@4 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5] ~@3", // A F#m A F#m
L: "[a4,c#5,e5]@3 [a4,c#5,f#5] ~@12", M: "~@10 [g#4,b4,e5] ~ [g#4,b4,f#5] ~@3", N: "[g#4,b4,e5]@3 [g#4,b4,f#5] ~@12",
O: "[~@2 e2@5 ~]/2",
P: "[~@3 [a4,c#5]!2 ~ [a4,c#5] ~ [a4,c#5]@3 [g#4,b4] [f#4,a4] [d4,f#4] ~ [c#4,e4]@4 ~ [a4,c#5] ~ [a4,c#5] ~ [a4,c#5]@3 [f#4,a4] [g#4,b4] [a4,c#5] ~ [b4,d5]@10 ~@3 [b4,d5] ~ [c#5,e5] ~]/3", // A G#m F#m D C#m A F#m G#m …
Q: "[d5,f#5]@3 [c#5,e5] [b4,d5] [a4,c#5] ~ [g#4,b4]@3 ~ [a4,c#5] [g#4,b4] [f#4,a4] ~ [e4,g#4]", // D C#m Bm A G#m A G#m F#m …
R: "~ [d5,f#5] ~ [c#5,e5] ~ [b4,d5] [a4,c#5]@10", // D C#m Bm A
S: "~@2 [c#4,e4] [d4,f#4] [e4,g#4] [f#4,a4] ~ [a4,c#5] ~ [b4,d5] ~ [c#5,e5] ~@4", // C#m D E F#m A Bm C#m
T: "~@2 [c#4,e4] [d4,f#4] [e4,g#4] [f#4,a4] ~ [g#4,b4] ~ [a4,c#5] ~ [b4,d5] ~@4", U: "e2",
V: "~@12 [a3,c#4,e4,e5]!2 ~ [a3,c#4,e4,e5]", W: "[a#3,d4,f4,f5] ~", X: "[~@11 a#4 c5 d5@2 f4@11 ~@6]/2",
Y: "[~@3 [a#4,d5] [c5,d#5] [d5,f5] ~ [c5,d#5] ~ [a#4,d5] ~ [a4,c5] ~ [g4,a#4] ~ [f4,a4]@9 ~@8]/2", // A# Cm Dm Cm A# Am Gm F
Z: "~@10 [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", AA: "[a#4,d5,f5]@3 [a#4,d5,g5] ~@6 [a#4,d5,f5] ~ [a#4,d5,g5] ~@3",
AB: "[a#4,d5,f5]@3 [a#4,d5,g5] ~@6 [d4,f4] [d#4,g4] [f4,a4] [g4,a#4] ~ [a#4,d5]", // A# Gm Dm D# F Gm A#
AC: "~ [c5,d#5] ~ [d5,f5] ~@6 [a4,c5,f5] ~ [a4,c5,g5] ~@3", // Cm Dm F Am7
AD: "[a4,c5,f5]@3 [a4,c5,g5] ~@6 [d4,f4] [d#4,g4] [f4,a4] [g4,a#4] ~ [a4,c5]", // F Am7 Dm D# F Gm Am
AE: "~ [a#4,d5] ~ [c5,d#5] ~@6 [a#4,d5,f5] ~ [a#4,d5,g5] ~@3", AF: "~ [c5,d#5] ~ [d5,f5] ~@12", AG: "[~ f2@2 ~]/2",
AH: "~@2 [a#4,d5,f5] ~ [a#4,d5,g5] ~@3 [a#4,d5,f5]@3 [a#4,d5,g5] ~@4", // A# Gm A# Gm
AI: "~@2 [d4,f4] [d#4,g4] [f4,a4] [g4,a#4] ~ [a#4,d5] ~ [c5,d#5] ~ [d5,f5] ~@4", // Dm D# F Gm A# Cm Dm
AJ: "~@2 [a4,c5,f5] ~ [a4,c5,g5] ~@3 [a4,c5,f5]@3 [a4,c5,g5] ~@4", // F Am7 F Am7
AK: "~@2 [d4,f4] [d#4,g4] [f4,a4] [g4,a#4] ~ [a4,c5] ~ [a#4,d5] ~ [c5,d#5] ~@4", AL: "f2",
AM: "[a#4,d5,f5]@3 [a#4,d5,g5] ~@12", // A# Gm
})).s("gm_trumpet").gain(0.31)
// drums · kick
const kick = s("bd").struct("<~@3 A@10 B C A@18 D A@11 B E A@29 B>".pickRestart({
A: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@11", C: "~@7 x!2 ~@2 x!2 ~@3", D: "x ~@7 x ~@2 x!2 ~@3",
E: "~@8 x ~@2 x!2 ~@3",
})).gain(0.52)
// drums · rim
const rim = s("rim").struct("<~@30 [~@5 x ~ x] [~ x ~ x ~ x ~ x]!2 ~@44>").gain(0.52)
// drums · snare
const snare = s("sd").struct("<~@2 A B@10 C D B@10 E B@7 F B@3 G B@7 H I B@9 J E B@18 K>".pickRestart({
A: "~@7 x", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~ x ~ x ~ x!2 ~ x", D: "x ~@2 x!3 ~@4 x ~@3 x ~",
E: "~@2 x!2 ~@6 x ~@3 x ~", F: "x ~@4 x ~ x", G: "~@2 x ~@3 x ~ x!2 ~@6", H: "~@2 x ~@3 x ~ x!4 ~@4",
I: "~@3 x!2 ~@5 x ~@3 x ~", J: "~@2 x ~@3 x!2 ~@2 x ~@3 x ~", K: "~ x ~ x ~@4",
})).gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<~@2 A ~@22 B ~@11 C ~@8 D ~@10 B ~@19>".pickRestart({
A: "~@7 x", B: "~@6 x!2 ~@8", C: "~@12 x!4", D: "x ~@2 x ~@4",
})).gain(0.46)
// … 31 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.