0:00/0:00
// Mediterraneo — Mango
// 109 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(109/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 · clavinet · "Piano"
const clavinet = note(`<
~@32 A B ~@5 C D E F G H I J K ~@5 L ~ M ~@5 A N O ~@9 A B ~@5 C D E F G H I J K ~@5 P ~ Q ~ R ~ Q ~ S ~@6
>`.pickRestart({
A: "~@7 b2", B: "e3 d3 c#3 e2", C: "d2@11 ~ d2@3 ~", D: "a1@11 ~ a1@4", E: "b1@11 ~ b1@4", F: "c#2 g#2",
G: "c#2@7 ~ c#2@4 b1@4", H: "a1", I: "g#1@7 ~ f#1@8", J: "e1@11 ~@3 b2@2", K: "e3@4 d3@4 c#3@4 e2@3 ~",
L: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]@7 ~@9", M: "~ a3 g#3 a3 c#4 d4 c#4 ~, [f#1,f#2] ~", N: "e2 f#2 g#2 e2",
O: "b1@5 ~@3", P: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]", Q: "[f#1,f#2]@11 ~@5",
R: "~@2 a3@2 g#3@2 a3@2 c#4@2 d4@2 c#4@2 b3 ~, [f#1,f#2]@3 ~@5", S: "[f#1,f#2]@3 ~",
})).s("gm_clavinet").gain(0.64).pan(0.3)
// bass · acoustic bass · "Ac Bass"
const bass = note(`<
~@15 A B C D E F G H I J K L M N O P Q F R S T U V W X Y Z AA AB P Q AC R V AD AE V AF N AG N AH B AI AJ AK AL AM AN
AO AP AQ AR AS N AT AU AV AL R V AD AW V W X Y AX AY AB P AZ AL R V BA BB V W BC BD BC AH N BE BF BG@2 ~@6
>`.pickRestart({
A: "~@5 f#2!2 ~ g#2@4 e2@4", B: "a1@13 ~ a1@2", C: "g#1@8 c#2@7 ~", D: "f#1@3 f#2 e2@4", E: "d2@8 a1@5 ~ a1@2",
F: "e1@12 ~ b1 b1@2", G: "e2@5 ~ e2@4 b1@2 e2@4", H: "b1@15 ~", I: "g#2@8 c#2@6 g#2 ~",
J: "f#2@5 ~ f#2@2 e2@5 ~ e2@2", K: "d2@8 c#2@5 ~ c#2@2", L: "b1@12 ~@2 b1 ~", M: "g#2@8 c#2@4 c#1@2 g#1 ~",
N: "f#1@5 ~ f#1@2 g#1@8", O: "f#1@4 ~ f#1 f#1@2 g#1@3 ~ g#1@3 ~", P: "a1@6 ~ a1 a1@5 ~ a1@2", Q: "g#1 f#1",
R: "e2 d2 c#2 e1", S: "b1@7 ~ b1@5 ~ b1@2", T: "c#2@7 ~ c#1@5 ~ a1 g#1", U: "f#1@4 ~ f#1 f#2@2 e2@4 e1@4",
V: "b1@13 ~ b1@2", W: "c#2@2 c#1 c#2", X: "d2@7 ~ a2@2 d2 ~ d2@4", Y: "a1@9 ~ a1 ~ a1@4", Z: "b1@9 ~ f#2 ~ b2@4",
AA: "c#2 g#1", AB: "c#2@7 ~ c#2@4 b1@4", AC: "e1@12 ~ e1 b1@2", AD: "c#2@8 c#1@6 a1 g#1",
AE: "f#1@4 ~ f#1 f#2 ~ e2@3 ~ e1@4", AF: "c#2@7 ~ c#1@4 c#2@3 ~", AG: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@4",
AH: "f#1@4 ~ f#1 f#1@2 g#1@8", AI: "g#1 c#1", AJ: "f#1@5 ~ f#1 ~ e1@8", AK: "d1@8 a1@5 ~ a1 ~", AL: "e1@13 e1 b1@2",
AM: "e2 f#2 g#2 e2", AN: "b1@12 ~ b1 b1@2", AO: "g#1@8 c#2@5 ~ c#2@2", AP: "f#1@5 ~ f#2 ~ e2@5 ~ e2 ~",
AQ: "d2@6 e2 d2 c#2@6 a1 ~", AR: "b1@13 ~ b1 ~", AS: "g#1@2 c#2 c#1", AT: "f#1@4 ~ f#1 f#1@2 g#1@7 ~",
AU: "a1@6 ~ a1 a1@8", AV: "g#1@6 ~ g#1 f#1@8", AW: "f#1@4 ~ f#1 f#2 ~ e2@4 e1@4", AX: "b1@10 f#1 ~ b1@4",
AY: "c#2@5 ~ c#2@2 g#1@6 g#1@2", AZ: "g#1@6 ~ g#1 f#1@5 ~ f#1@2", BA: "c#2@4 c#1@3 g#1",
BB: "f#1@4 ~ f#1 f#2@2 e2@3 ~ e1@4", BC: "f#1@5 ~ f#1@2 g#1@7 ~", BD: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@3 ~",
BE: "f#1@4 ~ f#1 f#1@2 g#1@3 ~ c#1@4", BF: "f#1@4 ~ f#1 f#1@2 f#1@4 ~ f#1 f#1@2", BG: "f#1/2",
})).s("gm_acoustic_bass").gain(0.72)
// chords · acoustic guitar nylon · "ClassGtr"
const acoustic_guitar_nylon = note(`<
A B C D E F G H I J K L M N O P C D E F G H I J K L M N O P Q R S T M U K M U V Q M W X Q R S T M U K M U Y Z Y AA C
AB E F G H I J K L M N O P Q R S T M U K M U V Q M W X Q R S T M U K M U AC Z Y AA AD AE AF@8 ~
>`.pickRestart({
A: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, a2@3 ~ a2@3 ~", // A5
B: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,a3]@2, a2@6 ~@2 a2@5 ~@3", // A5
C: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, a2@3 ~ a2@4", // A5
D: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [g#2,f3,b3]@2, g#2@7 ~ g#2@4 ~@4", // Fdim
E: "~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2 ~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2, f#2 e2", // A
F: "~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, d2@7 ~ a2@8", // A A5
G: "~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2, e2@7 ~ e2@7 ~", // E5
H: "~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3] ~ [e3,b3] ~ [e2,e3,b3]@2, e2@7 ~ e2@5 ~@3", // E5
I: "~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2 ~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2, b1@4 ~@2 b1 ~ b1@7 ~", // Bm
J: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [c#2,f3,b3]@2, g#2@8 c#2@5 ~@3", // Fdim C#7
K: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4]@2 ~@2 [g#3,a3,c#4] ~ [g#3,a3,c#4] ~ [g#3,a3,c#4]@2, f#2 e2", // F#m Amaj7
L: "~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2 ~@2 [c#3,f#3,a3] ~ [c#3,f#3,a3] ~ [c#2,c#3,f#3,a3]@2, d2@8 c#2@5 ~@3", // D F#m
M: "~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2 ~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2, b1@7 ~ b1@8", // Bm
N: "~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [f3,g#3,b3]@2 ~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [c#2,f3,g#3,b3]@2, g#2@8 c#2@5 ~@3", // Fdim C#7
O: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4]@2 ~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [f3,g#3,b3]@2, f#2 g#2", // F#m Fdim
P: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e2,e3,g#3,b3]@4, f#2@2 g#2 ~", // F#m E
Q: "~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2 ~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2, a2@7 ~ a2@8", // A
R: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2, g#2 f#2", // E A
S: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2, e2@7 ~ e2@7 ~", // E
T: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2, e2 d2 c#2 e1", // E
U: "~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2 ~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2, c#2@7 ~ c#2@8", // C#
V: "~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2 ~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2, d2@7 ~ d2@8", // D
W: "~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2 ~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2, c#2@7 ~ c#2@6 ~@2", // C#
X: "~@2 [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4]@2 ~@2 [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4]@2, c#2@6 ~@2 c#2@7 ~", // C#7
Y: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~, f#2@5 ~@3 g#2@8", // F#m C#7
Z: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [c#2,f3,b3,c#4]@3 ~, f#2@5 ~@3 g#2@4 ~@4", // F#m C#7
AA: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@3 ~, f#2@5 ~@3 g#2@8", // F#m C#7
AB: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [c#2,f3,b3]@2, g#2@7 ~ c#2@4 ~@4", // Fdim C#7
AC: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@2, f#2@5 ~@3 g#2@8", // F#m C#7
AD: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@2, f#2@2 ~@2 g#2@3 ~", // F#m C#7
AE: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~ [c#2,f3,b3,c#4]@4, f#2 ~ g#2 ~", // F#m C#7
AF: "[~@2 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4]@2 ~@2 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4]@114, f#2@4 ~@2 f#2 ~ f#2@6 ~@114]/8", // F#sus4
})).s("gm_acoustic_guitar_nylon").gain(0.39)
// chords · synth bass 2 · "PercSynt"
const synth_bass_2 = note(`<
~@30 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA ~@14 A B C D E F G H I J K L M N O P Q R S T U V AB AC AD
AE AF AG AD AH ~@8
>`.pickRestart({
A: "~@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
B: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [a3,c#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // G#m E A
C: "~@2 [g#3,b3,e4] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2", // E G#m E G#m E
D: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2", // G#m E G#m E
E: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@2 ~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@2", // Bm
F: "~@2 g#3 ~ g#3 ~ [g#3,c#4,f4]@2 ~@2 g#3 ~ g#3 ~ [g#3,c#4,f4]@2", // C#
G: "~@2 [a3,c#4] ~ f#4 ~ [a3,c#4,f#4]@2 ~@2 [c#4,e4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@2", // A F#m C#m
H: "~@2 f#4 ~ [b3,d4,f#4] ~ [b3,d4,f#4]@3 ~ [d4,f#4] ~@3 [b3,d4,f#4]@2", // Bm D Bm
I: "~@4 g#3 ~ [g#3,c#4,f4]@3 ~@3 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2", // C#
J: "~@2 [a3,d4,f#4] ~ [d4,f#4] ~ [a3,d4,f#4]@3 ~ [d4,f#4] ~@3 [a3,d4,f#4]@2", // D
K: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ c#4 ~@3 [a3,c#4,e4]@2", // A
L: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@3 ~ [b3,f#4] ~@3 [b3,d4,f#4]@2", // Bm B5 Bm
M: "~@4 [g#3,c#4,f4] ~ [g#3,c#4,f4]@3 ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
N: "~@2 [g#3,f4] ~ g#3 ~ [g#3,c#4,f4]@3 ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
O: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2", // A
P: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2 ~@2 [a3,c#4] ~@3 [a3,c#4,e4]@2", // G#m E A
Q: "~@4 g#3 ~ [g#3,b3,e4]@2 ~@2 [g#3,b3] ~ g#3 ~ [g#3,b3,e4]@2", // E G#m E
R: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2 ~@2 g#3 ~@3 [g#3,b3,e4]@2", // G#m E
S: "~@2 f#4 ~ [d4,f#4] ~ [b3,d4,f#4]@2 ~@2 [b3,d4,f#4] ~ [d4,f#4] ~ [b3,d4,f#4]@2", // D Bm D Bm
T: "~@2 [c#4,f4] ~ g#3 ~ [g#3,c#4,f4]@2 ~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
U: "~@2 f#4 ~@3 [a3,c#4,f#4]@2 ~@4 [c#4,e4] ~ [c#4,e4,g#4]@2", // F#m C#m
V: "~@2 f#4 ~ f#4 ~ [b3,d4,f#4]@2 ~@2 f#4 ~@3 [b3,d4,f#4]@2", // Bm
W: "~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2 ~@2 g#3 ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C# C#5 C#
X: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4]@2 ~@2 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@2", // F#5 C#7
Y: "~@2 f#3 ~ [f#3,c#4] ~ c#4@2 [g#3,b3] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@3 ~, ~@6 f#3 ~@9", // F#5 G#m C#7
Z: "f#3 ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4]@2 ~@2 b3 ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@2", // F#5 C#7
AA: "~@4 [f#3,c#4] ~ f#3 ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@3 ~", // F#5 C#7
AB: "~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2 ~ g#3 ~@2 [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C# C#5 C#
AC: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 G#m C#7
AD: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~@3", // F#5 C#7
AE: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 C#7
AF: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,c#4] ~@3, ~@6 b3 ~", // F#5 C#7 C#5
AG: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 C#7
AH: "b3 ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~@3 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~", // F#sus4
})).s("gm_synth_bass_2").gain(0.18).pan(0.4)
// chords · synth bass 2 · "PercSynt" · soft notes
const synth_bass_2_soft = note(`<
~@31 A B C ~ D E F G H I J K E L M N O P Q R S T ~ U T V ~@15 A B C ~ D E F G H I J K E L M N O P Q R S W ~@15
>`.pickRestart({
A: "~@10 e4 ~@5", B: "~@12 e4 ~@3", C: "~@2 e4 ~ e4 ~@11", D: "~@2 c#4 ~ [c#4,f4] ~@5 c#4 ~ c#4 ~@3",
E: "~@4 c#4 ~@11", F: "~@12 f#4 ~@3", G: "~@2 [g#3,c#4,f4] ~@7 [c#4,f4] ~@5", H: "~@10 a3 ~@5",
I: "~@4 [a3,c#4] ~@11", J: "~@10 d4 ~@5", K: "~@2 [g#3,c#4] ~@7 f4 ~@5", L: "~@4 c#4 ~@7 c#4 ~@3",
M: "~@2 e4 ~@9 c#4 ~@3", N: "~@2 [g#3,b3] ~ b3 ~@7 b3 ~@3", O: "~@2 e4 ~@13", P: "~@2 d4 ~ b3 ~@11",
Q: "~@2 g#3 ~ c#4 ~@11", R: "~@4 [c#4,f#4] ~@5 c#4 ~ g#4 ~@3", S: "~@2 d4 ~@9 f#4 ~@3", T: "~@10 c#4 ~@5",
U: "~@2 c#4 ~@5 c#4 ~@7", V: "~@2 f#3 ~@3 c#4 ~@9", W: "~@9 c#4 ~@6",
})).s("gm_synth_bass_2").gain(0.13).pan(0.4)
// other · string ensemble 1 · "StrinLow"
const string_ensemble_1 = note("<~@43 A B C D@2 ~@36 E B C F@2 ~@20>".pickRestart({
A: "~@3 c#3@11 b2@2", B: "a2", C: "g#2 f#2", D: "[e2@15 ~]/2", E: "~ c#3@13 b2@2", F: "e2/2",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.2)
// chords · string ensemble 1 · "StrinMed"
const string_ensemble_1_2 = note(`<
~@17 A B@3 C D@2 E@6 F@2 G@3 H@2 I J K@2 L M@2 N O P Q R S@3 T U ~@9 V W X@2 Y@2 Z@2 AA@3 AB AC@3 AD@2 AE@5 AF O P Q R
S@3 T AG ~ AG ~@12
>`.pickRestart({
A: "[g#3,b3,f4]", B: "[f#3@2 g#3@2 f#4@2 ~@2 [g#3,b3]@3 f#3, a3@2 ~, ~@6 e4@5 ~]/3", C: "g#3 a3 b3 c#4",
D: "[d4@3 c#4 ~ c#4 d4@2, b3, [d3,f#3] [c#3,f3,g#3]]/2", // D C#
E: "[f#3@8 g#3@8 f#4@16 d4@12 c#4@4 ~@4 c#4@4 d4@5 ~@3 [f#3,a3]@8 [f3,g#3,b3]@8 [f#3,a3]@8 [e3,g#3,b3]@6 ~@2, [a3,c#4]@32 b3@33 ~@31, ~@32 [d3,f#3]@16 [c#3,f3,g#3]@16 c#4@25 ~@7]/6", // F#m Fdim F#m E A D C#
F: "[[a3,c#4]@2 [g#3,b3] [a3,c#4], e4]/2", G: "[[e3,g#3]@3 [f#3,a3] [e3,g#3]@4 [d3,f#3]@4, b3]/3",
H: "[[f3,g#3]@4 f#3@2 g#3 c#4, c#4@7 ~, ~@16 a3@13 ~@3]/2", I: "[d3,f#3,b3]", J: "[f3,g#3,c#4]",
K: "[[f#3,d4] [e3,c#4], a3]/2", L: "[f#3,b3,d4]", M: "[[g#3,c#4,f4]@14 a3 [b3,d4], ~@7 c#4]/2",
N: "[c#4,e4]!3 [c#4,f#4]", O: "[c#4,g#4] [d4,a4]", P: "[e4,g#4]@3 [f#4,a4]", Q: "[e4,g#4,b4]@15 ~", R: "[b3,d4,f#4]",
S: "[[g#3,f4]@8 a3@7 ~ [b3,d4]@8, c#4@2 ~, ~ f#4@2]/3", T: "[g#3,c#4,f4]@15 ~",
U: "~@2 a2@2 g#2@2 a2@2 c#3@2 d3@2 c#3 ~@3", V: "~@3 c#4", W: "~ c#4 d4 ~, [f3,g#3]",
X: "[f#3@2 g#3@2 f#4@2 [g#3,b3] [a3,c#4], [a3,c#4]@3 ~]/2", // G#m A
Y: "[~@3 c#4 ~ c#4 d4 ~, b3, d4@3 ~ [f3,g#3]@4, ~@2 f#3@15 ~@15]/2", // Fm
Z: "[[f#3,a3] [g#3,b3] [f#3,a3] [e3,g#3,b3], c#4@3 ~]/2", // F#m G#m F#m E
AA: "[[a3,c#4]@8 [g#3,b3]@4 [a3,c#4]@4 [g#3,b3]@7 b3, e4@23 ~]/3", AB: "e4@2 d4@2 c#4 d4 e4@2",
AC: "[[f#3,d4]@2 [f3,g#3]@2 f#3 g#3, b3@2 a3, ~ c#4@2]/3", AD: "[f#3 f#4 [g#3,c#4,f4]@2, b3, d4 ~]/2",
AE: "[[d4,f#4]@16 [c#4,e4]@16 [f#3,d4]@16 [f3,g#3,c#4]@27 ~ [a3,c#4]@2 [b3,d4]@2, a3@32 b3@43 ~@5]/5", // D C#m D C# A Bm
AF: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@4 [c#4,f#4]@4", AG: "~ a2 g#2 a2 c#3 d3 c#3 ~",
})).s("gm_string_ensemble_1").gain(0.31)
// chords · string ensemble 1 · "StrinUpp"
const string_ensemble_1_3 = note(`<
~@8 A B C@4 D@2 E F G@3 H I@2 J@2 K@2 L@2 ~ M N O P Q@2 R S T@2 U@3 V W X Y P Z@2 AA AB AC AD ~ AE ~@6 AF AG@3 AH@2
AI@2 AJ AK AL AM AN AO@2 R AP T@2 AQ@3 V W X Y AR AS AT AU AV ~ AW AX AD ~ AY@7 ~@3
>`.pickRestart({
A: "~@3 c#4", B: "d4 c#4 d4 e4, [f3,g#3]",
C: "[f#3@2 [e3,g#3]@2 d3@2 ~@2 d4@3 c#4 d4 c#4 d4 e4, [a3,c#4]@32 b3@31 ~, ~ f#3@2 [f3,g#3,f4], ~@3 f#4@3 ~@2]/4", // E A Fm
D: "[[f#3,a3]@8 [f3,g#3,b3]@8 [f#3,a3]@8 [e3,g#3,b3]@5 ~@3, c#4@3 ~]/2", E: "[a4,c#5]", F: "[g#4,b4]",
G: "[f#4@2 g#4@2 f#4@2 c#4@2 g#4@3 f#4, a4@6 e4@5 ~]/3", H: "e4", I: "[[d4,f#4] [f4,g#4], b4]/2",
J: "[f#4 g#4 f#4 f#5, [a4,c#5]]/2", K: "[d5@3 c#5 ~ c#5 d5 ~, b4, f#4 [f4,g#4]]/2",
L: "[[f#4,a4]@4 [g#4,b4]@4 [f#4,a4]@4 [e4,g#4,b4]@3 ~, c#5@3 ~]/2", M: "[e4,g#4] [f#4,a4]", N: "[e4,g#4]@3 [f#4,a4]",
O: "[g#4,b4]@7 [a4,c#5]", P: "[b4,d5]", Q: "[f4@6 ~ g#4 a4@4 g#4@4, c#5, ~@3 f#4 ~@4]/2", R: "[b4,d5,f#5]",
S: "g#4 g#5, [c#5,f5]", T: "[[d5,f#5]@4 c#5@3 c#6, a5, ~ e5]/2",
U: "[d6@8 d5@8 [g#4,c#5,f5]@27 ~ [a4,c#5]@2 [b4,d5]@2, [f#5,b5]@17 ~@31, ~@8 b4@35 ~@5]/3", // C# A Bm B5
V: "[c#5,e5]@3 ~ [c#5,e5]@4 [c#5,e5]@4 [c#5,f#5]@4", W: "[c#5,g#5] [d5,a5]", X: "[e5,g#5]@3 [f#5,a5]",
Y: "[g#5,b5]@13 ~@3", Z: "[f4@12 f#4@2 g#4@2 a4@3 ~ g#5@2 a5@2 g#5@4 c#6@4, c#5@19 ~@13]/2", AA: "d6 [b4,d5,f#5]@3",
AB: "[g#4,c#5,f5]", AC: "~@2 a3@2 g#3@2 a3@2 c#4@2 d4@2 c#4 ~@3", AD: "~@8 [b4,c#5] ~@3 [b3,c#4] ~@3",
AE: "~@8 [b5,c#6] ~@3 [b4,c#5] ~@3", AF: "[d4,f#4]",
AG: "[[c#4,f4]@2 b4@2 ~@4 f#4@2 [b4,g#5] [c#5,a5], ~@8 g#4@25 ~@15, ~@2 a4@3 ~]/3", // C# E F#m
AH: "[d5@3 c#5 ~ c#5 d5@2, b4, f#4 [f4,g#4]]/2", // Fm
AI: "[[f#4,a4]@4 [g#4,b4]@4 ~@2 c#5 d5 [g#4,b4,e5]@4, c#5@5 ~@3, ~@2 [f#4,a4] ~]/2", AJ: "[a4,c#5], e5 ~",
AK: "[b4,g#5] [c#5,a5]", AL: "g#5@3 a5, b4", AM: "[e5,g#5,b5]", AN: "[f#4,d5]",
AO: "[f4@6 f#4 g#4 a4@3 a5 g#5@2 g#4@2, c#5@22 g#5 ~@9]/2", AP: "f5@11 f#5@2 g#5@3, [g#4,c#5]",
AQ: "[[b5,d6]@8 d5@8 [g#4,c#5,f5]@27 ~ [a4,c#5]@2 [b4,d5]@2, f#5 ~@2, ~@8 b4@35 ~@5]/3", AR: "d6 d5, f#5",
AS: "[c#5,f5]@6 [f#4,f#5] [g#4,g#5]", AT: "[a4,a5]@2 [c#4,c#5]@2 [g#4,g#5]@3 [c#5,c#6]", AU: "[d5,f#5]",
AV: "[c#5,f5]", AW: "~@6 c#5 ~ [b5,c#6] ~ g#4 ~ [b4,c#5] ~ c#4 ~", AX: "~ a3 g#3 a3 c#4 d4 c#4 ~",
AY: "[~@8 [b5,c#6] ~ g#4 ~ [f#4,b4,c#5]@89 ~@11]/7", // Bsus2 F#sus4
})).s("gm_string_ensemble_1").gain(0.29).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
~@16 A@2 B C@5 A@3 B A@3 B C A B C D A B C A B A@3 B C A B A@2 B C B C B@2 A@2 B C@5 A@3 B A@3 B C A B C D A B C A B
A@3 B C A B A@2 B C B C B@3 A B ~@8
>`.pickRestart({
A: "x ~@3 x ~@2 x", B: "x!2", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~@2 x",
})).gain(0.56)
// … 21 more lines
More by Mango
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.