0:00/0:00
// Primavera a Sarajevo — Ruggeri
// 129 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 119 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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.
// other · viola
const viola = note("<~@38 A B C D E F G H ~@69 I ~@3>".pickRestart({
A: "~ f#4@6 a4@6 g#4@6 a4@4 ~", B: "~ f#4@6 a4@6 g#4@6 ~@5", C: "~ f#4@11 ~ d4@6 f#4@5",
D: "~ f4@6 b3@6 g#3@5 ~ g#3@5", E: "~ c#4@6 b3@6 c4@5 ~@6", F: "~ c#4@6 b3@5 ~ c4@5 ~@6",
G: "~ c#4@5 ~ b3@6 c#4@5 ~ c#3@5", H: "~ f#3@6 f#3 ~@2 f#3 ~@2 f#3 ~@10", I: "~@4 f#4 ~@2 a4 ~@2 c#5@2 ~ f#5@3 ~@8",
})).s("gm_viola").gain(0.41).pan(0.7)
// other · viola
const viola_2 = note("<~@38 A B C D E F G H ~@29 I@2 J K ~@2 L M ~@15 N O ~@19>".pickRestart({
A: "~ f#4@6 c#5@6 c5@6 c#5@4 ~", B: "~ f#4@6 c#5@6 c5@6 c#5@5", C: "~ f#4@6 a4@6 b4@10 ~",
D: "~ g#4@6 d4@6 c#4@6 f4@5", E: "~ f4@12 f#4@6 a4@4 ~", F: "~ f4@12 f#4@5 ~ a4@5", G: "~ f4@9 d5@3 c#5@6 c#4@5",
H: "~ f#4@3 g#4 ~@2 a4 ~@2 g#4 ~@2 f#4 ~@10", I: "~@7 a4@6 g#4@6 [a4,c#5]@5, ~ c#5@18 ~@5", J: "~ f#4@11 e4 d#4@11",
K: "~@7 d4@6 c#4@10 ~, ~ f4@12 ~@11", L: "~ c#4@6 b3@6 a3@5 ~ g#3@5", M: "~ f#3@7 ~@16", N: "~ c#4@12 d4@11",
O: "~ e4@12 c#4@11",
})).s("gm_viola").gain(0.34).pan(0.3)
// chords · trombone
const trombone = note("<~@55 A B C D A E F G A H I J ~@25 A B C D A K F G A B C D A H I J ~@11>".pickRestart({
A: "~@4 [a3,c#4] ~@5 [a3,c#4] ~@5 [a3,c#4] ~@5 [a3,d4] ~", B: "~@4 [g#3,b3] ~@5 [g#3,b3] ~@5 [g#3,b3] ~@7",
C: "~@4 [c#4,f#4] ~@5 [c#4,f#4] ~@5 [c#4,f#4] ~@5 [c#4,f#4] ~", // F#5
D: "~@4 [c#4,f4] ~@5 [c#4,f4] ~@5 f4@3 f#4@3 [c#4,f4] ~, ~@16 c#4 ~@7", // C#
E: "~@4 [g#3,b3] ~@5 [g#3,b3] ~@5 e4@3 d#4@3 e4@2, ~@16 g#3 ~@5 g#3 ~", // G#m
F: "~@4 [c#4,f#4] ~@5 [c#4,f#4] ~@5 [d4,f#4] ~@5 [d4,f#4] ~", // F#5 D
G: "~@4 [e4,g#4] ~@5 [e4,g#4] ~@5 [c#4,f4] ~@5 [c#4,f4] ~", // E C#
H: "~@4 [g#3,b3] ~@5 [g#3,b3] ~@5 e4@3 g#4@3 e4@2, ~@16 g#3 ~@5 g#3 ~", // G#m
I: "~@4 [c#4,f4] ~@5 [c#4,f4] ~@5 [c#4,f4] ~@5 [c#4,f4] ~", J: "~@4 [c#4,f#4] ~@5 [c#4,f#4] ~@2 [c#4,f#4] ~@10",
K: "~@4 [g#3,b3] e4 ~@4 [g#3,b3] ~@5 e4@3 ~@3 e4@2, ~@7 e4@8 ~ g#3 ~@5 g#3 ~", // G#m
})).s("gm_trombone").gain(0.47).pan(0.3)
// other · trombone
const trombone_2 = note(`<
A B C D A B C E ~@38 F G F H I J K L@2 M N O P M Q R S M Q T U A B C D A B C E ~@8 F G F H I V K L@2 M N O P M Q R S M
N O P M Q T U A B C D A B C E W@2 ~
>`.pickRestart({
A: "~ f#4@3 f4 ~@2 e4 ~@2 d#4 ~@2 f#4@3 f4 ~@2 e4 ~@2 d#4 ~", B: "~ d4@11 ~ c#4@8 ~@3",
C: "~ c#4@3 c4 ~@2 b3 ~@2 a3 ~@2 c#4@3 c4 ~@2 b3 ~@2 a3 ~", D: "~ g#3@15 ~@8", E: "~ f#3@15 ~@8",
F: "~ e3@10 ~@2 g#3@4 ~@2 b3@4 ~", G: "~ a3@8 ~ e3 ~@2 c#3@2 ~ b2@2 ~ a2 ~@2 e3 ~",
H: "~ a3@8 ~ e3 ~@2 c#3@2 ~ b2@2 ~ a2 ~@2 c#3 ~", I: "~ c#3@9 ~@3 b2@4 ~@2 c#3@4 ~", J: "~ d3@10 ~@2 b2@8 ~@3",
K: "~ c#3@6 f#3@6 c#3@5 ~ g#3@5", L: "[~ f#3@5 ~ c#3@4 ~@2 f#2@24 ~@6 e3@5]/2", M: "~ a3@12 ~@6 e3@5",
N: "~ g#3@5 ~ e3 ~@2 b2 ~@2 e3@6 f3@4 ~", O: "~ f#3@5 ~ c#3@3 ~@3 a3@4 ~@2 f#3@4 ~", P: "~ g#3@17 ~ c#3@4 ~",
Q: "~ g#3@5 ~ e3 ~@2 b2 ~@2 e3@6 g#3@4 ~", R: "~ f#3@5 ~ g#3@3 a3@2 ~ d3@6 a3@4 ~",
S: "~ e3@5 ~ g#3@6 g#3@3 f#3 ~@2 f3 ~@2 c#3@2", T: "~ f3@22 ~", U: "~ f#3@11 ~@12",
V: "~ d3@8 ~ c#3 ~@2 b2@3 ~@3 c#3 ~@2 d3@2", W: "[~ f#2@37 ~@10, ~ c5@29 ~@18]/2",
})).s("gm_trombone").gain(0.54).pan(0.6)
// other · trombone
const trombone_3 = note("<A B C D A B C E ~@59 A B C D A B C E ~@33 A B C D A B C E F@2 ~>".pickRestart({
A: "~ f#3@3 f3 ~@2 e3 ~@2 d#3 ~@2 f#3@3 f3 ~@2 e3 ~@2 d#3 ~", B: "~ d3@11 ~ c#3@8 ~@3",
C: "~ c#3@3 c3 ~@2 b2 ~@2 a2 ~@2 c#3@3 c3 ~@2 b2 ~@2 a2 ~", D: "~ g#2@15 ~@8", E: "~ f#2@15 ~@8",
F: "[~ c4@39 ~@8]/2",
})).s("gm_trombone").gain(0.45).pan(0.3)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
A B C D E F G H A B C D I@2 D J K L K L F M N O P ~@13 A B C D I@2 D J K L K L F M N O P ~@12 A B C D E F G H ~@4 Q@2
R S K L K L F M N O P ~@7 T ~@8 U V W D E F G H ~@3
>`.pickRestart({
A: "~@4 [c#4,f#4] ~@5 [c#4,f#4]@2 ~@4 [c#4,f#4] ~@5 [c#4,f#4] ~", // F#5
B: "~@4 [c#4,f#4] ~@5 [c#4,f#4]@2 ~@4 [c#4,f#4]@2 ~@4 [c#4,f#4] ~", // F#5
C: "~@4 [a3,c#4,f#4]@2 ~@4 [a3,c#4,f#4]@2 ~@4 [b3,f4,g#4] ~@5 [b3,f4,g#4] ~", // F#m Fdim
D: "~@4 [f4,g#4,c#5] ~@5 [f4,g#4,c#5] ~@5 [f4,g#4,c#5] ~@5 [f4,g#4,c#5] ~", // C#
E: "~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5]", // D
F: "~@2 [f4,g#4,c#5] ~@2 [f4,g#4,c#5] ~@2 [f4,g#4,c#5] ~@2 [f4,g#4,c#5]", // C#
G: "~@2 [d#4,f#4,b4] ~@2 [d#4,f#4,b4] ~@2 [f4,g#4,c#5] ~@2 [f4,g#4,c#5]", // B C#
H: "~@4 [a3,c#4,f#4]@3 ~@3 [a3,c#4,f#4]@2 ~ [a3,c#4,f#4]@3 ~@8", // F#m
I: "~@4 [f4,g#4,c#5] ~@5 [f4,g#4,c#5] ~@5 [f#4,a4,d5] ~@5 [f#4,a4,d5] ~", // C# D
J: "~@4 [a3,c#4,f#4]@2 ~@4 [a3,c#4,f#4]@3 [a3,c#4,f#4]@3 ~@8", // F#m
K: "~@4 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~", // E
L: "~@4 [c#4,e4,a4]@2 ~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4]@2", // A
M: "~@4 [f#4,a4,d5] ~@5 [f#4,a4,d5]@2 ~@4 [d4,f#4,b4]@2 ~@4 [d4,f#4,b4]@2", // D Bm
N: "~@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4] ~@2 [f4,g#4,c#5] ~@2 [f4,g#4,c#5]", // F#m C#
O: "~@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4]", // F#m
P: "~@4 [a3,c#4,f#4]@2 ~@4 [a3,c#4,f#4]@3 [a3,c#4,f#4]@2 ~@4 [b3,e4]@5, ~@3 g#3", // F#m E5
Q: "~ [g#3,c#4,f4]@12 [a3,d4,f#4]@11", R: "~ [g#3,c#4,f4]@12 [a3,d4,f#4]@6 [g#3,c#4,f4]@5",
S: "~ f#4@6 c#4@3 a3@3 f#3@4 ~@7", T: "~@13 g#5 ~@2 f#5 ~@2 f5@2 ~ [g#4,c#5]@2",
U: "~@4 [f#4,c#5] ~@5 [f#4,c#5]@2 ~@4 [f#4,c#5] ~@5 [f#4,c#5] ~", // F#5
V: "~@4 [f#4,c#5] ~@5 [f#4,c#5]@2 ~@4 [f#4,c#5]@2 ~@4 [f#4,c#5] ~", // F#5
W: "~@2 [f#4,a4,c#5] ~@2 [f#4,a4,c#5] ~@2 [b3,d#4,g#4] ~@2 [b3,d#4,g#4]", // F#m G#m
})).s("gm_electric_guitar_clean").gain(0.39)
// bass · acoustic bass
const bass = note(`<
A B C D E F G H I J C D K L M N O P O Q M R S T U V W X D V Y Z AA V AB AC AD AE I J C D K L M N O P O Q M R S T AF V
W X D V Y Z AA V AB AC AD A B C AG E F G H AH@2 AI AJ AK@2 AL AM O P O AN M R S AO AP V W X AG V Y Z AA V W X D V AB
AC AD A AQ C D E AR G AS AT@2 ~
>`.pickRestart({
A: "~ f#2@4 ~@2 c#2@4 ~@2 f#2@5 ~ a2@2 ~ c#3@2", B: "~ f#2@5 ~ c#2@4 ~@2 f#2@4 ~@2 a2@2 ~ c#3@2",
C: "~ f#2@4 ~@2 c#2@2 ~ f#2 ~@2 g#2@5 ~ g#1@4 ~", D: "~ c#2@5 ~ g#1@4 ~@2 c#2@4 ~@2 g#1@2 ~ c#2@2",
E: "~ d2@4 ~@2 a1@4 ~@2 d1@5 ~ a1@2 ~ d2@2", F: "~ c#2@5 ~ g#1@4 ~@2 c#2@5 ~ g#1@4 ~",
G: "~ b1@4 ~@2 f#1@4 ~@2 c#2@5 ~ g#1@5", H: "~ f#1@5 ~ c#1@4 ~@2 f#1@5 ~@6", I: "~ f#2@4 ~@2 c#2@4 ~@2 f#2@5 ~ c#2@5",
J: "~ f#2@5 ~ c#2@4 ~@2 f#2@5 ~ c#2@4 ~", K: "~ c#2@4 ~@2 g#1@3 c#2@3 d1@5 ~ a1@2 ~ d2@2",
L: "~ c#2@5 ~ g#1@3 c#2@3 d1@5 ~ a1@2 ~ d2@2", M: "~ c#2@4 ~@2 g#1@4 ~@2 c#2@5 ~ g#1@3 c#2@2",
N: "~ f#1@5 ~ c#2@4 ~@2 f#1@5 ~@6", O: "~ e2@4 ~@2 b1@4 ~@2 e2@5 ~ e2@2 ~ f#2@2",
P: "~ a2@5 ~ e2@4 ~@2 a1@5 ~ g#2@2 ~ f#2@2", Q: "~ a2@5 ~ e2@4 ~@2 a1@5 ~ e2@2 ~ b1@2",
R: "~ d2@5 ~ a1@4 ~@2 b1@4 ~@2 f#1@5", S: "~ f#1@4 ~@2 c#2@2 ~ g#1@2 ~ c#2@5 ~ g#1@4 ~",
T: "~ f#1@5 ~ c#2@4 ~@2 f#1@4 ~@2 c#2@5", U: "~ f#1@5 ~ c#2@4 ~@2 f#1@3 ~@3 e2@5",
V: "~ a2@4 ~@2 e2@4 ~@2 a2@5 ~ g#2@2 ~ f#2@2", W: "~ e2@5 ~ b1@4 ~@2 e2@4 ~@2 f#2@2 ~ f2@2",
X: "~ f#2@4 ~@2 c#2@4 ~@2 f#2@5 ~ c#2@2 ~ f#2@2", Y: "~ e2@5 ~ b1@4 ~@2 e2@5 ~ f#2@2 ~ f2@2",
Z: "~ f#2@4 ~@2 c#2@4 ~@2 d2@5 ~ a1@4 ~", AA: "~ e2@5 ~ b1@4 ~@2 c#2@5 ~ g#1@4 ~",
AB: "~ e2@5 ~ b1@4 ~@2 e2@5 ~ b2@4 ~", AC: "~ c#2@4 ~@2 g#1@4 ~@2 c#2@5 ~ g#1@5", AD: "~ f#1@5 ~ c#2@4 ~@2 f#1@2 ~@9",
AE: "~ f#1@5 ~ c#2@4 ~@2 f#2@2 ~@9", AF: "~ f#2@3 f2@3 e2@3 c#2@3 f#1@3 ~@3 e2@5",
AG: "~ c#2@5 ~ g#1@4 ~@2 c#2@5 ~ g#1@2 ~ c#2@2", AH: "~ f#2@21 ~@2", AI: "~ f#2@12 g#2@11", AJ: "~ c#2@23",
AK: "~ c#2@12 d2@11", AL: "~ c#2@12 d2@6 c#2@5", AM: "~ f#2@5 ~ c#2@6 f#2@3 ~@8",
AN: "~ a2@5 ~ e2@4 ~@2 a1@4 ~@2 e2@2 ~ b1@2", AO: "~ f#1@5 ~ c#2@4 ~@2 f#1@5 ~ c#2@5",
AP: "~ f#2@5 ~ c#2@4 ~@2 f#2@4 ~@7", AQ: "~ f#2@5 ~ c#2@4 ~@2 f#2@5 ~ a2@2 ~ c#3@2",
AR: "~ c#2@5 ~ g#1@4 ~@2 c#2@4 ~@2 g#1@4 ~", AS: "~ f#1@5 ~ c#1@4 ~@2 f#1@6 ~@5", AT: "[~ f#1@47]/2",
})).s("gm_acoustic_bass").gain(0.54)
// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
~@25 A B C D E F G H I F J K@2 ~@17 A B C D E F G H I B J K ~@11 L ~@13 A B C D E F M N A B C D I B J K ~@8 O@2 ~
>`.pickRestart({
A: "~@7 e4@6 ~@6 a4@3 ~@2, ~ a4@18 ~@5, ~@13 c#4@9 ~@2", B: "~@7 e4@6 ~@6 g#4@3 ~@2, ~ g#4@17 ~@6, ~@13 b3@9 ~@2",
C: "~@7 c#4@6 ~@6 f#4@3 ~@2, ~ f#4@17 ~@6, ~@13 a3@9 ~@2", D: "~@7 c#4@6 g#3@6 c#4@5, ~ f4@16 ~@7",
E: "~@7 e4@6 ~@6 a4@3 ~@2, ~ a4@17 ~@6, ~@13 c#4@9 ~@2", F: "~@7 e4@6 ~@6 g#4@3 ~@2, ~ g#4@16 ~@7, ~@13 b3@9 ~@2",
G: "~ [c#4,f#4]@10 ~@2 f#4@11, a3@11 a3@12 ~, ~@12 d4@11 ~", // F#5
H: "~@2 g#4@11 [g#3,c#4,f4]@11, b3@13 ~@11, ~ e4@12 ~@11", I: "~@7 e4@6 ~@6 a4@3 ~@2, ~ a4@16 ~@7, ~@13 c#4@9 ~@2",
J: "~@7 c#4@6 ~@6 f4@3 ~@2, ~ f4@16 ~@7, ~@13 g#3@9 ~@2", K: "~@7 c#4@6 a3 ~@10, ~ f#4@13 ~@10", L: "~@7 b4@6 c#5@11",
M: "~ [c#4,f#4]@12 [d4,f#4]@11", N: "~ [e4,g#4]@12 [c#4,f4]@11", O: "[~ [a3,c4,d#4]@46 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.56).pan(0.4)
// chords · piano
const piano = note(`<
A B C D E F G H I J C K L M N O P Q R S T U V W X@2 Y Z AA AB AC AD AE AB AF AG AH AI I J C K L M N O P Q R S T U V W
X@2 Y Z AA AB AC AD AE AB AF AG AH A B C AJ E F G H ~@8 P AK R AL T U V AM X@2 Y Z AN AB AC AD AE AB Y Z AA AB AF AG
AH A B C D E AO G H AP@3
>`.pickRestart({
A: "~ f#2@3 [c#3,f#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2 ~@4 [c#3,f#3,a3]@2 ~ a2 ~@2 [c#3,f#3,a3]@2, ~@13 f#2@5 ~@6", // F#m
B: "~ f#2@3 [c#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2 ~ f#2@3 [c#3,f#3,a3]@2 ~ a2 ~@2 [c#3,f#3,a3]@2, ~@4 f#3 ~@19", // F#m
C: "~ f#2@3 [c#3,f#3,a3]@2 ~ c#2@2 ~ [c#3,f#3,a3]@2 ~@4 [f#3,b3]@2 ~ g#1@3 [f#3,b3]@2, ~@10 f#2 ~@2 g#2@5 ~@6", // F#m B5
D: "~@4 [c#3,f3]@2 ~ g#1@3 [c#3,f3]@2 ~ c#2@3 [c#3,f3]@2 ~ g#2@3 [c#2,c#3,f3]@2, ~ c#2@5 ~@18", // C#
E: "~ d2@3 [f#3,a3]@2 ~ a2@3 [f#3,a3]@2 ~@4 [f#3,a3]@2 ~ a2@2 ~ [d3,f#3]@2, ~@13 d2@5 ~@4 a3 ~", // F#m D
F: "~@4 [f3,g#3]@2 ~ g#2@3 [f3,g#3]@2 ~@4 [f3,g#3]@2 ~ g#2@3 f3@2, ~ c#3@5 ~@7 c#3@5 ~@4 g#3 ~", // Fm
G: "~ b2@3 [d#3,f#3]@2 ~ f#2@3 [d#3,f#3]@2 ~@4 [f3,g#3]@2 ~@4 [f3,g#3]@2, ~@13 c#3@5 ~ g#2@5", // D#m Fm
H: "~@4 [f#3,a3]@3 c#2@3 f#3@2 ~ [f#3,a3]@2 ~@9, ~ f#2@5 ~@4 a3 ~@2 f#2@5 ~@6", // F#m
I: "~ f#2@3 [c#3,f#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2 ~@4 [c#3,f#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2, ~@13 f#2@5 ~@6", // F#m
J: "~ f#2@3 [c#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2 ~ f#2@3 [c#3,f#3,a3]@2 ~ c#2@3 [c#3,f#3,a3]@2, ~@4 f#3 ~@19", // F#m
K: "~@4 [c#3,f3]@2 ~ g#1@3 [c#3,f3]@2 ~ c#1@3 [c#3,f3]@2 ~ g#2@3 [c#3,f3]@2, ~ c#2@5 ~@18", // C#
L: "~ c#2@3 [g#3,c#4]@3 g#2@3 [c#3,g#3,c#4]@3 ~@3 [a3,d4]@3 a2@2 ~ [d3,a3,d4]@2, ~@13 d2@5 ~@6", // C#5 D5
M: "~@4 [g#3,c#4]@3 g#2@3 [c#3,g#3,c#4]@3 ~@3 [a3,d4]@3 a2@2 ~ [d3,a3,d4]@2, ~ c#3@5 ~@7 d2@5 ~@6", // C#5 D5
N: "~ c#3@3 [g#3,c#4]@2 ~ g#2@3 [g#3,c#4]@2 ~@4 [g#3,c#4]@2 ~ g#2@3 [c#3,g#3,c#4]@2, ~@13 c#3@5 ~@6", // C#5
O: "~@4 [f#3,a3]@3 c#3@3 [f#3,a3] ~@2 [f#3,a3]@3 ~@8, ~ f#2@5 ~@7 f#2@5 ~@6", // F#m
P: "~ e3@3 [g#3,b3]@3 b2@3 [g#3,b3]@2 ~@4 [g#3,b3]@2 ~ e3@2 ~ [f#3,g#3,b3]@2, ~@13 e3@5 ~@6", // G#m G#m7
Q: "~ a3@3 [a3,c#4]@2 ~ e3@3 [a3,c#4]@2 ~@4 [a3,c#4]@2 ~ g#3@2 ~ [f#3,a3,c#4]@2, ~@13 a2@5 ~@6", // A F#m
R: "~ e3@3 [g#3,b3]@2 ~ b2@3 [g#3,b3]@2 ~@4 [g#3,b3]@2 ~ e3@2 ~ [f#3,b3]@2, ~@13 e3@5 ~@6", // G#m B5
S: "~@4 c#4@2 ~ e3@3 [a3,c#4]@2 ~@4 [a3,c#4]@2 ~ e3@2 ~ [b2,a3,c#4]@2, ~ a3@5 ~@7 a2@5 ~@6", // A F#m
T: "~ c#2@3 [f3,g#3]@3 g#1@3 [f3,g#3]@2 ~@4 [f3,g#3]@2 ~ g#1@3 [c#2,f3,g#3]@2, ~@13 c#2@5 ~@6", // Fm C#
U: "~@4 [f#3,a3]@2 ~ a1@3 [f#3,a3]@2 ~ b1@3 [b2,d3]@2 ~@4 [b2,d3]@2, ~ d2@5 ~@13 f#1@5", // F#m Bm
V: "~ f#1@3 [f#3,a3]@2 ~ c#2@2 ~ [g#1,f#3,a3]@2 ~@4 [f3,g#3]@2 ~ g#1@3 [f3,g#3]@2, ~@13 c#2@5 ~@6", // F#m D Fm
W: "~@4 [f#3,a3]@2 ~ c#2@3 [f#3,a3]@2 ~ f#1@3 [f#3,a3]@2 ~@4 [f#3,a3]@2, ~ f#1@5 ~@13 c#2@5", // F#m
X: "[~@4 [f#3,a3]@2 ~ c#2@3 [f#3,a3]@2 ~ [f#1,c#3,f#3,a3]@3 ~@3 [e2,e3]@6 a2@3 [a3,c#4]@2 ~ e2@3 [a3,c#4]@2 ~@4 [a3,c#4]@2 ~ g#2@2 ~ [f#2,a3,c#4]@2, ~ f#1@5 ~@31 a2@5 ~@6]/2", // F#m E A F#m
Y: "~@4 [g#3,b3]@2 ~ b1@3 [g#3,b3]@2 ~ e2@3 [g#3,b3]@2 ~ f#2@2 ~ f2@2, ~ e2@5 ~@18", // G#m
Z: "~ f#2@3 [a3,c#4]@2 ~ c#2@3 [a3,c#4]@2 ~@4 [a3,c#4]@3 c#2@2 ~ [f#2,a3,c#4]@2, ~@13 f#2@5 ~@6", // A F#m
AA: "~@4 [f3,g#3,c#4]@2 ~ g#1@3 [f3,g#3,c#4]@2 ~ c#2@3 [f3,g#3,c#4]@2 ~ g#1@2 ~ [c#2,f3,g#3,c#4]@2, ~ c#2@5 ~@18", // C#
AB: "~ a2@3 [a3,c#4]@2 ~ e2@3 [a3,c#4]@2 ~@4 [a3,c#4]@2 ~ g#2@2 ~ [f#2,a3,c#4]@2, ~@13 a2@5 ~@6", // A F#m
AC: "~@4 [g#3,b3]@2 ~ b1@3 [g#3,b3]@2 ~@4 [g#3,b3]@2 ~ f#2@2 ~ f2@2, ~ e2@5 ~@7 e2@5 ~@6", // G#m
AD: "~ f#2@3 [a3,c#4]@2 ~ c#2@3 [a3,c#4]@2 ~@4 [f#3,a3,d4]@2 ~ a1@3 [f#3,a3,d4]@2, ~@13 d2@5 ~@6", // A D
AE: "~@4 [e3,g#3,b3]@3 b1@3 [e3,g#3,b3]@3 ~@3 [f3,g#3,c#4]@3 g#1@3 [f3,g#3,c#4]@2, ~ e2@5 ~@7 c#2@5 ~@6", // E C#
AF: "~@4 [g#3,b3]@2 ~ b1@3 [g#3,b3]@2 ~@4 [g#3,b3]@2 ~ b2@2 ~ [c#2,g#3,b3]@2, ~ e2@5 ~@7 e2@5 ~@6", // G#m C#7
AG: "~ c#2@3 [f3,g#3,c#4]@2 ~ g#1@3 [f3,g#3,c#4]@2 ~@4 [f3,g#3,c#4]@2 ~@4 [f3,g#3,c#4]@2, ~@13 c#2@5 ~ g#1@5", // C#
AH: "~@4 [f#3,a3,c#4]@2 ~ c#2@3 [f#3,a3,c#4]@2 ~ [f#1,f#3,a3,c#4]@2 ~@9, ~ f#1@5 ~@18", // F#m
AI: "~@4 [f#3,a3,c#4]@2 ~ c#2@3 [f#3,a3,c#4]@2 ~ [f#2,f#3,a3,c#4]@2 ~@9, ~ f#1@5 ~@18", // F#m
AJ: "~@4 [c#3,f3]@2 ~ g#1@3 [c#3,f3]@2 ~@4 [c#3,f3]@2 ~ g#2@3 [c#2,c#3,f3]@2, ~ c#2@5 ~@7 c#2@5 ~@6", // C#
AK: "~ a3@2 ~ [a3,c#4]@2 ~ e3@3 [a3,c#4]@2 ~@4 [a3,c#4]@2 ~ g#3@2 ~ [f#3,a3,c#4]@2, ~@13 a2@5 ~@6", // A F#m
AL: "~@4 c#4@2 ~ e3@3 [a3,c#4]@2 ~ a2@3 [a3,c#4]@2 ~ e3@2 ~ [b2,a3,c#4]@2, ~ a3@5 ~@18", // A F#m
AM: "~@4 [f#3,a3]@2 ~ c#2@3 [f#3,a3]@2 ~@4 [f#3,a3]@2 ~@4 [f#3,a3]@2, ~ f#1@5 ~@7 f#1@5 ~ c#2@5", // F#m
AN: "~@4 [f3,g#3,c#4]@2 ~ g#1@3 [f3,g#3,c#4]@2 ~@4 [f3,g#3,c#4]@2 ~ g#1@2 ~ [c#2,f3,g#3,c#4]@2, ~ c#2@5 ~@7 c#2@5 ~@6", // C#
AO: "~@4 [f3,g#3]@2 ~ g#2@3 [f3,g#3]@2 ~ c#3@3 [f3,g#3]@2 ~ g#2@3 f3@2, ~ c#3@5 ~@16 g#3 ~", // Fm
AP: "[~ [a3,c4,d#4]@46 ~@25, ~ f#2@48 ~@23]/3", // Adim
})).s("gm_piano").gain(0.45).pan(0.4)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@75 A B C D E@2 F G H I H I J K L M@2 N O P@2 N O Q R N O P@2 N O S T ~@11
>`.pickRestart({
A: "~ [f#2,c#4,f#4]@22 ~", B: "~ [f#2,c#4,f#4]@23", C: "~ f#4@6 a4@6 b4@10 ~, ~ f#2@13 ~@10", D: "~ c#3@23",
E: "~ [c#2,c#4,f4]@12 [d4,f#4]@9 ~@2, ~@13 d2@11", F: "~ c#3@10 ~@13", G: "~ f#3@5 ~ c#3@5 ~ f#2@7 ~@4",
H: "~ [e4,g#4]@23", I: "~@7 c#5@16 ~, ~ [e4,a4]@23", J: "~ [c#5,f5]@23", K: "~ [d5,f#5]@12 [d4,b4]@11",
L: "~ c#5@12 g#4@11, ~ c#4@23, ~@13 c#5 ~@10", M: "[~ [c#5,f#5]@37 ~@5 [e4,g#4]@5]/2",
N: "~ c#5@12 e5@6 a5@5, ~ a4@9 ~@14", O: "~ g#5@11 ~ e5@11",
P: "[~ f#5@6 c#5@6 a4@6 ~@3 c#4@3 g#4@12 f4@10 ~, ~ f#3@12 ~@6 f#4@6 ~@23]/2", Q: "~ [a4,c#5]@11 ~ [a4,d5]@11",
R: "~ [b4,e5]@12 ~@11", S: "~ [f4,g#4,f5]@23", T: "~ [f#4,a4,f#5]@12 ~@11",
})).s("gm_string_ensemble_2").gain(0.44)
// chords · tremolo strings
const tremolo_strings = note("<~@75 A@3 B C D E F ~ G ~ G ~@12 H ~@19>".pickRestart({
A: "[~ f#4@48 f#4@10 e4@2 g#2@6 b2@5, ~@61 d#4@11]/3",
B: "~ f4@6 [b3,d4,b4]@6 ~@6 f5@5, ~ g#4@22 ~, ~@13 [g#3,c#4,c#5]@11", C: "~ f5@6 [b3,g#5]@6 [a3,f#5]@11",
D: "~ f5@6 [b3,g#5]@6 ~@6 a4@5, ~@13 [a3,f#5]@10 ~", E: "~@7 d5@6 [d3,c#5]@5 ~ [c#3,f5]@5, ~ [c#3,b4]@10 ~@13",
F: "~ f#3@3 g#4 ~@2 [c#3,c#4]@3 a3@2 ~ f#5@6 ~@5, ~ f#5@5 ~ a4 ~@2 c#5 ~@2 f#3@4 ~@7", G: "~ a4@3 b4@3 ~@17",
// … 62 more lines
More by Ruggeri
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.