0:00/0:00
// De vissers van San Juan — Frank & Mirella
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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(`<
~@21 A B C D E F G F H I A B C D E F G F H J K L M N O P Q J K L M N O P Q ~@8 A B C D E F G F H I A B C D E F G F H J
K L M N O P Q J K L M N O P Q ~@5 R S T U V W X W Y Z R S T U V W X W Y@3 AA ~
>`.pickRestart({
A: "[f#5,d6,f#6] ~ [f#5,d6,f#6]@3 ~ [g5,d6,g6] ~ [f#5,d6,f#6]@3 ~ [d5,f#5,a5,d6]@3 ~", // D G5 D
B: "[f#5,d6,f#6] ~ [f#5,d6,f#6]@4 [g5,g6]@2 [f#5,d6,f#6]@3 ~ [d5,f#5,a5,d6]@3 ~, ~@6 d6 ~@9", // D G D
C: "[f#5,d6,f#6] ~ [f#5,d6,f#6]@4 [d6,g6] ~ [f#5,d6,f#6]@3 ~ [d5,f#5,a5,d6]@3 ~, ~@3 g5 ~@4", // D G5 D
D: "[a4,c#5,a5,c#6] ~ [a4,c#5,a5,c#6]@3 ~ [d5,d6]@2 [c#5,a5,c#6]@3 ~ [a4,c#5,e5,a5]@3 ~, ~@6 a5 ~@9", // A D F#m A
E: "[c#5,a5,c#6] ~ [c#5,a5,c#6]@3 ~ [a5,d6] ~ [c#5,a5,c#6]@3 ~ [a4,c#5,e5,a5]@3 ~, ~@3 d5 ~@4", // F#m D5 F#m A
F: "[c#5,a5,c#6] ~ [c#5,a5,c#6]@4 [a5,d6] ~ [c#5,a5,c#6]@3 ~ [a4,c#5,e5,a5]@3 ~, ~@3 d5 ~@4", // F#m D5 F#m A
G: "[c#5,a5,c#6] ~ [c#5,a5,c#6]@3 ~ [d5,d6]@2 [c#5,a5,c#6]@3 ~ [a4,c#5,e5,a5]@3 ~, ~@6 a5 ~@9", // F#m D F#m A
H: "[d5,f#5,d6,f#6] ~ [d5,f#5,d6,f#6]@4 [d6,g6] ~ [f#5,d6,f#6]@3 ~ [d5,f#5,a5,d6]@3 ~, ~@3 g5 ~@4", // D G5 D
I: "[f#5,d6,f#6] ~ [f#5,d6,f#6]@3 ~ [d6,g6] ~ [f#5,d6,f#6]@3 ~ [d5,f#5,a5,d6]@3 ~, ~@3 g5 ~@4", J: "[d4,g4,b4]@7 ~@9",
K: "[d4,g4,b4]@5 ~@3", L: "[d4,f#4,a4]@7 ~@9", M: "[d4,f#4,a4] ~", N: "[c#4,e4,a4] ~", O: "[c#4,e4,a4]@3 ~@5",
P: "[d4,f#4,a4]@11 ~@5", Q: "[f#4,a4,d5]@11 ~@5",
R: "[g5,d#6,g6] ~ [g5,d#6,g6]@3 ~ [g#5,d#6,g#6] ~ [g5,d#6,g6]@3 ~ [d#5,g5,a#5,d#6]@3 ~", // Cm G#5 Cm D#
S: "[g5,d#6,g6] ~ [g5,d#6,g6]@4 [g#5,g#6]@2 [g5,d#6,g6]@3 ~ [d#5,g5,a#5,d#6]@3 ~, ~@6 d#6 ~@9", // Cm G# Cm D#
T: "[g5,d#6,g6] ~ [g5,d#6,g6]@4 [d#6,g#6] ~ [g5,d#6,g6]@3 ~ [d#5,g5,a#5,d#6]@3 ~, ~@3 g#5 ~@4", // Cm G#5 Cm D#
U: "[a#4,d5,a#5,d6] ~ [a#4,d5,a#5,d6]@3 ~ [d#5,d#6]@2 [d5,a#5,d6]@3 ~ [a#4,d5,f5,a#5]@3 ~, ~@6 a#5 ~@9", // A# D# Gm A#
V: "[d5,a#5,d6] ~ [d5,a#5,d6]@3 ~ [a#5,d#6] ~ [d5,a#5,d6]@3 ~ [a#4,d5,f5,a#5]@3 ~, ~@3 d#5 ~@4", // Gm D#5 Gm A#
W: "[d5,a#5,d6] ~ [d5,a#5,d6]@4 [a#5,d#6] ~ [d5,a#5,d6]@3 ~ [a#4,d5,f5,a#5]@3 ~, ~@3 d#5 ~@4", // Gm D#5 Gm A#
X: "[d5,a#5,d6] ~ [d5,a#5,d6]@3 ~ [d#5,d#6]@2 [d5,a#5,d6]@3 ~ [a#4,d5,f5,a#5]@3 ~, ~@6 a#5 ~@9", // Gm D# Gm A#
Y: "[d#5,g5,d#6,g6] ~ [d#5,g5,d#6,g6]@4 [d#6,g#6] ~ [g5,d#6,g6]@3 ~ [d#5,g5,a#5,d#6]@3 ~, ~@3 g#5 ~@4", // D# G#5 Cm D#
Z: "[g5,d#6,g6] ~ [g5,d#6,g6]@3 ~ [d#6,g#6] ~ [g5,d#6,g6]@3 ~ [d#5,g5,a#5,d#6]@3 ~, ~@3 g#5 ~@4", // Cm G#5 Cm D#
AA: "[g4,d#5,g5,d#6]", // Cm
})).s("gm_piano").gain(0.34)
// chords · pizzicato strings
const pizzicato_strings = note(`<
~@40 A B C D E F G H I B C D E J K ~@28 A B C D E F G H I B C D E J K ~@29
>`.pickRestart({
A: "[g4,b4] ~ [g4,b4] ~@5 [g4,b4] ~@3 [a4,c#5] ~@3", B: "[b4,d5] ~ [b4,d5] ~@3 [b4,d5] ~ [a4,c#5] ~@3 [g4,b4] ~@3",
C: "[f#4,a4] ~ [f#4,a4] ~@3 [f#4,a4] ~ [f#4,a4] ~@3 [g4,b4] ~@3", // F#m G
D: "[a4,c#5] ~@3 [a4,c#5] ~ [g4,b4] ~@3 [f#4,a4] ~@5", // A G F#m
E: "[e4,g4] ~ [e4,g4] ~@3 [e4,g4] ~ [e4,g4] ~@3 [f#4,a4] ~ [g4,b4] ~", F: "~@6 [g4,b4] ~ [f#4,a4] ~@3 [f#4,a4] ~@3",
G: "[d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~ [d4,f#4] ~", // D
H: "~@2 [d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~", // D
I: "[g4,b4] ~ [g4,b4] ~@3 [g4,b4] ~ [g4,b4] ~@3 [a4,c#5] ~@3", // G A
J: "~@2 [g4,b4] ~@3 [g4,b4] ~ [f#4,a4] ~@3 [f#4,a4] ~@3", K: "[d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~ [d4,f#4] ~@7",
})).s("gm_pizzicato_strings").gain(0.39).pan(0.4)
// bass · electric bass finger
const bass = note(`<
~@3 A B C B C B D E A B C B C B D E F G H I J K L K M N O P H I J K L K M N O Q R S T U V W X Q R S T U V W X Y Z AA
AB AC AD AE AF H I J K L K M N O P H I J K L K M N O Q R S T U V W X Q R S T U V W X Y Z AA AG AH AI AJ AK AL AM AL AN
AO AP AQ AI AJ AK AL AM AL AN AO AP@3 AR ~
>`.pickRestart({
A: "d2@15 ~", B: "d2@3 a1", C: "d2@7 ~", D: "e2@7 ~", E: "g1@3 a1", F: "d2@5 ~ d2 ~ d2@6 b1@2",
G: "a1@6 a1 ~ a1@4 a1@4", H: "d2@4 ~@2 d2@2 d2@3 ~ a1@2 b1@2", I: "d2!2 ~ d2 d2@2 a1 b1",
J: "d2@2 d2@2 ~@2 d2 ~ d2@4 e1@2 f#1@2", K: "a1@2 a1@2 ~@2 a1@2 a1@3 ~ e1@2 f#1@2",
L: "a1@2 a1@2 ~@2 a1 ~ a1@3 ~ e1@2 f#1@2", M: "a1@2 a1@2 ~@2 a1 ~ a1@4 e1@2 f#1@2",
N: "a1@2 a1@2 ~@2 a1@2 a1@3 ~ a1@2 b1@2", O: "d2@2 d2@2 ~@2 d2 ~ d2@3 ~ a1@2 b1@2",
P: "d2@2 d2@2 ~@2 d2 ~ d2@4 a1@3 ~", Q: "g1@4 ~@2 g1@2 g1@3 ~ d1@2 e1@2", R: "g1@5 ~ g1 ~ g1@3 ~ f#2@2 e2@2",
S: "d2@5 ~ d2 ~ d2@4 a1@2 b1@2", T: "d2@5 ~ d2 ~ d2@4 c#2@2 b1@2", U: "a1@5 ~ a1 ~ a1@4 e1@2 f#1@2",
V: "a1@5 ~ a1 ~ a1@4 f#2@2 e2@2", W: "d2@5 ~ d2@2 d2@4 a1@2 b1@2", X: "d2@4 ~@2 d2 ~ d2@4 a1@4",
Y: "a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1@2 b1@2", Z: "d2@2 d2@3 ~ d2 ~ d2@4 c#2@2 b1@2", AA: "a1@5 ~ a1 ~ a1@3 ~ a1@2 b1@2",
AB: "d2@4 ~@2 d2 ~ d2@3 ~ c#2@2 b1@2", AC: "a1@2 a1@3 ~ a1@2 a1@3 ~ a1 ~ b1@2",
AD: "d2@2 d2@2 ~@2 d2 ~ d2@4 c#2@2 b1@2", AE: "a1@2 a1@3 ~ a1@2 a1@3 ~ a1@2 b1@2",
AF: "d2@2 d2@3 ~ d2 ~ d2@3 ~ a1@3 ~", AG: "d2@4 ~@2 d2@2 d2 ~ d2 c#2 c2@2 b1@2",
AH: "a#1 ~ a#1 ~ a#1 ~ a#1@2 a#1 ~ a#1 ~ a#1 ~ a#1@2", AI: "d#2@4 ~@2 d#2@2 d#2@3 ~ a#1@2 c2@2",
AJ: "d#2!2 ~ d#2 d#2@2 a#1 c2", AK: "d#2@2 d#2@2 ~@2 d#2 ~ d#2@4 f1@2 g1@2",
AL: "a#1@2 a#1@2 ~@2 a#1@2 a#1@3 ~ f1@2 g1@2", AM: "a#1@2 a#1@2 ~@2 a#1 ~ a#1@3 ~ f1@2 g1@2",
AN: "a#1@2 a#1@2 ~@2 a#1 ~ a#1@4 f1@2 g1@2", AO: "a#1@2 a#1@2 ~@2 a#1@2 a#1@3 ~ a#1@2 c2@2",
AP: "d#2@2 d#2@2 ~@2 d#2 ~ d#2@3 ~ a#1@2 c2@2", AQ: "d#2@2 d#2@2 ~@2 d#2 ~ d#2@4 a#1@3 ~", AR: "d#1",
})).s("gm_electric_bass_finger").gain(0.39)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@21 A@3 B@2 C@3 D@2 A@3 B@2 C@3 E F@2 G@2 H@2 G@2 F@2 G@2 H@2 G@2 ~@8 A@3 B@2 C@3 D@2 A@3 B@2 C@3 E F@2 G@2 H@2 G@2
F@2 G@2 H@2 G@2 ~@4 I J@3 K@2 L@3 M@2 J@3 K@2 L@3 N@4 ~
>`.pickRestart({
A: "[a3,d4,f#4]/3", B: "[a3,c#4,e4]/2", C: "[a4@4 [a3,g4] a4, [c#4,e4]]/3", D: "[a3,d4,f#4]/2", E: "[a3,d4,f#4]",
F: "[g4,b4,d5,g5]/2", G: "[f#4,a4,d5,f#5]/2", H: "[e4,a4,c#5,e5]/2", I: "[d4,f4,g#4,a#4]", J: "[a#3,d#4,g4]/3",
K: "[a#3,d4,f4]/2", L: "[a#4@4 [a#3,g#4] a#4, [d4,f4]]/3", M: "[a#3,d#4,g4]/2", N: "[~ [a#4,d#5,g5], [a#3,d#4,g4]]/4",
})).s("gm_synth_strings_1").gain(0.23).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@3 A B C D E D F G A B C D E D F G A H I J K L M N O P Q R S J K L M N O P Q T U V W X@2 Y@2 U@2 V W X@2 Y@2 Z AA Z
AB AC Y AD AE S J K L M N O P Q R S J K L M N O P Q T U V W X@2 Y@2 U@2 V W X@2 Y@2 Z AA Z AB AF AG AH AI AJ AK AL AM
AN AO AP AG AH AI AJ AK AL AM AN AO@3 AQ ~
>`.pickRestart({
A: "[a3,d4] [a3,d4]@2 [d3,f#3,a3,d4] a3!4, [d3,f#3]@3 ~ [d3,f#3,d4]@2 [d3,f#3,d4]@2", // D5 D
B: "[d3,f#3,a3,d4] [a3,d4]@2 [a3,d4] a3!4, ~ [d3,f#3]@3 [d3,d4]@2 [d3,d4]@2, ~@8 f#3 ~@3 f#3 ~@3", // D D5 D
C: "[d3,f#3,a3,d4] [a3,d4]@2 [a3,d4] a3!4, ~ [d3,f#3]@3 [d3,f#3,d4]@2 [d3,f#3,d4]@2", // D D5 D
D: "[d3,f#3,a3,d4] a3!2 [a3,d4]!5, ~ [d3,f#3]@3 [d3,f#3]@2 [d3,f#3]@2, ~ d4@2 ~@5", // D D5 D
E: "[f#3,a3,d4] [a3,d4]@2 [a3,d4] a3!4, ~ [d3,f#3]@3 [d3,f#3,d4]@2 [d3,f#3,d4]@2", // D D5 D
F: "[g3,b3,e4] [b3,e4]@2 [b3,e4] b3!4, ~ [e3,g3]@3 [e3,g3,e4]@2 [e3,g3,e4]@2", // Em E5 Em
G: "[d3,g3,b3,d4] b3!2 [b3,d4]!5, ~ [d3,g3]@3 [d3,g3]@2 [d3,g3]@2, ~ d4@2 ~@5", // G Bm G5
H: "[a2,d3,e3,a3,c#4,e4]@2 [a3,c#4,e4]@4 [a3,c#4,e4]@2 a3@2 a3@2 a3@2 a3 ~, ~ [a2,e3]@3 [a2,e3,c#4,e4]@2 [a2,e3,c#4,e4]@2", // A A5 A
I: "[a3,d4,f#4] ~ [d4,f#4]@2 [a3,d4,f#4]@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [d4,f#4] ~ [d4,f#4]@2, ~@6 a3 ~", // D
J: "[a3,d4,f#4]!2 [a3,d4] [d4,f#4] [a3,d4,f#4]!2 [a3,d4] [d4,f#4], ~@4 f#4 ~@7 f#4 ~@3", K: "[a3,d4,f#4]!8",
L: "[a3,c#4,e4]!8", M: "[a3,c#4,e4]!7 [c#4,e4]",
N: "[a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2, e3 ~@3 e3 ~@3", // A
O: "[a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2, [a2,e3] ~@3 [a2,e3] ~@3", // A A5
P: "[a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@8 [a2,e3]@5 ~@3", // A A5
Q: "[d3,f#3,a3,d4,f#4]@2 [d3,f#3,a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2, ~@4 [d3,f#3] ~@3", // D
R: "[d3,a3,d4,f#4] [a3,d4,f#4]!3 [d3,a3,d4,f#4]!2 [a3,d4,f#4]!2, ~ d3@3 ~@2 d3@2", // D
S: "[d4,f#4] ~ [d4,f#4]@2 [a3,d4,f#4]@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [d4,f#4] ~ [d4,f#4]@2, a3 ~@5 a3 ~", // D
T: "a3 ~ [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~@3 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~", // G
U: "~@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~@3 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~", // G
V: "~@2 [d3,a3,d4,f#4]@2 [f#3,a3,d4,f#4] ~ [d3,a3,d4,f#4] ~@3 [d3,a3,d4,f#4]@2 [f#3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~", // D
W: "~@2 [d3,a3,d4,f#4]@2 [f#3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2 [f#3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~", // D
X: "~@2 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~", // A
Y: "~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~@3 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~", // D
Z: "~@2 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]@2", // A
AA: "~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~ [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~ [d3,a3,d4,f#4] ~", // D
AB: "~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~ [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2", // D
AC: "~@2 [a2,e3,a3,c#4,e4]@2 [a2,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@2 [a2,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~", // A
AD: "~ [a2,e3,a3,c#4,e4] [a2,a3,c#4,e4] [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4] [a2,a3,c#4,e4] [a2,e3,a3,c#4,e4]", // A
AE: "~ [d3,a3,d4,f#4]!3 ~ [d3,a3,d4,f#4]!3", // D
AF: "[a#3,d4,f4] ~ [a#3,d4]@2 [d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4] ~, ~@2 f4 ~@13", // A# Dm A#
AG: "[d#4,g4] ~ [d#4,g4]@2 [a#3,d#4,g4]@4 [a#3,d#4,g4]@2 [a#3,d#4,g4]@2 [d#4,g4] ~ [d#4,g4]@2, a#3 ~@5 a#3 ~", // D#
AH: "[a#3,d#4,g4]!2 [a#3,d#4] [d#4,g4] [a#3,d#4,g4]!2 [a#3,d#4] [d#4,g4], ~@4 g4 ~@7 g4 ~@3", AI: "[a#3,d#4,g4]!8",
AJ: "[a#3,d4,f4]!8", AK: "[a#3,d4,f4]!7 [d4,f4]",
AL: "[a#3,d4,f4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2 [f3,a#3,d4,f4]@2 [a#3,d4,f4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2, f3 ~@3 f3 ~@3", // A#
AM: "[a#3,d4,f4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#2,f3,a#3,d4,f4]@2 [a#3,d4,f4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2, [a#2,f3] ~@3 [a#2,f3] ~@3", // A# A#5
AN: "[a#2,f3,a#3,d4,f4]@2 [a#2,f3,a#3,d4,f4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4] ~ [a#3,d4] ~ [a#3,d4,f4]@2 [a#3,d4,f4]@2, ~@8 [a#2,f3]@5 ~@3", // A# A#5
AO: "[d#3,g3,a#3,d#4,g4]@2 [d#3,g3,a#3,d#4,g4]@2 [a#3,d#4,g4]@2 [a#3,d#4,g4]@2 [a#3,d#4,g4] ~ [a#3,d#4,g4]@2 [a#3,d#4,g4]@2 [a#3,d#4,g4]@2, ~@4 [d#3,g3] ~@3", // D#
AP: "[d#3,a#3,d#4,g4] [a#3,d#4,g4]!3 [d#3,a#3,d#4,g4]!2 [a#3,d#4,g4]!2, ~ d#3@3 ~@2 d#3@2", // D#
AQ: "[d#3,a#3,d#4,g4]@15 ~", // D#
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.8)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
~@3 A@4 B@2 C@2 A@4 B@2 C@2 D@2 E@8 F@8 G@3 H@2 I@2 J@2 I@2 H@2 I@2 J@2 I@2 J I J I J I J K L M N O P Q R S L T L M N
O P Q R S L ~@16 J I J I ~ U V W X Y Z AA AB U AC U V W X Y Z AA AB U ~@4
>`.pickRestart({
A: "[~@31 d4, d3@3 [d3,b3,g4] d3@3 [d3,b3,g4] d3@3 [d3,b3,g4] d3@4, f#4 ~ f#4 ~ f#4 ~ f#4 ~, ~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~, ~ a3 [a3,f#4] ~ a3!2 [a3,f#4] ~ a3!2 [a3,f#4] ~ a3!2 [a3,f#4] [b3,g4]]/4", // G D Em
B: "[~@15 d4, d3@3 [d3,b3,g4] d3@4, f#4 ~ f#4 ~, a3!2 [a3,f#4] ~ a3!2 [a3,f#4] [b3,g4], ~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~]/2", // G D Em
C: "[~@15 d4, e3@2 ~ [e3,b3,a4] [g3,g4]@2 [g3,b3]!2, g4 b3 [b3,g4] ~ b3!2 g4@2, ~ e4@2 e4@2 e4@2 e4@2 d4@2 d4@2 d4@2 ~]/2", // Esus4 G Em
D: "[~@16 c#4 ~ e4@2 c#4@2 e4@2 [a3,c#4,a4]@2 e4@2 ~@2 e4@2, d3@3 [d3,b3,g4] ~@4, f#4 ~@3, ~ d4@2 d4@2 d4@2 d4@2 ~@7, ~@4 a3@4 [a3,f#4]@4 ~@4 [a3,a4]@7 ~@5 [a3,c#4,a4]@4]/2", // A G D A
E: "[~@3 g4 ~@7 g4 ~@7 g4 ~@7 d5 ~@7 d5 ~@7 d5 ~@7 d5 ~@7 d5 ~@3 a4, f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2, ~ d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 ~]/8",
F: "[~@3 g4 ~@7 g4 ~@7 g4 ~@7 g4 ~@7 g4 ~@7 d5 ~@7 d5 ~@7 d5 ~@3 a4, f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2, ~ d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 f#4@2 a3@2 ~ d4@2 d4@2 d4@2 ~ f#4@2 a3@2 c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 ~]/8",
G: "[~@3 d5 ~@7 d5 ~@7 g4 ~@3 d4, c#5@2 e4@2 ~ a4@2 a4@2 a4@2 ~ c#5@2 e4@2 f#4@2 a3@2 ~ d4@2 ~, ~ a4@2 ~ c#5@2 e4@2 c#5@2 e4@2 ~ a4@2 a4@2 d4@2 ~ f#4@2 a3@2]/3",
H: "[g3,b3,d4,g4] ~@3 [g3,b3,d4,g4] ~@3", I: "[d3,a3,d4,f#4] ~@3 [d3,a3,d4,f#4] ~@3",
J: "[a2,e3,a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4] ~@3", K: "[d3,a3,d4,f#4] ~@3 [d3,a3,d4,f#4] ~ a4 ~", L: "[d5,f#5]!16",
M: "[d5,f#5] ~@3 [a4,d5] ~ [c#5,e5] ~ [d5,f#5]@3 ~ [e5,g5]@3 ~", // D D5 C#m D Em
N: "[f#5,a5] ~ [f#5,a5]@3 ~ [d5,f#5] ~ [g5,b5]@2 ~@2 [g5,b5]@3 ~", O: "[c#5,e5]!16", P: "[c#5,e5]!10 ~@2 a5@3 ~",
Q: "[a5,c#6]!16", R: "[a5,c#6] ~@3 d6 ~ c#6 ~ b5@2 ~@2 a5@3 ~",
S: "[e5,g5] ~ [e5,g5]@2 ~@2 [c#5,e5] ~ [f#5,a5]@2 ~@2 [f#5,a5]@2 ~@2", T: "[d5,f#5]!10 ~@2 a4@3 ~", U: "[d#5,g5]!16",
V: "[d#5,g5] ~@3 [a#4,d#5] ~ [d5,f5] ~ [d#5,g5]@3 ~ [f5,g#5]@3 ~", // D# D#5 Dm D# Fm
W: "[g5,a#5] ~ [g5,a#5]@3 ~ [d#5,g5] ~ [g#5,c6]@2 ~@2 [g#5,c6]@3 ~", X: "[d5,f5]!16", Y: "[d5,f5]!10 ~@2 a#5@3 ~",
Z: "[a#5,d6]!16", AA: "[a#5,d6] ~@3 d#6 ~ d6 ~ c6@2 ~@2 a#5@3 ~",
AB: "[f5,g#5] ~ [f5,g#5]@2 ~@2 [d5,f5] ~ [g5,a#5]@2 ~@2 [g5,a#5]@2 ~@2", AC: "[d#5,g5]!10 ~@2 a#4@3 ~",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)
// other · lead 8 bass lead · D C# C B A#
const lead_8_bass_lead = note("<~@102 [~@10 [d3,d4] [c#3,c#4] [c3,c4]@2 [b2,b3]@2] [[a#2,a#3]@3 ~] ~@23>")
.s("gm_lead_8_bass_lead").gain(0.33)
// chords · bandoneon
const bandoneon = note(`<
A B@2 C@2 ~@50 D E F G H E I J K ~@19 L M N O P@2 Q R S T U O V@2 W D X Y J K Z AA AB AC AD@2 AE AF AG AH@2 AA AI AJ
AK@2 AL AM AN AA ~@4
>`.pickRestart({
A: "~@3 a4", B: "[[f#5,a5]@11 a4 [e4,g4]@2 [e5,g5]@2]/2", C: "[d5,f#5]/2", D: "~@3 [a4,f#5,a5]",
E: "[c#5,a5,c#6]@3 [b4,g5,b5]", F: "[b4,g5,b5] [a4,f#5,a5]!2 [f#4,d5,f#5]", G: "[a4,f#5,a5]@3 [g4,e5,g5]",
H: "[f#4,d5,f#5]@3 [a4,f#5,a5]", I: "[b4,g5,b5] [a4,f#5,a5]!2 [f#4,d5]", J: "[a4,f#5]@3 [g4,e5]", K: "[f#4,d5]",
L: "[g5,b5]@2 ~ [g5,b5]@2 ~ [g5,b5] ~ [g5,b5]@3 ~ [a5,c#6]@3 ~", // G A
M: "[b5,d6]@4 ~@2 [b5,d6]@2 [a5,c#6]@3 ~ [g5,b5]@3 ~", // Bm A G
N: "[f#5,a5] ~ [f#5,a5]@2 ~@2 [f#5,a5] ~ [f#5,a5]@3 ~ [g5,b5]@3 ~", // F#m G
O: "[a5,c#6]@3 ~ a5@2 [g5,b5]@4 [f#5,a5]@5 ~, ~@4 c#6 ~@11", // A G F#m
P: "[[e5,g5] ~ [e5,g5]@2 ~@2 [e5,g5] ~ [e5,g5]@3 ~ a5@2 [g5,b5]@7 ~ g5@2 [f#5,a5]@3 ~ [f#5,a5]@4, ~@12 f#5 ~@9 b5 ~@9]/2", // Em G F#m
Q: "[d5,f#5]@15 ~", R: "[f#5,a5]@7 ~", S: "[g5,b5]@2 [g5,b5]@3 ~ [g5,b5] ~ [g5,b5]@4 [a5,c#6]@4",
T: "[b5,d6]@5 ~ [b5,d6]@2 [a5,c#6]@3 ~ [g5,b5]@4", // Bm A G
U: "a5@2 [f#5,a5]@3 ~ [f#5,a5] ~ [f#5,a5]@3 ~ [g5,b5]@3 ~, f#5 ~@15", // F#m G
V: "[[e5,g5] ~ [e5,g5]@2 ~@2 [e5,g5] ~ [e5,g5]@3 ~ [f#5,a5]@2 [g5,b5]@6 ~@2 g5@2 [f#5,a5]@3 ~ [f#5,a5]@4, ~@22 b5 ~@9]/2", // Em F#m G F#m
W: "[d5,f#5] ~", X: "[a5,c#6]@12 [g5,b5]@3 ~", Y: "[g5,b5]@4 [f#5,a5]@3 ~ [f#5,a5]@4 [f#4,d5]@4",
Z: "a#4@12 a#4@3 ~, [d4,f4,g#4]", AA: "[d#5,g5]", AB: "~@4 d#5 ~ [d5,f5]@2 [d#5,g5]@4 [f5,g#5]@4",
AC: "[g5,a#5]@2 [g5,a#5]@3 ~ [d#5,g5] ~ [g#5,c6]@2 ~@2 [g#5,c6]@4", AD: "[[d5,f5]@23 ~@5 a#5@3 ~]/2",
AE: "[a#5,d6]@15 ~", AF: "~@2 c6 [a#5,d6] [g#5,c6]@2 [g5,a#5]@2, ~@4 d#6 ~@11",
AG: "g#5@2 [f5,g#5]@3 ~ d5@2 [g5,a#5]@2 ~@2 [g5,a#5]@4, f5 ~@5 f5 ~@9", AH: "[[d#5,g5]@23 ~@5 a#4@4]/2",
AI: "~@2 d#5 [d5,f5] [d#5,g5]@2 [f5,g#5]@2", AJ: "[g5,a#5] ~ [g5,a#5]@3 ~ [d#5,g5] ~ [g#5,c6]@2 ~@2 [g#5,c6]@4",
AK: "[[d5,f5]@22 ~@6 a#5@3 ~]/2", AL: "[a#5,d6]", AM: "~@2 [c6,d#6] [a#5,d6] [g#5,c6]@2 [g5,a#5]@2",
AN: "[f5,g#5] ~ [f5,g#5]@3 ~ d5@2 a#5@2 ~@2 [g5,a#5]@4, ~@6 f5 ~ g5 ~@7", // Fm Gm
})).s("gm_bandoneon").gain(0.27)
// drums · kick
const kick = s("bd").struct("<~@21 A@18 B A@7 C A@34 B A@7 C A@12 D A@21 C ~>".pickRestart({
A: "x ~@2 x!2 ~@3", B: "~@3 x ~@4", C: "x", D: "x!8",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
~@19 A B C@9 D C@8 E C@7 F C@15 D C@9 D C@8 E C@7 F C@12 B C@9 D C@10 G ~@2
>`.pickRestart({
A: "~@14 x!2", B: "x!8", C: "~ x ~ x", D: "~@4 x ~@3 x!3 ~ x ~@3", E: "x!2 ~ x!2 ~@3 x!2 ~@2 x ~ x ~",
F: "~@4 x ~ x!3 ~@3 x ~@3", G: "~@2 x ~ x!4",
// … 47 more lines
More by
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.