0:00/0:00
// Get Closer — Seals & Crofts
// 97 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 4, 4/4 at bar 5, 2/4 at bar 8, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 4 "Electric Piano" epiano1 (copy of ch 2 "Piano" piano)
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(97/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@4 B@3 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L M N O@3 P@5 Q@2 R S@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L M N O@3 P@5 T@4
U@2 V W@3 X Y Z@2 X Y AA@2 X AB AC@2 X Y AD@2 X AE
>`.pickRestart({
A: "[~@9 a4@4 ~@7 c5@2 d5@2 a4@6 ~@6 c5@2 ~ b4@2 a4@4 b4@2 [f4,a4,c5]@6 [a4,c5,f5]@4 ~ [a4,c5,f5]@4 [g4,c5,e5]@2, ~@9 [d4,b4]@10 ~@11 g4@10 ~ [c4,g4]@6 ~@17, ~@13 g4@10 ~ [b4,d5]@12 ~@28]/4", // F C G C5 Bm
B: "[[g4,c5,e5]@4 a4@4 ~@7 c5@2 d5@2 a4@6 ~@7 c5@2 b4@2 a4@4 b4@2 [f4,a4,c5]@6, ~@4 [d4,b4]@10 ~@11 g4@10 ~ [c4,g4]@6 ~@6, ~@8 g4@10 ~ [b4,d5]@12 ~@17]/3", // C F G C5 Bm
C: "[[a4,c5,f5]@4 ~ [a4,c5,f5]@4 [g4,c5,e5]@2 [g4,c5,e5]@4 [g4,b4,d5]@16 ~]/2", // F C G
D: "[[b3,d4]@4 ~@3 [c4,e4,a4]@5 ~@2 [f#4,a4,c5]@2, g4 ~@15]/2", // Bm Am F#dim
E: "[[d4,g4,b4]@8 ~@6 [e4,a4]@3 ~@3 c4@2 c4@2 d4@2 d4@2 e4 f#4@3, ~@7 c4@3 ~@6, ~@9 e4@3 ~@4]/2", // G A5
F: "[g4 g4@3 ~@3 [c4,e4,a4]@5 ~@2 [f#4,a4,c5]@2, [b3,d4] ~@3]/2", // Am F#dim Bm
G: "[[g4,b4]@6 ~@8 [c4,e4,a4]@6 c4@2 c4@2 d4@2 d4@2 e4 f#4@3, d4@9 ~@23]/2", // G Am
H: "[[b3,d4,g4]@4 ~@3 [c4,a4]@5 ~@2 [f#4,a4,d5]@2, ~@7 e4@4 ~@5]/2", // G F D
I: "[[d4,g4,b4]@9 ~@5 [c4,e4,a4]@6 c4@2 c4@2 d4@2 d4@2 e4 f#4@3]/2", // G Am
J: "[[b3,d4,g4]@8 ~@6 [c4,e4,a4]@9 ~ [e4,g4,c5]@4 [f#4,a4,d5]@4]/2", // G Am C D
K: "[[g4,b4]@3 ~@4 b4@2 a4 [d4,f#4,a4]@3 ~@3, d4@4 ~@3 [d4,f#4]@3 ~@6]/2", L: "[e4,a4,c#5]@9 ~@7",
M: "d4@3 [e4,a4,b4]@3 ~@2, f#4 ~@3", N: "[f#4,a4]@3 [a4,c#5]@3 ~@2, d5@2 ~ e4@4 ~",
O: "[[c#4,e4,f#4]@3 [d4,g4,b4]@4 [d4,b4]@4 [e4,a4,b4]@4 [b3,d4,a4]@3 ~@2 [e4,a4,c#5]@4, ~@7 a4@3 ~@14]/3", // F#7 G Esus4 Bm7 A
P: "[[c#4,e4]@4 [d4,f#4]@3 [e4,a4]@5 [f#4,a4,d5]@3 [a4,c#5,e5]@4 ~ [c#4,e4,f#4]@3 [d4,g4,b4]@3 ~ d4@4 [e4,a4]@4 [g#4,b4]@5, ~@7 b4@4 ~@16 a4@3 ~@5 c#5@4 ~]/5", // C#m D A5 D A F#7 G A5 …
Q: "[f#5@2 f#5@2 f#5@2 f#5@4 g#5@4 [c#5,e5,a5]@4 [c#4,e4]@13 ~, [a4,d5]@6 [a4,d5]@8 ~@4 a4@11 ~@3]/2", // A C#m D5
R: "[f#4,a4]@3 [e4,g#4]@4 ~, d5@2 ~ [b4,c#5]@3 ~@2", // F#m E Bsus2
S: "[[c#4,e4,f#4]@3 [d4,g4]@4 [d4,a4]@4 [e4,a4]@5, ~@3 b4@3 ~@10]/2", // F#7 G5 D5 A5
T: "[[a4,d5,f#5]@3 [a4,d5,f#5]@4 [c#5,e5,a5]@3 ~@2 a4@3 [f#4,a4,d5]@3 ~ [d4,f#4,a4]@4 [e4,a4,c#5]@3 ~ [b3,d4,f#4]@3 ~@2, ~@24 [c#4,e4]@9 ~@31]/4", // D A D A Bm C#m
U: "[[a4,d5,f#5]@6 [a4,d5,f#5]@8 [c#5,e5,a5]@8 [c#4,e4,a4]@9 ~]/2", V: "[f#4,a4,d5]@6 [e4,g#4,d5]@9 ~",
W: "[[c#4,e4,f#4]@3 b4 ~@3 [d4,a4]@4 [e4,g#4]@5 [e4,g#4]@4 [g#4,b4,e5]@4, ~@3 [d4,g4]@4 ~@17, ~@8 b4@9 ~@5 b4@17 ~@9]/3", // F#7 D5 E G5
X: "[g#4,b4,e5]@3 [a4,c#5,g#5]@5", Y: "[c#5,e5,a5]@3 [b4,e5,g#5]@5",
Z: "[[b4,e5,g#5]@6 [a4,c#5,f#5]@4 [a4,e5]@13 ~ [g#4,b4,e5]@8, ~@10 c#5@11 ~@11]/2", // E F#m A5 E
AA: "[[b4,e5,g#5]@6 [a4,c#5,f#5]@4 [a4,c#5,e5]@13 ~ [g#4,b4,e5]@8]/2", // E F#m A E
AB: "[c#5,e5]@3 [e5,g#5]@2 e5@2 ~, a5@4 ~@2 b4@9 ~", // C#m E
AC: "[[e5,g#5]@2 ~@4 [a4,c#5,f#5]@4 [a4,c#5,e5]@13 ~ [g#4,b4,e5]@8, b4@3 ~@13]/2", // E F#m A E
AD: "[[b4,e5,g#5]@6 [a4,c#5,f#5]@4 [a4,c#5,e5]@13 ~ [g#4,b4]@8, ~@12 e5 ~@3]/2", AE: "[c#5,e5,a5] ~",
})).s("gm_piano").gain(0.38).pan(0.2)
// bass · electric bass finger · "Bass"
const bass = note(`<
A@3 B C@3 D@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 G@2 H I@2 J@3 K@5 L@2 M N@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 G@2 H I@2 J@3 K@5
O@2 P@2 O@2 M Q@3 R S T U R S T U R S T U R S T U R V
>`.pickRestart({
A: "[~@9 g2@6 g2@2 g2@6 ~ e2@4 e2@2 e2@10 ~ f2@7]/3", B: "~ f2@2 f2@2 a2@4 ~ c3@4 c3@2",
C: "[c3@4 g2@6 g2@2 g2@6 ~ e2@4 e2@2 e2@10 ~ f2@8 f2@2 f2@2]/3", D: "[a2@4 ~ c3@4 c3@2 c3@4 g2@6 ~ g2@2 g2@8]/2",
E: "[g2@3 g2 g2@3 g2@2 g2 g2@3 g2 g2@2]/2", F: "[g2@3 g2 g2@3 c3@2 c3 c3@3 c3@2 d3]/2",
G: "[g2@6 g2@2 g2@6 e2@4 e2@2 e2@11 ~]/2", H: "a2@3 a2!2 a2@3", I: "a2@3 a2@2 a2 a2@2",
J: "[f#2 a2 c#3 g2@2 a2 b2 f#2@2 g2 a2 e2@2 b2 e2 e3@3 e2@2 a2@3 a2]/3",
K: "[a2@4 a2@3 a2@2 a2 a2@2 a2@3 a2@2 a2 a2@2 f#2 a2 c#3 g2@2 a2 b2 f#2@2 g2 a2 e2@2 b2 e2 e3@2 f#3 g#3@2]/5",
L: "[d3 d2@2 d2@2 d2@2 a2@2 a2@2 a2@2 a2 a2@2]/2", M: "d3@6 c#3@9 ~",
N: "[f#2@6 g2@4 d2@2 g2@2 f#2@4 d2@2 f#2@2 e2@9 ~]/2", O: "[d3 d2@2 d2@2 d2@2 a2@2 a2@2 a2@2 a2@3]/2",
P: "[a2@3 a2 a2@3 a2@3 a3 f#3@3 e3@2]/2", Q: "[f#2@6 g2@4 d2@2 g2@2 f#2@4 d2@2 f#2@2 e2@4 b2@2 e2@11 ~ e2@6 e2@2]/3",
R: "e2@3 e2@2 e2 e2@2", S: "e2 e2@3 e2@3 e2", T: "e2@3 e2@2 e2 a2!2", U: "b2!2 e3!2 e2@3 e2", V: "e2 e2@3 ~@4",
})).s("gm_electric_bass_finger").gain(0.35).pan(0.4)
// chords · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
A@4 B@3 C@2 D@4 E@4 F G@3 H@2 I@3 J K L@8 M@2 N O@2 D@4 E@4 F G@3 H@2 I@3 J K L@8 P@4 Q@2 R S@3 T U V@2 T U V@2 T U
V@2 T U V@2 T W
>`.pickRestart({
A: "[~@9 a4@4 ~@7 c5@2 d5@2 a4@6 ~@6 c5@2 ~ b4@2 a4@4 b4@2 [f4,a4,c5]@6 [a4,c5,f5]@4 ~ [a4,c5,f5]@4 [g4,c5,e5]@2, ~@9 [d4,b4]@10 ~@11 g4@10 ~ [c4,g4]@6 ~@17, ~@13 g4@10 ~ [b4,d5]@12 ~@28]/4", // F C G C5 Bm
B: "[[g4,c5,e5]@4 a4@4 ~@7 c5@2 d5@2 a4@6 ~@7 c5@2 b4@2 a4@4 b4@2 [f4,a4,c5]@6, ~@4 [d4,b4]@10 ~@11 g4@10 ~ [c4,g4]@6 ~@6, ~@8 g4@10 ~ [b4,d5]@12 ~@17]/3", // C F G C5 Bm
C: "[[a4,c5,f5]@4 ~ [a4,c5,f5]@4 [g4,c5,e5]@2 [g4,c5,e5]@4 [g4,b4,d5]@16 ~]/2", // F C G
D: "[g4@2 g4@2 g4@2 g4@2 g4@2 a4@2 b4@2 [e4,a4]@3 g4 e4@6 c5@2 c5@2 [f#4,a4,c5]@2 [g4,b4]@3 a4 g4@4 g4@2 [g4,b4]@2 a4@2 g4@2 [e4,a4]@3 g4 e4@6 d4@2 d4@2 e4 f#4@3, [b3,d4]@8 [b3,d4]@6 c4@9 ~ [e4,g4]@4 ~@2 d4@9 ~ d4@6 c4@7 ~@11]/4", // A5 F#dim G A5 Bm Em
E: "[g4@2 g4@2 g4@2 g4@2 g4@2 a4@2 b4@2 [e4,a4]@3 g4 e4@6 c5@2 c5@2 [f#4,a4,c5]@2 [g4,b4]@3 a4 g4@4 g4@2 [g4,b4]@2 a4@2 g4@2 [e4,a4]@3 g4 e4@6 d4@2 d4@2 e4 f#4@3, [b3,d4]@8 [b3,d4]@6 c4@9 ~ [e4,g4]@4 ~@2 d4@9 ~ d4@6 c4@9 ~@9]/4", // A5 F#dim G A5 Bm Em
F: "g4!4 b4!3 [c4,e4,a4], [b3,d4]@4 [d4,g4]@3 ~", // Am Bm G5
G: "[~ g4 e4@6 c5@2 c5@2 [f#4,a4,d5]@2 [g4,b4]@3 a4 g4@4 g4@2 [g4,b4]@2 a4@2 g4@2 [e4,a4]@3 g4 e4@6 d4@2 d4@2 e4 f#4@3, ~@8 [e4,g4]@4 ~@2 d4@9 ~ d4@6 c4@9 ~@9]/3", // D G A5 Em
H: "[g4@2 g4@2 g4@2 g4@2 b4@2 d5@2 e5@2 [e4,a4]@3 g4 e4@6 c5@2 c5@2 d5@2 d5@2, [b3,d4]@8 [d4,g4]@4 ~@2 c4@9 ~ [e4,g4]@4 [f#4,a4]@4]/2", // A5 Bm G5 Em F#m
I: "[[g4,b4]@6 g4@2 [g4,b4]@2 a4@2 g4@2 b4@4 a4@9 ~ a4!2 [a4,c#5]@3 b4 ~@6 [c#4,e4]@8, d4@8 d4@6 [d4,f#4]@13 ~@3 e4@9 ~@9, ~@34 a4@13 ~]/3", // G A C#m D
J: "f#4@2 a4@2 a4@2 b4@4 c#5@2 ~@3 a4, d4@3 [e4,a4]@3 ~@2", // A5
K: "d5@2 d5@2 e5@2 [a4,c#5]@3 b4 a4@4 e4@2, [f#4,a4]@3 e4@4 ~", // A F#m
L: "[f#4@2 a4@2 a4@2 [d4,g4]@8 ~@4 c#5@2 c#5@2 [e4,a4]@8 [e4,a4]@4 f#4@2 a4@2 f#4 [a4,c#5]@2 b4 ~@6 [c#4,e4]@8 f#4@2 a4@2 f#4@2 b4@4 c#5@2 ~@4 d5@2 d5@2 c#5@2 [c#5,e5]@4 c#5@4 e4!2 f#4@2 a4@2 f#4@2 b4@3 a4 b4 a4 f#4@2 a4@6 ~@2 [e4,a4]@8 c#5@2 c#5@2 e5@4 f#5@2, [c#4,e4]@6 b4@11 ~@5 b4@10 ~@10 a4@13 ~@23 a4@8 ~@22 b4@4 ~@6 [g#4,b4]@10, ~@14 [d4,a4]@7 ~@18 e4@9 ~@8 d4@6 [e4,a4]@10 [f#4,a4]@6 ~@10 [c#4,e4]@6 [d4,g4]@6 ~@2 d4@8 ~@18]/8", // G5 A5 A C#m A5 C#m G#m D5 …
M: "[f#5!3 f#5@2 g#5@2 [c#5,e5,a5]@2 [c#4,e4]@6 a4, [a4,d5]@6 [a4,d5]@8 ~@4 a4@11 ~@3]/2", // A C#m D5
N: "d5@2 d5@2 e5@2 [b4,c#5]@4 a4@4 e4!2, [f#4,a4]@3 [e4,g#4]@4 ~", // Bsus2 F#m E
O: "[f#4 a4!2 b4 ~@3 [d4,a4]@4 [e4,a4]@5, [c#4,e4]@3 [d4,g4]@4 ~@9, ~@8 b4@23 ~]/2", // D5 A5 C#m G5
P: "[f#5 f#5@2 f#5@2 g#5@2 [c#5,e5,a5]@2 [c#4,e4]@4 b4 c#5 d5@2 c#5 b4 a4@2 b4 c#5 [e4,a4,c#5]@3 [c#4,e4,a4] [b3,d4,f#4]@3 [a3,c#4,e4]@2, [a4,d5]@3 [a4,d5]@4 ~@2 a4@3 ~@3 [f#4,a4]@3 ~ [d4,f#4]@4 ~@9]/4", // A C#m A Bm A D5 F#m D
Q: "[f#5@2 f#5@4 f#5@4 f#5@2 g#5@2 [c#5,e5,a5]@4 [c#4,e4,a4]@9 ~ b4@2 c#5@2, [a4,d5]@3 [a4,d5]@4 ~@9]/2", // A D5
R: "d5!2 e5@2 d5@2 d5@2 c#5@2 b4@4 a4@2, [f#4,a4]@6 [e4,g#4]@9 ~", // F#m E
S: "[f#4@2 a4@2 a4@2 b4@2 ~@10 c#5@2 c#5@2 [e4,g#4]@10 [e4,g#4]@8 e5@2 e5@4 e5!2, [c#4,e4]@3 [d4,g4]@4 [d4,a4]@4 ~@13, ~@8 b4@9 ~@5 b4@17 ~ [g#4,b4]@8]/3", // E C#m G5 D5 G#m
T: "e5 f#5 g#5 g#5@2 f#5@3, [g#4,b4]@6 [a4,c#5]@9 ~", U: "a5@2 a5@2 a5@2 [e5,g#5]@3 f#5 e5@4 e5@2, [c#5,e5]@6 b4@9 ~",
V: "[[e5,g#5]@2 f#5@2 e5@2 f#5@4 e5@13 ~ e5@2 e5@4 e5!2, b4@6 [a4,c#5]@17 ~ [g#4,b4]@8]/2", // E A G#m
W: "a5!3 ~@5, [c#5,e5]@3 ~@5", // C#m
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.4)
// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@4 A@3 B ~@16 C@2 D ~@3 E F@5 G@2 H I J ~@15 C@2 D ~@3 E K@5 L@4 G@2 H I M@5 N@8 O@3 ~ O@3
>`.pickRestart({
A: "[~@4 b3@10 ~ c4@2 d4@2 [b3,d4]@12 ~ c4@2 b3@2 a3@4 b3@2 c4@6, ~@4 g3@14 ~ g3@16 ~ f3@12]/3", // Bm
B: "f4@4 ~ f4@4 e4@2 e4@4 ~, c4@7 ~", C: "[~@8 f#5@2 g5 a5@4 d5@2 e5@14 ~]/2", D: "d5 e5 f#5 e5@5",
E: "~@2 f#5@2 a5@2 f#5 e6@9", F: "[~@2 d6@2 d6@2 c#6@2 f#6@6 e6@10 d6@6 e6@10 c#6@6 b5@30 ~@2 [b5,c#6] d6]/5",
G: "[f#6@13 ~ c#6@17 ~, e6 ~@31]/2", H: "d6@3 c#6@5", I: "a5 b5 c#6 b5@5", J: "~ a5 g#5 e5@5",
K: "[~@2 d6@2 d6@2 c#6@2 f#6@6 e6@10 d6@6 e6@10 c#6@6 b5@30 ~@2 [b5,c#6] [d6,e6]]/5", // Bsus2 Dsus2
L: "[f#6@13 ~ e6@15 ~ d6@8 a5@8 c#6@8 f#5@6 ~@2 b5 [c#6,d6], ~@15 e5]/4", M: "[~ a5 g#5 e5@2 g#5 b5 e6@33]/5",
N: "[~@4 b5 c#6 e6 f#6 e6@57 ~@3 b5 c#6 e6 f#6 e6@56]/8", O: "[~@4 b5 c#6 e6 f#6 e6@29 ~@11]/3",
})).s("gm_string_ensemble_1").gain(0.07).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B C D E F G F G F G F G F G F G F G F H I J@2 K L G F M@2 L G F G J K N F G F G F G F G F G F G F G F H I J@2 K
L G F M@2 L G K M L N K N J@3 G J I J I J I J I J I J I J I J I J O
>`.pickRestart({
A: "~@4 x ~@5 x ~@2 x ~@2", B: "~@3 x ~@3 x ~ x ~@5 x", C: "~@2 x ~@3 x!2", D: "x ~@4 x ~@3 x ~ x ~@3 x",
E: "~@3 x!2 ~@3", F: "x ~@3 x ~@2 x", G: "~ x", H: "~ x!2 ~@5", I: "x!2", J: "x ~@2 x ~@4", K: "x ~@2 x ~@3 x",
L: "~@3 x ~@3 x", M: "~@4 x ~@2 x", N: "~@3 x ~@4", O: "x",
})).gain(0.22).pan(0.6)
// drums · snare
const snare = s("sd").struct(`<
~@8 A ~@7 B ~@7 C D@5 E D@4 F D@2 G D H ~@7 B ~@7 C D@5 E D@4 F D@3 G D@2 H D H ~@19
>`.pickRestart({
A: "~@10 x ~ x!3 ~", B: "~@12 x!3 ~", C: "~@3 x", D: "~ x ~ x", E: "~@2 x ~ x!3 ~@5 x ~@3", F: "~@4 x ~@5 x ~ x!3 ~",
G: "~@4 x ~@7 x!3 ~", H: "~ x ~@2",
})).gain(0.22).pan(0.6)
// drums · low tom
const low_tom = s("lt").struct(`<
~@9 A@15 B ~@5 C ~@4 D ~@2 E ~@2 A@15 B ~@5 C ~@4 D ~@3 E ~@2 F ~@2 G H I H J H I H I H I H J H I H J H K
>`.pickRestart({
A: "~@2 x!2 ~@2 x!2", B: "~@8 x ~ x ~@2 x!2 ~", C: "x", D: "~ x", E: "~@5 x ~@2", F: "~@10 x ~ x!3 ~",
G: "x ~ x ~ x!3 ~@5 x ~ x ~", H: "~@2 x!2 ~ x!3", I: "~@2 x ~@3 x!2", J: "~@2 x ~ x!3 ~@5 x ~ x ~", K: "~ x ~@2",
})).gain(0.18).pan(0.6)
// drums · hihat
const hihat = s("hh").struct(`<
~@4 A B C D ~ E@15 ~ E F@3 G H E@3 G I J E K F L E@15 ~ E F@3 G H E@3 G I J E@2 K F M N H L ~@19
>`.pickRestart({
A: "~ x", B: "~ x ~@7 x ~@6", C: "~ x ~@3 x ~@2", D: "~@2 x ~@8 x ~@4", E: "x!8", F: "x!4 ~ x!3", G: "~ x!3 ~ x!3",
H: "~@4 x!4", I: "~ x!4 ~@3", J: "x!7 ~", K: "x", L: "~ x!3 ~@4", M: "~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~@2", N: "x!5 ~@3",
})).gain(0.22).pan(0.6)
// drums · open hat
const open_hat = s("oh").struct("<~@36 [~@7 x] ~@31 [~@7 x] ~@27>").gain(0.22).pan(0.6)
// drums · crash
const crash = s("cr").struct(`<
~@7 A ~ B ~@15 B ~@4 C ~@4 C B ~ B D E B ~@15 B ~@4 C ~@4 C B ~ F ~ D E G B G ~@19
>`.pickRestart({
A: "~@15 x", B: "x", C: "~ x", D: "x ~@6 x", E: "~@3 x ~@4", F: "~@7 x", G: "x ~@2 x ~@4",
})).gain(0.14).pan(0.6)
// drums · ride
const ride = s("rd").struct("<~@23 [~@7 x] [~ x!2 ~@5] ~@30 [~@7 x] [~ x!2 ~@5] ~@39>").gain(0.22).pan(0.6)
// drums · tambourine
const tambourine = s("tb").struct("<~@77 [~@8 x!8] [x!16]!17 [x!8 ~@8]>").gain(0.18).pan(0.6)
// drums · triangle
const triangle = s("triangles:35").struct("<~@4 [~ x ~@2] ~@8 x ~@7 x ~@74>").gain(1.87).pan(0.6)
stack(
piano, bass, electric_guitar_clean, string_ensemble_1, kick, snare, low_tom, hihat, open_hat, crash, ride, tambourine,
triangle
)
More by Seals & Crofts
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.