0:00/0:00
// This Time I Know It's Real — Summer Donna
// 120 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@3 A B C D C B C E F@2 G@2 H I G@2 H J E K G L C B C D C B C E F@2 G@2 H I G@2 H J E K G L C B C D C B C E F@2 H@2
M@2 H@2 G@2 H@2 G@2 H N E K O L C B C D C B C E C B C D C B C E C B C D C B C E F P
>`.pickRestart({
A: "a1 ~ a1 ~ e1@2 f#1 ~@2 a1 ~ e1 f#1@2 a1 ~", B: "b1 ~ b1 ~ f#1@2 a1 e1 ~ e2 ~ f#1 a1@2 b1 ~",
C: "a1 ~ a1 ~ e1@2 f#1 a1 ~ a1 ~ e1 f#1@2 a1 ~", D: "g#1 ~ g#1 ~ d#1@2 d#1 c#2 ~ c#2 ~ e1 g#1@2 b1 ~",
E: "g#1 ~ g#1 ~ d#1@2 f#1 g#1 ~ g#1 ~ d#1 f#1@2 g#1 ~", F: "c#2 ~ c#2 ~ c#1@2 g#1 c#2 ~ c#2 ~ c#1 g#1@2 c#2 ~",
G: "f#1 ~ f#1 ~ c#1@2 d#1 f#1 ~ f#1 ~ c#1 d#1@2 f#1 ~", H: "c#1 ~ c#1 ~ g#1@2 c#2 c#1 ~ c#1 ~ c#1 g#1@2 c#2 ~",
I: "c#1 ~ c#1 ~ g#1@2 c#2 c#1 ~ c#1 ~ c#1 d#1@2 c#1 ~", J: "a#0 ~ a#0 ~ c#1@2 f1 a#0 ~ a#0 ~ a#0 c#1@2 f1 ~",
K: "g#1 ~ g#1 ~ d#1@2 f1 g#1 ~ g#1 ~ d#1 f1@2 g#1 ~", L: "f#1 ~ f#1 ~ c#1@2 d#1 g#1 ~ g#1 ~ d#1 f#1@2 g#1 ~",
M: "c#2 ~ c#2 ~ g#1@2 a#1 c#2 ~ c#2 ~ f1 g#1@2 c#2 ~", N: "a#1 ~ a#1 ~ f1@2 g#1 a#1 ~ a#1 ~ f1 g#1@2 a#1 ~",
O: "f#1 ~ f#1 ~ c#1@2 d#1 ~@2 f#1 ~ c#1 d#1@2 f#1 ~", P: "c#1 ~ c#1 ~ g#1@2 c#2 c#1 ~@8",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · synth brass 1 · "SYNTHBRASS"
const synth_brass_1 = note(`<
A@3 B C B D B C E F G@2 H I J@2 K I L M N O P Q B C B D B C E F G@2 H I J@2 K I R M N O P Q B C B D B C E F S@2 T@2
U@2 T@2 V W X@2 Y@2 Z AA N O P Q B C B D B C E F B C B D B C E F B C B D B C E F AB@2
>`.pickRestart({
A: "[g#2,g#3]/3", B: "[a4,c#5,e5]", C: "[b4,d#5,f#5]@3 [b4,e5,g#5]@3 [b4,d#5,f#5]@2",
D: "d#5 e5 f#5 c#5@3 b4@2, [g#4,b4]@3 [g#4,e5]@5", E: "g#5@3 f#5@3 ~@2, [c#5,e5]", F: "d#5@3 e5@3 f#5@2, [g#4,c5]",
G: "[g#4,c#5,f5]/2", H: "[f#4,a#4,c#5]@3 [f#4,a#4,c#5]", I: "[f#4,a4,c#5]@3 [f#4,a4,c#5]",
J: "[[f4,g#4,c#5]@7 [f4,a4,c#5]]/2", K: "[f#4,a#4,c#5]", L: "[f4,g#4,c#5]", M: "[f4,a#4,c#5]", N: "[f#4,b4,d#5]",
O: "[g#4,b4,f5]", P: "[g#4,a#4,c#5,f5]", Q: "[f#4,a#4,c#5]@3 [g#4,c5,d#5]@5", R: "[f4,g#4,c#5]@3 [f4,g#4,c#5]",
S: "[[c#5,f5]@18 [c#5,f5,g#5]@2 [c#5,f5,g#5]!2 ~ [d#5,f5,g#5] ~ [d#5,f5,g#5] ~ [c#5,f5,g#5] [d#5,f5,g#5]@2 [c#5,f5,g#5] ~, g#4]/2", // C# Fm7 C# Fm7 C#
T: "[b3 ~ b3 ~@3 b3 ~ b3!2 ~ b3 b3@2 b3 ~ b3@2 [b4,c#5,d#5]@2 ~ [b4,c#5,d#5] [b3,f#5] [b4,c#5,d#5] b3 [b3,b4,c#5,d#5,f#5] ~ [b3,b4,c#5,d#5,f#5] [b4,c#5,d#5]@2 [b3,b4,c#5,d#5] ~, [b4,c#5,d#5,f#5]@18 f#5@3 ~@3 a#5@4 f#5@4, ~@18 b3 ~@9 b3 ~@3]/2", // B B5 B
U: "[c#4 ~ c#4 ~@3 c#4 ~ c#4!2 ~ c#4 c#4@2 c#4 ~ c#4@2 [c#5,d#5,f5]@2 ~ [c#5,d#5,f5] [c#4,g#5] [c#5,d#5,f5] [c#4,g#5] [c#4,c#5,d#5,f5,g#5] ~ [c#4,c#5,d#5,f5,g#5] [c#5,d#5,f5]@2 [c#4,c#5,d#5,f5,g#5] ~, [c#5,d#5,f5,g#5]@18 g#5@3 ~@11, ~@18 c#4 ~@9 [c#4,g#5] ~@3]/2", // C# C#5 C# C#5 C# C#5
V: "f#3@2 [a#4,c#5,g#5]@2 ~@2 f#3 ~ [a#4,c#5,g#5] [f#3,a#4,c#5,g#5] ~ [f#3,a#4,c#5,g#5] [a#4,c#5,f#5]@2 [f#3,a#4,c#5,f#5] ~, ~@2 f#3 ~@2 [a#4,c#5,f#5]@2 ~@5 f#3 ~@3", // A#m7 F#
W: "f#3@2 [a4,c#5,g#5]@2 ~@2 f#3 ~ [a4,c#5,g#5] [f#3,a4,c#5,g#5] ~ [f#3,a4,c#5,g#5] [a4,d#5,f#5]@2 [f#3,a4,c#5,f#5] ~, ~@2 f#3 ~@2 [a4,c#5,f#5]@2 ~@5 f#3 ~@3", // Amaj7 F#m D#dim F#m
X: "[c#4@2 [c#4,d#5] ~ c#5@2 c#4 d#5 c#4 [c#4,d#5] ~ [c#4,d#5] c#5@2 [c#4,c#5] ~ c#4@2 [c#4,d#5] ~ c#5@2 c#4 d#5 c#4 [c#4,d#5] ~ [c#4,c#5] d#5@2 [c#4,f#5] ~, [f4,g#4], d#5 ~@11 c#4 ~@3 d#5 ~@11 c#4 ~@3]/2", // C#sus2 C# C#sus2 C# F#5 Fm
Y: "[[f#3,g#5] ~ [f#3,g#5] ~ f#5@2 f#3 g#5 f#3 [f#3,g#5] ~ [f#3,g#5] f#5@2 [f#3,f#5] ~ f#3@2 [f#3,g#5] ~ f#5@2 f#3 g#5 f#3 [f#3,g#5] ~ [f#3,c#5] d#5@2 [f#3,f#5] ~, [f#4,a#4], ~@12 f#3 ~@3 g#5 ~@11 f#3 ~@3]/2", // F#sus2 F# F#sus2 F#5 F#
Z: "[c#4,d#5] ~ [c#4,d#5] ~ c#5@2 c#4 d#5 c#4 [c#4,d#5] ~ [c#4,d#5] c#5@2 [c#4,c#5] ~, [f4,g#4], ~@12 c#4 ~@3", // C#sus2 C# Fm
AA: "[c#4,d#5] ~ [c#4,d#5] ~ c#5@2 c#4 d#5 c#4 [c#4,d#5] ~ [c#4,d#5] c#5@2 [c#4,c#5] ~, [f4,a#4], ~@12 c#4 ~@3", // C#sus2 C# A#5
AB: "[~@18 c#6 ~ c#6 ~ c#6!2 ~@8, [g#4,c#5,f5]@23 ~@9]/2", // C#
})).s("gm_synth_brass_1").gain(0.3)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A@3 B C B D B C E F G@2 H@2 I@2 H@2 J@3 K L M B C B D B C E F G@2 H@2 I@2 H@2 J@3 K L M B C B D B C E F G@2 N@2 O@2
N@2 P Q R@2 P Q S@3 K L M B C B D B C E F B C B D B C E F B C B D B C E F T@2
>`.pickRestart({
A: "[g#1,g#2]/3", B: "[a3,c#4,e4,c#5,e5]", C: "[d#4,f#4,d#5,f#5]@3 [e4,g#4,e5,g#5]@3 [d#4,f#4,d#5,f#5]@2, b3",
D: "d#5 e5 f#5 [c#4,c#5,e5]@3 [b3,b4]@2, g#3, [b3,d#4,b4]@3 e4@5", // C#m B
E: "[e5,g#5]@3 [d#5,f#5]@3 [c#5,e5]@2, [a3,c#4,e4]", F: "[c5,d#5]@3 [c#5,e5]@3 [d#5,f#5]@2, [g#3,c4,d#4]",
G: "[g#3,c#4,f4,c#5,f5]/2", H: "[a#3 a3, [f#3,c#4]]/2", I: "[g#3@7 a3, [f3,c#4]]/2",
J: "[~@24 a#4 g#4 a#4 c5 c#5 c5 c#5 ~ [f#3,b3,d#4,f#5]@16, [f3,g#3,c#4]@31 d#5@17, ~ a#3 ~, ~@7 f5 ~@4]/3", // B C#
K: "[g#3,b3,f4,b4,f5]", L: "[g#3,a#3,c#4,f4,f5,g#5]",
M: "[f#3,a#3,c#4,a#4]@6 ~@2 g#4 g4 g#4 a#4 c5 a#4 c5 d#5, ~@3 [g#3,c4,d#4]@5, ~@6 c5@5 ~@5", N: "[b3,d#4,f#4]/2",
O: "[c#4,f4,g#4]/2", P: "[a#3,c#4,f#4]", Q: "[a3,c#4,d#4,f#4]", R: "[g#3,c#4,f4]/2",
S: "[~@24 a#4 g#4 a#4 c5 c#5 c5 c#5 ~ [f#3,b3,d#4,f#5]@16, [g#3,c#4,f4]@31 d#5@17, ~ a#3 ~, ~@7 f5 ~@4]/3", // B C#
T: "[[g#3,c#4,f4,c#5,f5]@21 ~@11]/2", // C#
})).s("gm_string_ensemble_1").gain(0.25)
// chords · epiano2 · "E.PIANO"
const epiano2 = note(`<
~@3 A B A C A B D E F@2 G H I@2 J H K L M N L O P Q P R P Q S T U@2 G H I@2 J H K L M N L O P Q P R P Q S T U@2 V@2
W@2 V@2 X Y W@2 X Y K Z AA N L O P Q P R P Q S T P Q P R P Q S T P Q P R P Q S T AB@2
>`.pickRestart({
A: "[a4,c#5,e5]", B: "[b4,d#5,f#5]@3 [b4,e5,g#5]@3 [b4,d#5,f#5]@2", C: "[g#4,b4,d#5]@3 [g#4,c#5,e5]@3 [g#4,b4,e5]@2",
D: "g#7@3 f#7@3 e7@2, [c#5,e5,g#5]", E: "d#7@3 e7@3 f#7@2, [c5,d#5,g#5]", F: "[g#4,c#5,f5,f7]/2", G: "[f#4,a#4,c#5]",
H: "a4@3 a4, [f#4,c#5]", I: "[[g#4,c#5,f5]@7 [a4,c#5,f5]]/2", J: "a#4@7 a#4, [f#4,c#5]", K: "[g#4,c#5,f5]",
L: "[g#4,a#4,c#5,f5]", M: "[f#4,b4,d#5]", N: "[g#4,b4,f5]@3 [g#4,b4,f5]",
O: "[f#4,a#4,c#5]@6 ~@2 g#5 g5 g#5 a#5 c6 a#5 c6 d#6, ~@3 [g#4,c5,d#5]@5", P: "[a4,c#5,e5,e6]",
Q: "[b4,d#5,f#5,f#6]@3 [b4,e5,g#5,g#6]@3 [b4,d#5,f#5,f#6]@2", // B E B
R: "d#6 e6 f#6 [g#4,c#5,e5,e6]@3 [g#4,b4,e5,b5]@2, [g#4,b4,d#5]@3 ~@5", S: "g#6@3 f#6@3 e6@2, [c#5,e5,g#5]",
T: "d#6@3 e6@3 f#6@2, [c5,d#5,g#5]", U: "[g#4,c#5,f5,f6]/2", V: "[b4,d#5,f#5]/2", W: "[g#4,c#5,f5]/2",
X: "[f#4,a#4,c#5,f#5]", Y: "[f#4,a4,c#5,d#5,f#5]",
Z: "f5@8 a#5 ~@6 f6, [a#4,c#5]@7 c#6, ~@9 g#5@2 f5@5, ~@5 a#5 g#5@2, ~@13 a#5@3", AA: "[f#4,b4,d#5], f#6 ~",
AB: "[[g#4,c#5,f5,f6]@11 ~@5]/2", // C#
})).s("gm_epiano2").gain(0.35)
// chords · piano · "A.PIANO"
const piano = note(`<
~@3 A B A C A B D E F@2 G H I@2 J H K L M N L O P Q P R P Q S T U@2 G H I@2 J H K L M N L O P Q P R P Q S T U@2 V@2
W@2 V@2 X Y W@2 X Y K Z AA N L O P Q P R P Q S T P Q P R P Q S T P Q P R P Q S T AB@2
>`.pickRestart({
A: "[a3,c#4,e4]", B: "[b3,d#4,f#4]@3 [b3,e4,g#4]@3 [b3,d#4,f#4]@2", C: "[g#3,b3,d#4]@3 [g#3,c#4,e4]@3 [g#3,b3,e4]@2",
D: "g#6@3 f#6@3 e6@2, [c#4,e4,g#4]", E: "d#6@3 e6@3 f#6@2, [c4,d#4,g#4]", F: "[g#3,c#4,f4,f6]/2", G: "[f#3,a#3,c#4]",
H: "a3@3 a3, [f#3,c#4]", I: "[[g#3,c#4,f4]@7 [a3,c#4,f4]]/2", J: "a#3@7 a#3, [f#3,c#4]", K: "[g#3,c#4,f4]",
L: "[g#3,a#3,c#4,f4]", M: "[f#3,b3,d#4]", N: "[g#3,b3,f4]@3 [g#3,b3,f4]",
O: "[f#3,a#3,c#4]@6 ~@2 g#4 g4 g#4 a#4 c5 a#4 c5 d#5, ~@3 [g#3,c4,d#4]@5", P: "[a3,c#4,e4,e5]",
Q: "[b3,d#4,f#4,f#5]@3 [b3,e4,g#4,g#5]@3 [b3,d#4,f#4,f#5]@2", // B E B
R: "d#5 e5 f#5 [g#3,c#4,e4,e5]@3 [g#3,b3,e4,b4]@2, [g#3,b3,d#4]@3 ~@5", S: "g#5@3 f#5@3 e5@2, [c#4,e4,g#4]",
T: "d#5@3 e5@3 f#5@2, [c4,d#4,g#4]", U: "[g#3,c#4,f4,f5]/2", V: "[b3,d#4,f#4]/2", W: "[g#3,c#4,f4]/2",
X: "[f#3,a#3,c#4,f#4]", Y: "[f#3,a3,c#4,d#4,f#4]",
Z: "f4@8 a#4 ~@6 f5, [a#3,c#4]@7 c#5, ~@9 g#4@2 f4@5, ~@5 a#4 g#4@2, ~@13 a#4@3", AA: "[f#3,b3,d#4], f#5 ~",
AB: "[[g#3,c#4,f4,f5]@11 ~@5]/2", // C#
})).s("gm_piano").gain(0.4)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~@3 A B C D C B C E F G H I F G H I F J K L M N C B C D C B C E F G H I F G H I F J K L M N C B C D C B C E F G O P F
G O P Q R S T U V W X K L Y N C B C D C B C E C B C D C B C E C B C D C B C E F Z
>`.pickRestart({
A: "~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2 ~ [a4,c#5,f#5,a6] ~ [a4,c#5,e5] ~@2 [a4,c#5,f#5] ~ [a4,c#5,e5] ~", // A F#m A F#m A
B: "~@2 [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] ~@2 [b4,d#5,f#5] ~ [b4,e5] ~", // B E B E5
C: "~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2 ~ [a4,c#5,f#5] ~ [a4,c#5,e5] ~@2 [a4,c#5,f#5] ~ [a4,c#5,e5] ~", // A F#m A F#m A
D: "~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,c#5,e5]!2 ~ [g#4,c#5,e5] ~@2 [g#4,c#5,e5] ~ [g#4,b4,d#5] ~", // G#m C#m G#m
E: "~@2 [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] [g#4,c5,e5] ~ [g#4,c5,e5] ~@2 [g#4,c5,f#5] ~ [g#4,c5,d#5] ~", // G# G#aug G#7 G#
F: "~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@2 ~ [g#4,d#5,f5] ~ [g#4,c#5,f5] ~@2 [g#4,d#5,f5] ~ [g#4,c#5,f5] ~", // C# Fm7 C# Fm7 C#
G: "~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] [g#4,d#5,f5] ~ [g#4,c#5,f5] ~@2 [g#4,d#5,f5] ~ [g#4,c#5,f5] ~", // C# Fm7 C# Fm7 C#
H: "~@2 [f#4,a#4,c#5] ~ [f#4,a#4,c#5]@2 ~ [f#4,a#4,d#5] ~ [f#4,a#4,c#5] ~@2 [f#4,a#4,d#5] ~ [f#4,a#4,c#5] ~", // F# D#m F# D#m F#
I: "~@2 [f#4,a4,c#5] ~ [f#4,a4,c#5] ~ [f#4,a4,c#5] [f#4,a4,d#5] ~ [f#4,a4,c#5] ~@2 [f#4,a4,d#5] ~ [f#4,a4,c#5] ~", // F#m D#dim F#m D#dim F#m
J: "~@2 [a#4,c#5,f5] ~ [a#4,c#5,f5] ~ [a#4,c#5,f5] [a#4,d#5,f5] ~ [a#4,c#5,f5] ~@2 [a#4,d#5,f5] ~ [a#4,c#5,f5] ~", // A#m A#sus4 A#m A#sus4 A#m
K: "~@2 [g#4,b4,d#5,f#5] ~ [g#4,b4,d#5,f#5]@2 ~ [g#4,b4,d#5,f#5] ~ [g#4,b4,d#5,f#5] ~@2 [g#4,b4,d#5,f#5] ~ [g#4,b4,d#5,f#5] ~", // G#m7
L: "~@2 [g#4,b4,f5] ~ [g#4,b4,f5] ~ [g#4,b4,f5]!2 ~ [g#4,b4,f5] ~@2 [g#4,b4,f5] ~ [g#4,b4,f5] ~", // Fdim
M: "~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@2 ~ [a#4,c#5,f5] ~ [g#4,c#5,f5] ~@2 [g#4,d#5,f5] ~ [g#4,c#5,f5] ~", // C# A#m C# Fm7 C#
N: "~@2 [f#4,a#4,c#5,f#5] ~ [f#4,a#4,c#5,f#5] ~ [f#4,a#4,c#5,f#5] [g#4,c5,d#5] ~ [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~ [g#4,c5,d#5] ~", // F# G#
O: "~@2 [f#4,b4,d#5,f#5] ~ [f#4,b4,d#5,f#5]@2 ~ [f#4,c#5,d#5,f#5] ~ [f#4,b4,d#5,f#5] ~@2 [f#4,c#5,d#5,f#5] ~ [f#4,b4,d#5,f#5] ~", // B D#m7 B D#m7 B
P: "~@2 [f#4,b4,d#5,f#5] ~ [f#4,b4,d#5,f#5] ~ [f#4,b4,d#5,f#5] [f#4,c#5,d#5,f#5] ~ [f#4,b4,d#5,f#5] ~@2 [f#4,c#5,d#5,f#5] ~ [f#4,b4,d#5,f#5] ~", // B D#m7 B D#m7 B
Q: "~@2 [a#4,c#5,f#5] ~ [a#4,c#5,f#5]@2 ~ [a#4,d#5,f#5] ~ [a#4,c#5,f#5] ~@2 [a#4,d#5,f#5] ~ [a#4,c#5,f#5] ~", // F# D#m F# D#m F#
R: "~@2 [a4,c#5,f#5] ~ [a4,c#5,f#5] ~ [a4,c#5,f#5] [a4,d#5,f#5] ~ [a4,c#5,f#5] ~@2 [a4,d#5,f#5] ~ [a4,c#5,f#5] ~", // F#m D#dim F#m D#dim F#m
S: "~@2 [g#4,d#5,f5] ~ [g#4,c#5,f5]@2 ~ [g#4,d#5,f5] ~ [g#4,d#5,f5] ~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5] ~", // Fm7 C# Fm7 C#
T: "[g#4,d#5,f5] ~ [g#4,d#5,f5] ~ [g#4,c#5,f5] ~@2 [g#4,d#5,f5] ~ [g#4,d#5,f5] ~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5] ~", // Fm7 C# Fm7 C#
U: "~@2 [g#4,a#4,c#5,f#5] ~ [f#4,a#4,c#5,f#5]@2 ~ [g#4,a#4,c#5,f#5] ~ [g#4,a#4,c#5,f#5] ~@2 [f#4,a#4,c#5,f#5] ~ [f#4,a#4,c#5,f#5] ~", // F#
V: "~@2 [g#4,c#5,d#5,f#5] ~ [f#4,c#5,d#5,f#5] ~ [f#4,c#5,d#5,f#5] [g#4,c#5,d#5,f#5] ~ [g#4,c#5,d#5,f#5] ~@2 [f#4,c#5,d#5,f#5] ~ [f#4,c#5,d#5,f#5] ~", // G#sus4 D#m7 G#sus4 D#m7
W: "~@2 [a#4,c#5,f5] ~ [g#4,c#5,f5]@2 ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~@2 [g#4,c#5,f5] ~ [a#4,c#5,f5] ~", // A#m C# A#m
X: "~@2 [a#4,c#5,f5] ~ [a#4,c#5,f5] ~ [a#4,c#5,f5]!2 ~ [a#4,c#5,f5] ~@2 [a#4,c#5,f5] ~ [a#4,c#5,f5] ~", // A#m
Y: "~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@2 ~ [a#4,c#5,f5,e6] ~ [g#4,c#5,f5] ~@2 [g#4,d#5,f5] ~ [g#4,c#5,f5] ~", // C# A#m C# Fm7 C#
Z: "~@2 [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5]!2 ~@8", // C#
})).s("gm_electric_guitar_clean").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@3 A@3 B A@3 C A@9 B A@3 D A@3 E A C A C A@9 B A@3 D A@3 E A C A C A@3 C A F A@9 B A@3 D A@3 E A C A@5 E A C A@5 E A
C A@3 G
>`.pickRestart({
A: "x!2", B: "x ~@5 x!3 ~@7", C: "x ~@3 x ~@2 x", D: "x ~ x!2 ~@4 x ~@7", E: "x ~@7 x ~ x!2 ~@4", F: "x ~@7 x ~@6 x",
G: "x",
})).gain(0.5)
// drums · snare
const snare = s("sd").struct(`<
~@2 A B@9 C B@7 C B@3 D B@3 C B@5 C B@7 C B@3 D B@3 C B@5 C B@5 C B@7 C B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C@2 E
>`.pickRestart({
A: "~@9 x ~@2 x ~ x!2", B: "~ x ~ x", C: "~@4 x ~@7 x ~ x!2", D: "~@4 x ~@3 x!5 ~ x!2", E: "~@2 x ~ x ~ x!2 ~@8",
})).gain(0.5)
// drums · clap
const clap = s("cp").struct(`<
~@4 A ~ A ~ A ~ A B@2 ~@8 B ~ B ~@2 B ~@6 B@2 ~@8 B ~ B ~@2 B ~@6 B@2 ~ C ~ D ~ C ~@2 D@2 ~@2 D@2 B ~ B ~@2 B ~@7 B
~@7 B ~@6 E F
>`.pickRestart({
A: "~@6 x!2 ~ x!2 ~ x ~@3", B: "x ~ x ~ x ~ x!2 ~ x!2 ~ x ~@3", C: "~@2 x ~ x!2 ~ x!3 ~ x!2 ~ x ~",
D: "~@2 x ~ x ~ x!2 ~ x!2 ~ x ~ x ~", E: "x ~ x ~ x ~ x!2 ~ x!2 ~ x ~ x ~", F: "~@2 x ~ x ~ x!2 ~@8",
})).gain(0.45)
// drums · hihat
const hihat = s("hh").struct("<~ [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!99 [x ~ x!3 ~ x!2 ~@8]>").gain(0.25)
// drums · crash
const crash = s("cr").struct(`<
~@3 A ~ A ~ A ~@3 A ~@9 A ~@3 A ~ A ~ A ~@3 A ~ B ~@7 A ~@3 A ~ A ~ A ~@3 A ~@11 B ~@3 A ~@3 A ~ A ~ A ~@3 A ~ A ~ A
~@3 A ~ A ~ A ~@5
>`.pickRestart({
A: "x", B: "~ x ~@2",
})).gain(0.3)
stack(bass, synth_brass_1, string_ensemble_1, epiano2, piano, electric_guitar_clean, kick, snare, clap, hihat, crash)
More by Donna Summer
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.