0:00/0:00
// Il suono c'e — Raf
// 124 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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 · fretless bass
const bass = note(`<
~@4 A@2 B C D@2 E F G@2 H I J@2 K L ~@2 G@2 H I J@2 M N O P Q R S T U V O P Q R S T W X Y ~@4 Z@2 AA AB AC@2 AD AE
AF@2 AG AH AI@2 AJ AK ~@2 AF@2 AG AH AI@2 AL AM AN AO AP AQ AR AS AT AU AN AO AP AQ AR AS AV AW AX ~@2 Z@2 AA AB Z@2
AA AB Z@2 AA AB Z@2 AA AB Z@2 AA AB Z@2 AA ~
>`.pickRestart({
A: "[f#1@5 ~@3 b1@2 f#1@3 ~ c#1@6 ~@6 c#1@2 e1@4]/2", B: "f#1@6 ~@2 b1@2 f#1@3 ~ e1@2", C: "~@5 c#1 e1@2",
D: "[f#1@6 ~@2 b1@2 f#1@3 ~ c#1@6 ~@6 f#1@2 f#1@2 f#1@2]/2", E: "f#1@3 ~@3 b1@3 ~@7",
F: "e1@3 ~@3 a1@2 c#1@2 c#1@2 e1@2 f1@2", G: "[f#1@5 ~ f#1 ~ b1@2 f#1@3 ~ c#1@6 ~@2 c#1@2 c#1@4 e1@4]/2",
H: "f#1@5 ~ f#1 ~ b1@2 f#1@3 ~ e1@2", I: "~@6 c#1 ~ c#1@2 e1@2 e1@2 f1@2",
J: "[f#1@6 ~@2 b1@2 f#1@3 ~ c#1@6 ~@4 e1 ~ f#1@2 f#1@2 f#1@2]/2", K: "f#1@5 ~@3 b1 ~ f#1@3 ~@3",
L: "f1@2 c#2 ~ b1@2 a1@2 e2@2 f#2@5 ~", M: "f#1@5 ~@3 b1 ~ f#1@3 ~ d1@2", N: "d1@2 d1!2 e1!2 f#1@2",
O: "a1@13 ~ d1@2", P: "e1@3 ~@2 e1 ~ c#1", Q: "f#1@4 ~ f#1 a1 b1", R: "d1@5 ~ d2@4 ~@2 b1@2 f#1@2", S: "a1@13 ~ b1@2",
T: "g1@15 ~", U: "f#1@2 ~@2 e1@2 ~@2 f#1@5 ~ d1@2", V: "d1@5 ~ d2@2 ~@2 c#2 ~ b1@2 f#1@2", W: "f#1@9 ~ f#1@2 a1@3 ~",
X: "b1@6 ~ b1 b1@2 a1@2 b1@4", Y: "b0", Z: "[g#1@5 ~@3 c#2@2 g#1@3 ~ d#1@6 ~@6 d#1@2 f#1@4]/2",
AA: "g#1@6 ~@2 c#2@2 g#1@3 ~ f#1@2", AB: "~@5 d#1 f#1@2",
AC: "[g#1@6 ~@2 c#2@2 g#1@3 ~ d#1@6 ~@6 g#1@2 g#1@2 g#1@2]/2", AD: "g#1@3 ~@3 c#2@3 ~@7",
AE: "f#1@3 ~@3 b1@2 d#1@2 d#1@2 f#1@2 g1@2", AF: "[g#1@5 ~ g#1 ~ c#2@2 g#1@3 ~ d#1@6 ~@2 d#1@2 d#1@4 f#1@4]/2",
AG: "g#1@5 ~ g#1 ~ c#2@2 g#1@3 ~ f#1@2", AH: "~@6 d#1 ~ d#1@2 f#1@2 f#1@2 g1@2",
AI: "[g#1@6 ~@2 c#2@2 g#1@3 ~ d#1@6 ~@4 f#1 ~ g#1@2 g#1@2 g#1@2]/2", AJ: "g#1@5 ~@3 c#2 ~ g#1@3 ~@3",
AK: "g1@2 d#2 ~ c#2@2 b1@2 f#2@2 g#2@5 ~", AL: "g#1@5 ~@3 c#2 ~ g#1@3 ~ e1@2", AM: "e1@2 e1!2 f#1!2 g#1@2",
AN: "b1@13 ~ e1@2", AO: "f#1@3 ~@2 f#1 ~ d#1", AP: "g#1@4 ~ g#1 b1 c#2", AQ: "e1@5 ~ e2@4 ~@2 c#2@2 g#1@2",
AR: "b1@13 ~ c#2@2", AS: "a1@15 ~", AT: "g#1@2 ~@2 f#1@2 ~@2 g#1@5 ~ e1@2", AU: "e1@5 ~ e2@2 ~@2 d#2 ~ c#2@4",
AV: "g#1@9 ~ g#1@2 b1@3 ~", AW: "c#2@6 ~ c#2 c#2@2 b1@2 c#2@4", AX: "c#1",
})).s("gm_fretless_bass").gain(0.57)
// chords · piano
const piano = note(`<
~@30 A B C D E F G H@2 I J K L M N O P ~@22 Q R S T@2 U V ~ W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL ~@3 AM@2 AN
~@9 AM@2 AN ~@8
>`.pickRestart({
A: "[a3,c#4,e4]@10 [a3,c#4,e4]@5 ~", B: "[g#3,b3,e4]@5 [g#3,b3,e4]@2 ~, f#4@7 ~",
C: "[a3,c#4]@10 [a3,c#4,e4]@5 ~, f#4@15 ~", D: "[f#4,a4] [a4,c#5]@2 [a4,c#5,e5]@4 ~, d4@7 ~, ~ f#4@6 ~",
E: "[a4,c#5,e5]@8 [a4,c#5,e5] ~ [a4,c#5,e5]@3 ~@3", F: "[g4,b4,d5]@7 ~ [g4,b4,d5] ~ [g4,b4,d5]@2 ~@4",
G: "~@2 [a3,a4]@3 [b3,b4]@2 ~ [e3,e4]@2 ~ [a3,a4]@2 ~ [b3,b4]@2", // A B E A B
H: "[[e4,e5] ~ [d4,d5]@3 ~ [c#4,c#5]@3 ~ [b3,b4]@3 ~@9 a4@2 [a4,c#5,e5]@2 [a4,c#5,e5]@5 ~, ~@14 c#4@17 ~, ~@7 c#5@5 ~@4]/2", // E D C# B A
I: "~@10 [a4,e5]@3 ~ [a4,e5]@2", J: "~@4 [a4,e5]@6 [a4,e5]@5 ~", K: "e4@3 [e4,e5]@3 [e4,e5]@3 [e4,e5]@7, e3",
L: "~@2 [e3,e4] [f#3,f#4] [a3,a4]!2 ~ [b3,b4] ~ [c#4,c#5] ~ [a3,a4] [b3,b4]@2 [a3,a4]@2", // E F# A B C# A B A
M: "[c#4,c#5]@2 ~ [b3,b4]@2 ~ [e4,e5]@2 [a3,a4]@2 ~ [f#3,f#4]@2 [a3,a4] ~@2", // C# B E A F# A
N: "[e3,f#4,a4,c#5]@9 ~ [e3,f#4,a4,c#5]@5 ~", O: "~@3 [b3,b4,d#5]@2 [e4,a#4,d5]@2 ~ [f#4,a4,c#5,f#5]@7 ~",
P: "~@3 [b2,g#5,b5]@2 [e3,g5,a#5]@2 ~ [f#3,f#5,a5]@7 ~, [b0,b1]@15 ~", // E Edim F#m B
Q: "~@2 [d#4,d#5] ~ [d#4,d#5]@3 ~ [f4,f5] ~ [f4,f5]@5 ~", // D# F
R: "~@2 [f#4,f#5] ~ [f#4,f#5] ~ [f#4,f#5] ~ [f#4,f#5]@2 [f4,f5]@3 ~@3", S: "~@2 f#3!7 ~ g#3 ~ b3 ~ d#4 ~",
T: "[[g#3,g#4]@2 ~ [b3,b4] [d#4,d#5] ~ [g3,g4]@4 [b3,b4] ~ [d#4,d#5] ~ [f#3,f#4]@4 [b3,b4] ~ [d#4,d#5] ~ [f3,f4]@3 ~ [b3,b4] ~ [d#4,d#5] ~ [b3,b4] ~]/2", // G# B D# G B D# F# B …
U: "[g#4,d#5,f#5] ~ [g#4,d#5,f#5] ~ [c#5,c#6] [b4,b5] [g#4,g#5] ~ [g#4,b4,f5] ~ [g#4,b4,f5]@3 ~ [g#4,g#5]@2", // G#7 C# B G# Fdim G#
V: "[f#4,f#5] ~@7", W: "[b3,d#4,f#4]@10 [b3,d#4,f#4]@5 ~", X: "[a#3,c#4,f#4]@5 [a#3,c#4,f#4]@2 ~, g#4@7 ~",
Y: "[b3,d#4]@10 [b3,d#4,f#4]@5 ~, g#4@15 ~", Z: "[g#4,b4] [b4,d#5]@2 [b4,d#5,f#5]@4 ~, e4@7 ~, ~ g#4@6 ~",
AA: "[b4,d#5,f#5]@8 [b4,d#5,f#5] ~ [b4,d#5,f#5]@3 ~@3", AB: "[a4,c#5,e5]@7 ~ [a4,c#5,e5] ~ [a4,c#5,e5]@4 ~@2",
AC: "~@2 [b3,b4]@3 [c#4,c#5]@2 ~ [f#3,f#4]@2 ~ [b3,b4]@2 ~ [c#4,c#5]@2", // B C# F# B C#
AD: "[[f#4,f#5] ~ [e4,e5]@3 ~ [d#4,d#5]@3 ~ [c#4,c#5]@3 ~@9 b4@2 [b4,d#5,f#5]@2 [b4,d#5,f#5]@5 ~, ~@14 d#4@17 ~, ~@7 d#5@5 ~@4]/2", // F# E D# C# B
AE: "~@10 [b4,f#5]@3 ~ [b4,f#5]@2", AF: "~@4 [b4,f#5]@6 [b4,f#5]@5 ~",
AG: "f#4@3 [f#4,f#5]@3 [f#4,f#5]@3 [f#4,f#5]@7, f#3", // F#
AH: "~@3 [g#3,g#4] [b3,b4]!2 ~ [c#4,c#5] ~ [d#4,d#5] ~ [b3,b4] [c#4,c#5]@2 [b3,b4]@2, ~ [f#3,f#4] ~@6", // G# B C# D# B C# B F#
AI: "[d#4,d#5]@2 ~ [c#4,c#5]@2 ~ [f#4,f#5]@2 [b3,b4]@2 ~ [g#3,g#4]@2 [b3,b4] ~@2", // D# C# F# B G# B
AJ: "[f#3,g#4,b4,d#5]@9 ~ [f#3,g#4,b4,d#5]@5 ~", AK: "~@3 [c#4,c#5,f5]@2 [f#4,c5,e5]@2 ~ [g#4,b4,d#5,g#5]@7 ~",
AL: "~@3 [c#3,a#5,c#6]@2 [f#3,g#5,c6]@2 ~ [g#3,g#5,b5]@7 ~, [c#1,c#2]@15 ~", // F# G#7 G#m C#
AM: "[~@8 [f#4,f#5]@2 [f4,f5] [f#4,f#5]@2 ~ [d#4,d#5]@4 ~@2 [f#4,c#5,f#5]@4 ~@2 [f#4,c#5,f#5]@4 ~@2]/2", // F# F F# D# F#5
AN: "[f#4,c#5,f#5]@4 ~@2 [c#4,f#4,c#5]@3 [c#4,f#4,c#5] [b3,f#4,b4] ~ [c#4,f#4,c#5]@2 [b3,f#4] ~", // F#5 B5 F#5 B5
})).s("gm_piano").gain(0.47).pan(0.3)
// chords · rock organ
const rock_organ = note(`<
A@4 B@4 C@2 D E F@4 G@4 ~@2 F@4 H@4 I J K L M N O P I J K P M N Q R@2 S@4 T@4 U@2 V W X@4 Y@4 ~@2 X@4 Z@4 AA AB AC AD
AE M AF AG AA AB AC AG AE M AH AI@2 ~@2 AJ@8 T@12 AK@4
>`.pickRestart({
A: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [e3,a3,b4,e5]@4 e3@2 [a3,b4,e5]@2 e3@2 [b3,a4,e5,a5] ~ [b3,a4,e5,a5]@3 ~@3]/4", // A B F#7 C#m B F#m A B …
B: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,b4,e5]@4 ~@2 [f#4,b4,e5]@2 ~@2 [a4,e5,a5] ~ [a4,e5,a5]@3 ~@3]/4", // A B F#7 C#m B F#m A B …
C: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@4 ~@2]/2", // A B F#7 C#m B
D: "[f#4,a4,c#5]@3 ~@3 [f#4,a4,e5]@2 ~@8", E: "[f#4,c#5]@2 ~@4 [f#4,a4] ~@9, e5 ~@5 c#5@2 ~@8",
F: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,b4,e5]@4 ~@2 [f#4,b4,e5]@2 ~@2 [a4,e5,a5] ~ [a4,e5,a5]@3 ~ [f#4,a4,c#5]@2]/4", // A B F#7 C#m B F#m A B …
G: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@4 [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,b4,e5]@4 ~@2 [f#4,b4,e5]@2 ~@2 [a4,e5,a5] ~ [a4,e5,a5]@3 ~@3]/4", // A B F#7 C#m B F#m A B …
H: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@4 [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,a4,d5]@4 ~@2 [f#4,a4,d5]@2 ~@2 [e4,b4,e5] ~ [e4,b4,e5]@3 ~@3]/4", // A B F#7 C#m B F#m A B …
I: "[a4,c#5,e5]", J: "[g#4,b4,e5]", K: "[f#4,a4,c#5]", L: "a4@3 e5@5, [d4,f#4]", M: "[e4,a4,c#5]", N: "[d4,g4,b4]",
O: "c#4", P: "[f#4,c#5,e5]", Q: "[c#4,f#4,a4]", R: "[f#4,a4,d#5]/2",
S: "[~@2 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,c#5,e5]@4 f#4@2 [c#5,e5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [f#4,a4,c#5]@4 f#4@2 [a4,c#5]@2 f#4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@3 ~ [g#4,c#5,f#5]@4 g#4 ~ [g#4,c#5,f#5]@2 g#4 ~ [g#4,c#5,d#5] ~ [g#4,c#5,d#5]@5 ~]/4", // A B F#7 C#m B F#m A B …
T: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,c#5,f#5]@4 ~@2 [g#4,c#5,f#5]@2 ~@2 [b4,f#5,b5] ~ [b4,f#5,b5]@3 ~@3]/4", // B C# G#7 D#m C# G#m B C# …
U: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@4 ~@2]/2", // B C# G#7 D#m C#
V: "[g#4,b4,d#5]@3 ~@3 [g#4,b4,f#5]@2 ~@8", W: "[g#4,d#5]@2 ~@4 [g#4,b4] ~@9, f#5 ~@5 d#5@2 ~@8",
X: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,c#5,f#5]@4 ~@2 [g#4,c#5,f#5]@2 ~@2 [b4,f#5,b5] ~ [b4,f#5,b5]@3 ~ [g#4,b4,d#5]@2]/4", // B C# G#7 D#m C# G#m B C# …
Y: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@4 [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,c#5,f#5]@4 ~@2 [g#4,c#5,f#5]@2 ~@2 [b4,f#5,b5] ~ [b4,f#5,b5]@3 ~@3]/4", // B C# G#7 D#m C# G#m B C# …
Z: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@4 [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,b4,e5]@4 ~@2 [g#4,b4,e5]@2 ~@2 [f#4,c#5,f#5] ~ [f#4,c#5,f#5]@3 ~@3]/4", // B C# G#7 D#m C# G#m B C# …
AA: "[b4,d#5,f#5]", AB: "[a#4,c#5,f#5]", AC: "[g#4,b4,d#5]", AD: "b4@3 f#5@5, [e4,g#4]", AE: "[f#4,b4,d#5]",
AF: "d#4", AG: "[g#4,d#5,f#5]", AH: "[d#4,g#4,b4]", AI: "f5/2",
AJ: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,c#5,f#5]@4 ~@2 [g#4,c#5,f#5]@2 ~@2 [b4,f#5,b5] ~ [b4,f#5,b5]@6]/4", // B C# G#7 D#m C# G#m B C# …
AK: "[~@2 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,d#5,f#5]@4 g#4@2 [d#5,f#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,b4,d#5]@4 g#4@2 [b4,d#5]@2 g#4@2 [g#4,c#5,f5] ~ [g#4,c#5,f5]@3 ~ [g#4,c#5,f#5]@4 ~@2 [g#4,c#5,f#5]@2 ~@2 [b4,f#5,b5] ~@7]/4", // B C# G#7 D#m C# G#m B C# …
})).s("gm_rock_organ").gain(0.39).pan(0.4)
// other · trumpet
const trumpet = note(`<
~@8 A@2 B C ~@10 D ~@4 A@2 E ~@4 F G F ~@6 H@2 I ~@9 J@2 K L ~@10 M ~@4 J@2 N ~@4 O P O ~@6 Q@2 R ~@27
>`.pickRestart({
A: "[~@7 [f#4,f#5]@9]/2", B: "[f#4,f#5] ~@2 a4 ~@4, ~@6 a5 ~@9", C: "[f#4,f#5] ~@2 [c#5,c#6] ~@4", D: "[f#4,c#5] ~@3",
E: "~@2 [b3,b4] ~ [c#4,c#5]@2 [e4,e5] ~ [e4,e5]@3 ~ [e4,e5]@3 ~", F: "[a4,a5]@3 [a4,a5]@2 ~@11",
G: "~@2 [a4,a5] ~@7 [e4,e5]!3 [f#4,f#5] [a4,a5] ~", H: "[~@7 [a4,a5]@9]/2", I: "[f#4,f#5] ~@7",
J: "[~@7 [g#4,g#5]@9]/2", K: "[g#4,g#5] ~@2 b4 ~@4, ~@6 b5 ~@9", L: "[g#4,g#5] ~@2 [d#5,d#6] ~@4", M: "[g#4,d#5] ~@3",
N: "~@2 [c#4,c#5] ~ [d#4,d#5]@2 [f#4,f#5] ~ [f#4,f#5]@3 ~ [f#4,f#5]@3 ~", O: "[b4,b5]@3 [b4,b5]@2 ~@11",
P: "~@2 [b4,b5] ~@7 [f#4,f#5]!3 [g#4,g#5] [b4,b5] ~", Q: "[~@7 [b4,b5]@9]/2", R: "[g#4,g#5] ~@7",
})).s("gm_trumpet").gain(0.49).pan(0.7)
// other · trombone
const trombone = note(`<
~@8 A@2 B C ~@10 D ~@4 A@2 E ~@4 F G F ~@6 H@2 I ~@9 J@2 K L ~@10 M ~@4 J@2 N ~@4 O P O ~@6 Q@2 R ~@27
>`.pickRestart({
A: "[~@7 [f#2,f#3]@9]/2", B: "[f#2,f#3] ~@2 a2 ~@4, ~@6 a3 ~@9", C: "[f#2,f#3] ~@2 [c#3,c#4] ~@4", D: "[f#2,c#3] ~@3",
E: "~@2 [b1,b2] ~ [c#2,c#3]@2 [e2,e3] ~ [e2,e3]@3 ~ [e2,e3]@3 ~", F: "[a2,a3]@3 [a2,a3]@2 ~@11",
G: "~@2 [a2,a3] ~@7 [e2,e3]!3 [f#2,f#3] [a2,a3] ~", H: "[~@7 [a2,a3]@9]/2", I: "[f#2,f#3] ~@7",
J: "[~@7 [g#2,g#3]@9]/2", K: "[g#2,g#3] ~@2 b2 ~@4, ~@6 b3 ~@9", L: "[g#2,g#3] ~@2 [d#3,d#4] ~@4", M: "[g#2,d#3] ~@3",
N: "~@2 [c#2,c#3] ~ [d#2,d#3]@2 [f#2,f#3] ~ [f#2,f#3]@3 ~ [f#2,f#3]@3 ~", O: "[b2,b3]@3 [b2,b3]@2 ~@11",
P: "~@2 [b2,b3] ~@7 [f#2,f#3]!2 ~ [g#2,g#3] [b2,b3] ~, ~@6 [f#2,f#3] ~", Q: "[~@7 [b2,b3]@9]/2", R: "[g#2,g#3] ~@7",
})).s("gm_trombone").gain(0.49).pan(0.7)
// other · flute
const flute = note("<~@50 A B C D E F G H I ~@36 J K L M@2 B C D E F G H I K L N O P Q R@2 S T U V>".pickRestart({
A: "~@2 g#5 [b5,c#6] d6 [b5,c#6] g#5 [b5,c#6] d6 [b5,c#6] g#5 [b5,c#6] d6 [b5,c#6] c#6 [d6,e6]", // Bsus2 Dsus2
B: "f#6@2 g#6@2 f#6@2 f6@2 d#6 ~ g#5 c#6@4 ~", C: "~@4 c#6!2 ~@2 c#6!2 b5 g#5 b5 g#5 b5 g#5",
D: "b5!4 [g#5,b5] b5 g#5 ~@3 f#5 g#5 b5!2 ~ b5", E: "~ b5 ~ b5!2 ~ b5!2 ~ b5!4 ~ b5!2",
F: "f#6 g#6 f#6 d#6 c#6 b5 g#5 b5 g#5 b5@4 g#5 ~@2", G: "f6 f#6 f6 d#6 c#6 ~ c#6@4 d#6 ~ g#5!4",
H: "b5 g#5@2 ~@3 b5!2 g#5 b5 g#5@2 ~ [g5,g#5] [b5,c#6] ~", // G#maj7 Bsus2
I: "[c#6,d#6] [f#5,g#5,b5] c#6 b5 g#5 ~@3 c#6@2 b5 g#5 f#5@2 g#5@2", J: "~@6 b5 g#5 b5 c#6 d#6 ~ f6 ~ f#6 ~",
K: "f6@9 ~ d#6 c#6 b5@2 c#6 ~", L: "c#6@4 [g#5,b5] d#5 ~@4 c#6 b5 c#6@2 b5 ~",
M: "[b5@2 b5@2 ~ b5@2 ~ b5@2 ~ b5@2 g#5 ~ g#5@5 ~@12]/2", N: "b5@2 b5@2 ~ b5@2 ~ b5@2 ~ b5@2 g#5 ~@2", O: "c#6!16",
P: "c#6@3 ~ g#6 f#6 ~@2 d#6 ~ c#6 ~ b5@3 ~", Q: "g#6 f#6 ~ d#6 ~@2 c#6 ~@2 b5@5 g#5 f#5",
R: "[g#5 ~ g#5 f#5 g#5 b5 c#6 ~ g#6 f#6 ~ d#6 ~ c#6 b5 c#6@2 ~ b5 g#5 f#5@2 g#5 ~ g#5@2 b5 ~ f6 f#6 f6 f#6]/2",
S: "f6@2 d#6 ~ c#6 ~ b5 c#6!6 ~ c#6 b5", T: "c#6@2 b5 g#5 f#5@2 g#5 ~@9",
U: "b4 c#5 ~@2 b4 c#5 ~@2 b4 c#5 ~@2 c#5 f5 ~@2", V: "g#5 ~ b5 ~ [a#5,b5] ~ [a#5,b5] ~ [a#5,b5] ~@7",
})).s("gm_flute").gain(0.5).pan(0.7)
// drums · kick
const kick = s("bd").struct("<~@4 [x ~@2 x ~ x ~ x]!64 [x ~@2 x ~@4] [x ~@2 x ~ x ~ x]!50 [x ~@2 x ~@4]>").gain(0.43)
// drums · snare
const snare = s("sd").struct("<~@4 [~ x ~ x]!64 ~ [~ x ~ x]!50 [~ x ~@2]>").gain(0.38)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@4 [~@3 x ~@12]!64 ~ [~@3 x ~@12]!51>").gain(0.11)
// drums · hihat
const hihat = s("hh").struct(`<
~@4 A B A B A@3 C A B A B A@3 C A C A B A B A@3 C A B A B A@3 C A B A B A@3 C@2 A B A B A B A B A@3 C A B A B A@3 C@2
~ A B A B A@3 C A B A B A@3 C A B A B A@3 C@4 A B A B A B A B A B A B A B A B A B A B A B A D
>`.pickRestart({
A: "x!8", B: "x!7 ~", C: "x ~ x ~ x ~ x ~ x!3 ~ x ~@3", D: "x!5 ~@3",
})).gain(0.21)
// drums · open hat
const open_hat = s("oh").struct(`<
~@5 A ~ B ~@3 A ~ A ~ B ~@3 A ~ A ~ A ~ B ~@5 A ~ B ~@3 A ~ A ~ B ~@3 A@2 ~ A ~ B ~ A ~ B ~@3 A ~ A ~ B ~@3 A@2 ~@2 A
~ B ~@5 A ~ B ~@3 A ~ A ~ B ~@3 A@4 ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ C
>`.pickRestart({
A: "~@7 x", B: "~@9 x ~@4 x ~", C: "~@9 x ~@6",
})).gain(0.27)
// drums · crash
const crash = s("cr").struct(`<
~@4 A ~@7 A ~@9 A ~@6 B A ~@7 A ~@8 A ~@3 A ~@7 A ~@9 A ~@6 B A ~@7 A ~@10 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
>`.pickRestart({
A: "x", B: "~@7 x",
})).gain(0.27)
// drums · tambourine
const tambourine = s("tb").struct("<~@4 [x!16]!64 ~ [x!16]!50 [x!10 ~@6]>").gain(0.16)
// drums · bongos
const bongos = s("bongo:4").struct(`<
~@7 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@2 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A
~@3 A ~@3 A@4 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 B
>`.pickRestart({
A: "~@8 x ~@4 x ~@2", B: "~ x",
})).gain(0.99)
// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
~@4 A B A@3 B A@3 B A@3 B A@3 C A B A@3 B A@3 B A@3 B A@3 B A@3 B A@4 B A@3 B A@3 B A@3 B A@3 B A@2 C ~ A B A@3 B A@3
B A@3 B A@3 B A@3 B A@6 B A@3 B A@3 B A@3 B A@3 B A@3 B A@2
>`.pickRestart({
A: "~ x ~@2", B: "~ x!2 ~", C: "~@4 x ~@3 x!5 ~ x!2",
})).gain(0.99)
// drums · congas
const congas = s("conga:33").struct(`<
~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 A B A B A B A B A B A B A B
A B A B A B@2 ~ A B A B A B A B A B A B A B A B A B A B A B A B@4 A B A B A B A B A B A B A B A B A B A B A B A@2
>`.pickRestart({
A: "~@3 x ~@12", B: "~@3 x ~@6 x ~@5",
})).gain(1.2)
stack(
bass, piano, rock_organ, trumpet, trombone, flute, kick, snare, snare_soft, hihat, open_hat, crash, tambourine,
bongos, bongos_2, congas
// … 1 more lines
More by Raf
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.