0:00/0:00
// The Way We Were — Barbra Streisand
// 65 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 33, 4/4 at bar 35) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 57 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 1"
const piano = note(`<
A B C D E F G H I B C D J K L A M N O P Q R S T U V W X Y Z AA@4 AB@5 AC AD@5 AE@5 AF@7
>`.pickRestart({
A: "[a4,c#5] e4 [a4,c#5] e4 [a4,c#5] e4 [a4,c#5] e4", // A
B: "[a4,c#5]@6 e4@6 [a4,c#5]@6 e4@6 [g#4,a4,c#5]@6 e4@6 [g#4,a4,c#5]@6 e4@5 ~", // A Amaj7
C: "[f#4,a4,c#5] d4 [f#4,a4,c#5] d4 [f#4,a4,c#5] d4 [f#4,a4,c#5] d4", // F#m
D: "[g#4,a4,c#5]@3 c#4@3 [g#4,a4,c#5]@3 c#4@3 [f#4,a4,c#5]@3 c#4@3 [f#4,a4,c#5]@3 c#4@2 ~", // Amaj7 F#m
E: "[f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@5 ~ [f#4,g#4,c#5]@6 c#4@6 [f4,g#4,c#5]@6 c#4@5 ~, d3@23 c#3@24 ~", // F#m F#sus2 C#
F: "[f#4,g#4,b4]@6 c#4@6 [f#4,g#4,b4]@6 c#4@6 [f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@5 ~, f#3 e3", // G#m7 F#m
G: "[f#4,a4,c#5]@3 d4@3 [f#4,a4,c#5]@3 d4@3 [f#4,a4,b4]@3 d4@3 [f#4,a4,b4]@3 d4@2 ~, d3@24 e3@19 ~@5", // F#m B7
H: "[a4,c#5] e4 [a4,c#5] e4 [a4,c#5] e4 [a4,c#5] e4, a2 e2", // A
I: "[a4,b4] e4 [a4,b4] e4 [a4,b4,d5] e4 [a4,b4,d5] e4, a2@8 e2@7 ~", // Asus2 Bm7
J: "[f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@6 [f#4,g#4,c#5]@6 c#4@6 [f4,g#4,c#5]@6 c#4@5 ~", // F#m F#sus2 C#
K: "[f#4,g#4,b4]@6 c#4@6 [f#4,g#4,b4]@6 c#4@6 [f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@5 ~", // G#m7 F#m
L: "[f#4,a4,c#5]@3 d4@3 [f#4,a4,c#5]@3 d4@3 [f#4,a4,b4]@3 d4@3 [f#4,a4,b4]@3 d4@2 ~", // F#m B7
M: "[a4,b4]@6 e4@6 [a4,b4]@6 e4@6 [a4,b4,d5]@7 ~@17", N: "[e3,a3,c#4]@17 e3@7 [g#3,c#4]@6 e3@6 [g#3,c#4]@6 ~@6",
O: "~@18 e4@3 f#4 ~@2 e4@3 f#4@3 d4@16 ~@2, [d3,f#3,a3,c#4]@47 ~", // Dmaj7
P: "[f#4,g#4]@6 c#4@6 [f#4,g#4]@5 ~@7 [c#4,a4]@10 ~@2 a4@5 ~ a4@3 g#4@3, ~@18 c#4@5 ~@12 [c#4,f#4]@5 ~@8, ~@21 f#4@13 ~@14", // F#sus2 F#m F#5
Q: "[d4,f#4]@7 c#4@3 ~@2 [c#4,f#4]@6 d4@2 ~@4 [f#4,g#4]@6 c#4@6 f4@3 f#4@3 [c#4,g#4]@5 ~, ~@4 d4 ~@11", // D F#5 F#sus2 C#5
R: "[f#4,a4]@7 ~@5 [f#4,a4]@6 c#4@5 ~ a4@6 c#4@4 ~@2 e4@4 ~@2 a4@3 b4@3, c#4@12 ~@11 f#4@7 ~@18", // F#m
S: "[f#4,a4]@6 ~@6 [f#4,a4]@6 d4@3 ~@3 [e4,a4]@11 ~ [e4,g#4]@7 ~@5, d4@12 ~@12 b4@19 ~@5", // F#m A5 E
T: "[e4,a4]@11 ~ [e4,a4]@11 ~@13 [e4,a4]@6 c#4@2 ~@4, c#4@29 ~ c#4@10 ~@8, ~@12 [e4,a4]@5 ~@7", // A5
U: "[d4,a4]@8 ~@4 [d4,a4]@6 b3@4 ~@2 [c#4,g4]@7 ~@5 [a3,c#4,g4]@7 ~@5, b3@16 ~@8 a3@11 ~@13", // D5 C#dim A7
V: "[d4,f#4]@11 ~ [d4,f#4]@7 ~@5 [d4,f#4]@6 a3 ~@5 [c#4,e4,g#4]@8 ~@4, a3@7 ~@5", // D C#m
W: "[d4,f#4]@11 ~ [d4,f#4]@8 ~@4 [d4,f#4]@7 ~@5 [d4,f#4]@6 b3@4 ~@2, b3@37 ~@11", // D
X: "[e4,g#4]@7 ~@5 [e4,g#4]@7 ~@5 [e4,g#4]@6 c#4@6 [e4,g#4]@6 c#4@4 ~@2, c#4@9 ~@7", // E
Y: "[b3,c#4,f#4]@12 [a#3,c#4,f#4]@12 [c#4,f#4]@6 c#4@5 ~ [a#3,c#4,f#4]@8 ~@4, ~@2 b3 ~", // Bsus2 F# F#5 F#
Z: "[d4,f#4]@7 ~@5 [d4,f#4]@8 ~@4 [d4,f#4]@6 a#3@6 [d4,f#4]@6 a#3@4 ~@2, b3@20 ~@4 a#3@5 ~@19", // D
AA: "[[d4,f#4]@10 ~@2 [d4,f#4]@6 a3@5 ~ [d4,e4]@12 ~@12 e4@23 ~@7 e5@10 ~@8 f#4@52 ~@13 [b4,c#5]@6 a4@5 ~ b4@5 a4@6 [b4,c#5]@6 a4@2, a3@16 ~@30 a3@39 ~@9 a3@54 ~@44, ~@47 c#4@38 ~@10 [d4,e4]@53 ~@44, ~@71 e4@2 c#5@16 ~@83 c#5@6 ~@14, ~@72 a4@17 ~@103]/4", // D Dsus2 Bsus2 Dsus2
AB: "[~@4 [b4,c#5]@6 a4@6 [c#5,f#5]@6 b4@6 [c#5,f#5]@7 b4@6 [c#5,f#5]@5 b4@6 ~ f#5@6 b4@4 ~@2 [g#4,a4,c#5]@6 c#4@6 [g#4,a4,c#5]@6 c#4@6 [f#4,a4,c#5]@6 c#4@6 [f#4,a4,c#5]@6 c#4@4 ~@2 [f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@6 [f#4,g#4,c#5]@6 c#4@6 [f4,g#4,c#5]@6 c#4@5 ~ [f#4,g#4,b4]@6 c#4@6 [f#4,g#4,b4]@6 c#4@6 [f#4,a4]@6 c#4@6 [f#4,a4]@6 c#4@5 ~ [f#4,a4,c#5]@6 d4@6 [f#4,a4,c#5]@6 d4@6 [f4,g#4,b4]@7, ~@52 c#5@7 ~@181]/5", // Bsus2 F#5 Amaj7 F#m F#sus2 C# G#m7 F#m …
AC: "~@5 [f4,g#4,b4]@7 ~@4 [f#4,a4,c#5]@11 ~@2 [a4,c#5]@6 f#4@4 ~@2 [f#4,a4,c#5]@7, ~@29 f#4@4 ~@15", // Fdim F#m A F#m
AD: "[~@5 [f#4,a4,c#5]@6 f#4 ~@5 [d4,f#4,a4]@10 ~@2 [d4,f#4,a4]@8 ~@4 [d4,f#4,a4]@12 [d4,f#4,a4]@6 d4 ~@5 [c#4,e4,g#4]@11 ~ [c#4,e4,g#4]@6 c#4@2 ~@10 [c#4,e4,g#4]@11 ~ [c#4,e4,g#4] ~@5 [d4,f#4,a4]@9 ~@3 [d4,f#4,a4]@5 ~ [d4,f#4,a4]@11 ~ d4@4 ~@2 [d4,f#4,a4]@5 ~ [d4,f#4,a4] ~@5 [c#4,e4,g#4]@8 ~ c#4 ~@2 [c#4,e4,g#4]@3 ~@3 [c#4,e4,g#4]@12 c#4@5 ~ [e4,g#4]@6 c#4 ~@5 [d4,f#4,a4]@10 ~@2 [d4,f#4,a4] ~@5 [d4,f#4,a4]@11 ~ d4, ~@197 c#4@3 ~@40]/5", // F#m D C#m D C#m E D
AE: "[~@5 [d4,f#4,a4]@6 d4 ~@5 [c#4,e4,g#4]@10 ~@2 [c#4,e4] ~@5 [c#4,e4,g#4]@12 c#4@5 ~ [c#4,e4,g#4]@6 ~@6 [b3,d4,f#4]@38 ~@10 [c#4,e4]@41 ~@7 [d4,f#4]@40 ~@39, ~@29 g#4@2 ~@79 a3@41 ~@89]/5", // D C#m Bm C#m D
AF: "[~@28 [a4,c#5]@6 e4@6 ~ [a4,c#5]@6 e4@6 [a4,c#5]@6 e4@6 [a4,c#5]@6 e4@6 [a4,c#5]@6 e4@6 [a4,c#5]@6 e4@5 ~ a4@6 e4@4 ~@2 [e4,b4]@6 a4@5 ~ [e4,b4]@6 a4@5 [e4,b4]@6 a4@6 [e4,b4]@6 a4@2 ~@5 [g#4,c#5]@6 e4@6 [g#4,c#5]@6 e4@5 [g#4,c#5]@6 e4@6 [g#4,c#5]@6 e4@6 ~ [f#4,a4]@6 d4@6 [f#4,a4]@5 d4@6 [f#4,a4]@6 ~ d4@6 [f#4,a4]@6 d4@3 ~@3 [e4,a4]@44 ~@35, ~@100 c#5@6 ~@150 c#4@45 ~@35]/7", // A E5 C#5 F#m A5
})).s("gm_piano").gain(0.33).pan(0.7)
// bass · fretless bass · "FRETLESS"
const bass = note("<~@9 A B C D E F G H I J K L M N O P Q R S T U V W X@2 ~ Y@8 Z@7 ~ AA@4 AB@2>".pickRestart({
A: "a1@44 ~ a2@3", B: "a3@11 ~", C: "f#2 e2", D: "d2@24 c#2@23 ~", E: "f#2@3 e2", F: "d2 e1",
G: "a1@18 a1@6 a1@18 a1@5 ~", H: "a1@8 e2@5 e3 e2 f#2", I: "a2@17 ~ a2@2 ~@4 a2@13 ~@2 a2@3 e2@5 ~",
J: "a2@17 ~ a2 ~@5 a2@16 ~@2 a2@5 ~", K: "f#2@13 ~@5 f#2@5 ~ e2@13 ~@5 e2@6",
L: "d2@13 ~@5 d2@6 c#2@8 ~@4 b1@3 c#2@2 ~ c#2@3 ~@3", M: "f#2@3 c#3 f#2@2 e2@2",
N: "d2@15 ~@3 d2@3 d#2@3 e2@15 e1@3 f#1@4 ~@2", O: "a1@16 ~@2 a1@2 ~@4 a1@15 e3@3 a2@3 e2@3",
P: "a1@5 ~ a1@4 ~@2 a1@4 ~@2 a1@4 ~@2 g2@3 e2@3 a2@3 e2@2 ~ a1@3 e2@3 a2@3 e2@2 ~",
Q: "d2@15 a2@3 f#3@6 d2@7 ~@2 d2@3 c#2@4 ~@2 c#2@4 ~@2",
R: "b1@14 ~ f#2@3 b2@3 f#2@3 b1@3 f#2@3 b2@3 e3@3 e2@3 e3@3 e2@3 ~@3",
S: "c#2@11 ~@7 c#2@2 ~@4 c#2@7 ~@5 f#2@3 g#2@3 b2@3 c#3@3",
T: "f#2@3 c#3@3 f#3@9 e3@3 c#3@3 f#2 ~@2 f#2@3 c#3@3 f#3@3 f#2@5 ~ f#2@2 ~ f#2@2 ~ f#2@2 ~",
U: "b1@16 ~@2 b1@3 ~@3 b1@14 ~ f#2@3 b2@3 f#2@2 ~", V: "e2@15 ~@3 b2@6 e3@2 ~@4 b2@3 ~@3 e2@3 ~@3 e2@4 ~@2",
W: "a1@23 ~", X: "[e2@65 ~@31]/2",
Y: "[~@17 f#2@16 ~@2 c#3@6 e2@22 ~@2 d2@16 ~@2 a2@6 c#2@15 ~@3 c#2@5 ~ f#2@17 ~ f#2@5 ~ f#2@4 ~@2 f#2@6 e2@6 a2@6 d2@14 ~@4 d2@6 c#2@6 c#2@4 ~@2 c#2@4 ~@2 c#2@4 ~@2 f#2@16 ~@2 f#2@6 e2@15 a2@3 e2@6 d2@15 a2@3 e3@3 a2@2 ~ d3@3 a2@3 d2@9 a2@3 d2@5 ~ c#2@9 g#2@3 c#3@3 ~@3 c#2@9 g#2@3 b2@3 c#3@6 g#2@3 c#2@3 g#2@2 ~ d2@6 a2@3 c#3@3 d3@3 ~@3 d2@9 a2@2 ~ e3]/8",
Z: "[~@2 a2@3 d3@4 ~@2 d2@3 f#2@2 ~ c#2@6 g#2@3 b2@3 c#3 ~@5 c#2@9 g#2@2 ~ c#3@9 g#2 ~@2 c#2 ~@2 c#2 ~@2 d2@8 ~ a2@3 d3@2 ~@4 d2@8 ~ f#3@3 e3@3 d3@3 c#3@3 b2@3 a2@5 ~ c#2@12 c#3@2 ~@4 c#2@7 ~@5 c#3@3 b2@5 ~ f#2@6 c#2@3 b1@16 ~@2 b1@5 ~ e2@22 ~@2 a2@17 ~ a2@2 ~@4 a2@17 ~ a2 ~@5 a2@46 ~@33]/7",
AA: "[~@17 a1@16 ~@2 a1@3 ~@3 a1@16 ~@2 a1@4 ~@2 a1@15 ~@3 a1@3 ~@3 a1@19 ~@5 c#3@16 ~@2 c#3@2 ~@4 c#3@16 ~@2 c#3@5 ~ d2@16 ~@2 d2@3 ~@3 d2@7]/4",
AB: "[~@5 d2@9 ~@3 a1@48 ~@31]/2",
})).s("gm_fretless_bass").gain(0.44)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~@9 A B C D E F G H I J K L M N O ~ P Q R S T U@3 ~@2 V@4 W@4 X@7 ~ Y@6
>`.pickRestart({
A: "~@2 c#4@3 ~ e4 [e4,a4], ~ a3@7", B: "~@2 a3 ~@4 e4, ~ f#3@3 ~@2 f#3@2, ~@18 e4@23 ~@7",
C: "~@21 a3@2 ~, ~@6 f#4@17 ~ f#4@11 ~ f#4@10 ~@2, ~@6 a4@7 ~@11, ~@18 c#4@11 ~ c#4@16 ~@2",
D: "~@12 f#4@11 ~@19 c#4@6, a3@23 ~ g#3@11 ~ g#3@12, ~@6 d4@17 ~@7 c#4@11 ~@7",
E: "~@21 a3@2 ~, ~@6 f#4@17 ~ f#4@10 ~@2 f#4@11 ~, ~@4 a4@9 ~@3, ~@18 c#4@11 ~ c#4@17 ~",
F: "~@18 d4@4 ~@2 b3@5 ~ a3@5 ~ b3@5 ~ a3@5 ~, a3@11 ~@13, ~@6 d4@11 ~@31, ~@6 f#4@5 ~@13",
G: "~@30 e4@17 ~, ~@5 a3@36 ~@7, ~@11 c#4@12 ~@25, ~@18 a4@29 ~", H: "~@9 e4@10 ~@5, ~@5 a3@32 ~@11, ~ d4@2 ~",
I: "~@18 e4@5 ~@19 a4@6, ~ a3@7, ~@17 a4@6 e4@12 ~ e4@12, ~@5 c#4@3",
J: "~@17 f#4@6 ~@19 e4@6, ~@6 a3@29 a3@12 ~, ~@11 c#4@17 ~@2 c#4@18, ~@24 e4@17 ~@7",
K: "~@41 a3@6 ~, ~@6 f#4@14 c#4@8 ~ c#4@19, ~@11 a4@24 ~@13, ~@24 f#4@11 ~ f#4@11 ~",
L: "a3@6 ~@6 f#4@5 ~ a3@6 g#3@6 c#4@6 g#3@6 c#4@6, ~ d4@2 ~@5",
M: "~@42 a3@5 ~, ~@6 f#4@17 ~ f#4@11 ~ f#4@12, ~ a4@2 ~, ~@18 c#4@11 ~ c#4@17 ~",
N: "~@12 d4@9 ~@3 b3@5 ~ a3@5 ~ b3@5 a3@5 ~@2, ~@6 a3@11 ~@31",
O: "~@7 c#4, ~ a3@7, ~@12 e4@23 ~ e4@11 ~, ~@18 c#4@11 c#4@11 ~@8, ~ a4",
P: "[f#3,a3,c#4]@12 [f#3,a3,c#4]@5 ~ [f#3,c#4]@5 ~@10 [c#4,f#4]@2 ~ [e3,g#3,c#4]@6 [e3,g#3,c#4]@2 ~@4, f#4@6 [a3,f#4] ~@9", // F#m F#5 C#m D
Q: "[d4,f#4]@5 ~ d4@6 [a3,d4]@9 ~@6 [d4,f#4]@3 f#4@2 ~ d4@3 [a3,d4]@3 [a3,d4,f#4]@3 [f#3,a3,d4,f#4]@2 ~@4, f#3@23 ~ f#3@5 ~@7 f#3@6 ~@6, ~@6 f#4@14 ~ [a3,d4,f#4]@8 ~@3 f#4@6 ~@10", // D D5 D D5 D
R: "[g#3,b3,e4,g#4]@12 [g#3,b3,e4,g#4]@12 ~@6 [g#3,b3,e4]@9 [g#3,g#4]@3 g#3@2 ~@4, ~@24 [g#3,b3,e4]@6 ~@9 [b3,e4]@5 ~@4, ~@9 g#4@4 ~@3", // E G# E E5
S: "f#3@5 ~@13 c#4@6 f#4@3 ~@2 a#3@4 ~@6 [c#4,f#4]@3 [f#3,a#3,c#4,f#4]@3 ~@3, [c#4,f#4]@17 f#4@6 ~@4 f#4@12 ~@9, b3@12 b3@12 [b3,c#4]@5 ~@4 c#4@6 ~@9, ~ f#3@3 f#3@2 [f#3,a#3] ~", // F#5 F# F#5 Bsus2 F#
T: "f#4@5 ~@7 [a3,d4]@6 [d4,f#4]@6 f#4@3 f#4@2 ~@7 [f#3,a3]@3 [a3,d4,f#4]@3 [a3,f#4]@3 ~@3, d4@12 f#3@12 [f#3,a3,d4]@5 ~@7 b2@6 d4@6, ~@6 f#4@12 ~@21 f#3@8 ~", // D5 D F#m D
U: "[[a3,d4,f#4]@6 d4@6 ~@6 d4@3 ~@15 b3@9 ~@3 [c#4,e4]@37 ~@11 [d4,e4]@48, f#3@12 [f#3,a3]@9 ~@3 [e3,a3]@11 [e3,a3]@6 ~@6 [e3,g#3]@39 ~@9 a3@38 ~@11, ~@6 f#4@11 f#4@3 ~@7 e4@21 ~@96]/3", // D C#m Dsus2 F#m A5 E
V: "[~@59 a3@5 ~ a3@6 ~@6 f#4@5 ~ c#4@6 ~@6 c#4@6 g#3@6 c#4@5 ~@43 a3@5 ~ a3@5 ~@7 f#4@6 a3@5 ~ g#3@6 c#4, ~@23 f#4@16 ~@2 f#4@11 ~ f#4@10 ~@56 f#4@16 ~ f#4@12 ~ f#4@11 ~@32, ~@29 c#4@16 ~@2 c#4@16 ~@8 d4@12 ~@6 g#3@11 ~@25 c#4@16 ~@2 c#4@18 ~@6 d4@13 ~@12, ~@35 a4@21 ~@75 a4@28 ~@33]/4",
W: "[~@5 g#3@6 c#4@5 ~@37 f#4@6 a3@3 ~@20 e4@6 ~@13 a3@7 ~@5 [c#3,g#3,b3]@9 [e4,g#4]@3 ~@9 [b3,e4,g#4]@6 [e4,g#4]@3 [b3,e4,g#4]@9 e4@3 [b3,e4]@3 ~@3 a3@12 [a3,c#4]@6 [f#4,a4]@3 [f#4,a4]@6 a4@3 [a3,c#4], ~@23 f#4@16 ~@2 f#4@11 ~@37 d4@17 ~@7 [e4,g#4]@8 ~@40 [f#4,a4]@18 ~@13, ~@29 a4@28 ~@95 g#4@5 ~@35, ~@35 c#4@24 ~@17 a3@23 ~@62 c#4@6 ~@12 [a3,c#4]@12 ~, ~@47 a3@10 ~@14 f#3@23 ~ f#3@14 ~@22 c#3@27 ~@34]/4", // C#7 E E5 A F#m A E F#m …
X: "[~@5 [c#4,f#4,a4]@6 [d3,a3,c#4,f#4]@2 ~@4 [g#3,b3,e4]@9 [b3,e4,g#4]@3 ~@9 [e4,g#4]@6 e4@3 b3@9 e4@3 [g#3,b3,e4]@3 ~@3 a4@3 a4@3 a4@2 ~ a4@3 ~@9 [f#4,a4]@6 [f#4,a4]@3 a4@6 a4@3 [f#4,a4]@3 [a3,c#4,f#4,a4]@3 ~@3 [e4,g#4]@9 [e4,g#4]@3 ~@18 [g#3,b3,e4]@6 ~@3 [e4,g#4]@3 [b3,e4,g#4]@2 ~@4 [f#3,a3,d4,f#4]@9 f#4@3 [a3,f#4]@9 d4@3 [a3,d4]@23 ~ g#3@6 ~@6 e4@11 ~@7 [g#3,c#4]@12 e4@6 ~ e4@43 ~@35, ~@17 g#4@6 ~@21 g#4@12 g#4@5 ~@4 [c#4,f#4]@6 [c#4,f#4]@6 ~@57 g#4@18 ~@21 d4@8 ~@40 c#4@17 ~@19 [a3,d4]@42 ~@37, ~@47 e4@6 ~@12 a3@14 ~@4 [a3,c#4]@12 [a3,c#4,f#4]@12 ~@6 [g#3,b3]@13 ~@82 e3@45 ~@4 f#3@38 ~@41, ~@233 e4@13 ~@90]/7", // F#m Dmaj7 E F#m E D D5 C#5 …
Y: "[~@23 e4@6 ~@6 a4@12 e4@5 c#4@7 a4@8 ~@4 f#4@6 ~@17 f#4@6 d4@12 ~@6 c#4@6 e4@6 g#4@18 ~ e4@5 c#4@4 ~@9 f#4@6 ~@5 a4@18 f#4@6 ~@8 b4@49 ~@29, ~@29 c#4@12 ~@36 d4@20 ~@76 d4@25 ~@9 c#4@48 ~@33, ~@41 a4@9 ~@54 e4@25 ~@15]/6",
})).s("gm_acoustic_guitar_nylon").gain(0.22).pan(0.3)
// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note(`<
~@9 A B C ~@3 D ~ E ~ F@2 ~ G H ~@2 I ~@2 J ~@6 K ~@3 L M@5 ~ N ~@9
>`.pickRestart({
A: "~@5 c#4@3, ~@18 e4@17 ~@13", B: "~@30 a3@17 ~", C: "d3@19 ~@29", D: "~@42 c#4@5 ~", E: "~@12 c#4@17 ~@19",
F: "[~@45 e4@7 ~@44]/2", G: "~@6 a3 ~@9", H: "~@12 c#4@5 ~@31", I: "b2@29 ~@19",
J: "~@6 a3@5 ~@37, b2@29 ~@19, ~ f#3@10 ~@37", K: "~@3 a4 ~@12", L: "~@11 a4@3 ~@34",
M: "[~@35 g#3@27 ~@8 d3@36 ~@7 c#3@13 ~@13 e2@21 ~@19 d3@19 ~@32 e4@9 ~, ~@32 g#4@5 ~@94 b3@12 ~@36 f#4@3 ~@58, ~@35 b3@3 ~@93 g#3@24 ~@72 g#3@12 ~]/5",
N: "~@23 g#3@6 ~@19",
})).s("gm_acoustic_guitar_nylon").gain(0.13).pan(0.3)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@7 A@4 B@5 C@5 D@8 E@5 ~ F@4 G@8 H@3 ~ I@6>".pickRestart({
A: "[~@23 b3@12 c#4@12 d4@24 e2@24 ~ a2@95 g#4, ~@23 a2@48 e4@120 ~, ~@47 b3@48 c#4@96 ~]/4",
B: "[f#3@23 ~ e3@23 d3@25 ~@11 f4@12 g#4@24 ~@12 e3@12 d3@24 e3@24 ~@13 a3@5 b3@6 c#4@13 g#4@12, ~@23 f#4@60 ~@12 f#3@36 ~@60 a2@49, ~@72 c#3@24 ~@23 f#4@48 e4@36 ~@37]/5",
C: "[~@23 e3@24 ~ e4@48 f#4@47 [f#3,g#4]@24 ~ e3@23 d3@24 ~@12 f4@12 ~, e4@47 a2@96 ~@72 c#3@25, ~@48 c#4@96 ~@23 f#4@60 ~@13]/5", // F#sus2
D: "[f#3@35 e3@12 d3@24 e3@24 a2@96 d4@37 c#4@11 b3@48 c#4@96 b3, f#4@71 e4@120 ~@193]/8",
E: "[~@24 a#3@23 a3@24 e4@24 ~ a3@47 [e2,f#3]@65 ~@32, ~@95 [a2,g#3]@49 ~@96, ~@96 e3@113 ~@31]/5", // Esus2 Amaj7
F: "[~@17 g#3@24 f#3@59 f3@12 g#3@24 f#3@56]/4", G: "[~@4 f3@12 f#3@96 ~ c#4@47 d4@48 c#4@48 d4@48 c#4@48 b3@32]/8",
H: "[~@17 a2@48 e2@43 ~@36]/3",
I: "[~@17 a2@95 ~ c#3@47 e4@24 ~ d4@24 a2@50 ~@29, ~@16 e4@96 c#4@48 d3@49 a3@46 ~@33]/6",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.9)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note("<~@7 A@4 ~@2 B C ~ D@2 E ~ F@3 G@6 H I J K@4 ~@2 L@2 M@6 N@4 ~ O@6>".pickRestart({
A: "[~@47 d4@12 e4@12 ~ a4@11 b4@12 e4@96 ~, ~@71 f#4@24 c#5@48 ~@49]/4", B: "b4@23 a4@25, f#4", C: "c#5@23 b4@25",
D: "[~@11 b5@12 c#6@12 d6@12 e6@37 g#6@12]/2", E: "e6@43 ~@5", F: "[~@23 f#4@12 f4@12 g#4@24 a4@24 c#5@24 d5@25]/3",
G: "[e5@65 f#5@6 g5@3 e5@3 f#5@3 g5@3 ~ a4 [b4,c#5] d5 e5 [f#5,g5] a5 b5 [c#6,d6] e6 f#6 g6 a6@36 b5@6 c#6@6 d6@6 a6@12 g#6@5 ~ g#6@6 f#6@5 ~ f#6@6 a6@6 g#6@39 f#6@3 e6@3 f#6@3 g#6@24 ~@6 b5@3 g#5@3 a#5@6 ~ g#6@6]/6", // Bsus2 Gmaj7 Dmaj7
H: "f#6@25 ~@23", I: "f#5@5 a5@4 ~@2 [a5,f#6]@6 [g#5,e6]@3 ~@3 [g#5,e6]@6 ~ d6@4 ~@2 [f#5,d6]@11 ~, ~@29 f#5@4 ~@15",
J: "~@4 [f#4,c#5] [b4,c#5,e5]@3, ~@23 e4@6 ~@19", // F#5 C#m7
K: "[~@37 [e4,f#4,c#5]@6 ~ [b4,c#5]@17 ~@4 b5@23 e5@12 b5@13 c#6@45 ~@34, ~@43 e5@17 ~@5 [f#5,a5]@93 ~@34]/4", // F#7 Bsus2 F#m
L: "[~@17 c#4@53 c#5@7 f#5@5 g#5@6 a5@6 b5@2]/2",
M: "[~@4 c#6@6 e6@6 f#6@72 ~ e6@48 d6@11 c#6@12 b5@25 a5@6 g#5@5 b4@6 c#5@6 g#5@18 a5@6 ~ e6@11 d6@6 c#6@6 b5@18 a5@6 g#6@8]/6",
N: "[~@4 a6@12 b6@48 ~@31 c#5@18 e5@38 ~@41]/4", O: "[~@17 c#6@83 b5@6 a5@6 e6@96 ~ b5@48 ~@31]/6",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.2)
// other · oboe
const oboe = note("<~@11 A@3 B C@3 ~@2 D E@2 F@2 ~@6 G H@2 ~@19 I@4>".pickRestart({
A: "[~@23 f#4@13 g#4@11 a4@25 g#4@48 a4@24]/3", B: "c#5 b4", C: "[~@21 a4@2 b4@48 ~ a4@11 b4@12 c#5@46 ~@3]/3",
D: "~ c#5", E: "[b4@8 c#5@17 ~@7]/2", F: "[~@23 b4@12 a4@12 e5@49]/2", G: "~@4 b4 g#4@3",
H: "[~@37 b4@7 a4@21 ~@31]/2", I: "[~@16 g#4@24 ~ a4@11 b4@12 c#5@36 ~ d5@12 e5@49 ~@30]/4",
})).s("gm_oboe").gain(0.33).pan(0.3)
// other · flute
const flute = note("<~@23 A B C@2 ~@4 D E@2 F G ~@2 H@3 ~@6 I@3 ~@7>".pickRestart({
A: "~@23 b5@18 c#6@3 d6@3 ~", B: "e6@47 ~", C: "[a6@73 ~@23]/2", D: "~@4 c#6 e6@3", E: "[~@37 c#6@7 e6@22 ~@30]/2",
F: "~@17 b5 c#6@2 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6 b5 c#6",
G: "b5 c#6 b5 c#6 b5 c#6 b5 c#6 ~ b5@2 ~@37, ~@9 c#6 ~@38", H: "[~@27 a5 c#6@24 b5@13 a5@44 ~@35, ~@14 b5 ~@57]/3",
I: "[~@29 [a5,c#6]@2 ~@4 [a5,c#6]@6 e6@2 ~@3 [c#6,e6]@5 ~@2 [e6,g#6] ~@5 g#6@6 e6@38 ~@41, ~@59 e6@4 ~@81]/3", // A C#m E
})).s("gm_flute").gain(0.27).pan(0.4)
// other · french horn · "FR.HORN"
const french_horn = note("<~@25 A@3 B@2 ~@3 C@3 ~@21>".pickRestart({
A: "[a4@76 ~@7 d4@6 f#4@6 ~ e4@47 ~, ~@95 g#4@47 ~@2]/3", B: "[b4@12 a#4@12 b4@12 c#5@11 d5@48 ~]/2",
C: "[~@17 a3@24 a3@18 a3@6 a3@12 a3@35 ~@32]/3",
})).s("gm_french_horn").gain(0.33).pan(0.3)
// other · french horn · "FR.HORN"
const french_horn_2 = note("<~@23 A B@2 C D@2 E@2 ~@2 F@3 ~@4 G@2 ~ H@5 I@2 ~@7>".pickRestart({
A: "~@12 e4@6 c#4@5 ~@13 e4@6 c#4@3 ~@3", B: "[d4@10 ~@2 d4@11 ~ e4@10 ~ e4@3 d4@3 c#4@3 b3@3 a3@36 b3@6 c#4@6 ~]/2",
C: "d4@41 f#4@6 ~", D: "[g#4@15 f#4@3 e4@3 ~@3 e4@23 g#4@48 ~]/2", E: "[b4@24 a#4@23 a4@43 ~@6]/2",
F: "[~@17 a4@23 ~ a4@18 a4@6 a4@12 a4@36 ~@31]/3", G: "[~@2 c#4@3 g#4@3 e4@25 ~@15]/2",
H: "[~@17 g#4@35 b4@12 c#5@36 ~ d4@5 f#4@6 ~ e4@41 g#4@6 ~ f#4@42 ~@6 e4@31]/5", I: "[~@5 e4@5 ~ e4@6 a4@36 ~@43]/2",
})).s("gm_french_horn").gain(0.33).pan(0.7)
// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@9 A B@3 C@4 D E@3 F@3 G H I@2 J@2 K@4 ~ L@7 M@8 ~ N O@2 P@3>".pickRestart({
A: "~@14 e4 f#4",
B: "[e4@41 ~@7 f#4@22 ~@2 e4@18 ~@7 f#4@19 ~@4 c#4@11 ~ b3@7 ~@5, ~@47 [a3,c#4]@23 ~ [a3,c#4]@21 ~@3 [f#3,a3]@21 ~@3 [f#3,b3]@12 f3@8 ~@5, ~@96 c#4@19 ~@29]/3", // A F#m B5
C: "[~ g#4@38 ~@9 f#4@20 ~@4 [a3,b3,e4]@22 ~@2 e4@50 ~@10 f#4@3 e4@3 d4@2 ~@4 e4@3 f#4@3 a4@2 ~@4 a4@3 b4@3 a4@2 ~@3 b4, [a3,c#4]@39 ~@7 [f#3,a3]@23 ~@26 [a3,c#4]@50 ~@47, ~@47 c#4@22 ~@123]/4", // Asus2 A F#m A
D: "c5 c#5@36 ~@5 e4@3 [f4,f#4]@2 ~", // F#maj7
E: "[f4 e4@35 ~@12 f#4@22 ~@2 e4@18 ~@6 f#4@21 ~@3 b3@12 ~ c#4@9 ~@2, ~@46 a3@24 ~ [a3,c#4]@19 ~@4 f#3@22 ~@3 f#3@12 ~ [f3,b3]@11 ~, ~@47 c#4@24 ~@24 [a3,c#4]@21 ~@28]/3", // A Fdim A
F: "[[f#3,a3]@42 ~@6 f#4@19 ~@6 e4@18 ~@5 e4@24 [a3,c#4]@18 ~@6, ~@46 [f#3,a3]@23 ~@2 e3@19 ~@5 c#4@25 e4@24, ~@47 c#4@21 ~@4 [a3,b3]@19 ~@3 a3@26 ~@24, ~@48 a4@23 ~]/3", // F#m A F#m Asus2
G: "[a3,d4,e4]@12 d4@10 e4@2 ~ e4@11 [a3,d4,e4,a4]@10 ~@2, ~ a3@2 ~, ~@12 e4@8 ~@4 d4@11 ~@13", // Asus4
H: "[f#4,a4]@9 [f#4,a4]@3 [c#4,f#4] a4 ~@10 [c#4,f#4,a4]@7 ~@5 [e4,g#4,c#5]@6 ~@6, [a3,c#4]@14 ~@21 b3@7 ~@6", // F#m F#5 F#m C#m A
I: "[[f#4,b4,d5]@35 ~@13 [b3,e4,g#4]@12 [g#3,b3,e4,g#4] ~@11 [b3,e4]@11 ~ [b3,e4]@7 ~@5, ~@47 g#3@14 ~@5 g#3@17 g#3@7 ~@6, ~@12 g#4@3 ~]/2", // Bm E E5
J: "[[f#3,b3,c#4,f#4]@24 [f#3,b3,c#4,f#4]@16 ~@8 [f#4,b4]@18 f#4 ~@5 [a3,d4,f#4,a#4]@18 d4 ~@5, ~@47 [a3,d4]@19 ~@30]/2", // F#sus4 B5 D D5
K: "[[a3,d4,f#4,a4]@36 ~@12 e4@19 ~@5 e4@2 f4 f#4@2 ~ e4@17 ~@2 e4@50 ~@45, ~@45 e3@22 ~@28 f#3@52 ~@45, ~@23 g#3@10 ~@15 a3@24 ~@24, ~@47 c#4@20 ~@11 f4 ~@113]/4", // D
L: "[~@17 f#4@37 ~@10 f#4@20 ~@5 [b3,c#4]@12 [f3,b3]@9 ~@3 [a3,c#4]@43 ~@5 d4@19 ~@17 b3@7 ~@6 f#4@37 ~@10 a4@24 ~@9 a4@3 [c#4,f#4,a4] ~@6 f#4@6 ~@11 [b4,e5]@3 c#5@3 [c#5,f#5]@2 ~@4 [c#5,f#5]@3 ~@4, ~@16 [a3,c#4]@38 ~@8 f#3@23 ~@3 f#3@11 ~@13 f#3@44 ~@4 f#3@24 [f#3,b3]@12 f3@8 ~@5 [a3,c#4]@37 ~@10 [a3,c#4]@18 ~@7 [a3,c#4,f#4]@13 ~@5 [a3,c#4]@6 ~@31, ~@63 [a3,c#4]@21 ~@76 a3@20 ~@5 c#4@19 ~@53 f#4@18 ~@61]/7", // Bsus2 Fdim A F#m E5 F#5 A B5 …
M: "[~@7 e5 ~@3 [b4,e5]@2 ~@4 [f#4,a4]@9 c#5@3 [a4,c#5] ~@5 a4@3 [a4,c#5]@14 [d4,f#4,a4,c#5]@8 ~@14 [b4,e5]@3 [b4,e5]@3 ~@6 [c#5,f#5]@2 ~ f#5@2 [b4,e5]@16 [b4,e5]@2 ~@4 [f#4,a4]@12 [f#4,a4,c#5] ~@8 f#4@14 ~ [f#4,a4,c#5]@6 [d4,a4] ~@14 e5@3 [b4,e5]@2 c#5@3 ~@4 f#5@3 [c#5,f#5]@3 [b4,e5]@9 [b4,e5]@6 ~@6 [d4,f#4,b4]@23 ~ [f#4,b4]@16 ~@9 e4@46 ~@2 a4@47 ~@31, ~@35 f#4@17 ~@36 c#5@3 ~@39 d4@18 d4@6 ~@13 b4@6 ~@59 [a3,d4]@17 ~@9 a4@24 ~@22 e4@50 ~@30, ~@305 f#4@49 ~@30]/8", // E5 F#m A Dmaj7 E5 F#5 E5 F#m …
N: "~@7 c#5, ~@13 c#4@3, ~@5 e4, ~@41 a4@7",
O: "[~@6 c#5@5 c5 ~@6 a4@33 ~@38 [g#4,b4]@7, ~@4 c#4@6 ~@7 [d4,f#4]@46 ~@33, ~@5 [e4,a4]@7 ~@76 e4@8]/2", // G#m D A5
P: "[~@6 b4@7 ~ g4@2 ~@2 f#4@36 ~@13 g#4@43 ~@34, ~@4 e4@8 ~ a#4@2 ~@3 a4@31 ~@17 e4@47 ~@31, ~@5 g#4@9 ~@51 c#4@49 ~@30]/3",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.9)
// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@23 A B C D@2 ~ E ~@7 F ~@2 G H@2 I J@2 K L@2 ~@3 M ~ N@3>".pickRestart({
A: "~@42 a3@5 ~", B: "~@13 a4@21 ~@14", C: "d3@13 ~@11 a3@7 ~@17", D: "[~@47 c#3@14 ~@35]/2", E: "~@18 d4 ~@29",
F: "~@6 c#4@7 ~@35", G: "~@35 c#4@6 a4@7, ~@17 a3@3 ~@4",
H: "[~@11 a4@6 ~@27 b4@9 ~@12 [d4,c#5]@10 ~@2 d4 ~@5 c#5@2 ~@11]/2", I: "~@23 b4@2 ~@10 c#5@3 ~@10",
J: "[~@18 c#5@11 ~@6 f#4@3 a4@15 ~@18 e5@2 ~@23]/2", K: "~@16 a3@23 ~@9", L: "[~@17 c#4@48 ~@31, ~@16 a3@45 ~@35]/2",
M: "~@11 g#4 [d#4,g4] [c#4,d4,f4,f#4] ~@34", N: "[~@15 f#4 ~ d4@35 ~@11 a3@51 ~@30, ~@13 d#4@2 ~@129, ~@7 d4 ~@64]/3",
})).s("gm_electric_guitar_jazz").gain(0.1).pan(0.9)
// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note("<~@31 A B@2 ~@13 C@3 ~@5 D@2>".pickRestart({
A: "~@24 c#6@6 e6@13 ~@5", B: "[b5@24 ~@13 c#6@7 e6@21 a5@20 ~@11]/2",
C: "[~@29 c#6@3 ~@3 c#6@5 ~ e6@2 ~@4 e6@6 g#6@3 ~@3 g#6@5 ~ e6@35 ~@44]/3", D: "[~@5 c#6@2 a6@2 g#7@2 ~@5]/2",
})).s("gm_glockenspiel").gain(0.17).pan(0.4)
// drums · kick
const kick = s("bd").struct("<~@9 A@7 B A@7 C D E F G A H ~@4 I J@4 K I J L K I J M ~@3 I J@3 N ~>".pickRestart({
A: "x ~@2 x!2 ~@2 x", B: "x ~ x!2", C: "x ~@46 x", D: "~@6 x ~ x ~@2 x!2 ~ x ~", E: "x ~@2 x!2 ~ x!2",
// … 58 more lines
More by Barbra Streisand
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.