0:00/0:00
// Baby Now That I Found You — Foundations
// 121 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "sax" alto sax (copy of ch 5 "trumpet" trumpet); ch 8 "trombone/" trombone (copy of ch 5 "trumpet" trumpet); ch 15 pad warm (copy of ch 9 acoustic guitar nylon)
// note: Full arrangement: all 86 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(121/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 · fretless bass · "bass"
const bass = note(`<
~ A B C D E F G H I J K L E M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK E F G H L J K L E M N O AL Q
AM S T AN AD AE AF AG AH AO@2 AP@7 AQ@8 AR@3 AS@2 AT AU
>`.pickRestart({
A: "g1@2 ~@2 a1@2 ~@2 c2@5 ~@3 c2@7 ~ g1@3 ~ c2@4", B: "~@4 c2@3 ~ g1@3 ~ c2@2 ~@2 d2@7 ~ c2@6 ~@2",
C: "g1@2 ~@2 a1@2 ~@2 c2@6 ~@2 c2@8 g1@3 ~ c2@4", D: "~@4 c2@2 ~@2 d2@5 ~@3 c2@13 ~@3",
E: "c2@9 ~@3 c2 ~@3 c2@4 g1@4 a1@3 ~ c2@3 ~", F: "a#1@9 ~@3 a#1@2 ~@2 a#1@3 ~ g1@4 a1@2 ~@2 a#1@2 ~@2",
G: "a1@10 ~@2 a1 ~@3 a1 ~@3 a1@6 ~@2 a1@2 ~@2", H: "g#1@10 ~@2 g#1@2 ~@2 g#1 ~@3 g#1@6 ~@2 g#1@3 ~",
I: "g1@10 ~@2 g1 ~@3 g1 ~@3 g1@5 ~@3 g2@3 ~", J: "f#2@10 ~@2 f#2 ~@3 f#2 ~@3 f#2@6 ~@2 f#2 ~@3",
K: "f2@9 ~@3 f2 ~@3 f2@4 a1 ~@3 a1@3 ~ d2@3 ~", L: "g1@10 ~@2 g1 ~@3 g1 ~@3 g1@5 ~@3 g1@3 ~",
M: "a#1@9 ~@3 a#1@2 ~@2 a#1@3 ~ g1@4 a1@3 ~ a#1@2 ~@2", N: "a1@9 ~@3 a1 ~@3 a1 ~@3 a1@6 ~@2 a1@3 ~",
O: "g#1@10 ~@2 g#1 ~@3 g#1 ~@3 g#1@6 ~@2 g#1@3 ~", P: "g1@9 ~@3 g1@2 ~@2 g1 ~@3 g1@6 ~@2 g2@3 ~",
Q: "f#2@9 ~@3 f#2 ~@3 f#2 ~@3 f#2@6 ~@2 f#2 ~@3", R: "f2@9 ~@3 d2 ~@3 d2@4 a1 ~@3 a1@3 ~ d2@3 ~",
S: "g1@10 ~@2 g1 ~@3 g1 ~@3 g1@6 ~@2 g1@3 ~", T: "g1@3 ~ a1@2 ~@2 c2@5 ~@3 c2@8 g1@3 ~ c2@3 ~",
U: "~@4 c2 ~@3 d2@5 ~@3 c2@14 ~@2", V: "c2@9 ~@3 c2@2 ~@2 f1@10 ~@2 f1@3 ~", W: "c2@10 ~@2 c2@3 ~ d2@6 ~@2 d2@7 ~",
X: "c2@10 ~@2 c2@4 f1@10 ~@2 f1@3 ~", Y: "c2@9 ~@3 c2@4 f1@6 ~@2 f1@7 ~", Z: "c2@10 ~@2 c2@3 ~ f1@10 ~@2 f1@3 ~",
AA: "c2@10 ~@2 c2@4 f1@7 ~ f1@7 ~", AB: "c2@10 ~@2 c2@3 ~ f1@6 ~@2 f1@5 ~@3", AC: "f1@5 ~ f1 ~ f1@3 ~ g1@3 ~",
AD: "a1@10 ~@2 a1@2 ~@2 a1@15 ~", AE: "e1@9 ~@3 e1@2 ~@2 e1@10 ~@2 e1@3 ~", AF: "a1@9 ~@3 a1@3 ~ e1@10 ~@2 e1@3 ~",
AG: "a1@10 ~@2 a1@2 ~@2 a1@6 ~@2 a1@5 ~@3", AH: "g1@9 ~@3 g1@2 ~@2 g1@9 ~@3 g1@4",
AI: "d2@10 ~@2 d2@2 ~@2 d2@10 ~@2 d2@3 ~", AJ: "g1@6 ~@2 g1@5 ~@3 g1@6 ~@2 g1@5 ~@3",
AK: "g1@6 ~@2 g1@5 ~@3 g1@6 ~@2 g1@7 ~", AL: "g1@9 ~@3 g1@2 ~@2 g1 ~@3 g1@6 ~@2 g1@3 ~",
AM: "d2@9 ~@3 d2 ~@3 d2@4 a1 ~@3 a1@3 ~ d2@3 ~", AN: "~@4 c2 ~@3 d2@5 ~@3 e1@6 ~@2 g1@6 ~@2",
AO: "[d2@10 ~ d2@2 ~@2 d2@10 ~@2 d2@3 ~ g1@6 ~@2 g1@5 ~@3 g1@6 ~@2 g1@5 ~@3 g1]/2",
AP: "[~@7 g1@5 ~@3 g1@6 ~@2 g1@7 ~ c2@9 ~@3 c2 ~@3 c2@4 g1@4 a1@3 ~ c2@3 ~ a#1@9 ~@3 a#1@2 ~@2 a#1@3 ~ g1@4 a1@2 ~@2 a#1@2 ~@2 a1@10 ~@2 a1 ~@3 a1 ~@3 a1@6 ~@2 a1@2 ~@2 g#1@10 ~@2 g#1@2 ~@2 g#1 ~@3 g#1@6 ~@2 g#1@3 ~ g1@10 ~@2 g1 ~@3 g1 ~@3 g1@5 ~@3 g1@3 ~ f#2@10 ~@2 f#2 ~@3 f#2 ~@3 f#2@6 ~@2 f#2 ~@3 d2]/7",
AQ: "[~@11 d2 ~@3 d2@4 a1 ~@3 a1@3 ~ d2@3 ~ g1@10 ~@2 g1 ~@3 g1 ~@3 g1@5 ~@3 g1@3 ~ c2@9 ~@3 c2 ~@3 c2@4 g1@4 a1@3 ~ c2@3 ~ a#1@9 ~@3 a#1@2 ~@2 a#1@3 ~ g1@4 a1@3 ~ a#1@2 ~@2 a1@9 ~@3 a1 ~@3 a1 ~@3 a1@6 ~@2 a1@3 ~ g#1@10 ~@2 g#1 ~@3 g#1 ~@3 g#1@6 ~@2 g#1@3 ~ g1@9 ~@3 g1@2 ~@2 g1 ~@3 g1@6 ~@2 g1@3 ~ d2@9 ~@3 d2 ~@3 d2 ~@3 d2@6 ~@2 d2 ~@3 d2]/8",
AR: "[~@11 d2 ~@3 d2@4 a1 ~@3 a1@3 ~ d2@3 ~ g1@10 ~@2 g1 ~@3 g1 ~@3 g1@6 ~@2 g1@3 ~ g1@2 ~@2 a1@2 ~@2 c2@5 ~@3 c2@7 ~ g1@3 ~ c2@5]/3",
AS: "[~@3 c2@3 ~ g1@3 ~ c2@2 ~@2 d2@7 ~ c2@6 ~@2 g1@2 ~@2 a1@2 ~@2 c2@6 ~@2 c2@8 g1@3 ~ c2@4 ~]/2",
AT: "~@3 c2@2 ~@2 d2@5 ~@3 c2@13 ~@4", AU: "~@7 c2@7 ~@18",
})).s("gm_fretless_bass").gain(0.45)
// chords · electric guitar muted · "guitar"
const electric_guitar_muted = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V ~@16 E W@2 X Y Z AA AB AC AD AE AF Q AG AH T AI AJ ~@7 AK@2 AL@2 AM@3 AN
AO AP AQ@2 AR@6 AS AT AU ~
>`.pickRestart({
A: "g2@3 ~ a2@2 ~@2 c3@4 ~@4 c3@7 ~ g2@3 ~@2 c3@2 ~", B: "~@4 c3@3 ~ g2@3 ~ c3@2 ~@2 d3@6 ~@2 c3@6 ~@2",
C: "g2@2 ~@2 a2 ~@3 c3@3 ~@5 c3@8 g2@4 c3@2 ~@2", D: "~@4 c3@2 ~@2 d3@4 ~@4 c3@13 ~@3",
E: "[e4,c5]@2 ~@6 [e4,c5]@2 ~@2 c3 ~@3 [c3,c5]@3 ~ g2@2 ~@2 [a2,e4,c5]@2 ~@2 c3@2 ~@2, c3@8 ~@8 e4 ~@15", // C Am
F: "a#2@8 [e4,c5]@2 ~@2 a#2 ~@3 [a#2,e4,c5]@2 ~@2 g2@2 ~@2 [a2,e4,c5]@2 ~@2 a#2 ~@3, c5 ~@15, e4 ~@31", // C C7 Am
G: "[f4,c5]@2 ~@6 [f4,c5]@2 ~@2 a2 ~@3 [a2,f4,c5] ~@3 a2@4 [f4,c5]@2 ~@2 a2 ~@3, a2 ~@3", // F5 F F5
H: "[f4,c5]@2 ~@6 [f4,c5]@2 ~@2 g#2 ~@3 [g#2,f4,c5]@2 ~@2 g#2@4 [f4,c5]@2 ~@2 g#2 ~@3, g#2 ~@3", // F5 Fm F5
I: "g2@8 [e4,c5]@2 ~@2 g2 ~@3 [g2,e4,c5]@2 ~@2 g2@4 [e4,c5]@2 ~@2 g2 ~@3, c5 ~@15, e4 ~@31", // C
J: "[f#4,d5]@2 ~@6 [f#4,d5]@2 ~@2 d3 ~@3 [d3,f#4,d5] ~@3 d3@4 [f#4,d5]@2 ~@2 d3 ~@3, d3 ~@3", // D
K: "[a4,d5] ~@7 [a4,d5] ~@3 d3 ~@3 [a4,c5] ~@3 a2 ~@3 [a2,a4,c5]@2 ~@2 d3 ~@3, d3@2 ~@2 d3 ~@3", // D5 Am
L: "[g4,b4] ~@7 [g4,b4] ~@3 g2 ~@3 [g2,g4,b4] ~@3 g2@4 [g4,b4] ~@3 g2 ~@3, g2 ~@3", // G
M: "[e4,c5]@2 ~@6 [e4,c5]@2 ~@2 c3 ~@3 [c3,e4,c5] ~@3 g2@2 ~@2 [a2,e4,c5]@2 ~@2 c3@2 ~@2, c3 ~@3", // C Am
N: "a#2@8 [e4,c5] ~@3 a#2 ~@3 [a#2,e4,c5]@2 ~@2 g2@2 ~@2 [a2,e4,c5] ~@3 a#2 ~@3, c5 ~@15, e4 ~@31", // C C7 Am
O: "a2@8 [f4,c5]@2 ~@2 a2 ~@3 [a2,f4,c5] ~@3 a2@4 [f4,c5] ~@3 a2 ~@3, f4 ~@15, c5 ~@31", // F5 F F5
P: "[f4,c5]@2 ~@6 [f4,c5] ~@3 g#2 ~@3 [g#2,f4,c5] ~@3 g#2@4 [f4,c5]@2 ~@2 g#2 ~@3, g#2 ~@3", // F5 Fm F5
Q: "[e4,c5] ~@7 [e4,c5]@2 ~@2 g2 ~@3 [g2,e4,c5] ~@3 g2@4 [e4,c5]@2 ~@2 g2 ~@3, g2 ~@3", // C
R: "d3@8 [f#4,d5]@2 ~@2 d3 ~@3 [d3,f#4,d5] ~@3 d3@4 [f#4,d5] ~@3 d3 ~@3, f#4 ~@15, d5 ~@31", // D
S: "[a4,d5] ~@7 [a4,d5] ~@3 d3 ~@3 [a4,c5] ~@3 a2 ~@3 [a2,a4,c5] ~@3 d3 ~@3, d3@8 ~@8 d3@3 ~@13", // D5 Am
T: "[g4,b4] ~@7 [g4,b4]@2 ~@2 g2 ~@3 [g2,g4,b4] ~@3 g2@4 [g4,b4]@2 ~@2 g2 ~@3, g2 ~@3", // G
U: "g2@2 ~@2 a2 ~@3 c3@4 ~@4 c3@7 ~ g2@2 ~@2 c3@3 ~", V: "~@4 c3 ~@3 d3@4 ~@4 c3@13 ~@3",
W: "[a#2@8 [e4,c5]@2 ~@2 a#2 ~@3 [a#2,e4,c5]@2 ~@2 g2@2 ~@2 [e4,c5]@2 ~ a#2 ~@4 a2@8 [f4,c5]@2 ~@2 a2 ~@3 [a2,f4,c5] ~@3 a2@4 [f4,c5]@2 ~@2 a2 ~@3, c5@2 ~@29 [f4,c5]@2 ~@31, e4 ~@22 a2@2 ~@39]/2", // C C7 C F5 F F5
X: "[f4,c5]@2 ~@6 [f4,c5]@2 ~ g#2 ~@4 [g#2,f4,c5]@2 ~@2 g#2@4 [f4,c5]@2 ~@2 g#2 ~@3, g#2 ~@3", // F5 Fm F5
Y: "g2@8 [e4,c5]@2 ~ g2 ~@4 [g2,e4,c5]@2 ~@2 g2@4 [e4,c5]@2 ~@2 g2 ~@3, c5 ~@15, e4 ~@31", // C
Z: "[f#4,d5]@2 ~@6 [f#4,d5]@2 ~ d3 ~@4 [d3,f#4,d5] ~@6 [f#4,d5]@2 ~@3 d3 ~@3, d3@4 ~@6 d3@3 ~@3", // D
AA: "[a4,d5] ~@7 [a4,d5] ~@3 d3 ~@3 [a4,c5] ~@2 a2 ~@4 [a2,a4,c5]@2 ~@2 d3 ~@2 [g4,b4], d3@8 ~@7 d3@4 ~@13", // D5 Am G
AB: "g2@7 b4 g4 ~@3 g2 ~@3 [g2,g4,b4] ~@3 g2@4 [g4,b4] ~@3 g2 ~@3", // G
AC: "[e4,c5]@2 ~@6 [e4,c5]@2 ~ c3 ~@4 [e4,c5] ~@2 g2@2 ~@3 [e4,c5]@2 ~@2 c3@2 ~@2, c3@8 ~@7 c3@2 ~@6 a2@2 ~@7", // C
AD: "a#2@8 [e4,c5] ~@3 a#2 ~@3 [a#2,e4,c5]@2 ~@2 g2@2 ~@2 [e4,c5] ~@2 a#2 ~@4, c5 ~@15, e4 ~@22 a2@2 ~@7", // C C7 C
AE: "a2@8 [f4,c5]@2 ~ a2 ~@3 a2 [f4,c5] ~@3 a2@4 [f4,c5] ~@3 a2 ~@3, f4 ~@15, c5 ~@31", // F5
AF: "[f4,c5]@2 ~@6 [f4,c5] ~@3 g#2 ~@3 [g#2,f4,c5] ~@2 g#2@4 ~ f4 ~@2 g#2 ~@4, g#2@8 ~@15 c5@2 ~@7", // F5 Fm
AG: "d3@8 [f#4,d5]@2 ~@2 d3 ~@2 f#4 [d3,d5] ~@6 f#4 d5 ~@3 d3 ~@3, f#4@2 ~@18 d3@5 ~@7, d5 ~@31", // D
AH: "[a4,d5] ~@7 [a4,d5] ~@3 d3 ~@3 [a4,c5] ~@3 a2 ~@2 a2 [a4,c5] ~@3 d3 ~@3, d3@8 ~@8 d3@3 ~@13", // D5 Am
AI: "g2@2 ~ a2 ~@4 c3@4 ~@4 c3@7 g2@2 ~@3 c3@3 ~", AJ: "~@4 c3@2 ~@2 d3@6 ~@2 e2@7 ~ g2@7 ~",
AK: "[~@32 c3@7 [e4,c5]@2 ~@3 c3 ~@2 [c3,c5]@3 ~ g2@2 ~@3 [e4,c5]@2 ~ c3@2 ~@3, ~@31 [e4,c5]@2 ~@14 e4 ~@7 a2@2 ~@7]/2", // C
AL: "[a#2@8 [e4,c5]@2 ~ a#2 ~@4 [a#2,e4,c5]@2 ~ g2@2 ~@2 [a2,e4,c5]@2 ~@2 a#2 ~@3 [f4,c5]@2 ~@7 [f4,c5]@2 ~ a2 ~@4 [a2,f4,c5] ~@6 [f4,c5]@2 ~@2 a2 ~@4, c5 ~@31, e4 ~@30 a2@9 ~@12 a2@5 ~@7]/2", // C C7 Am F5 F F5
AM: "[[f4,c5]@2 ~@6 [f4,c5]@2 ~ g#2 ~@3 [g#2,f4,c5]@2 ~@2 g#2@5 [f4,c5]@2 ~ g#2 ~@4 g2@7 [e4,c5]@2 ~@2 g2 ~@3 g2 [e4,c5]@2 ~@2 g2@4 [e4,c5]@2 ~ g2 ~@4 d5@2 ~@6 d5@2 ~ d3 ~@4 d5 ~@2 d3@4 [f#4,d5]@2 ~@3 d3 ~@3, g#2@8 ~@23 [e4,c5]@2 ~@30 d3@9 ~@7 [d3,f#4]@2 ~@15, ~@63 f#4@2 ~@6 f#4@2 ~@23]/3", // F5 Fm F5 C D C D
AN: "[a4,d5] ~@7 [a4,d5] ~@2 d3 ~@4 [a4,c5] ~@2 a2 ~@3 [a2,a4,c5]@2 ~@2 d3 ~@3 [g4,b4], d3@8 ~@7 d3@4 ~@13", // D5 Am G
AO: "g2@7 [g4,b4] ~@3 g2 ~@3 g2 [g4,b4] ~@2 g2@5 [g4,b4] ~@3 g2 ~@3", // G
AP: "[e4,c5]@2 ~@6 e4 ~@2 c3 ~@4 [e4,c5] ~@2 g2@2 ~@2 [a2,e4,c5]@2 ~@2 c3@2 ~@3, c3@7 c5@2 ~@6 c3@2 ~@15", // C Am
AQ: "[a#2@8 [e4,c5] ~@2 a#2 ~@3 [a#2,e4,c5]@2 ~@2 g2@2 ~@2 [a2,e4,c5] ~@3 a#2 ~@4 [f4,c5]@2 ~@6 [f4,c5]@2 ~ a2 ~@3 [a2,c5] f4 ~@3 a2@4 [f4,c5] ~@2 a2 ~@4, c5 ~@31, e4 ~@30 a2@9 ~@24]/2", // C C7 Am F5 Am F5
AR: "[[f4,c5]@2 ~@6 [f4,c5] ~@2 g#2 ~@4 f4 ~@2 g#2@4 [f4,c5]@2 ~@2 g#2 ~@3 [e4,c5] ~@7 [e4,c5]@2 ~@2 g2 ~@4 e4 ~@2 g2@4 ~ e4 ~@3 g2 ~@3 d3@8 [f#4,d5]@2 ~@2 d3 ~@2 [f#4,d5] d3 ~@6 [f#4,d5] ~@4 d3 ~@2 [a4,d5] ~@8 [a4,d5] ~@3 d3 ~@3 [a4,c5] ~@2 a2 ~@3 [a2,a4,c5] ~@3 d3 ~@3 [g4,b4] ~@8 b4 ~@3 g2 ~@2 b4 [g2,g4] ~@2 g2@4 [g4,b4]@2 ~@3 g2 ~@2 g2@3 ~ a2@2 ~@3 c3@4 ~@3 c3@7 ~ g2@3 ~@2 c3@2 ~@2, g#2@8 ~@7 [g#2,c5]@2 ~@14 g2@8 ~@8 [g2,c5]@2 ~@6 c5@2 ~@6 f#4@2 ~@19 d3@5 ~@6 d3@9 ~@8 d3@3 ~@12 g2@8 ~@57, ~@64 d5 ~@70 g4@2 ~@55]/6", // F5 C D D5 Am G G# C5
AS: "~@4 c3@3 g2@3 ~ c3@2 ~@2 d3@6 ~@2 c3@6 ~@3", AT: "g2@2 ~ a2 ~@4 c3@3 ~@4 c3@8 g2@4 ~ c3@2 ~@2",
AU: "~@4 c3@2 ~@2 d3@4 ~@3 c3@13 ~@4",
})).s("gm_electric_guitar_muted").gain(0.5).pan(0.6)
// chords · electric guitar clean · "guitar2/"
const electric_guitar_clean = note(`<
~@5 A B C D E F G H A I C J A G K H L ~ M@2 N M@2 O P Q R S T R U V ~@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AD L
~ AL AM AN AO AP AQ ~@2 AR AS AT AU AV AW AX AY AE AZ BA BB BC AX BD AY ~@4 BE
>`.pickRestart({
A: "~@4 [g3,c4,g4] ~@7 [g3,c4,g4] ~@3", B: "~@8 [a#3,c4,g4]@3 ~@13 [a#3,c4,g4]@2 ~@6",
C: "~@4 [a3,c4,g4] ~@7 [a3,c4,g4] ~@3", D: "~@8 [g#3,c4,g4]@2 ~@14 [g#3,c4,g4]@3 ~@5",
E: "~@8 [g3,c4,g4]@3 ~@13 [g3,c4,g4]@2 ~@6", F: "~@8 [a3,d4,a4]@2 ~@14 [a3,d4,a4]@3 ~@5",
G: "~@4 [a3,d4,a4] ~@7 [a3,d4,a4] ~@3", H: "~@8 [g3,d4,g4]@3 ~@13 [g3,d4,g4]@3 ~@5",
I: "~@8 [a#3,c4,g4]@3 ~@13 [a#3,c4,g4]@3 ~@5", J: "~@8 [g#3,c4,g4]@3 ~@13 [g#3,c4,g4]@3 ~@5",
K: "~@8 [a3,d4,a4]@2 ~@14 [a3,d4,a4]@3 ~@5, ~@24 g4 ~@7", L: "~@8 [g3,c4,g4]@3 ~@13 [g3,c4,g4]@3 ~@5",
M: "~@4 [g3,c4,e4] ~@7 [a3,c4,f4] ~@3", N: "~@4 [g3,c4,e4] ~@7 [a3,f4] ~@3, ~@23 c4@2 ~@7",
O: "~@4 [g3,e4] ~@7 [c4,f4] ~@3, ~@7 c4@2 ~@14 a3@2 ~@7", P: "~@4 [g3,c4,e4] ~@7 [a3,c4] ~@3, ~@23 f4@2 ~@7",
Q: "[f3,a3,c4,e4]@14 ~@2 [f3,a3,c4,e4]@6 ~@2 [g3,b3,d4,g4]@7 ~", R: "~@4 [a3,c#4,e4,a4] ~@7 [a3,c#4,e4,a4] ~@3",
S: "~@4 [b3,e4,g4] ~@7 [g3,e4,g4] ~@3, ~@7 g3@2 ~@14 b3@2 ~@7", // Em C
T: "~@4 [c#4,e4,a4] ~@7 [g3,b3,e4,g4] ~@3, ~@7 a3@2 ~@23", U: "~@4 [g3,b3,d4,g4] ~@7 [b3,d4,g4] ~@3, ~@23 g3@2 ~@7",
V: "~@8 [f3,a3] ~@7 [a3,d4,f4]@2 ~@6 [a3,d4,f4,a4]@3 ~@5, ~@7 d4@2 ~@23", // F Dm
W: "~@4 [g3,c4] ~@7 [g3,c4,g4] ~@3, ~@7 g4@2 ~@23", X: "~@8 [a#3,c4,g4]@3 ~@13 [a#3,c4]@2 ~@6, ~@23 g4@3 ~@6",
Y: "~@4 [a3,g4] ~@7 [a3,c4,g4] ~@3, ~@7 c4@2 ~@23", Z: "~@8 [c4,g4]@3 ~@13 c4@3 ~@5, ~@7 g#3@2 ~@14 [g#3,g4]@3 ~@6",
AA: "~@8 [g3,c4]@3 ~@13 c4@2 ~@6, ~@7 g4@3 ~@13 [g3,g4]@3 ~@6", // C5 G
AB: "~@8 [a3,a4]@3 ~@13 [a3,d4,a4]@3 ~@5, ~@7 d4@2 ~@23", AC: "~@4 a4 ~@7 a3 ~@3, ~@7 [a3,d4]@2 ~@14 [d4,a4]@2 ~@7",
AD: "~@8 [g3,g4]@3 ~@13 [g3,d4,g4]@3 ~@5, ~@7 d4@2 ~@23", AE: "~@4 [g3,c4,g4] ~@7 g3 ~@3, ~@23 [c4,g4]@3 ~@6",
AF: "~@7 [a#3,c4,g4]@3 ~@14 g4@3 ~@5, ~@23 [a#3,c4]@3 ~@6", AG: "~@4 [a3,c4,g4] ~@7 [a3,c4] ~@3, ~@23 g4@2 ~@7",
AH: "~@8 [g#3,c4,g4]@3 ~@12 [g#3,c4,g4]@3 ~@6", AI: "~@8 g4@3 ~@13 [c4,g4]@3 ~@5, ~@7 [g3,c4]@2 ~@14 g3@2 ~@7",
AJ: "~@4 a3 ~@7 d4 ~@3, ~@7 [d4,a4]@2 ~@14 [a3,a4]@3 ~@6", // D5 A
AK: "~@8 [a3,a4]@2 ~@14 [a3,a4]@3 ~@5, ~@7 d4@2 ~@14 d4@2 ~@7, ~@24 g4 ~@7", // A
AL: "~@4 [a3,c#4,a4] ~@7 [e4,a4] ~@3, ~@7 e4@2 ~@14 [a3,c#4]@2 ~@7", // A A5 A
AM: "~@4 [b3,g4] ~@7 [g3,g4] ~@3, ~@7 [g3,e4]@2 ~@14 [b3,e4]@2 ~@7", // Em G C E5
AN: "~@4 a4 ~@7 [b3,e4] ~@3, ~@7 [a3,c#4,e4]@2 ~@14 [g3,g4]@2 ~@7", // E5 A G
AO: "~@4 [a3,c#4,e4] ~@7 [c#4,e4,a4] ~@3, ~@7 a4@2 ~@14 a3@2 ~@7", // A
AP: "~@4 [g3,b3,d4] ~@7 [d4,g4] ~@3, ~@7 g4@2 ~@14 [g3,b3]@2 ~@7", // G G5 G
AQ: "~@8 a3 ~@7 a3@2 ~@5 [a3,d4,f4,a4]@3 ~@6, ~@7 [f3,d4]@2 ~@6 [d4,f4]@2 ~@15", // Dm
AR: "~@7 [g3,c4,g4]@2 ~@15 [g3,c4,g4]@2 ~@6", AS: "~@8 [c4,g4]@3 ~@12 [a#3,c4,g4]@2 ~@7, ~@7 a#3@3 ~@22",
AT: "~@4 g4 ~@7 c4 ~@3, ~@7 [a3,c4]@2 ~@14 [a3,g4]@2 ~@7", AU: "~@7 [g#3,c4,g4]@2 ~@14 [g#3,c4,g4]@3 ~@6",
AV: "~@4 c4 ~@7 c4 ~@3, ~@7 [g3,g4]@3 ~@13 [g3,g4]@3 ~@6", AW: "~@7 [a3,d4,a4]@2 ~@15 a4@3 ~@5, ~@23 [a3,d4]@3 ~@6",
AX: "~@7 [a3,d4,a4]@2 ~@14 [a3,d4,a4]@2 ~@7", AY: "~@8 g4@3 ~@12 [g3,d4,g4]@3 ~@6, ~@7 [g3,d4]@3 ~@22",
AZ: "~@7 [a#3,c4,g4]@3 ~@13 [a#3,c4,g4]@3 ~@6", BA: "~@7 [a3,c4,g4]@2 ~@14 [a3,c4,g4]@2 ~@7",
BB: "~@8 g#3@3 ~@12 [g#3,c4,g4]@3 ~@6, ~@7 [c4,g4]@3 ~@22", BC: "~@7 [g3,c4,g4]@2 ~@14 [g3,c4,g4]@2 ~@7",
BD: "~@7 [a3,d4,a4]@2 ~@14 [a3,d4,a4]@3 ~@6, ~@23 g4 ~@8", BE: "~@7 [g3,c4,e4,g4]@3 ~@22",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.4)
// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
~@5 A B C D E F G H A B I D J@3 K L M@3 N@4 O@2 P@8 Q@8 E R@3 A S@3 T U@3 V@6 W@5 X@5 Y@6 ~@4 Z
>`.pickRestart({
A: "[g3,c4,e4]@29 ~@3", B: "[g3,a#3,e4]@29 ~@3", C: "[a3,c4]@7 ~", D: "[g#3,c4]@29 ~@3", E: "[g3,c4,e4]@7 ~",
F: "[f#3,a3,d4]@29 ~@3", G: "[f3,a3,d4]@29 ~@3", H: "[g3,b3,d4]@29 ~@3", I: "[a3,c4]@29 ~@3",
J: "[[g3,c4,e4]@29 ~@3 a3@29 ~@3 f3@29 ~@3, ~@31 [f#3,d4]@30 ~@2 [a3,d4]@30 ~@3]/3", K: "[g3,b3,d4]@7 ~",
L: "g3@2 ~@2 a3@2 ~@2 c4@2 ~@6 c4@7 g3@3 ~@2 c4@2 ~@2",
M: "[~@4 c4 ~@3 d4@2 ~@6 c4@10 ~@6 g3@12 ~@3 [f3,a3,c4]@14 ~@3 e4@13 ~@2 [a3,c4,f4]@15 ~@2, ~@31 [c4,e4]@13 ~@19 [g3,c4]@14 ~@19]/3", // F C C5
N: "[[g3,c4,e4]@14 ~@2 [f3,a3]@14 ~ [g3,c4,e4]@14 ~@3 f4@13 ~@3 g3@14 ~@2 [f3,a3]@14 ~ [g3,c4,e4]@15 ~@2 [a3,f4]@13 ~@3, ~@15 c4@15 ~@17 [a3,c4]@15 ~ [c4,e4]@15 ~ c4@15 ~@17 c4@14 ~@3]/4", // C F C F C Dm Am C
O: "[[g3,c4,e4]@14 ~@2 [a3,c4,f4]@13 ~@3 [f3,e4]@22 ~@2 [g3,b3,d4]@4 ~@3 c#4, ~@31 [a3,c4]@22 ~@11]/2", // C F Fmaj7 G Am
P: "[[a3,e4]@28 ~@3 [g3,b3,e4]@29 ~@3 [a3,c#4,e4]@13 ~@3 [g3,b3,e4]@14 ~@2 [a3,c#4,e4]@29 ~@3 [g3,b3,d4]@30 ~@2 [f3,a3,c4]@29 ~@3 [g3,b3,d4]@60 ~@5]/8", // A5 Em A Em A G F G
Q: "[[g3,c4,e4]@28 ~@3 [g3,a#3,e4]@29 ~@3 [a3,c4]@29 ~@3 [g#3,c4]@29 ~@3 [g3,c4,e4]@29 ~@3 [f#3,a3,d4]@29 ~@4 f3@28 ~@3 [g3,b3,d4]@29 ~@4, ~@191 [a3,d4]@29 ~@36]/8", // C Edim Am G# C D G D5
R: "[[g3,a#3,e4]@29 ~@2 [a3,c4]@29 ~@3 [g#3,c4]@30 ~@3]/3", // Edim Am G#
S: "[[f#3,a3,d4]@29 ~@3 f3@28 ~@3 [g3,b3,d4]@28 ~@5, ~@31 [a3,d4]@29 ~@36]/3", // D G D5
T: "g3@3 a3@2 ~@2 c4@3 ~@5 c4@6 ~ g3@3 ~@3 c4@2 ~@2",
U: "[~@4 c4@2 ~@2 d4@3 ~@4 e3@7 ~ g3@3 ~@5 [a3,c#4,e4]@29 ~@3 [g3,b3,e4]@29 ~@3 [a3,c#4,e4]]/3", // A Em A
V: "[~@15 [g3,b3,e4]@14 ~@2 [a3,c#4,e4]@28 ~@4 [g3,b3,d4]@30 ~@2 [f3,a3,c4]@29 ~@3 [g3,b3,d4]@61 ~@4]/6", // Em A G F G
W: "[[g3,c4,e4]@29 ~@3 e4@29 ~@2 [a3,c4]@29 ~@3 [g#3,c4]@29 ~@3 [g3,c4,e4]@29 ~@3 f#3, ~@31 [g3,a#3]@29 ~@100]/5", // C Am G# C Gm
X: "[[a3,d4]@28 ~@3 [f3,a3,d4]@29 ~@3 [g3,b3,d4]@29 ~@3 [g3,c4,e4]@29 ~@3 [g3,a#3,e4]@29 ~@3 [a3,c4]]/5", // D5 Dm G C Edim Am
Y: "[~@31 [g#3,c4]@30 ~@2 [g3,c4,e4]@29 ~@3 [f#3,a3,d4]@29 ~@3 [f3,a3,d4]@29 ~@3 [g3,b3,d4]@30 ~@3]/6", // G# C D Dm G
Z: "~@4 [e3,g3,c4] ~@11", // C
})).s("gm_string_ensemble_1").gain(0.2).pan(0.4)
// other · trumpet
const trumpet = note(`<
~@3 A B C@4 D@2 ~@2 C@4 D@2 ~@3 E ~ F G H G F G I ~@5 J ~ K C@4 D@2 ~@2 C@4 D@2 ~@3 I ~@5 L ~ M C@2 N@2 O@2 ~@2 P@2
Q@2 R@2 ~@3 S@2 T U
>`.pickRestart({
A: "g3@3 ~ a3@2 ~@2 c4@3 ~@5 c4@8 g3@4 c4@2 ~@2", B: "~@8 [c4,f4,a4]@3 ~@5 [c4,e4,g4]@12 ~@4",
C: "[~@16 e4@4 f4 ~@3 e4 ~@3 g4@35 ~]/2", D: "[~@16 e4@4 f4 ~@3 e4 ~@3 a4@35 ~]/2",
E: "~@8 [c4,f4,a4]@3 ~@5 [c4,e4,g4]@13 ~@3", F: "~@24 [c4,f4,a4]@3 ~@5", G: "[c4,e4,g4] ~@7",
H: "~@4 g4@4 a4 ~@3 c5 ~@3 d5@4 c5 ~@3 [c4,f4,a4]@4 ~@4", I: "~@16 e4@5 ~@3 g4@6 ~@2",
J: "~@16 [d4,f4]@4 ~@4 [f4,a4]@5 ~@3", K: "~@20 c5 ~@3 d5@3 ~ c5@2 ~@2", L: "~@15 [d4,f4]@4 ~@4 [f4,a4]@5 ~@4",
M: "~@19 c5 ~@3 d5@3 ~ c5@2 ~@3", N: "[~@15 e4@4 f4 ~@3 e4 ~@4 g4@35 ~]/2", O: "[~@16 e4@3 f4 ~@4 e4 ~@3 a4@35 ~]/2",
P: "[~@16 e4@4 f4 ~@2 e4 ~@4 g4@35 ~]/2", Q: "[~@15 e4@4 f4 ~@3 e4 ~@3 g4@35 ~@2]/2",
R: "[~@16 e4@3 f4 ~@3 e4 ~@4 a4@35 ~]/2", S: "[~@31 g3@3 ~@2 a3@2 ~@2 c4@3 ~@4 c4@8 g3@4 ~ c4@2 ~@2]/2",
T: "~@7 [c4,f4,a4]@3 ~@5 [c4,e4,g4]@12 ~@5", U: "~@7 [e4,c5]@4 ~@21",
})).s("gm_trumpet").gain(0.04).pan(0.7)
// drums · kick
const kick = s("bd").struct("<~ A@3 B A@25 B A@25 B A@5 C D@21 E F>".pickRestart({
A: "x!4", B: "x ~ x!3 ~@3", C: "x ~@6 x ~@7 x ~@7 x ~@7 x", D: "~@7 x ~@7 x ~@7 x ~@7 x",
E: "~@7 x ~@3 x ~@3 x ~@15 x", F: "~@7 x ~@24",
})).gain(0.5)
// drums · snare
const snare = s("sd").struct(`<
~ A@3 B A@17 C A@7 B@2 A@2 D A@2 E@2 A@6 F A@10 B A D A D A G H I J@15 K J@3 L M
>`.pickRestart({
A: "~ x ~ x", B: "~@4 x ~@5 x!3 ~@3", C: "x ~@3 x ~@5 x!3 ~@3", D: "~@4 x ~@5 x!6", E: "x!4", F: "~@8 x ~@14 x ~@8",
G: "~@7 x ~@15 x ~@7 x", H: "~@7 x ~@7 x ~@7 x ~@7 x", I: "~@7 x ~@7 x ~@7 x ~@8", J: "~@7 x ~@15 x ~@8",
K: "~@7 x ~@11 x ~ x ~ x ~ x ~ x ~ x ~@2", L: "~@7 x ~@11 x ~ x ~ x ~@8", M: "~@7 x ~@24",
})).gain(0.5)
// drums · clap
const clap = s("cp").struct(`<
~@5 A@15 B A C B A D A D E F B A G A@2 B A H B@2 A H B A@2 G B A H B A G A@2 H G I A B@2 H G H A H@2 A B H G@2 A G H G
H G H@4 ~@4 J
>`.pickRestart({
A: "~ x ~ x", B: "~@7 x ~@16 x ~@7", C: "~ x!3", D: "x ~@2 x", E: "~@8 x ~@15 x ~@6 x", F: "~@3 x",
G: "~@8 x ~@14 x ~@8", H: "~@7 x ~@15 x ~@8", I: "~@8 x ~@7 x ~@6 x ~@8", J: "~@7 x ~@24",
})).gain(0.5)
// drums · low tom
const low_tom = s("lt").struct("<~@4 A ~@17 A ~@7 A@2 ~@24 A ~@27 B ~>".pickRestart({
A: "~@15 x", B: "~@29 x ~@2",
})).gain(0.5)
// … 30 more lines
More by Foundations
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.