0:00/0:00
// In te — Nek
// 76 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76/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 · electric bass finger
const bass = note(`<
A B C D E@4 F@2 G@2 H I J K L M J N O P Q R S P T U V W@2 X Y Z AA AB AC AD AE AF AC AG AH AI AJ AK AL AI AM AG AN AO
AP AQ AR AS AT AQ AU AV AF AC AG AW AG AX AI AJ AK AL AI AM AG AN AY AZ AG BA AY BB AG BC AY AZ AG BA AY BB AG AN
>`.pickRestart({
A: "~@8 f#1@5 ~ f#1 ~", B: "f1@7 ~ d#1@5 ~ d#1 ~", C: "c#1@6 d#1 c#1 f#1@5 ~ f#1@2", D: "f1@5 ~ f1 ~ d#1@7 ~",
E: "[c#1@5 ~ d#1 c#1 f#1@11 ~ c#1@4 b0@11 ~ c#1@3 ~ f#1@11 ~ c#1@4 d#1@7 ~]/4",
F: "[c#1@5 ~ c#1 ~ f#1@12 c#1@3 ~ b0@8]/2", G: "[~@2 b0@2 c#1@3 ~ f#1@16 d#1@7 ~]/2",
H: "d#1!2 ~ c#1@2 ~ c#1 ~ f#1@5 ~ f#1 ~", I: "f#1@3 ~ f1@3 ~ d#2@5 ~ d#2 ~", J: "d#2@4 c#2@4 b1@5 ~ b1@2",
K: "a#1@5 ~ a#1 ~ g#1@5 ~ g#1 ~", L: "c#2@5 ~ c#1@2 f#1@5 ~ f#1@2", M: "f#1@4 f1@4 d#2@5 ~ d#2 ~",
N: "a#1@5 ~ a#1@2 g#1@5 ~ g#1@2", O: "c#2@2 ~ d#2@3 f2@2 f#2@6 f#2 ~", P: "f2@5 ~ f2@2 d#2@6 d#2@2",
Q: "c#2@5 ~ c#2 ~ b1@5 ~ b1@2", R: "a#1@6 a#1@2 g#1@5 ~ g#1 ~", S: "c#2@3 c#2!2 d#2 f2@2 f#2@6 f#2 ~",
T: "c#2@6 b1 c#2 b1@5 ~ b1@2", U: "a#1@5 ~ a#1@2 g#1@5 ~ g#1 ~", V: "c#2@3 ~ c#2@3 ~ f#2@5 ~ f#2@2",
W: "[f2@5 ~ f2 ~ d#2@6 c#2@13 ~ d#1@4]/2", X: "f#1@11 ~ c#1@4", Y: "b0@11 ~ c#1@3 ~", Z: "f#1@11 ~ c#1@3 ~",
AA: "d#1@7 ~ c#1@5 ~ c#1 ~", AB: "f#1@5 ~ f#1 ~ f#1@3 ~ f1@3 ~", AC: "d#2@5 ~ d#2 ~ d#2@4 c#2@4",
AD: "b1@5 ~ b1@2 a#1@5 ~ a#1 ~", AE: "g#1@5 ~ g#1 ~ c#2@5 ~ c#1@2", AF: "f#1@5 ~ f#1@2 f#1@4 f1@4",
AG: "b1@5 ~ b1@2 a#1@5 ~ a#1@2", AH: "g#1@5 ~ g#1@2 c#2@2 ~ d#2@3 f2@2", AI: "f#2@6 f#2 ~ f2@5 ~ f2@2",
AJ: "d#2@6 d#2@2 c#2@5 ~ c#2 ~", AK: "b1@5 ~ b1@2 a#1@6 a#1@2", AL: "g#1@5 ~ g#1 ~ c#2@3 c#2!2 d#2 f2@2",
AM: "d#2@6 d#2@2 c#2@6 b1 c#2", AN: "g#1@5 ~ g#1 ~ c#2@3 ~ c#2@3 ~", AO: "f#2@13 ~@3", AP: "b1@5 ~ b1 ~ b1@8",
AQ: "b1@5 ~ b1 ~ b1@6 c#2@2", AR: "d#2@5 ~ d#2@2 c#2@5 ~ c#2@2", AS: "c2@5 ~ c2@2 g#1@4 ~ a#1@3",
AT: "b1@5 ~ b1 ~ b1@5 ~ b1 ~", AU: "d#2@5 ~ d#2 ~ d#2@5 ~ d#2@2", AV: "c#2@5 ~ c#2 ~ c#2@7 ~",
AW: "g#1@5 ~ g#1@2 c#2@2 f#2@2 f2@2 c#2@2", AX: "g#1@5 ~ g#1@2 c#2@7 ~", AY: "f#2@5 ~ f#2@2 f2@5 ~ f2@2",
AZ: "d#2@5 ~ d#2@2 c#2@5 ~ c#2 ~", BA: "g#1@5 ~ g#1@2 c#2@2 ~ c#2 d#2@2 f2@2", BB: "d#2@5 ~ d#2 ~ c#2@5 ~ c#2 ~",
BC: "g#1@5 ~ g#1 ~ c#2@3 c#2 c#2@3 ~",
})).s("gm_electric_bass_finger").gain(0.52)
// other · rock organ
const rock_organ = note(`<
A B C B D ~@9 E F@2 ~@11 G@2 H ~@6 I J ~@20 K L M N O ~@10 P M N Q L M R ~ L S T Q L S ~@2
>`.pickRestart({
A: "~@5 d#2 [f2,f#2,g#2,a#2,b2,c#3] [d#3,f3,f#3,g#3,a#3,b3,c#4] [d#4,f4,f#4,g#4,a#4,c#5] ~@7, ~@2 [c#4,f4,g#4] ~ f#5@4, ~@5 c#2@2 ~@9", // C#7 D#m7 C#
B: "[c#5,f5,g#5] [a#4,d#5,f#5]", C: "[g#4,c#5,f5] [a#4,c#5,f#5]", D: "[g#4,c#5,f5] ~",
E: "~@6 [c#4,d#4] [f4,f#4,g#4,a#4,b4,c#5,d#5,f5] [f#5,g#5,a#5] ~@7, ~ b5", F: "[a#5@8 g#5@15 ~@9]/2",
G: "[~@5 c#4 [d#4,f4,f#4,g#4] [a#4,b4,c#5,d#5,f5,f#5,g#5,a#5] c#6@10 b5@2 a#5@2 g#5@2 f#5@8, ~@8 b5 ~@9 a#5 ~@13]/2", // Fm7 A#m7
H: "f5@15 ~", I: "b5 a#5", J: "g#5@15 ~", K: "~@13 [a#4,b4] c#5@2", L: "c#6 a#5 b5 g#5 a#5@3 f#5, ~@8 g#5 ~@7",
M: "c#6@2 a#5@2 b5@2 g#5@2 f#5@7 [f#5,g#5], ~@6 f#5 ~@9", N: "[a#5,c#6] ~@9 c#6@2 b5@2 a#5@2, d#6@10 b5 ~@5",
O: "g#5@3 ~ a#5@2 g#5@9 ~, ~@4 g#5 ~@11", P: "~@2 a#5@2 b5@2 g#5 ~ a#5@6 f#5@2, ~@8 g#5 ~@7",
Q: "g#5@3 ~ a#5@2 g#5@8 c#5@2, ~@4 g#5 ~@11", R: "[a#5,c#6] ~@15", S: "c#6@2 a#5@2 b5@2 g#5@2 f#5@7 ~, ~@6 f#5 ~@9",
T: "d#6@5 c#6 b5 a#5",
})).s("gm_rock_organ").gain(0.48).pan(0.6)
// chords · electric guitar clean
const electric_guitar_clean = note("<A B C D@2 ~@7 E@3 ~ E@3 ~@16 F@2 ~@2 G H ~@49>".pickRestart({
A: "~@4 c#4!2 f#4 c#4, ~ [f#3,a#3], ~@2 f#4 ~", // F#
B: "f4@2 c#4@2 f4@2 c#4@2 [d#4,f#4]@2 c#4@2 f#4@2 c#4 ~, [f3,g#3]@7 ~ [f#3,a#3]@8, c#4 ~@15", // D#m Fm F#
C: "f4 c#4 ~ c#4 f#4 c#4 f#4 c#4, [f3,g#3]@8 [f#3,a#3]@7 ~, c#4 ~@3 f4@4 c#4 ~@7", // Fm F#
D: "[f4@2 c#4@2 f4@2 c#4@2 ~@2 c#4@2 f#4@3 ~ [f3,g#3,c#4,f4]@8 ~@8, [f3,g#3]@7 ~ [f#3,a#3]@8 ~@16, c#4 ~@7 [d#4,f#4]@4 ~@3 [g#2,c#3]@8 ~@9]/2", // C# Fm F# D#m C#5
E: "[~@8 f#2 ~@2 f#2 ~@2 f#2@7 ~@3 f#2 ~@2 f#2 ~@2 f#2@7 ~@11]/3", F: "f#2 ~@2 f#2 ~@2 f#2@7 ~@3",
G: "f#2 ~@2 f#2 g#2 f#2 g#2@2 f#2@3 ~@5", H: "f#2 ~@2 f#2 ~ f#2 c#3 a#2 f#2@4 ~@4",
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.1)
// chords · epiano2
const epiano2 = note(`<
~@2 A B C@4 D@8 E@5 F G H I J K L M N O P Q R S T U V W T U V W X Y Z AA AB AC Z AD AE AF AG S AH AF AG AI AJ R U AK
AD AK AD AB AL Z AM AN AO AP AQ AR AS AT AU AV AS AW AX AY AS AZ BA X BB BC AA
>`.pickRestart({
A: "~@4 a#4 c#4 a#4 c#4, ~@8 f#4@7 ~, ~@8 c#4 ~@7",
B: "f4@2 c#4@2 f4@2 c#4 ~ [d#4,a#4]@2 d#4@2 a#4@2 d#4 ~, g#4@7 ~ f#4@7 ~, c#4 ~@15", // D#5
C: "[[c#4,f4]@2 ~@2 f4@2 g#4@2 [c#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@4 [b3,d#4,f#4]@11 ~ [c#4,f4,g#4]@3 ~ [c#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@7 ~, g#4@5 ~@59, ~@2 c#4@5 ~@57]/4", // C# F# C# B C# F# C# D#m
D: "[[c#4,f4,g#4]@7 ~ [c#4,f#4,a#4]@12 [c#4,f4,g#4]@3 ~ [b3,d#4,f#4]@11 ~ [c#4,f4,g#4]@3 ~ [c#4,f#4,a#4]@12 [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~ [c#4,f#4,a#4]@12 [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~ [b3,d#4,f#4]@12 [a#3,c#4,f#4]@3 ~ [b3,d#4,g#4]@8]/8", // C# F# C# B C# F# C# D#m …
E: "[~@4 [c#4,f4,g#4]@3 ~ [c#4,f#4,a#4]@12 [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~ [b3,d#4,f#4]@12 [a#3,c#4,f#4]@3 ~ [b3,d#4,g#4]@11 ~ [c#4,f4,g#4]@3 ~ [c#4,f#4,a#4]@4 [c#4,f#4,a#4]@3 ~]/5", // C# F# C# D#m C# B F# G#m …
F: "[c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@3 ~", // C# D#m
G: "[c#4,f4,g#4]@4 [c#4,f4,g#4]@4 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~", // C# B
H: "[a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~", // F# G#m
I: "[c#4,f4,g#4]@4 [c#4,f4,g#4]@4 [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~", // C# F#
J: "[c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@4", // C# D#m
K: "[c#4,f4,g#4]@4 [c#4,f4,g#4]@3 ~ [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~", // C# B
L: "[a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@4", // F# G#m
M: "[c#4,f4,g#4]@4 [c#4,f4,g#4]@3 ~ [c#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~", // C# F#
N: "[c#4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [f#4,a#4]@4 [d#4,f#4,a#4]@4", O: "[f4,g#4]@3 ~ [f4,g#4]@11 ~, ~@4 c#4@9 ~@3",
P: "[c#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@4", Q: "[b3,d#4,f#4]@11 ~ [c#4,f4,g#4]@3 ~",
R: "[c#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~", S: "[d#4,f#4,a#4]@7 ~ [c#4,f4,g#4]@7 ~",
T: "[c#4,f#4,a#4]@12 [c#4,f4,g#4]@3 ~", U: "[d#4,f#4,a#4]@11 ~ [c#4,f4,g#4]@3 ~",
V: "[b3,d#4,f#4]@12 [a#3,c#4,f#4]@3 ~", W: "[b3,d#4,g#4]@11 ~ [c#4,f4,g#4]@3 ~",
X: "[c#4,f#4,a#4]@4 [c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // F# C#
Y: "[d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@4 [c#4,f4,g#4]@4", // D#m C#
Z: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~", // B F#
AA: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,f4,g#4]@4 [c#4,f4,g#4]@4", // G#m C#
AB: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // F# C#
AC: "[d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@4 [c#4,f4,g#4]@4 [c#4,f4,g#4]@3 ~", // D#m C#
AD: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@4 [c#4,f4,g#4]@4 [c#4,f4,g#4]@3 ~", // G#m C#
AE: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@7 ~", // F#
AF: "[b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~", // B
AG: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~", // C#
AH: "[c4,d#4,g#4]@7 ~ [c4,d#4,g#4]@7 ~", AI: "[d#4,f#4,a#4]@7 ~ [d#4,f#4,a#4]@7 ~",
AJ: "[c#4,f4,g#4]@7 ~ [c#4,f4,g#4]@7 ~", AK: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~",
AL: "[d#4,f#4,a#4]@4 [d#4,f#4,a#4]@4 [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // D#m C#
AM: "[b3,d#4,g#4]@4 [b3,d#4,g#4]@4 [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // G#m C#
AN: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@4", // F# C#
AO: "[d#4,f#4,a#4]@4 [d#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // D#m C#
AP: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@4", // B F#
AQ: "[b3,d#4,g#4]@4 [b3,d#4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // G#m C#
AR: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@4 [c#4,f4,g#4]@4", // F# C#
AS: "[d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~", // D#m F#
AT: "[d#4,f#4,b4]@3 ~ [d#4,f#4,b4]@3 ~ [c#4,f#4,a#4]@4 [c#4,f#4,a#4]@4", // B F#
AU: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // G#m C#
AV: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f4,g#4]@4 [c#4,f4,g#4]@3 ~", // F# C#
AW: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@4 [a#3,c#4,f#4]@4 [a#3,c#4,f#4]@3 ~", // B F#
AX: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,f4,g#4]!5 ~@3", // G#m C#
AY: "[c#4,f#4,a#4]@4 [c#4,f#4,a#4]@4 [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@3 ~", // F# C#
AZ: "[d#4,f#4,b4]@4 [d#4,f#4,b4]@4 [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~", // B F#
BA: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,f4,g#4]@3 ~ [c#4,f4,g#4]@4", // G#m C#
BB: "[d#4,f#4,a#4]@3 ~ [d#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@4", // D#m F#
BC: "[b3,d#4,f#4]@4 [b3,d#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~", // B F#
})).s("gm_epiano2").gain(0.4).pan(0.7)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@7 A@3 ~@24 B ~@55>".pickRestart({
A: "[~@4 f#4 c#4 f#4 ~ f4 c#4 f4 c#4 ~@2 f#3@6 ~@4, ~@8 [d#3,a#3,a#4]@7 ~ [c#3,g#3,g#4]@7 ~@2 f#4@15 ~@8, ~@8 d#4 ~@5 c#4@4 ~@6 a#4@16 ~@8, ~@13 c#4@7 ~@4, ~@27 a#3@13 ~@8]/3", // D#5 C#5
B: "f#4 c#4 f#4 ~ f4 c#4 f4 c#4, [d#3,a#3,a#4]@7 ~ [c#3,g#3,g#4]@7 ~, d#4 ~@5 c#4@4 ~@6", // D#5 C#5
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@11 A@2 B C ~ D B E F G H I J K H I J L M N@3 O@2 ~@3 P Q R S T U V W X U V W X Y Z AA AB@2 Z AC@3 AD AE AF AG AH AI
U V W X U V W X AJ AK AL AM AJ AK W AN AJ AK AL AM AJ AK W X
>`.pickRestart({
A: "[~@10 [d#4,f4,g#4]@12 f#5 ~ c#6 ~ a#5 ~ b5@2 g#5 ~]/2", B: "a#5@6 f#5 ~ c#6@2 a#5 ~ b5@2 g#5@2", C: "f#5@7 ~@9",
D: "~@6 f#5 ~ c#6 ~ a#5 ~ b5@2 g#5 ~", E: "f#5@7 ~ [b3,d#4,f#4]@8", F: "[a#3,c#4,f#4] [b3,d#4,g#4]",
G: "[c#4,f4,g#4] [f#4,a#4,c#5,f#6]", H: "[f4,g#4,c#5,f6] [f#4,a#4,d#5,f#6]",
I: "[f4,g#4,c#5,f6] [d#4,f#4,b4,d#5,d#6]", J: "[c#4,f#4,a#4,c#5,c#6] [d#4,g#4,b4,f#5,f#6]",
K: "[f4,g#4,c#5,g#5,g#6] [f#4,a#4,c#5,f#6]", L: "[f4,g#4,c#5,g#5,g#6] [f#4,a#4,c#5]", M: "[f4,g#4,c#5] [d#4,f#4,a#4]",
N: "[[c#4,f4,g#4]@11 ~ f#6@32 g#6@4]/3", O: "[~ f#6@30 ~]/2", P: "~@5 [f#4,f#5] [f4,f5] [c#4,c#5]",
Q: "[a#4,a#5]@3 [g#4,g#5]", R: "[f#4,f#5]@3 [g#4,g#5]", S: "[d#5,d#6] [f5,f6]", T: "[f#5,f#6]@8 [g#5,g#6]@7 ~",
U: "[f#4,a#4,c#5,f#6] [f4,g#4,c#5,f6]", V: "[f#4,a#4,d#5,f#6] [f4,g#4,c#5,f6]",
W: "[d#4,f#4,b4,d#5,d#6] [c#4,f#4,a#4,c#5,c#6]", X: "[d#4,g#4,b4,f#5,f#6] [f4,g#4,c#5,g#5,g#6]", Y: "[f#4,a#4,c#5]",
Z: "b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~, [b3,d#4,f#4]", // B
AA: "c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6@3 ~, [c#4,f4,g#4]", // C#
AB: "[[d#4,f#4,a#4,f#6]@4 f6 c#6 a#5 ~@8 a#5, ~ [c#4,f4,g#4] [c4,d#4,g#4]@2, ~@7 g#5@8 ~]/2", // D#m C# G#
AC: "[c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6 ~ c#6 ~@3 [d#3,d#4]@8 [f3,f4,f6]@4 [f#3,f#4,f#6]@2 [g#4,g#6]@17 ~, [c#4,f4,g#4]@8 ~@7 g#3@7 ~@2, ~@7 d#6@5 ~@12]/3", // D# F F# G# C#
AD: "c#6 a#5 b5 g#5 ~@3 f#5, [c#4,f#4,a#4]@3 [c#4,f4,g#4], ~@4 a#5@3 ~", // F# C#
AE: "c#6 a#5 b5 g#5 ~@2 [c#4,f4,g#4]@2, [d#4,f#4,a#4]@3 ~, ~ f#5", // C# D#m
AF: "[b3,d#4,f#4]@4 ~ c#6 b5 a#5, d#6@5 ~@3, ~ [a#3,c#4,f#4]", // B F#
AG: "g#5@4 a#5@2 ~@2 [c#4,f4,g#4]@7 ~, [b3,d#4,g#4] ~, ~@3 g#5@5", AH: "[b3,d#4,f#4] [a#3,c#4,f#4]",
AI: "[b3,d#4,g#4]@8 [c#4,f4,g#4]@7 ~", AJ: "c#6 a#5 b5 g#5 a#5@3 f#5, [f#4,a#4,c#5,f#6] [f4,g#4,c#5,f6]",
AK: "c#6 a#5 b5 g#5 [c#4,f#4,a#4,f#5,f6]@4, [d#4,f#4,a#4,f#6] ~", // F#maj7 D#m
AL: "[d#4,f#4,b4,d#6]@4 c#6!2 b5 a#5, ~ [c#4,f#4,a#4]", // B F#
AM: "g#5@2 a#5 ~ [f4,g#4,c#5,g#6]@4, [d#4,g#4,b4,f#6] ~, ~@3 g#5@5", // C# G#m7
AN: "[d#4,g#4,b4,f#5,f#6]@8 [c#5,c#6,c#7]!4 [c#5,c#6,c#7]@3 ~", // G#m7 C#
})).s("gm_string_ensemble_1").gain(0.36).pan(0.7)
// other · overdriven guitar
const overdriven_guitar = note(`<
~@18 A B C D B E C D B E C D F ~@10 G H I G J K I G J K L M N G O M N P Q R S J T J K I G J K I G J K I G J K I G J U
I G J K I G J K
>`.pickRestart({
A: "~ d#3", B: "c#3 b2", C: "c#3 f#3", D: "f3 d#3", E: "a#2 g#2", F: "c#3@7 ~", G: "d#3 c#3", H: "b2 c#3",
I: "f#3 f3", J: "b2 a#2", K: "g#2 c#3", L: "f#3", M: "b2", N: "b2@7 c#3", O: "c3@8 g#2@5 a#2@3", P: "d#3@7 d#3",
Q: "c#3@5 ~ c#3 ~ c#3@8", R: "f#3@3 f3", S: "d#3@3 c#3", T: "g#2@4 c#3 [f#3,f#4] [f3,f4] [c#3,c#4]",
U: "g#2@8 c#3!4 c#3@3 ~",
})).s("gm_overdriven_guitar").gain(0.42).pan(0.3)
// other · distortion guitar
const distortion_guitar = note("<~@81 A B C D E F G ~@2>".pickRestart({
A: "~@6 c#4 f#4", B: "a4@2 a#4@2 g#4@2 g#4@7 ~ c#4 f#4", C: "a4@2 a#4@2 f#4 ~ b4@9 ~", D: "c#5@8 c#5@7 ~",
E: "c#5@4 b4@2 a#4 b4@5 c#4@2 f#4@2", F: "a4@2 a#4@2 b4@2 e5@7 ~ a#5 b5", G: "b5 ~ b5@4 b5!2 ~ b5@7",
})).s("gm_distortion_guitar").gain(0.42)
// drums · kick
const kick = s("bd").struct(`<
A B@17 C B@9 D B@8 E B@3 F E B@7 G B F@3 H B F@3 B@5 G B@3 I B@2 F J B@6 C K B I B G B@4
>`.pickRestart({
A: "~ x", B: "x!2", C: "x ~@3 x ~@2 x", D: "x ~@2 x ~@4 x ~@7", E: "x ~@2 x!2 ~@3", F: "x ~@2 x!2 ~@2 x",
G: "x ~@7 x ~@2 x ~@4", H: "x ~@5 x ~ x ~@4 x ~@2", I: "x ~@7 x ~@4 x ~@2", J: "x ~@2 x ~@2 x ~ x ~@2 x ~@4", K: "x",
})).gain(0.8)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@20 A@3 ~ A@3 ~ A@2 B ~@12 B@3 ~ B@3 ~ B ~@8 B@3 ~ B ~ B@3 ~ B@2 ~@2 B@3 ~ B@2 ~@2 B@6 A ~
>`.pickRestart({
A: "~@15 x", B: "~@7 x ~@8",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
A B@3 C B@7 C B@3 C B@3 D B@3 E B@5 F B@3 G B@3 H B@3 I B@3 I B@4 J B@11 I B@5 G B H B@9 K B@3 H B H B@2
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@2 x ~@4 x ~@3", D: "~@3 x!3 ~@6 x ~@3", E: "~@3 x!2 ~@7 x ~@3", F: "~ x ~@2",
G: "~@2 x ~@2 x!2 ~", H: "~@4 x ~@7 x ~@2 x", I: "~@4 x ~@6 x!2 ~@3", J: "~@4 x ~@5 x!4 ~@2", K: "~@2 x ~@8 x!2 ~@3",
})).gain(0.8)
// drums · hihat
const hihat = s("hh").struct(`<
A B@5 C B@5 D B@3 C B@3 E B@7 F B G B H B@5 H B@3 G B@7 I B@2 H B H B H B J B@5 I B@7 I B@6 G B@9
>`.pickRestart({
A: "~@4 x!4", B: "x!8", C: "x ~ x ~ x!3 ~ x ~ x ~ x ~ x ~", D: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", E: "x!3 ~ x!4",
F: "x!2 ~@2 x!4", G: "x!7 ~", H: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~", I: "x!6 ~@2", J: "x ~@2 x!3 ~ x",
})).gain(0.64)
// drums · low tom
// … 38 more lines
More by Nek
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.