0:00/0:00
// Sooner or Later — The Grass Roots
// 126 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · "A.PIANO 2"
const piano = note(`<
~ A@5 B C D E F@2 G H I J K@2 L@2 M@4 N@4 O@8 P@4 Q R S T U V S W X Y@2 Z AA AB@2 AC@3 AD AE AF AG@2 AH AI AJ@8 AK@7
~@3
>`.pickRestart({
A: "[c2@2 c3 ~ c2@2 c3 ~ [c2,f#2] ~ c2 ~ [c2,c3] ~ [e2,e3] ~@3 e3 ~ e3@2 ~@2 e3@2 e2 ~ [e2,e3] ~ [f2,f3] ~ f2 ~ f2 ~ [f2,f3]@2 f2 ~ f3@2 f2 ~ [f2,f3] ~ [g2,g3] ~ g2 ~ [g2,g3] ~ g2@3 ~ g2@2 a2@2 c3@2 [c2,c3] ~ c2 ~ [c2,c3,e4] ~ [c2,c3,c4] ~ c2 ~ [c2,c3,c4] ~ c2 ~ [c2,c3,c4,e4,g4] ~ [e2,e3,b3,e4,g4] ~, c4@14 e4@15 ~ f4@16 g4@15 ~ e4@2 ~@4 [e4,g4]@2 ~@2 [e4,g4]@2 ~@6, ~@8 c3@2 ~@10 e2 ~@3 e2 ~@15 f2 ~@11 g3 ~@9 [c4,g4]@5 ~@13]/5", // Cdim C E F G C Em C5
B: "e2 ~ [e2,b3,e4,g4] ~ [e2,e3,b3] ~ [e3,e4] ~ [b3,e4,g4]@3 ~ [e2,e3,e4,g4] ~ [f2,f3,f4,a4,d5] ~, ~@4 [e4,g4]@2 ~@2 [e2,e3] ~@7", // Em E5 E Em Dm Em E
C: "f2 ~ [f4,a4,d5]@2 [a4,c5]@2 [f2,f3] ~ [f2,f4,a4]@2 [f3,f4,a4,c5] ~ f2 ~ [g4,b4,e5]@2, ~@2 [f2,f3] ~ f2 ~@9 [g2,g3,c#5] ~", // Dm Am F Em F Gdim
D: "g2 ~ [g2,g3,g4,b4,e5] ~ [g4,b4,d5]@2 [g2,g3] ~ [g2,g4,c5]@2 [a2,d5]@2 c3 ~ [c2,c4,e4,g4]@2, ~@4 g2 ~@11", // Em G C5 D5 C
E: "~@2 [c2,c4,e4,g4] ~ [c2,c3,c4,e4,g4] ~ c2 ~ [c2,c3,c4,e4,g4] ~ c2 ~ [c2,c3,c4,e4,g4] ~ [e2,e3,b3,g4]@2", // C Em
F: "[~@2 [e2,e3,b3,g4] ~ [e2,e3,b3,e4,g4] ~ e2 ~ [e2,e3,b3,e4,g4] ~ e2 ~ [e2,e3,b3,e4,g4] ~ [f2,f3,c4,f4,a4]@4 [f2,f3,c4,f4,a4] ~ [f2,f3,c4,f4,a4] ~ [f2,f4] ~ [c4,f4,a4] ~ [f3,f4] ~ [f2,c4,f4,a4] ~ [g2,g3,b3,d4,g4]@2, ~@12 f2 ~@3]/2", // Em F G
G: "~@2 [g2,g3,b3,d4,g4] ~ [g2,g3,b3,d4,g4] ~ [g2,g3,b3,d4,g4] ~ [g2,g4]@2 a2@2 [c3,b3,d4,g4] ~ [c2,c3,c4,e4,g4]@2, ~@8 [b3,d4] ~ d4 ~@5", // G C Bm
H: "~@2 [c2,c3,e4,g4] ~ [c2,c3,c4,e4,g4] ~ c2 ~ [c2,c3,c4,e4,g4] ~ [c2,e4] ~ [c2,c3,c4,e4,g4] ~ [e2,e3,b3,e4,g4]@2", // C Em
I: "~@2 [e2,e3,b3,e4,g4] ~ [e2,e3,b3,e4,g4] ~ [e2,e4] ~ [e2,e3,b3,e4,g4] ~ [e2,e4] ~ [e2,e3,b3,e4,g4] ~ [f2,f3,c4,f4,a4]@2", // Em E Em E Em F
J: "~@2 [f2,f3,c4,f4,a4] ~ [f2,f3,c4,f4,a4] ~ [f2,f4] ~ [f2,f3,c4,f4,a4] ~ [f2,f4,a4] ~ [f2,f3,c4,f4,a4] ~ [g2,g3,b3,d4,g4]@2", // F G
K: "[~@2 [g2,g3,b3,d4,g4] ~ [g2,g3,b3,d4,g4] ~ [g2,g3,b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ c3 ~ [e4,g4,c5]@4 c3@2 [e4,g4,c5] ~ c3@2 [e4,g4,c5] ~ c3@2 [e4,g4,c5] ~ [b2,d4,g4,b4]@2, ~@8 g2@2 a2@2 ~@2 c2@12 g4 ~@5]/2", // G C G
L: "[~@2 [d4,g4,b4] ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4]@2 [c4,f4,a4]@4 ~@4 f3@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 e3 ~, ~@2 b2@7 ~ b2@4 f2@10 e2@7 ~, ~@9 f3@2 ~@2 e3@2 ~, ~@5 [c4,f4,a4] ~@2]/2", // G F C F
M: "[~@2 d3@2 ~@2 d3@2 [c4,f4,a4] ~ [g2,d4,g4,b4]@2 ~@2 [c4,e4,g4,c5]@4 c3@2 [e4,g4,c5]@2 c3@2 [e4,g4,c5] ~ [e4,g4,c5] ~ [c4,e4,g4,c5]@2 [d4,g4,b4]@3 ~ [d4,g4,b4] ~ [d4,g4,b4]@2 ~@2 [d4,g4,b4] ~ g4 ~ g4@2 [c4,f4,a4]@4 ~@2 [f4,a4]@2 f4@2 [c4,e4,g4]@2 e3@2 ~@2 e3@2, d2@4 f2 ~@2 c2@6 ~@10 f2@5 e2@4, [c4,d4,f4,a4]@4 [c4,d4,f4,a4]@4 ~@6 c3@3 ~@9 c3@4 b2@7 ~ b2@4 b2@4 ~@4 f3@6 ~@8, ~@13 c4 ~ [c4,e4,g4]]/4", // F G C G F C Dm7 C
N: "[[c4,d4,f4,a4]@2 ~@2 [c4,d4,f4,a4]@2 d3 ~ [f2,f3,c4,f4,a4]@2 [g2,g3,d4,g4,b4]@2 ~@2 [c4,e4,g4,c5]@4 c3@2 [c4,e4,g4]@2 c3@2 [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@2 [d4,e4,g4,b4] ~@3 [e4,g4] ~ [d4,e4,g4,b4] ~ e3@2 [d4,e4,g4,b4] ~ [e4,g4] ~ [e4,g4,b4]@2 [c4,f4,a4]@4 ~@2 [c4,f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [c4,f4,a4]@2 [g2,g3,d4,g4]@2, d2@7 ~@7 c2@14 ~@2 e2@16 f2@16 ~@2, ~@2 d3@4 ~@8 c3@3 ~@9 c3@4 ~@4 e3@2 ~@6 e3@4 f3@2 ~@2 f3@6 c4@2 f3@4 ~@2]/4", // Dm7 F G C Em7 Em Em7 Em …
O: "[~@2 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4]@2 [g2,g4,b4]@2 [d4,g4,b4] ~ [d4,g4] ~ [c4,e4,g4,c5]@4 c3@2 [c4,e4,g4] ~ c3@2 [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5]@2 [d4,e4,g4,b4]@4 e3@2 [d4,e4,g4,b4] ~ e3@2 [d4,e4,g4,b4]@2 g4 ~ g4@2 [c4,f4,a4]@3 ~ [c4,f4,a4] ~ [c4,f4,a4]@2 f3@2 [f4,a4] ~ f4 ~ [c4,f4,a4]@2 [d4,g4,b4]@3 ~ [d4,g4,b4] ~ [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4] ~ [d4,g4,b4] ~ [c3,d4,g4,b4]@2 [c4,e4,g4]@4 c3@2 [c4,e4,g4,c5]@2 c3@2 [c4,e4,g4,c5] ~ g4 ~ [e4,g4,c5]@2 [d4,b4]@3 ~ [g4,b4] ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~ [g4,b4] ~ [d4,g4,b4]@2 [c4,f4,a4]@3 ~ [c4,f4,a4] ~ [c4,f4,a4]@2 [f2,f3,f4,a4]@2 [c4,e4,g4]@2 ~@4 e3@2, ~@2 g3@2 ~@4 d4 ~ a2@2 c3@2 c2@14 ~@2 e2@16 f2@16 g2@10 g2@2 a2@4 c2@14 ~@2 g4 ~@19 f3@4 ~@4 e3@4 ~@2, ~@20 c5@2 ~@2 c4@2 c3@4 ~@12 e3@4 ~@4 f3@2 ~@2 f4 ~ c4@2 f3@4 g3@7 ~@9 c5 ~@11 c3@4 b2@11 ~ b2@4 f2@8 ~@2 e2@8, ~@31 [c4,e4,g4]]/8", // G G5 G G5 C Em7 F G …
P: "[[c4,d4,f4,a4]@2 ~@2 [c4,d4,f4,a4]@2 d3 ~ [f2,f3,c4,f4,a4]@2 [g2,g3,d4,g4,b4]@2 ~@2 [c4,e4,g4,c5]@4 c3@2 [e4,g4,c5]@2 c3@2 [e4,g4,c5]@2 ~@2 [e4,g4]@2 [d4,g4,b4]@4 [g4,b4] ~ [d4,g4,b4] ~@3 [d4,g4]@2 g4 ~ [d4,g4,b4]@2 [c4,f4,a4]@4 ~@4 f3@2 ~@2 e3@2 [c4,e4,g4]@2 e3 ~, d2@7 ~@7 c2@16 a4 ~@9 b4 ~@9 f3@4 ~@10, ~@2 d3@4 ~@8 c3@3 ~@3 c4 ~@3 c4 ~ c3@4 b2@11 ~ b2@4 f2@10 e2@7 ~, ~@13 [c4,f4,a4] [c4,e4,g4] ~]/4", // Dm7 F G C Em G G5 G …
Q: "[c4,d4,f4,a4]@2 ~@2 [c4,d4,f4,a4]@2 d3 ~ [f2,f3,c4,f4,a4]@2 [g2,g3,d4,g4,b4]@6, d2@7 ~@9, ~ d3@2 ~@5", // Dm7 F G
R: "[a2,a3]@3 ~ [a2,a3]@3 ~ [a2,a3]@3 ~ [a2,a3]@4, [c4,e4,a4,c5]", // A Am
S: "[g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3]@2, [c4,e4,g#4,c5]", // G# Caug
T: "[g2,g3]@3 ~ [g2,g3]@2 ~@2 [g2,g3]@3 ~ [g2,g3]@4, [c4,e4,g4,c5]", // G C
U: "[f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3]@2, [c4,e4,f#4,c5]", // F# F#m7b5
V: "[a2,a3]@3 ~ [a2,a3]@2 ~@2 [a2,a3]@3 ~ [a2,a3]@4, [c4,e4,a4,c5]", // A Am
W: "[g2,g3]@2 ~@2 [g2,g3]@2 ~@2 [g2,g3]@3 ~ [g2,g3]@4, [c4,e4,g4,c5]@15 ~", // G C
X: "[f2,f3]@3 ~ [f2,f3]@3 ~ [g2,g3]@3 ~ [g2,g3]@4, [c4,f4,a4]@7 ~ [d4,g4,b4]@8", // F G F G
Y: "[[c4,e4,g4,c5]@3 ~ [c3,c4,e4,g4,c5] ~ c2 ~ [c2,e4,g4,c5]@3 ~ [c3,c4,e4,g4,c5]@2 [e4,g4,b4]@4 e3@2 [e4,g4,b4] ~ e3@2 [g4,b4] ~ [e3,g4,b4] ~ [e2,e3,e4,g4,b4]@2 [f2,f3,c4,f4,a4]@2, c2@4 ~@4 [c3,c4] ~@5 e2@11 ~@7, ~@14 e3@3 ~@15, ~@14 d4 ~@9 e4@2 ~@6]/2", // C Em G Em F C
Z: "~@2 [f2,f4,a4] ~ [c4,f4,a4] ~ f4 ~ [c4,f4,a4] ~ [f2,f4] ~ [f2,f3,c4,f4,a4]@2 [g2,g3,d4,g4,b4]@2, ~@4 [f2,f3]@5 ~@7", // F G F
AA: "~@2 [g2,g4,b4] ~ [g2,g3,g4,b4]@2 [g2,g3,g4]@2 g2@2 a2@2 c3@2 [c2,c3,c4,e4,g4,c5]@2, ~@4 d4@4 [d4,g4,b4]@5 ~@3", // G C G
AB: "[~@2 [c2,g4,c5] ~ [c2,g4,c5]@3 ~ [c2,g4,c5]@2 c3 ~ [c2,c4,e4,g4,c5]@2 [e2,e3,g4,b4]@3 ~ [g4,b4] ~ [e4,g4,b4] ~ e2 ~ [e3,g4,b4]@2 e2 ~ [e3,e4,g4,b4]@2 [f2,f3,c4,f4,a4]@2, ~@4 [c3,c4,e4] ~@3 [c4,e4] ~@5 e4@4 e2@2 e3@2 ~@2 e4 ~@7]/2", // C5 C Em G Em F C
AC: "[~@2 f2@2 [f3,c4,a4]@2 f2 ~ [f2,f3,f4,a4] ~ [f2,f4] ~ [f2,f3,c4,f4,a4]@2 [g2,g3,d4,g4,b4]@14 ~@2 [g#2,g#3,c4,d#4,g#4]@13 ~@3 [c#2,c#4,f4,a#4]@2, ~@2 f4 ~ f4 ~@3 c4@2 ~@38]/3", // F G G# A#m
AD: "~@2 [c#3,a#4]@2 [c#4,g#4]@2 c#2@2 f4@2 c#2 ~ [c#2,c#3] ~ [f2,c4,f4,a#4]@2, ~@2 [c#4,f4] ~@5 c#4@4 ~@4, ~@5 g#4@2 ~", // F# C#5 C# Fsus4 C#
AE: "~@2 a#4@2 g#4@2 ~@2 [c4,f4]@2 g#4@2 f2 ~ [f#2,f#4,a#4,d#5]@2, ~ [f2,c4]@2 f3@3 ~@2, ~@2 f4 ~@13", // F5 D#m F5
AF: "~@2 [f#4,a#4,d#5] ~ [f#4,c#5]@2 ~@2 a#4 ~ c#5@2 f#3 ~ [g#2,g#4,c5,f5]@2, ~@2 f#2@2 ~@2 f#3@4 f#2 ~@5, ~@2 f#4 ~", // D#m F#5 Fm
AG: "[~@2 [g#4,c5,f5] ~ [g#4,d#5]@2 g#2@2 [g#4,c#5]@2 [g#4,d#5] ~ g#2 ~ [c#2,c#4,f4,a#4]@4 [c#4,f4,a#4] ~ [c#4,g#4]@2 ~@2 f4@2 c#3@2 c#2 ~ [f2,c4,f4,a#4]@2, ~@2 g#3@2 ~@6 g#3@2 ~@2 c2 ~@3 c#3@4 c#2@4 g#4@4 ~@2, ~@6 c#4 ~]/2", // Fm G#5 C#5 G#5 A#m C#5 Fsus4
AH: "~@2 [c4,f4] ~ g#4@2 ~@2 f4@2 g#4@2 f2 ~ [f#2,f#4,a#4,d#5]@2, ~@2 f2@4 f3@5 ~@5, ~ a#4 ~@2 c4@2 ~@2", // F5 D#m
AI: "~@2 [f#4,a#4,d#5] ~ c#5@2 f#3@2 a#4 ~ c#5@2 [f#2,f#3] ~ [g#2,g#4,c5,f5]@2, ~ f#2@2 ~ f#4@2 ~@2, ~@10 f#2 ~@5", // D#m F# Fm
AJ: "[~@2 [g#4,f5] ~ [g#4,d#5]@2 ~@2 c#5@2 [g#2,g#4,d#5]@3 ~ [g#4,c#5,f5]@4 c#5 ~ [g#4,c#5,d#5,f5] ~ c#5 ~ [c#5,f5] ~ c#5 ~ [g#4,c#5,f5] ~ [g#4,c5,f5]@3 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~@3 [g#4,c5,f5] ~ [a#4,c#5,f#5]@3 ~ [a#4,c#5,f#5] ~ [a#4,c#5,f#5] ~ c#5 ~ [a#4,c#5] ~@3 [a#4,c#5,f#5] ~ [c5,d#5,g#5]@3 ~ [d#5,g#5] ~ [d#5,f#5,g#5] ~@3 [c5,d#5,f#5,g#5] ~@3 [c5,d#5,g#5] ~ [g#4,c#5,f5]@3 ~ f5 ~ [g#4,c#5,f5] ~@3 [g#4,c#5,f5] ~@3 [g#4,c#5,f5] ~ [g#4,c5,f5]@3 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~@3 [g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~ [a#4,c#5,f#5]@3 ~ [a#4,c#5,f#5] ~ [c#5,f#5] ~ [c#5,f#5] ~ [a#4,c#5,f#5] ~ c#5 ~ [a#4,c#5,f#5] ~ [g#2,g#3,c5,d#5,g#5]@2, ~@2 g#2@4 g#3@4 ~@4 [c#2,c#3]@14 ~@2 [f2,f3]@15 ~ [f#2,f#3]@15 ~ [g#2,g#3]@14 ~@2 [c#2,c#3]@14 ~@2 [f2,f3]@14 ~@2 [f#2,f#3]@14 ~@4, ~@2 c5@2 ~@4 g#4 ~@15 g#4@2 ~@4 d#5 ~@25 f#5@2 ~@4 f#5 ~@5 c5@3 ~@45 a#4@2 ~@8 f#5 ~]/8", // C# G#5 C# Fm F# A#m F# G# …
AK: "[~@2 g#5 ~ [c5,d#5,g#5] ~@3 [c5,d#5,g#5] ~ [d#5,g#5] ~ [c5,d#5,g#5] ~ [c#5,f5]@3 ~ c#5 ~ [g#4,c#5,d#5,f5] ~ c#5 ~ [c#5,f5] ~ c#5 ~ [g#4,c#5,f5] ~ [g#4,c5,f5]@3 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~@3 [g#4,c5,f5] ~ [a#4,c#5,f#5]@3 ~ [a#4,c#5,f#5] ~ [a#4,c#5,f#5] ~ c#5 ~ [a#4,c#5] ~@3 [a#4,c#5,f#5] ~ [c5,d#5,g#5]@3 ~ [d#5,g#5] ~ [d#5,f#5,g#5] ~@3 [c5,d#5,f#5,g#5] ~@3 [c5,d#5,g#5] ~ [g#4,c#5,f5]@3 ~ f5 ~ [g#4,c#5,f5] ~@3 [g#4,c#5,f5] ~@3 [g#4,c#5,f5] ~ [g#4,c5,f5]@3 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~@11, ~@14 [c#2,c#3]@14 ~@2 [f2,f3]@15 ~ [f#2,f#3]@15 ~ [g#2,g#3]@14 ~@2 [c#2,c#3]@14 ~@2 [f2,f3]@14 ~@4, ~@24 g#4@2 ~@4 d#5 ~@25 f#5@2 ~@4 f#5 ~@5 c5@3 ~@41]/7", // G# G#5 G# C# Fm F# A#m F# …
})).s("gm_piano").gain(0.38).pan(0.6)
// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
~@2 A ~ B C D E F G H I J K L M ~ N O ~@2 P Q R ~@2 S T U V W X ~ Y Z AA ~ AB AC ~@10 AD AE AF AG AH AI AJ ~@3 AK AL
~@2 AM AN ~ AO AP AQ AR AS AT ~ AU AO AP AQ AR AS AV ~@3
>`.pickRestart({
A: "e2 ~ e2 ~@3 e2 ~@5 f#2 ~@3", B: "g3 ~@5 g3 ~@9", C: "~@6 [c3,c4] ~@3 [c3,c4] ~@5",
D: "[e3,b3,e4,g4] ~ e3 ~@3 [e2,b3,g4] ~@3 [e2,e3] ~ b3 ~@3", E: "f3 ~@3 f4@3 ~@5 f3 ~@3", F: "~@4 g3 ~@5 g4@2 ~@4",
G: "~@6 e4 ~@3 [c3,e4,g4] ~@5", H: "~@6 e4 ~@3 e4 ~@5", I: "~@6 a4 ~@3 [c4,a4] ~ f3 ~@3", J: "~@10 [b3,g4] ~@5",
K: "~@6 e4 ~@3 [c3,g4] ~@5", L: "~@6 g4 ~@3 [e3,g4] ~@5", M: "~@6 a4 ~@3 [f3,c4] ~@5",
N: "~@6 [e4,g4,c5] ~@3 [e4,c5] ~@5", O: "~@6 [d4,g4,b4] ~@9", P: "~@4 c4@3 ~ c4 ~ c4 ~@5",
Q: "~@6 g4 ~@3 [d4,b4] ~ [d4,b4]@2 ~@2", R: "~@3 a4 ~@4",
S: "[d4,e4,g4,b4]@2 [d4,b4] ~@3 [d4,e4,g4,b4] ~@3 [d4,b4] ~ d4@2 ~@2", T: "~@6 c4 ~@3 c4 ~@5",
U: "~@6 b4@2 ~@4 b4 ~@3", V: "~@6 [c4,e4,g4] ~@5 c4@2 ~@2", W: "~@6 [d4,e4,g4,b4] ~@3 [d4,e4,b4] ~ [d4,e4,b4]@2 ~@2",
X: "~@6 [c4,a4] ~@3 [c4,a4] ~@5", Y: "~@10 [c4,e4,c5] ~ c4@2 ~@2", Z: "[d4,g4] ~ d4 ~@3 [d4,g4,b4] ~@3 d4 ~@5",
AA: "~@3 c4 ~@4", AB: "~@6 c4 ~@3 [c4,e4] ~ [c4,c5]@2 ~@2", AC: "~@2 d4 ~@3 [g4,b4] ~@3 [d4,b4] ~@5",
AD: "~@6 [c4,e4,g4] ~@3 [c3,c4] ~ c2@2 ~@2", AE: "~@6 [e4,g4,b4] ~@3 [e2,e4] ~@5",
AF: "~@2 c4 ~@3 c4 ~@3 [c4,a4] ~@5", AG: "~@2 d4 ~@3 b4@2 ~@8", AH: "~@2 [c4,e4] ~@3 [c3,c4] ~@3 [c4,e4] ~ c3@3 ~",
AI: "~@6 [e4,g4,b4] ~ e2 ~ e4 ~ e2@2 ~@2", AJ: "~@2 [c4,a4] ~@3 [f4,a4] ~@3 [f3,c4,a4] ~@5", AK: "~@10 f4 ~@5",
AL: "~@12 f#2 ~@3", AM: "~@2 c4 ~@5", AN: "~@4 f#4@3 ~@9", AO: "~@2 f5 ~@3 [g#4,f5] ~@3 [g#4,f5] ~@5",
AP: "~@6 f5 ~@3 [g#4,c5,f5] ~@5", AQ: "~@6 f#5 ~@3 [c#5,f#5] ~@5", AR: "~@2 c5 ~@3 g#5 ~@3 [c5,d#5,g#5] ~@5",
AS: "~@2 [g#4,c#5] ~@7 [c#5,f5] ~@5", AT: "~@6 [c5,f5] ~@3 [g#4,f5] ~@5",
AU: "~@2 d#5 ~@3 [d#5,g#5] ~@3 c5 ~@3 g#5 ~", AV: "~@6 [c5,f5] ~@9",
})).s("gm_piano").gain(0.22).pan(0.6)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~ A B C D A B C D A B C D A B C E F G H I J K H L M N O P Q B R E F K H I F S H T U V W X Y Z AA AB AC N O P AD AE@5
AF AG AH AI AJ AK AH AI AL AM AH AI AL AG AN AI AL AM AH AI AO ~@3
>`.pickRestart({
A: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 e2 ~", B: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f2 ~",
C: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 g2 ~", D: "g2 ~ g2 ~ g2 ~ g2 ~ g2@2 a2@2 c3@2 c2 ~",
E: "g2 ~ g2 ~ g2 ~ g2 ~ g2@2 a2@2 c3@2 c2@2", F: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ b1 ~",
G: "b1 ~ b1 ~ b1 ~ b1 ~ b1@2 d2@2 e2@2 f2@2", H: "f2 ~ f2 ~ f2 ~ f2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
I: "d2 ~ d2 ~ d2 ~ d2 ~ f2@2 g2@3 ~ c2@2", J: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 b1 ~",
K: "b1 ~ b1 ~ b1 ~ b1 ~ b1@2 d2 ~ e2@2 f2 ~", L: "d2 ~ d2 ~ d2 ~ d2 ~ f2@2 g2@2 c3@2 c2@2",
M: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 e2@2", N: "~@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f2@2",
O: "~@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 g2@2", P: "~@2 g2 ~ g2 ~ g2 ~ g2@2 a2@2 c3@2 c2@2",
Q: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ e2 ~", R: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 g2@2",
S: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ d2 ~ e2@2 f2@2", T: "d2 ~ d2 ~ d2 ~ d2 ~ f2@2 g2@3 ~@3", U: "a2@3 ~ a2@4 a2@3 ~ a2@4",
V: "g#2@3 ~ g#2@3 ~ g#2@3 ~ g#2@3 ~", W: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~", X: "f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@4",
Y: "a2@3 ~ a2@4 a2@3 ~ a2@3 ~", Z: "g#2@4 g#2@3 ~ g#2@3 ~ g#2@3 ~", AA: "g2@3 ~ g2@4 g2@3 ~ g2@3 ~",
AB: "f2 ~ f2 ~ f2 ~ f2@2 g2@2 g2 ~ g2@4", AC: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 e2@2",
AD: "~@2 c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2@2 e2@2",
AE: "[~@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f2@4 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 g2@15 ~ g#2@9 ~ g#2@2 f2@2 d#2@2 c#2@4 c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ f2@2]/5",
AF: "~@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f#2@2", AG: "~@2 f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2 g#2@2",
AH: "~@2 g#2 ~ g#2 ~ g#2 ~ g#2@2 a#2@2 c#3@2 c#2@2", AI: "~@2 c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2@2 f2@2",
AJ: "~@2 f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2 ~ f#2@2", AK: "~@2 f#2 ~ f#2@2 f#2 ~ f#2 ~ f#2 ~ f#2 ~ g#2@2",
AL: "~@2 f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f#2@2", AM: "~@2 f#2 ~ f#2@2 f#2 ~ f#2 ~ f#2 ~ f#2@2 g#2@2",
AN: "~@2 g#2 ~ g#2@2 g#2 ~ g#2@2 a#2@2 c#3@2 c#2@2", AO: "~@2 f2 ~ f2@2 f2 ~@9",
})).s("gm_electric_bass_finger").gain(0.44)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~ A@2 B C@3 D@5 E@6 ~@2 F@2 G@2 H@8 I@2 ~@2 J@2 ~@2 K L@4 M@3 N O@8 P@8 Q R@8 S@6 ~@3
>`.pickRestart({
A: "[g5@11 ~@3 g5@14 ~@2 g5@2]/2", B: "~@7 [g5,g6]",
C: "[~@8 g5@2 a5@2 c6 ~ [e5,c6]@16 [e5,b5]@16 [f5,a5,d6]@2, ~@7 g5@15 ~@2]/3", // C E5 Dm
D: "[~@2 d6@2 c6@4 ~@2 c6@4 e6@3 ~ e6@2 d6@4 c6@2 d6@4 c6@16 [b5,d6]@16 [f5,a5,c6]@16 [g5,b5,d6]@2, ~@8 a5@5 ~ g5@16 [e5,g5]@31 ~@19, ~@7 b5@5 ~@28]/5", // Bm F G Em
E: "[~@8 g5@2 c6 ~ d6 ~ c6@16 [b5,d6]@16 [f5,a5,c6]@16 [g5,b5,d6]@9 [d5,e5,f5] [c3,d3,e4,f4,g4,a4,b4,c5] [g3,c4,d4] [b3,c4,d4] b4 d5 b5 [c6,e6,g6]@6 b5 [d5,e5,f5,g5,a5] [g4,a4,b4,c5] [d4,e4,f4] ~@8, ~@7 [g5,e6]@16 ~@13 [e3,f3] ~@11]/6", // Bm F G Dm Cmaj7 Gsus4 Bm C …
F: "[~@14 [c6,e6,g6]@4 [e5,f5,g5,a5,b5] [a4,b4,c5,d5] [d4,e4,f4,g4] [g3,a3,b3,c4] f3 ~@9]/2", // C Em D7 Em7 Cmaj7
G: "[~@7 [f5,a5]@5 [e5,g5]@4]/2", // F Em
H: "[[d5,f5]@2 a4@7 ~ a4@4 ~@16 b5@16 [c5,f5,a5]@16 [d5,b5]@16 c6@16 [b5,d6]@16 [f5,a5,c6]@15 ~ [g5,b5,d6]@2, ~@14 [e5,g5]@32 ~@16 g5@47 ~@19, ~@39 e6@16 ~@9]/8", // Dm F G Bm F G Em
I: "[~@8 [d3,e3,f3,c5,d5,e5,f5] [b3,a4,b4] [e4,f4] b4 ~ c6 [c6,e6,g6]@4 [f5,g5,a5] [a4,b4,c5,d5,e5] [d4,e4,f4,g4] [a3,b3,c4] [d3,e3,f3,g3] ~@9, ~@4 g3 ~@11]/2", // Dm7 B7 Fmaj7 C F Am Em7 Am …
J: "[~@10 [d3,e3,f3,g3,a3] a3 ~@2 [c6,e6,g6]@4 b5 [d5,e5,f5,g5,a5] [g4,a4,b4,c5] [c4,d4,e4,f4] [g3,a3,b3] ~@9, ~@14 g5 ~@17]/2", // Dm C Dm Cmaj7 Dm7 G
K: "~@8 c3 ~ d4 ~@2 [b4,c5] [d5,e5,f5] [g5,b5], ~@8 [d3,e3,f3,g3,a3]@3 [d4,e4]@2 ~@3, ~@9 [b3,c4]@3 [f4,g4,a4]@2 ~@2", // Cmaj7 Dm G Dm Dsus2 Cmaj7 F
L: "[a5@16 g#5@16 g5@16 f#5@10 [g5,a5,b5] [e4,f4,g4,a4,b4,c5,d5,e5,f5] [g3,b3,c4,d4,e4,f4] [c4,d4] [e4,f4,g4,a4,b4] [c5,d5,e5,f5], [c6,e6]@59 ~ a3@2 ~@2, d6 ~@63]/4", // G Em7 G7 Csus2 Em Dm7 C
M: "[[a5,a6]@15 ~ [g#5,g#6]@15 ~ [g5,g6]@16, [c6,e6]@47 ~, g5 ~@47]/3", N: "[f5,a5,c6,f6]@8 [g5,b5,d6]@7 ~",
O: "[[e5,g5,c6]@13 ~@7 e5@9 ~ [f5,a5,c6]@16 [g5,b5,d6]@16 [g5,c6,e6]@16 [g5,b5,e6]@16 [f5,a5,c6]@15 ~ [g5,d6]@16 [d#5,g#5,c6]@2, ~@7 [g5,b5]@8 ~@40 b5@7 ~@2]/8", // C F G C Em F G5 G# …
P: "[~@7 [e5,f5] [e4,f4,g4,a4,b4,c5,d5] g3 [f4,g4,a4]@2 ~ [d5,e5,f5] [g#5,c#6]@16 [g#5,c6]@15 ~ [f#5,a#5,c#6]@15 ~ [g#5,c6,d#6]@16 [f5,g#5,c#6]@16 [f5,g#5,c6]@15 ~ [a#5,c#6]@11 ~ [a#5,c#6]@3 ~ [g#5,c6,d#6]@2, ~@9 [a3,c4,d4,e4]@3 b4@2 f6@32 ~@82, ~@14 g5 ~@95 f#5@15 ~@3]/8", // Fmaj7 Em7 F Dm C#5 G# F# G# …
Q: "~@6 [c6,d#6]@4 g#5 ~ [g#5,c6,d#6] ~ [g#5,c#6,f6]@2, ~@14 e6 ~", // Cm G# C#
R: "[~@4 [g#5,c#6,f6]@3 ~ [c#6,f6]@3 ~ [g#5,f6] ~ [c6,f6]@9 ~ [g#5,c6,f6]@3 ~ c6 ~ [f#5,a#5]@4 ~@8 [f#5,a#5,c#6]@4 [g#5,c6]@4 d#5@2 [d#5,g#5,c6]@4 [d#5,g#5,c6]@3 ~ g#5@2 [g#5,c#6]@4 ~@2 [g#5,c#6]@4 ~@2 f5 ~ [f5,g#5]@2 [g#5,c6]@13 ~ g#5@2 [f#5,a#5,c#6]@5 ~ [a#5,c#6]@7 ~ [a#5,c#6]@2 [g#5,c6]@4 d#5@2 [g#5,c6,d#6]@3 ~ [g#5,c6]@2 d#5 ~ [g#5,c6] ~ [c#6,f6]@2, ~@8 g#5 ~@3 c#6@2 g#5@3 ~@13 c#6@10 c#5@4 ~@2 d#5@2 ~@12 c6 ~ f5@3 ~ f5@7 ~@5 f5@3 ~@19 f#5@5 ~@3 f#5 ~ d#5@3 ~@15, ~@62 g5 ~@13 c#6 ~@15 c6 ~@33 g#5 ~]/8", // C# F5 Fm F# G# C#5 Fm G# …
S: "[~@4 [g#5,c#6,f6]@3 ~ [c#6,f6]@3 ~ [g#5,f6] ~ [c6,f6]@9 ~ [g#5,c6,f6]@3 ~ c6 ~ [f#5,a#5]@4 ~@8 [f#5,a#5,c#6]@4 [g#5,c6]@4 d#5@2 [d#5,g#5,c6]@4 [d#5,g#5,c6]@3 ~ g#5@2 [g#5,c#6]@4 ~@2 [g#5,c#6]@4 ~@2 f5 ~ [f5,g#5]@2 [g#5,c6]@13 ~@5, ~@8 g#5 ~@3 c#6@2 g#5@3 ~@13 c#6@10 c#5@4 ~@2 d#5@2 ~@12 c6 ~ f5@3 ~ f5@7 ~@5 f5@3 ~@15, ~@62 g5 ~@13 c#6 ~@19]/6", // C# F5 Fm F# G# C#5 Fm G#
})).s("gm_rock_organ").gain(0.22).pan(0.3)
// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note(`<
~@16 A B ~@14 C D ~@2 E ~@3 F ~@3 G ~@12 H ~@8 I J K L M N O P I J K L M Q ~@3
>`.pickRestart({
A: "~@9 [a3,f4] g4 [f4,g4,a4] [c5,e5] [f5,g5,a5] ~@2, ~@9 e4@3 ~@4", B: "~@7 c4 b3 ~@7",
C: "~@7 a5 ~ [a3,c4,f4,g4] [d4,g4] [a4,c5] [d5,e5,f5,g5] [a5,b5] ~@2", D: "~@2 b5 ~@13",
E: "~@11 [d4,e4] ~ [g5,a5] ~@2, ~@5 [b3,c4] [a4,b4,c5,d5,e5] ~, ~@11 [f4,g4]@2 f5@2 ~", F: "~@10 e4 f4 ~@4",
G: "~@13 b3 ~@2", H: "~@9 b3@2 b4 ~ c5 ~@2, ~@9 f3 ~@6", I: "~@2 [g#5,c#6] ~@3 g#5 ~@3 g#5 ~@5",
J: "~@2 g#5@6 ~@2 g#5 ~ [g#5,f6] ~@3", K: "~@4 a#5@5 ~@7, ~@2 f#5@7 ~@7", L: "~@10 d#5@3 ~@3",
M: "~@8 [g#5,c#6]@3 ~@5", N: "~@2 f5@4 f5@3 ~ f5@2 f5 ~@3", O: "~@10 f#5 ~@5",
P: "~@6 d#5@2 d#6@3 ~ d#6 ~@3, ~@8 d#5 ~@7", Q: "~@2 f5@4 f5@3 ~@7",
})).s("gm_rock_organ").gain(0.11).pan(0.3)
// chords · lead 3 calliope · "CALLIOPE"
const lead_3_calliope = note("<~@17 A B@3 A C@3 ~@8 A B@3 A B@3 ~@42>".pickRestart({
A: "~@7 [g4,b4,d5]", // G
B: "[~@14 [g4,b4,d5]@4 [f4,a4,c5]@3 ~@9 [e5,g5]@4 [f5,a5]@2 [e5,g5]@2 [d5,f5]@2 [c5,e5]@2 [d5,g5]@2 ~@4]/3", // G F Em F Em Dm C G5
C: "[~@14 [g4,b4,d5]@4 [f4,a4,c5]@3 ~@9 [e5,g5]@4 [f5,a5]@2 [e5,g5]@2 [d5,f5]@2 [c5,e5]@2 [d5,g5]@3 ~@3]/3", // G F Em F Em Dm C G5
})).s("gm_lead_3_calliope").gain(0.2)
// chords · lead 3 calliope · "CALLIOPE"
const lead_3_calliope_2 = note("<~@40 A B@2 C@2 D@2 E ~@35>".pickRestart({
A: "~@12 g4 ~ g4 ~", B: "[a4 ~ a4 ~ a4 ~ a4@21 ~ g4 ~ g4 ~]/2", C: "[a4 ~ a4 ~ a4 ~ a4@21 ~ a4 ~ a4 ~]/2",
D: "[[a4,c5] ~ [a4,c5] ~ c5@23 ~ a4 ~ a4 ~, ~ a4@3 ~@4]/2", E: "[a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5]@12",
})).s("gm_lead_3_calliope").gain(0.25)
// other · brass section · "BRASS 1"
const brass_section = note(`<
~@4 A@5 ~@15 B@8 C ~@12 D E F G H@3 I@7 J K L M J N O P Q R S T U N L P Q R S T V ~@3
>`.pickRestart({
A: "[~@8 g4@2 a4 ~ c5 ~ [g4,e5]@14 ~@2 [g4,d5]@15 ~ d5@6 c5@4 a4@2 c5 ~@3 e5@2 ~@2 e5@2 d5@3 ~ c5@2 d5 ~@5, ~@46 f4@13 ~@3 g4@13 ~@5]/5", // C G5
B: "[~@14 [e4,c5]@6 ~@6 [e4,c5]@2 ~@2 [d4,b4]@6 ~@6 [e4,c5]@2 ~@2 [c4,a4]@6 ~@6 [c4,a4]@2 ~@2 [d4,b4]@4 ~@2 [d4,b4]@2 ~@2 [d4,b4]@2 [d4,b4] ~@3 [g4,e5]@6 ~@6 [g4,e5]@2 ~@2 [g4,d5]@7 ~@5 [g4,d5]@2 ~@2 [a4,c5]@7 ~@5 [a4,c5,f5]@2 ~@2 [b4,d5,g5]@2]/8", // C G C F G C G5 Am …
C: "~@2 [b4,d5,g5] ~ [b4,d5,g5]@3 ~ [b4,d5,g5] ~ [b4,d5,g5] ~ g5 d5 c5@2", D: "[a4,c5]@15 ~", E: "[g#4,c5]@15 ~",
F: "[g4,c5]@15 ~", G: "[f4,a4,c5]@7 ~ [g4,b4,d5]@7 ~",
H: "[[e4,c5]@4 ~@6 [e4,c5]@2 ~@2 [d4,b4]@5 ~@7 [e4,c5]@2 ~@2 [c4,a4]@5 ~@7 [c4,a4]@2 ~@2 [d4,b4]@2]/3", // C G C F G
I: "[~@4 [d4,b4]@2 ~@2 [d4,b4]@2 [d4,b4]@2 ~@2 [g4,e5]@5 ~@7 [g4,e5]@2 ~@2 [g4,b4,d5]@6 ~@6 [g4,b4,d5]@2 ~@2 [a4,c5,f5]@6 ~@6 [a4,c5,f5]@2 ~@2 [b4,d5,g5]@14 ~@2 g#5@10 [g#4,g#5]@2 a#4@2 [c#5,c#6] ~ [c#5,c#6]@5 ~ a#4@2 ~@2 [a#4,a#5]@2 g#5@2 [f4,f5]@2 g#5@2, ~@62 f5 ~@15 [c5,d#5]@12 a#5 ~@9 a#5 ~@5 g#4 ~@3 g#4 ~]/7", // G C G F G G# C# A# …
J: "~@2 [a#4,a#5] ~ [a#4,a#5] [g#4,g#5] f5 d#5, ~@12 f4 ~ d#6 ~", // A# G#
K: "~@2 [d#5,d#6]@2 [c#5,c#6]@3 ~ [a#4,a#5]@2 [c#5,c#6] ~@3 [f5,f6]@2", // D# C# A# C# F
L: "~ [f5,f6] d#5 ~ [c#5,c#6] [d#5,d#6] ~@2, ~@4 d#6 ~@11", // F C# D#
M: "~@4 [a#4,a#5]@2 ~@2 [a#4,a#5]@2 g#5@2 [f4,f5]@2 [g#4,g#5] ~, ~@10 g#4 ~@5", // A# F G#
N: "~@2 [d#5,d#6]@2 [c#5,c#6]@2 ~@2 [a#4,a#5]@2 [c#5,c#6] ~@3 [f5,f6]@2", // D# C# A# C# F
O: "~@2 [f5,f6]@2 d#5@2 ~@2 [c#5,c#6]@2 [d#5,d#6] ~@5, ~@4 d#6 ~@11", // F C# D#
P: "~@2 a#5 ~ [a#4,a#5] [g#4,g#5] [f4,f5] g#5, ~@4 a#4 ~@9 g#4 ~", // A# G# F
Q: "~@4 a#5@2 ~@2 [a#4,a#5]@2 [g#4,g#5]@2 [f4,f5]@2 [d#5,d#6] ~, ~@4 a#4 ~@11", // A# G# F D#
R: "~ [d#5,d#6] c#5 ~ [a#4,a#5] c#5 ~ [f5,f6], ~@4 c#6 ~@5 c#6 ~@5", // D# A# F
S: "~ [f5,f6] d#5 ~ [c#5,c#6] d#6 ~@2, ~@4 d#6 ~@5 d#5 ~@5", // F C#
T: "~@2 a#4 ~ a#5 g#5 [f4,f5] [g#4,g#5], ~@4 a#5 ~@3 a#4 ~ g#4 ~@5", // F G#
U: "~@2 [a#4,a#5] ~ [a#4,a#5] [g#4,g#5] [f4,f5] [d#5,d#6]", V: "~@2 [a#4,a#5] ~@5",
})).s("gm_brass_section").gain(0.44).pan(0.7)
// other · trombone
const trombone = note("<~@4 A@5 ~@15 B@4 C@4 D ~@8 E F G H I F G J K@3 L@3 M@6 N@8 O@8 P@3 ~@3>".pickRestart({
A: "[~@14 c3@16 e2@15 ~ f2@16 g2@15 ~@3]/5", B: "[~@7 c3@2 ~@4 c3 ~ e2@2 ~@4 e2 ~ f2@2 ~@4 f2 ~ g2]/4",
C: "[~@8 g2 ~ g2@2 ~@2 c3@4 ~@8 c3@2 ~@2 e2@4 ~@8 e2@2 ~@2 f2@4 ~@8 f2@2 ~@2 g2@2]/4",
D: "~@2 g2 ~ g2@2 ~@2 g2 ~ g2 ~ g2@2 c3@2", E: "a2", F: "g#2", G: "g2", H: "f#2", I: "a2@15 ~", J: "f2@8 g2@7 ~",
K: "[c3@4 ~@6 c3@2 ~@2 e2@6 ~@6 e2@2 ~@2 f2@5 ~@7 f2@2 ~@2 g2@2]/3",
L: "[~@4 g2@2 ~@2 g2@2 g2 ~@3 c3@5 ~@7 c3@2 ~@2 e2@6 ~@6 e2@2 ~@2 f2@2]/3",
M: "[~@10 f2@2 ~@2 g2@16 g#2@14 a#2@2 c#3@14 ~@2 f2@15 ~ f#2@16 g#2@2]/6",
N: "[~@8 g#2@2 a#2@2 c#3 ~ c#3@15 ~ f2@15 ~ f#2@16 g#2@9 ~ g#2@2 a#2@2 c#3@2 c#3@14 ~@2 f2@15 ~ f#2@15 ~ g#2@2]/8",
O: "[~@8 g#2@2 a#2@2 c#3 ~ c#3@14 ~@2 f2@15 ~ f#2@15 ~ g#2@9 ~ g#2@2 a#2@2 c#3 ~ c#3@15 ~ f2@15 ~ f#2@15 ~ g#2@2]/8",
P: "[~@8 g#2@2 a#2@2 c#3 ~ c#3@14 ~@2 f2@15 ~@3]/3",
})).s("gm_trombone").gain(0.44).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~ A B@3 C B@2 D E B@3 E B@3 F@2 G H F@2 G H B@4 E B@3 F@2 I H F@2 G J A@3 K A L@2 M B@4 E B@2 N@2 E B@3 E B@7 E B@7 E
O ~@3
>`.pickRestart({
A: "x ~ x ~ x ~ x!2", B: "~@2 x ~ x ~ x!2", C: "~@2 x!3 ~ x!2", D: "~ x!3", E: "~ x!2 ~ x ~ x!2",
F: "~ x ~@2 x!2 ~ x", G: "~@4 x!2 ~@2", H: "x ~ x ~@5 x ~ x!2 ~@2 x ~", I: "~ x ~@2 x ~@3", J: "x ~@7 x ~ x!2 ~@4",
K: "x ~ x ~ x!4", L: "x!8", M: "x!7 ~", N: "~@7 x", O: "~ x ~@2",
// … 70 more lines
More by The Grass Roots
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.