0:00/0:00
// December 1963 (Oh What a Night) — Frankie Valli
// 107 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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 · synth bass 1 · "bass"
const bass = note(`<
~@10 A B C B C B C B C B C B D@2 E@5 F G H I H I H I H J K L M N O P Q R H I H I H I H S@2 T@7 U V U V U V U V W X Y X
Z AA AB AC U V U V U V U V U V U V U V AD AE ~
>`.pickRestart({
A: "~@8 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 d2@3 ~ d2 ~ e2@2 ~@2",
B: "e2 ~ f#2@4 ~@2 g2@2 g2@2 ~@2 g2@4 ~@2 g2 ~ g2@3 ~ g2 ~ g2@3 ~",
C: "g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 d2@3 ~ d2 ~ e2@2 ~@2",
D: "[g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 e2@33 ~@9]/2",
E: "[~@19 g2@2 a2@2 b2@22 ~@3 d3@8 a2@14 ~@2 b2@2 a2@2 f#2@2 ~@2 a2@2 ~@2 b2@2 ~@3 e2@26 ~@2 e2@2 f#2@2 g2@26 ~@3 a2@2 ~@2 a2@6]/5",
F: "e2@2 ~ a1 ~ a2@3 e2 ~@2 a1 ~ a2@2 ~", G: "e2@2 ~@5 a1@6 ~@2 a1@4 b1@2 ~@2 c#2@2 ~@2 d2@3 ~ d2",
H: "~ e2@2 ~@2 e2 ~ f#2@4 ~@2 g2@2 g2@2 ~@2 g2@4 ~@2 g2 ~ g2@3 ~ g2",
I: "~ g2@3 ~ g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 d2@3 ~ d2",
J: "~ g2@3 ~ g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 b1@2 ~@2 b1",
K: "~ b1@2 ~@2 f#1 ~ a1@2 ~@2 b1@2 ~@2 b1 ~ b1@2 ~@2 f#1 ~ a1@2 ~@2 b1@2 ~@2 b1",
L: "~ d2@2 ~@2 d2 ~ e2@6 ~@2 e3 ~ d3 ~ e3 ~ d3 ~ b2 ~@3 b1@2 ~@2 b1",
M: "~ b1@2 ~@2 f#1@2 a1@2 ~@2 b1@2 ~@2 b1 ~ b1@2 ~@2 f#1@2 a1@2 ~@2 b1@2 ~@2 b1",
N: "~ d2@2 ~@2 d2 ~ e2@6 ~@2 e3 ~ d3 ~ e3 ~ d3 ~ b2 ~@3 e2@4 ~", O: "~ e2@2 ~@8 e2@4 ~@2 e2@2 ~@8 f#2@4 ~",
P: "~ f#2@2 ~@8 f#2@4 ~@2 f#2@2 ~@8 g2@4 ~", Q: "~ g2@2 ~@8 g2@4 ~@2 g2@2 ~@8 a2@2 b2 ~ c#3",
R: "~ e3@2 f#3@2 c#3@2 e3@2 f#3@2 a3@2 ~@2 b3@2 c4@2 c#4@4 ~@4 d2@3 ~ d2",
S: "[~ g2@3 ~ g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2 e2@33 ~@4]/2",
T: "[~@24 g2@2 a2@2 b2@22 ~@3 d3@8 a2@14 ~@2 b2@2 a2@2 f#2@2 ~@2 a2@2 ~@2 b2@2 ~@2 e2@26 ~@3 e2@2 f#2@2 g2@26 ~@3 a2@2 ~@2 a2@6 e2@4 ~@2 a1@2 ~@2 a2@6 e2@2 ~@4 a1@2 ~@2 a2@4 ~@2 e2@2 ~@4 a1@6 ~@3 a1@4 b1@2 ~@2 c#2@2 ~@2]/7",
U: "d2@3 ~ d2 ~ e2@2 ~@2 e2 ~ f#2@4 ~@2 g2@2 g2@2 ~@2 g2@4 ~@2 g2 ~",
V: "g2@3 ~ g2 ~ g2@3 ~ g2 ~ a2@4 ~@2 a2 ~ a1@3 ~ b1@2 ~@2 c#2@2 ~@2",
W: "b1@2 ~@2 b1 ~ b1@2 ~@2 f#1 ~ a1@2 ~@2 b1@2 ~@2 b1 ~ b1@2 ~@2 f#1 ~ a1@2 ~@2",
X: "b1@2 ~@2 b1 ~ d2@2 ~@2 d2 ~ e2@6 ~@2 e3 ~ d3 ~ e3 ~ d3 ~ b2 ~@3",
Y: "b1@2 ~@2 b1 ~ b1@2 ~@2 f#1@2 a1@2 ~@2 b1@2 ~@2 b1 ~ b1@2 ~@2 f#1@2 a1@2 ~@2", Z: "e2@2 ~ e2 ~@4 e2@2 ~ e2 ~@4",
AA: "f#2@2 ~ f#2 ~@4 f#2@2 ~ f#2 ~@4", AB: "g2@2 ~ g2 ~@4 g2@2 ~ g2 ~@4",
AC: "a2@2 b2 ~ c#3 ~ e3@2 f#3@2 c#3@2 e3@2 f#3@2 a3@2 ~@2 b3@2 c4@2 c#4@4 ~@4",
AD: "d2@3 ~ d2 ~ e2@2 ~@2 e2 ~ f#2@4 ~@2 g2@2 g2@2 ~@2 g2@4 ~@4", AE: "~@20 a1@3 ~ d2@3 ~ b1@2 d2@2",
})).s("gm_synth_bass_1").gain(0.42).pan(0.4)
// chords · piano
const piano = note(`<
~@2 A B C D E B C D E B C D E B C D E B C D F@4 G H I J K@8 L M N M O P Q R S ~@7 T U@8 V W X Y V W X Y Z AA Z AA AB
AC AD AE V W X Y V W X Y V W X Y V W AF AG@2
>`.pickRestart({
A: "~@22 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~, ~@7 [g3,b3,d4]", // D G
B: "e2 [f#2,f#3,a3,d4]@4 [g2,g3,b3,d4] ~ [g2,g3,b3,d4]@2 g2!2 [g2,b3,d4,g4]@2 g2!3, ~@7 [b3,d4,g4]", // D G
C: "g#2@2 [a2,a3,d4,f#4]@6 a2@2 a2@2 a2@2 [a2,a3,b3,d4]@3 ~ [a2,a3,c#4,e4]@2 a2@2 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~, ~@5 [a3,c#4,e4]@2 ~@7 [g3,b3,d4]@2", // D Bm7 A D A G
D: "e2 [f#2,f#3,a3,d4]@4 [g2,g3,b3,d4] ~ [g2,g3,b3,d4]@2 g2!2 [g2,g3,b3,d4]@2 g2!3, ~@7 [g3,b3,d4]", // D G
E: "g#2@2 [a2,g3,b3,d4]@6 a2@2 [a2,e3,a3,c#4]@2 a2@2 [e3,a3,c#4]@4 a2@2 a2@2 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~, ~@7 a2 ~@6 [g3,b3,d4]@2", // G A D G
F: "[g#2@2 [a2,g3,b3,d4]@6 a2@2 [a2,e3,a3,c#4]@2 a2@2 [e3,a3,c#4]@4 a2@2 a2@2 [e2,g3,b3,d4]@8 [g3,b3,d4]@6 [g3,b3,d4]@2 e3@2 [g3,b3,d4]@4 e3@2 ~ [g3,b3,d4]@8 [g2,g3,b3,d4]@8 [g3,b3,d4]@6 g2@2 g2@2 [g3,b3,d4]@4 g2@2 [g3,b3,d4]@8 [b2,a3,d4,f#4]@8 [a3,d4,f#4]@8 ~ b2@2 [a3,d4,f#4]@4 b2@2 [a3,d4,f#4]@8 [a2,a3,c#4,e4]@8, ~@7 a2 ~@56]/4", // G A Em7 G Bm7 D A
G: "[a3,c#4,e4]@8 [a3,c#4,e4]@2 [a2,a3,c#4,e4]@6 [a2,a3,c#4,e4]@8 ~ [e2,g3,b3,d4]@7", // A Em7
H: "~ [g3,b3,d4]@8 e2@2 ~@2 e2@4 [g3,b3,e4]@4 e2@2 f#2@2 [g2,g3,b3,d4]@7, ~@11 [g3,b3,d4]@4 ~@17", // G Em G
I: "~ [g3,b3,d4]@8 g2@2 [g2,g3,b3,d4]@6 ~ [g3,b3,d4]@8 [a2,a3,c#4,f#4]@6", // G F#m
J: "[a2,g3,b3,e4]@4 ~@4 a2@2 [a2,a3,c#4,f#4]@6 [a2,g3,b3,e4]@4 ~@4 a2 ~ [a2,a3,c#4,f#4]@5 ~", // Em F#m Em F#m
K: "[[a2,g3,b3,e4]@5 ~@2 [a2,b3,d4,g4]@7 ~ [b3,d4,g4]@3 ~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~ [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2 [g2,b3,d4,g4]@4 g2@2 g2@2 g2@2 g#2@2 [a2,a3,d4,f#4]@6 a2@2 a2@2 a2@2 [a2,a3,b3,d4]@3 ~ [a2,a3,c#4,e4]@2 a2@2 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2 [g2,g3,b3,d4]@4 g2@2 g2@2 g2@2 g#2@2 [a2,g3,b3,d4]@6 a2@2 [a2,e3,a3,c#4]@2 a2@2 [e3,a3,c#4]@4 a2@2 a2@2 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2 [g2,b3,d4,g4]@4 g2@2 g2@2 g2@2 g#2@2 [a2,a3,d4,f#4]@6 a2@2 a2@2 a2@2 [a2,a3,b3,d4]@3 ~ [a2,a3,c#4,e4]@2 a2@2 [d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2 [g2,g3,b3,d4]@4 g2, ~@33 [g3,b3,d4]@6 ~@26 [b3,d4,g4]@4 ~@10 [a3,c#4,e4]@4 ~@14 [g3,b3,d4]@4 ~@28 [g3,b3,d4]@4 ~@14 a2@2 ~@12 [g3,b3,d4]@6 ~@26 [b3,d4,g4]@4 ~@10 [a3,c#4,e4]@4 ~@14 [g3,b3,d4]@4 ~@27]/8", // Em G D A D G D Bm7 …
L: "~ g2@2 g2@2 g#2@2 [a2,g3,b3,d4]@6 a2@2 [a2,e3,a3,c#4]@2 a2@2 [e3,a3,c#4]@4 a2@2 a2@2 [b2,d3,f#3,b3] ~@4, ~ [g3,b3,d4]@4 ~@14 a2@2 ~@11", // G A Bm G
M: "~ [b2,d3,f#3,b3] ~@3 f#2 ~ a2 ~@3 [b2,d3,f#3,b3] ~@5 [b2,d3,f#3,b3] ~@3 f#2 ~ a2 ~@3 [b2,d3,f#3,b3] ~@4", // Bm
N: "~ [d3,f#3,a3,d4] ~@5 [e3,g#3,b3,e4]@7 ~ [e3,e4] ~ [d3,d4] ~ [e3,e4] ~ [d3,d4] ~ [b2,b3] ~@3 [b2,d3,f#3,b3] ~@4", // D E D E D B Bm
O: "~ [d3,f#3,a3,d4] ~@5 [e3,g#3,b3,e4]@7 ~ [e3,e4] ~ [d3,d4] ~ [e3,e4] ~ [d3,d4] ~ [b2,b3] ~@3 [e2,b3,d4,g4]@5", // D E D E D B Em7
P: "~ [e2,b3,d4,g4]@2 ~@8 [e2,b3,d4,g4]@4 ~@2 [e2,b3,d4,g4]@2 ~@8 [f#2,c#4,e4,a4]@5", // Em7 F#m7
Q: "~ [f#2,c#4,e4,a4]@2 ~@8 [f#2,c#4,e4,a4]@6 [f#2,c#4,e4,a4]@2 ~@8 [g2,b3,d4,f#4]@5", // F#m7 Gmaj7
R: "~ [g2,b3,d4,f#4]@2 ~@8 [g2,b3,d4,f#4]@6 [g2,b3,d4,f#4]@2 ~@8 [a2,b3,d4,g4]@4 ~", // Gmaj7 G
S: "~ [a2,b3,d4,g4]@2 ~@4 [a2,b3,d4,g4]@18 ~@7", T: "~@27 [e2,g3,b3,d4]@5",
U: "[~@3 [g3,b3,d4]@6 [g3,b3,d4]@2 e3@2 [g3,b3,d4]@4 e3@2 [g3,b3,d4]@8 ~ [g2,g3,b3,d4]@8 [g3,b3,d4]@6 g2@2 g2@2 [g3,b3,d4]@4 g2@2 [g3,b3,d4]@8 [b2,a3,d4,f#4]@8 [a3,d4,f#4]@8 b2@2 ~ [a3,d4,f#4]@4 b2@2 [a3,d4,f#4]@8 [a2,a3,c#4,e4]@8 [a3,c#4,e4]@8 [a3,c#4,e4]@2 [a2,a3,c#4,e4]@6 [a2,a3,c#4,e4]@8 [e2,g3,b3,d4]@8 ~ [g3,b3,d4]@8 e2@2 ~@2 e2@4 [g3,b3,e4]@4 e2@2 f#2@2 [g2,g3,b3,d4]@8 [g3,b3,d4]@8 g2@2 [g2,g3,b3,d4]@6 [g3,b3,d4]@8 ~ [a2,a3,c#4,f#4]@6 [a2,g3,b3,e4]@4 ~@4 a2@2 [a2,a3,c#4,f#4]@6 [a2,g3,b3,e4]@4 ~@4 a2 ~ [a2,a3,c#4,f#4]@5 ~ [a2,g3,b3,e4]@5 ~ [a2,b3,d4,g4]@7 ~@2 [b3,d4,g4]@3 ~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~, ~@36 [g3,b3,d4] ~@27]/8", // G Bm7 D A Em7 G Em G …
V: "[d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2, ~@3 [g3,b3,d4]@3 ~@10", // D G
W: "[g2,b3,d4,g4]@4 g2@2 g2@2 g2@2 g#2@2 [a2,a3,d4,f#4]@6 a2@2 a2@2 a2@2 [a2,a3,b3,d4]@3 ~ [a2,a3,c#4,e4]@2 a2@2, ~@3 [b3,d4,g4]@2 ~@5 [a3,c#4,e4]@2 ~@4", // G D Bm7 A G A
X: "[d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 g2@2 g2@2, ~@3 [g3,b3,d4]@2 ~@11", // D G
Y: "[g2,g3,b3,d4]@2 g2!3 g#2 [a2,g3,b3,d4]@3 a2 [a2,e3,a3,c#4] a2 [e3,a3,c#4]@2 a2!2, ~@3 [g3,b3,d4]@2 ~@7 a2 ~@3", // G A G
Z: "[b2,d3,f#3,b3] ~@5 [b2,d3,f#3,b3] ~@3 f#2 ~ a2 ~@3 [b2,d3,f#3,b3] ~@5 [b2,d3,f#3,b3] ~@3 f#2 ~ a2 ~@3", // Bm
AA: "[b2,d3,f#3,b3] ~@5 [d3,f#3,a3,d4] ~@5 [e3,g#3,b3,e4]@7 ~ [e3,e4] ~ [d3,d4] ~ [e3,e4] ~ [d3,d4] ~ [b2,b3] ~@3", // Bm D E D E D B
AB: "[e2,b3,d4,g4]@3 [e2,b3,d4,g4] ~@4 [e2,b3,d4,g4]@2 ~ [e2,b3,d4,g4] ~@4", // Em7
AC: "[f#2,c#4,e4,a4]@3 [f#2,c#4,e4,a4] ~@4 [f#2,c#4,e4,a4]@3 [f#2,c#4,e4,a4] ~@4", // F#m7
AD: "[g2,b3,d4,f#4]@3 [g2,b3,d4,f#4] ~@4 [g2,b3,d4,f#4]@3 [g2,b3,d4,f#4] ~@4", // Gmaj7
AE: "[a2,b3,d4,g4]@2 ~ [a2,b3,d4,g4] ~@2 [a2,b3,d4,g4]@9 ~", // G
AF: "[d2,f#3,a3,d4]@4 d2@2 d2@2 e2 ~ e2@2 [f#2,f#3,a3,d4]@8 [g2,g3,b3,d4]@2 ~@2 [g2,g3,b3,d4]@4 ~@4, ~@3 [g3,b3,d4]@2 ~@11", // D G
AG: "[~@20 [a1,a3,c#4,a4]@4 [d2,d4,f#4,d5]@4 [b1,b3,e4,b4] ~ [d2,d4,f#4]@2 ~@32, ~@15 d5@17]/2", // A D E5 D
})).s("gm_piano").gain(0.27)
// chords · brass section · "brass1"
const brass_section = note("<~@39 A@2 B@2 C@3 ~@25 D E F G H I J ~ K L M N K O M N P O M N Q R M ~@2>".pickRestart({
A: "[~@11 [b2,b3] ~ [b2,b3]@2 [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5]@2 [b3,b4]@2 [a3,a4]@2 [b3,b4]@18 [b3,b4]@2 [e4,e5]@10 ~@7]/2", // B D E F# C# B A B …
B: "[~@11 [b2,b3]@2 [b2,b3] ~ [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5] ~ [b3,b4]@2 [a3,a4]@2 [b3,b4]@14 ~@4 [b3,b4]@2 [e4,e5]@8 ~@9]/2", // B D E F# C# B A B …
C: "[~@15 b2@4 d3@4 f#3@4 e3@8 c#3@8 a2@8 a3@8 f#3@20 d3@6 b2@6 ~@5]/3",
D: "~@16 [b2,b3] ~ [b2,b3]@2 [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5]@2 [b3,b4]@2 [a3,a4]@2", // B D E F# C# B A
E: "[b3,b4]@9 [b3,b4] [e4,e5]@5 ~", // B E
F: "~@16 [b2,b3] ~ [b2,b3]@2 [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5]@2 [b3,b4]@2 [a3,a4] ~", // B D E F# C# B A
G: "[b3,b4]@7 ~@2 [b3,b4] [e4,e5]@4 ~@2", H: "~@5 b2 d3 f#3", I: "e3 c#3 a2 a3", J: "f#3@10 d3@3 b2@3",
K: "[d3,a3,d4,f#4]@5 ~ [e3,a3,e4,g4]@2 ~@4 [f#3,f#4,a4]@7 ~ [g3,a3,g4,b4]@2 ~@2 [g3,a3,g4,b4] ~@7", // D A7 F#m G
L: "[g3,b3,d4]@6 [g3,b3,d4] ~@5 [f#3,a3,d4]@7 ~ [e3,a3,c#4] ~@11", // G D A
M: "[d3,a3,d4,f#4]@5 ~ [e3,a3,e4,g4]@2 ~@4 [f#3,f#4,a4]@7 ~ [g3,a3,g4,b4]@2 ~@2 [g3,a3,g4,b4]@2 ~@6", // D A7 F#m G
N: "[g3,b3,d4]@5 ~ [g3,b3,d4]@2 ~@4 [f#3,a3,d4]@7 ~ [e3,a3,c#4]@2 ~@10", // G D A
O: "[g3,b3,d4]@5 ~ [g3,b3,d4] ~@5 [f#3,a3,d4]@7 ~ [e3,a3,c#4] ~@11", // G D A
P: "[d3,a3,d4,f#4]@6 [e3,a3,e4,g4]@2 ~@4 [f#3,f#4,a4]@7 ~ [g3,a3,g4,b4]@2 ~@2 [g3,a3,g4,b4]@2 ~@6", // D A7 F#m G
Q: "[d3,a3,d4,f#4]@6 [e3,a3,e4,g4] ~@5 [f#3,f#4,a4]@7 ~ [g3,a3,g4,b4]@2 ~@2 [g3,a3,g4,b4]@2 ~@6", // D A7 F#m G
R: "[g3,b3,d4]@5 ~ [g3,b3,d4]@2 ~@4 [f#3,a3,d4]@7 ~ [e3,a3,c#4] ~@11", // G D A
})).s("gm_brass_section").gain(0.24).pan(0.4)
// other · alto sax · "sax"
const alto_sax = note("<~@39 A@2 B@2 C@4 ~@24 D E F G H I J K ~@8 L@2 ~@5 M@2>".pickRestart({
A: "[~@11 [b2,b3] ~ [b2,b3] ~ [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5]@2 [b3,b4]@2 [a3,a4]@2 [b3,b4]@18 [b3,b4] ~ [e4,e5]@10 [d4,d5] ~ [f#4,f#5] [e4,e5] [d4,d5] ~ [b3,b4]]/2", // B D E F# C# B A B …
B: "[~@11 [b2,b3] ~ [b2,b3] ~ [d3,d4] ~ [e3,e4] ~ [f#3,f#4] ~ [c#4,c#5] ~ [b3,b4] ~ [a3,a4] ~ [b3,b4]@14 ~@4 [b3,b4]@2 [e4,e5]@8 ~@2 [e4,e5] ~ [e4,e5] [d4,d5] [e4,e5] ~@2]/2", // B D E F# C# B A B …
C: "[~@15 b2@4 d3@4 f#3@4 e3@8 c#3@8 a2@8 a3@8 f#3@20 d3@6 b2@6 a2@26 ~@11]/4",
D: "~@16 [b2,b3] ~ [b2,b3] ~ [d3,d4]@2 [e3,e4]@2 [f#3,f#4]@2 [c#4,c#5]@2 [b3,b4]@2 [a3,a4]@2", // B D E F# C# B A
E: "[b3,b4]@18 [b3,b4] ~ [e4,e5]@10 [d4,d5] ~", // B E D
F: "[f#4,f#5] [e4,e5] [d4,d5] ~ [b3,b4] ~@11 [b2,b3] ~ [b2,b3] ~ [d3,d4] ~ [e3,e4] ~ [f#3,f#4] ~ [c#4,c#5] ~ [b3,b4] ~ [a3,a4] ~", // F# E D B D E F# C# …
G: "[b3,b4]@14 ~@4 [b3,b4]@2 [e4,e5]@8 ~@2 [e4,e5] ~", H: "[e4,e5] [d4,d5] [e4,e5] ~@17 b2@4 d3@4 f#3@4",
I: "e3 c#3 a2 a3", J: "f#3@10 d3@3 b2@3", K: "a2@13 ~@3", L: "[a3@31 ~]/2",
M: "[~@21 [a3,a4]@3 ~ [d4,d5]@2 ~@2 [b3,b4] ~ [d4,d5]@2 ~@31]/2", // A D B D
})).s("gm_alto_sax").gain(0.19).pan(0.3)
// chords · electric guitar clean · "guitar"
const electric_guitar_clean = note(`<
~@15 A ~ A ~ A ~ A B@2 C@3 ~ D@3 E@6 F@2 G H G I J K L M N O N O N O N P@2 Q@3 ~ R@3 S@8 T U T V W X Y Z AA AB AA AB
AA AB AA AB AA AB AA AB AA AB AA ~@2
>`.pickRestart({
A: "~@7 b4@2 a4@7, ~@5 d5@4 ~@7", B: "[~@13 d3@2 ~@17, ~@22 d3@3 b3@23 ~@16, ~@23 g3@25 ~@16]/2",
C: "[~@27 b3@21 ~@12 a3@22 ~@14, ~@23 b4@24 ~@9 a4@28 ~@12, ~@24 f#4@23 ~@10 e4@26 ~@13, ~@26 d4@22 ~@11 c#4@24 ~@13]/3",
D: "[~@13 [b3,e4]@8 [b3,e4]@8 [b3,e4]@6 [b3,e4]@8 ~@5]/3", E: "[~@19 b4@4 a4@14 ~@27, ~@15 d5@8 ~@41]/2",
F: "[~@19 b4@4 a4@14 ~@22 [b3,d4,f#4] ~@4, ~@15 d5@8 ~@41]/2", // Bm
G: "~ [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,f#4] ~@3 [b3,d4,f#4] ~@5 [b3,d4,f#4] ~@9 [b3,d4,f#4] ~@4", // Bm
H: "~ [b3,d4,f#4] ~@5 [b3,e4,g#4]@5 ~@3 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5 [b3,d4,f#4] ~@4", // Bm E Bm
I: "~ [b3,d4,f#4] ~@5 [b3,e4,g#4]@5 ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~ [b3,e4,g#4] ~@5 [b3,d4,g4] ~@4", // Bm E G
J: "~ [b3,d4,g4] ~@5 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 d4 ~ [b3,d4,g4] ~@5 [c#4,e4,a4]@3 ~@2", // G A
K: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@3 [c#4,e4,a4]@3 ~@3 e4 ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [f#3,b3,d4]@3 ~@2", // A Bm
L: "~ [f#3,b3,d4] ~@5 [f#3,b3,d4] ~@3 [f#3,b3,d4]@3 ~@3 b3 ~ [f#3,b3,d4] ~@3 [f#3,b3,d4] ~@3 [b3,e4,g4] ~@4", // Bm Em
M: "~ [b3,e4,g4] ~@5 [b3,e4,g4] ~@5 [b3,e4,g4] ~@5 [b3,e4,g4] ~@3 [b3,e4] ~@3 [a3,d4] ~@4", // Em E5 D5
N: "~ [a3,d4,f#4] ~@11 [d4,g4]@2 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@12", // D G5 G
O: "~@13 [g3,b3,d4] ~ [g3,b3,e4]@10 ~@2 [a3,d4] ~@4", // G Em D5
P: "[~@13 [g3,b3,d4] ~ [g3,b3,e4]@10 ~@6 d3@4 ~@29, ~@27 d3@4 ~@33, ~@28 g3@25 ~@11, ~@29 b3@23 ~@12]/2", // G Em
Q: "[~@32 b3@21 ~@12 a3@22 ~@9, ~@28 b4@24 ~@9 a4@28 ~@7, ~@29 f#4@23 ~@10 e4@26 ~@8, ~@31 d4@22 ~@11 c#4@24 ~@8]/3",
R: "[~@30 [b3,e4]@16 ~ [b3,e4]@16 [b3,e4]@12 [b3,e4]@16 ~@5]/3", S: "[~@12 b4@2 a4@7 ~@11, ~@5 d5@2 ~@9]/2",
T: "[b3,d4,f#4] ~@5 [b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,f#4] ~@3 [b3,d4,f#4] ~@5 [b3,d4,f#4] ~@9", // Bm
U: "[b3,d4,f#4] ~@5 [b3,d4,f#4] ~@5 [b3,e4,g#4]@5 ~@3 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5", // Bm E
V: "[b3,d4,f#4] ~@5 [b3,d4,f#4] ~@5 [b3,e4,g#4]@5 ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~ [b3,e4,g#4] ~@5", // Bm E
W: "[b3,d4,g4] ~@5 [b3,d4,g4] ~@5 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 d4 ~ [b3,d4,g4] ~@5", // G
X: "[c#4,e4,a4]@3 ~@3 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@3 [c#4,e4,a4]@3 ~@3 e4 ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3", // A
Y: "[f#3,b3,d4]@3 ~@3 [f#3,b3,d4] ~@5 [f#3,b3,d4] ~@3 [f#3,b3,d4]@3 ~@3 b3 ~ [f#3,b3,d4] ~@3 [f#3,b3,d4] ~@3", // Bm
Z: "[b3,e4,g4] ~@5 [b3,e4,g4] ~@5 [b3,e4,g4] ~@5 [b3,e4,g4] ~@5 [b3,e4,g4] ~@3 [b3,e4] ~@3", // Em E5
AA: "[a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [b3,d4,g4] ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~@7", // D G
AB: "[b3,d4,g4] ~@5 [b3,d4,g4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@7", // G A
})).s("gm_electric_guitar_clean").gain(0.37).pan(0.7)
// chords · brass section · "brass2"
const brass_section_2 = note("<~@38 A B C B D ~@28 E F E G ~@4 H I H I H I H I H I H I H I H J ~>".pickRestart({
A: "~@27 [b2,b3,f#4,b4]@2 ~@3", // B5
B: "~ [b2,b3,f#4,b4]@2 ~@8 [b2,b3,f#4,b4]@2 ~@4 [b2,b3,f#4,b4]@2 ~@8 [b2,b3,f#4,b4]@2 ~@3", // B5
C: "~ [d3,d4,f#4,b4]@2 ~@4 [e3,e4,g#4,b4]@8 [e4,e5] ~ [d4,d5] ~ [e4,e5] ~ [d4,d5] b3 b4 ~@3 [b2,b3,f#4,b4]@2 ~@3, ~@15 g#4@12 ~@5, ~@15 b4@6 ~@11", // Bm E D E D B5
D: "~ [d3,d4,f#4,b4]@2 ~@4 [e3,e4,g#4,b4]@8 [e4,e5] ~ [d4,d5] ~ [e4,e5] ~ [d4,d5] ~ [b3,b4] ~@8, ~@15 g#4@12 ~@5, ~@15 b4@6 ~@11", // Bm E D E D B
E: "[b2,b3,f#4,b4] ~@2 [b2,b3,f#4,b4] ~@4 [b2,b3,f#4,b4] ~@2 [b2,b3,f#4,b4] ~@4", // B5
F: "[b2,b3,f#4,b4]@2 ~@4 [d3,d4,f#4,b4]@2 ~@4 [e3,e4,g#4,b4]@8 [e4,e5] ~ [d4,d5] ~ [e4,e5] ~ [d4,d5] b3 b4 ~@3, ~@5 g#4@3, ~@10 b4@3 ~@3", // B5 Bm E D E D
G: "[b2,b3,f#4,b4]@2 ~@4 [d3,d4,f#4,b4]@2 ~@4 [e3,e4,g#4,b4]@8 [e4,e5] ~ [d4,d5] ~ [e4,e5] ~ [d4,d5] ~ [b3,b4] ~@3, ~@5 g#4@3, ~@10 b4@3 ~@3", // B5 Bm E D E D B
H: "[d3,a3,d4,f#4]@5 ~ [e3,a3,e4,g4] ~@5 [f#3,f#4,a4]@7 ~ [g3,a3,g4,b4] ~@3 [g3,a3,g4,b4] ~@7", // D A7 F#m G
I: "[g3,b3,d4]@5 ~ [g3,b3,d4] ~@5 [f#3,a3,d4]@7 ~ [e3,a3,c#4] ~@11", // G D A
J: "~@20 [a3,c#5,f#5,a5]@3 ~ [d4,f#5,a5,d6]@3 ~ [b3,e5,g5,b5]@2 [d4,f#5,a5,d6]@2", // F#m D Em D
})).s("gm_brass_section").gain(0.28).pan(0.6)
// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note("<~@22 A@2 ~@6 B@2 ~@10 C@5 ~@7 D@2 ~@6 E@2 ~@11 F G H I ~@17>".pickRestart({
A: "[~@22 [e3,b3,d4]@31 ~@11]/2", B: "[~@15 [a4,a5]@4 [d5,d6]@4 [b4,b5]@2 [d5,d6]@4 [b4,b5]@2 [a4,a5]@4 ~@29]/2",
C: "[~@27 [b3,d4,g4]@32 [c#4,e4,a4]@32 [d4,f#4,b4]@32 [a2,a3,e4,a4]@28 ~@9, ~@27 e2@28 ~@4 f#2@28 ~@4 g2@28 ~@41]/5", // G A Bm A5
D: "[~@27 [e3,b3,d4]@31 ~@6]/2", E: "[~@19 [a4,a5]@4 ~ [d5,d6]@4 [b4,b5]@2 [d5,d6]@4 [b4,b5]@2 [a4,a5]@4 ~@24]/2",
F: "[b3,d4,g4], e2@7 ~", G: "[c#4,e4,a4], f#2@7 ~", H: "[d4,f#4,b4], g2@7 ~", I: "[a2,a3,e4,a4]@7 ~",
})).s("gm_string_ensemble_1").gain(0.32).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
A B C B C B C B C B C B C B C B C B C B C B D E F G H I J K L@2 M L M L M L M N@8 L M L M L M L M O P Q R S T U V W X
W X W X W X G@8 W X W X W X W X W X W X W X W Y ~
>`.pickRestart({
A: "~@11 x ~@4", B: "~@3 x ~@7 x ~@3 x", C: "~@2 x!2 ~@7 x ~@4", D: "~@2 x!2 ~@7 x ~@3 x",
E: "~@7 x ~@7 x ~@7 x ~@7 x", F: "~@7 x ~@7 x ~@7 x ~@8", G: "x!4", H: "x ~@7 x ~@8 x ~@7 x ~@6",
I: "~ x ~@7 x ~@7 x ~@7 x ~@6", J: "~ x ~@8 x ~@7 x ~@7 x ~@5", K: "~@10 x ~@16 x ~@4", L: "~@11 x ~@15 x ~@4",
M: "~@3 x ~@5 x ~ x ~@15 x ~@4", N: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", O: "~@3 x ~@7 x ~@8 x ~@7 x ~@3",
P: "~ x ~ x ~ x ~ x", Q: "~@4 x ~@8 x ~@7 x ~@7 x ~@2", R: "~@5 x ~@7 x ~@7 x ~@8 x ~", S: "~@3 x ~@3 x ~@3 x ~@3 x",
T: "~@6 x ~@7 x ~@8 x ~@7 x", U: "~@15 x ~@15 x", V: "~ x", W: "x!2", X: "x ~@3 x ~@2 x!2 ~@7", Y: "~@21 x ~@7 x ~@2",
})).gain(0.39).pan(0.4)
// drums · snare
const snare = s("sd").struct("<A B@21 C ~@7 D E@24 ~@7 F G@31 H ~>".pickRestart({
A: "~@15 x", B: "~@7 x ~@7 x", C: "~@7 x ~@8", D: "~@15 x ~@3 x ~ x ~ x ~@8", E: "~@3 x ~@15 x ~@12",
F: "~@10 x ~ x!3 ~", G: "~ x ~ x", H: "~@21 x ~@3 x ~@3 x ~ x",
})).gain(0.39).pan(0.4)
// drums · clap
const clap = s("cp").struct(`<
~@46
[~@27 x ~ x ~@2]
[~@3 x ~ x ~@13 x ~@7 x ~ x ~@2]!7
[~@3 x ~ x ~@13 x ~@12]
~@36
[~ x ~ x]!3
~@2
>`).gain(0.29).pan(0.4)
// drums · low tom
const low_tom = s("lt").struct("<~@29 A B ~@15 C ~@14 D E ~@15 F ~@15 G ~>".pickRestart({
A: "~ x ~@7 x ~@6", B: "~@3 x ~@28", C: "~@23 x ~ x ~@6", D: "~@7 x ~@15 x ~@8", E: "~ x ~@2", F: "~@14 x!2",
// … 82 more lines
More by Frankie Valli
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.