0:00/0:00
// narcotic — A.Heatley
// 100 bpm, 2/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5924204; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 176 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/2)
// 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 · flute
const flute = note(`<
~@17 A B@2 C@2 D@2 E@2 B@2 C@2 D@2 F@2 ~@15 G H@2 I@2 J@3 K@2 L M@2 L N@2 ~ O@2 P@2 Q@3 ~ O@2 P@2 Q@3 ~@29 R S@2 A B@2
C@2 D@2 T@2 B@2 C@2 D@2 U V@2 W X@2 Y@3 Z@2 AA AB@2 AC@2 ~ Z@2 W AD@2 AE@2 ~ AF@2 AG AH@3 ~ AI@2 AJ@2 AK@3 ~ AI@2 AJ@2
AK@3 AL
>`.pickRestart({
A: "e5@3 ~ d5@3 ~ e5@3 ~ d5@3 ~", B: "[e5@3 ~ d5@3 ~ e5@3 ~ d5 ~ f5@5 ~ e5@3 ~ f5@3 ~ e5@3 ~]/2",
C: "[f5@3 ~ e5@3 ~ f5@3 ~ g5 ~ a5@5 ~ g5@3 ~ a5@3 ~ g5@3 ~]/2",
D: "[a5@3 ~ g5@3 ~ a5@3 ~ g5 ~ e5@4 ~@2 d5@3 ~ e5@3 ~ d5@3 ~]/2",
E: "[e5@3 ~@5 f5@3 ~@3 e5@5 ~ d5@3 ~ e5@3 ~ d5@3 ~]/2", F: "[e5@3 ~@5 f5@3 ~@3 e5@13 ~@5]/2", G: "~@6 c5!2",
H: "[e5@4 e5@4 d5@4 c5@2 d5@13 ~ d5@2 e5@2]/2", I: "[f5@4 e5@4 f5@4 g5@2 a5@9 ~@5 g5@2 g5@2]/2",
J: "[a5@2 g5@2 a5@2 g5 e5@16 ~]/3", K: "[~@3 e5@2 e5 d5 c5]/2", L: "d5@15 ~", M: "[f5@4 e5@4 f5@4 e5@2 c5@17 ~]/2",
N: "[e5@27 ~@5]/2", O: "[~@4 c5@4 e5@4 d5@15 ~@5]/2", P: "[~@4 d5@4 d5@4 c5@15 ~@5]/2",
Q: "[~@4 a4@4 c5@4 e5@8 c5@8 c5@15 ~@5]/3", R: "d6@15 ~", S: "[e6@27 ~@5]/2",
T: "[e5@3 ~@11 e5@5 ~ d5@3 ~ e5@3 ~ d5@3 ~]/2", U: "e5@3 ~@5 f5@3 ~@5", V: "[e5 ~@2 e5@2 d5 c5 a4]/2", W: "d5@2 ~ e5",
X: "[f5@4 e5@2 f5@6 e5@2 c5@9 ~@9]/2", Y: "[c5@3 a4@3 g4@17 ~]/3", Z: "[~@3 e5@2 d5 c5 a4]/2", AA: "d5 e5 f5 e5",
AB: "[f5@2 e5@2 f5@2 e5 c5@3 a4@2 c5@2 a4@2]/2", AC: "[c5@4 a4@4 e5@4 d5@2 e5@13 ~@5]/2",
AD: "[f5@4 e5@2 f5@6 e5@2 c5@17 ~]/2", AE: "[c5@6 a4@6 g4@19 ~]/2", AF: "[~@3 e6@2 d6 c6 a5]/2", AG: "d6@11 ~@5",
AH: "[f6@2 e6@2 c6@9 ~@3]/3", AI: "[~@4 c6@4 e6@4 d6@15 ~@5]/2", AJ: "[~@4 d6@4 d6@4 c6@15 ~@5]/2",
AK: "[~@4 a5@4 c6@4 e6@8 c6@8 c6@15 ~@5]/3", AL: "e6 ~@3",
})).s("gm_flute").gain(0.45)
// other · flute · soft notes
const flute_soft = note(`<
A@3 B@2 C@2 D@2 E@2 B@2 C@2 F ~@66 G H@2 I@2 J@4 H@2 I@2 K@4 H@2 I@2 ~@2 L M N O G ~@66
>`.pickRestart({
A: "[c5@23 ~]/3", B: "[d5@15 ~]/2", C: "[f5@15 ~]/2", D: "[c5@23 ~ f5@8]/2", E: "[c5@15 ~]/2", F: "c5@15 ~",
G: "c6@15 ~", H: "[d6@15 ~]/2", I: "[f6@15 ~]/2", J: "[c6@61 ~@3]/4", K: "[c6@15 ~]/2", L: "e6 c6 g5 e6",
M: "c6 g5 e6 c6", N: "f6 d6 a5 f6", O: "d6 a5 f6 d6",
})).s("gm_flute").gain(0.25)
// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
~@8 A@2 B@2 C@2 D@2 E F B@2 C@2 D@2 G@2 B@2 C@2 D@2 H@2 I@2 J@2 K@3 L@2 M@2 N@2 O@3 I@2 P@2 Q@3 R@2 S T@2 S U@2 V W@2
X@2 Y@2 Z V W@2 X@2 Y@2 Z ~@16 AA AB AC AD AE AF AA AB AA AB AC AD AG S U@2 V W@2 X@2 Y@2 Z V W@2 X@2 Y@2 Z AH ~ AI@2
AJ@2 V@2 AH ~ AI@2 AJ@2 V@2 AK@2 AL AM@2 AN@2 ~ AO@2 AP AQ@3 AR AS@2 AT@2 AU@2 AV@2 AS@2 AT@2 AU@2 AW AX
>`.pickRestart({
A: "[~@14 e4@5 ~ d4@3 ~ e4@3 ~ d4@3 ~]/2", B: "[e4@3 ~ d4@3 ~ e4@3 ~ d4 ~ f4@5 ~ e4@3 ~ f4@3 ~ e4@3 ~]/2",
C: "[f4@3 ~ e4@3 ~ f4@3 ~ g4 ~ a4@5 ~ g4@3 ~ a4@3 ~ g4@3 ~]/2",
D: "[a4@3 ~ g4@3 ~ a4@3 ~ g4 ~ e4@4 ~@2 d4@3 ~ e4@3 ~ d4@3 ~]/2", E: "e4@3 ~@5 f4@3 ~@5",
F: "e4@3 ~ d4@3 ~ e4@3 ~ d4@3 ~", G: "[e4@3 ~@5 f4@3 ~@3 e4@5 ~ d4@3 ~ e4@3 ~ d4@3 ~]/2",
H: "[e4@3 ~@5 f4@3 ~@3 e4@13 ~ c4@2 c4@2]/2", I: "[e4@2 e4@2 d4@2 c4 d4@7 d4 e4]/2",
J: "[f4@2 e4@2 f4@2 e4 d4@3 c4@4 a3!2]/2", K: "[c4@2 a3@2 c4@2 d4 e4@17]/3", L: "g4/2", M: "a4/2", N: "c5/2",
O: "[g4@22 c4!2]/3", P: "[f4@2 e4@2 f4@2 g4 a4@5 ~@2 g4!2]/2", Q: "[a4@2 g4@2 a4@2 g4 e4@17]/3",
R: "[~@3 e5@2 e5 d5 c5]/2", S: "d5", T: "[f5@2 e5@2 f5@2 e5 c5@9]/2", U: "[e5@7 ~]/2", V: "[e4,g4,c5]!4",
W: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] [f4,a4] [f4,a4]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2, ~@7 d5@3 ~@6]/2", // C F Dm
X: "[[f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5] [f4,a4,c5]@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2]/2", // Dm F
Y: "[[f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5] [e4,g4,c5]@3 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2]/2", // F C
Z: "[e4,g4,c5] [f4,a4,c5]", AA: "e5 c5 g4 e5", AB: "c5 g4 e5 c5", AC: "f5 d5 a4 f5", AD: "d5 a4 f5 d5",
AE: "c5 a4 f4 c5", AF: "a4 f4 c5 d5", AG: "c5", AH: "[e4,g4,c5] ~@3", AI: "[f4,a4,d5]!4", AJ: "[f4,a4,c5]!4",
AK: "[[e4,g4,c5] ~@2 e5@2 d5 c5 a4]/2", AL: "d5@2 ~ e5", AM: "[f5@2 e5 f5@3 e5 c5@9]/2", AN: "[c5@3 a4@3 g4@10]/2",
AO: "[~@3 e5@2 d5 c5 a4]/2", AP: "d5@3 ~", AQ: "[f5@3 e5@3 c5@14 ~@4]/3", AR: "e5@3 ~ d5@3 ~ e5@3 ~ d5@3 ~",
AS: "[e5@3 ~ d5@3 ~ e5@3 ~ d5 ~ f5@5 ~ e5@3 ~ f5@3 ~ e5@3 ~]/2",
AT: "[f5@3 ~ e5@3 ~ f5@3 ~ g5 ~ a5@5 ~ g5@3 ~ a5@3 ~ g5@3 ~]/2",
AU: "[a5@3 ~ g5@3 ~ a5@3 ~ g5 ~ e5@4 ~@2 d5@3 ~ e5@3 ~ d5@3 ~]/2",
AV: "[e5@3 ~@5 f5@3 ~@3 e5@5 ~ d5@3 ~ e5@3 ~ d5@3 ~]/2", AW: "e5@3 ~@5 f5@3 ~@5", AX: "e5 ~@3",
})).s("gm_trumpet").gain(0.45)
// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
~@9 A@2 B@2 C@2 A D E@2 F@2 G@2 E H I J@2 K@2 L I M ~ N O@2 P@2 Q@4 O@2 P@2 Q@4 O@2 R@2 S@3 T U V W X Y Z ~ AA@2 AB@2
AC@3 ~ AA@2 AB@2 AC@3 AD AE@2 AF@2 AG@3 AH AE@2 AI@2 AJ@2 AK AD AE@2 AL@2 AM@2 ~ AN AO AP AQ AK AR AS@2 ~ AA@2 AB@2
AC@3 ~ AA@2 AB@2 AC@3 AT@2 AU AV@2 AW@3 AX@2 AY AZ@2 BA@2 ~ AX@2 AU BB@2 BC@2 ~@7 BD BE@2 BF@2 BG@2 BH@2 BE@2 BF@2
BG@2 BI BJ
>`.pickRestart({
A: "c4 c5", B: "d4 d5", C: "f4 f5", D: "c4@3 ~@5 f4@3 ~@5", E: "c5!2", F: "d5!2", G: "f5!2", H: "c5 ~ f4 ~",
I: "[e4,g4,c5]!4", // C
J: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] [f4,a4] [f4,a4]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2, ~@7 d5@3 ~@6]/2", // C F Dm
K: "[[f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5] [f4,a4,c5]@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2]/2", // Dm F
L: "[f4,a4,c5]!4", M: "[e4,g4,c5] [f4,a4,c5]", N: "g4", O: "a4/2", P: "c5/2", Q: "g4/4", R: "f4!4", S: "c4/3",
T: "c4!4", U: "d4!4", V: "d4@2 d4@2 d4@2 d4 c4", W: "c4", X: "d4", Y: "e4", Z: "e4@3 ~", AA: "[~ c5 e5 d5@4 ~]/2",
AB: "[~ d5!2 c5@4 ~]/2", AC: "[~ a4 c5 e5@2 c5@2 c5@4 ~]/3", AD: "~@3 c5", AE: "[e5@2 e5@2 d5@2 c5 d5@7 d5 e5]/2",
AF: "[f5@2 e5@2 f5@2 e5 d5@3 c5@4 a4!2]/2", AG: "[c5@2 a4@2 c5@2 d5 e5@17]/3", AH: "~@6 c5!2",
AI: "[f5@2 e5@2 f5@2 e5 d5@3 c5@2 c5@2 c5@2]/2", AJ: "[c5@2 a4@2 e5@2 d5 c5@9]/2", AK: "c5",
AL: "[f5@2 e5@2 f5@2 e5 c5@5 ~@2 c5!2]/2", AM: "[c5@2 a4@2 c5@2 d5 e5@5 ~@4]/2", AN: "e5 c5 g4 e5", AO: "c5 g4 e5 c5",
AP: "f5 d5 a4 f5", AQ: "d5 a4 f5 d5", AR: "d5", AS: "[e5@7 ~]/2", AT: "[e5 ~@2 e5@2 d5 c5 a4]/2", AU: "d5@2 ~ e5",
AV: "[f5@2 e5 f5@3 e5 c5@5 ~@4]/2", AW: "[c5 a4 g4@6]/3", AX: "[~@3 e5@2 d5 c5 a4]/2", AY: "d5 e5 f5 e5",
AZ: "[f5@2 e5@2 f5@2 e5 c5@3 a4@2 c5@2 a4@2]/2", BA: "[c5@2 a4@2 e5@2 d5 e5@7 ~@2]/2", BB: "[f5@2 e5 f5@3 e5 c5@9]/2",
BC: "[c5@3 a4@3 g4@10]/2", BD: "e5@3 ~ d5@3 ~ e5@3 ~ d5@3 ~",
BE: "[e5@3 ~ d5@3 ~ e5@3 ~ d5 ~ f5@5 ~ e5@3 ~ f5@3 ~ e5@3 ~]/2",
BF: "[f5@3 ~ e5@3 ~ f5@3 ~ g5 ~ a5@5 ~ g5@3 ~ a5@3 ~ g5@3 ~]/2",
BG: "[a5@3 ~ g5@3 ~ a5@3 ~ g5 ~ e5@4 ~@2 d5@3 ~ e5@3 ~ d5@3 ~]/2",
BH: "[e5@3 ~@5 f5@3 ~@3 e5@5 ~ d5@3 ~ e5@3 ~ d5@3 ~]/2", BI: "e5@3 ~@5 f5@3 ~@5", BJ: "e5 ~@3",
})).s("gm_clarinet").gain(0.45)
// chords · alto sax · "Alto Saxophone"
const alto_sax = note(`<
~@17 A B@2 C@2 D A E A B@2 C@2 D A E ~ F G@2 H@2 I@4 G@2 H@2 I@4 G@2 J@2 K@2 L@2 M N@2 M O@2 P Q@2 R@2 S@2 T@2 Q@2 R@2
S@2 U@2 ~@28 M V W ~ X@2 Y@2 Z@3 ~ X@2 Y@2 Z@3 AA@2 AB AC@2 AD@3 ~@2 AE@2 D@2 A@2 AF ~ AE@2 D@2 A@2 AF ~ AE@2 D@2 A
B@2 C@2 AG@2 E A B@2 C@2 AG@2 E AF
>`.pickRestart({
A: "[e4,g4,c5]!4", // C
B: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] [f4,a4] [f4,a4]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2, ~@7 d5@3 ~@6]/2", // C F Dm
C: "[[f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5]@2 [f4,a4,d5] [f4,a4,c5]@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2]/2", // Dm F
D: "[f4,a4,c5]!4", E: "[e4,g4,c5] [f4,a4,c5]", F: "c4", G: "d4/2", H: "f4/2", I: "c4/4", J: "f4!4", K: "c4/2",
L: "[~@3 e4@2 e4 d4 c4]/2", M: "d4", N: "[f4@2 e4@2 f4@2 e4 c4@9]/2", O: "[e4@7 ~]/2",
P: "e4@3 ~ d4@3 ~ e4@3 ~ d4@3 ~", Q: "[e4@3 ~ d4@3 ~ e4@3 ~ d4 ~ f4@5 ~ e4@3 ~ f4@3 ~ e4@3 ~]/2",
R: "[f4@3 ~ e4@3 ~ f4@3 ~ g4 ~ a4@5 ~ g4@3 ~ a4@3 ~ g4@3 ~]/2",
S: "[a4@3 ~ g4@3 ~ a4@3 ~ g4 ~ e4@4 ~@2 d4@3 ~ e4@3 ~ d4@3 ~]/2",
T: "[e4@3 ~@5 f4@3 ~@3 e4@5 ~ d4@3 ~ e4@3 ~ d4@3 ~]/2", U: "[e4@3 ~@5 f4@3 ~@3 e4@14 ~@4]/2", V: "e4", W: "e4@3 ~",
X: "[~ c4 e4 d4@4 ~]/2", Y: "[~ d4!2 c4@4 ~]/2", Z: "[~ a3 c4 e4@2 c4@2 c4@4 ~]/3", AA: "[e4 ~@2 e4@2 d4 c4 a3]/2",
AB: "d4@2 ~ e4", AC: "[f4@2 e4 f4@3 e4 c4@5 ~@4]/2", AD: "[c4 a3 g3@6]/3", AE: "[f4,a4,d5]!4", AF: "[e4,g4,c5] ~@3",
AG: "[[f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5] [e4,g4,c5]@3 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2]/2", // F C
})).s("gm_alto_sax").gain(0.45)
// chords · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note(`<
A@3 B@2 C@2 D E D@2 F@2 G@2 D E ~@65 H B@2 C@2 I@4 B@2 C@2 J@4 B@2 C@2 I@4 K L H ~@66
>`.pickRestart({
A: "c4/3", B: "d4/2", C: "f4/2", D: "c4 c5", E: "c4@3 ~@5 f4@3 ~@5", F: "d4 d5", G: "f4 f5", H: "c4", I: "c4/4",
J: "c4/2", K: "d4", L: "f4@2 e4@2 f4@2 e4 c4",
})).s("gm_alto_sax").gain(0.25)
// bass · tuba · "Euphonium (Treble Clef)"
const bass = note(`<
A@2 B@2 C@2 D@2 E@2 B@2 C@2 F@2 G H B@2 C@2 F@2 E@2 B@2 C@2 F@2 I@2 J K@2 L@2 M@2 N O@2 P@2 Q@2 ~ N O@2 R@2 S@3 T@2 U
V W U J X H B@2 C@2 F@2 E@2 B@2 C@2 F@2 Y@2 O@2 Z@2 AA@3 N O@2 P@2 AB@3 AC O@2 AD@2 AE@2 ~ T@2 AF AG@2 U AH@2 H B@2
C@2 F@2 E@2 B@2 C@2 F@2 G AI@2 AJ AK@2 AL@3 AM@2 AN AO@2 AP@2 ~ AM@2 AJ AQ@2 AR@2 ~ AM@2 AF AS@3 H B@2 C@2 F@2 E@2 B@2
C@2 F@2 G AT
>`.pickRestart({
A: "[e3@20 d3@3 ~ e3@3 ~ d3@3 ~]/2", B: "[e3@3 ~ d3@3 ~ e3@3 ~ d3 ~ f3@5 ~ e3@3 ~ f3@3 ~ e3@3 ~]/2",
C: "[f3@3 ~ e3@3 ~ f3@3 ~ g3 ~ a3@5 ~ g3@3 ~ a3@3 ~ g3@3 ~]/2",
D: "[a3@3 ~ g3@3 ~ a3@3 ~ g3 ~ e3@5 ~ d3@3 ~ e3@3 ~ d3@3 ~]/2",
E: "[e3@3 ~@5 f3@3 ~@3 e3@5 ~ d3@3 ~ e3@3 ~ d3@3 ~]/2",
F: "[a3@3 ~ g3@3 ~ a3@3 ~ g3 ~ e3@4 ~@2 d3@3 ~ e3@3 ~ d3@3 ~]/2", G: "e3@3 ~@5 f3@3 ~@5",
H: "e3@3 ~ d3@3 ~ e3@3 ~ d3@3 ~", I: "[e3@3 ~@5 f3@3 ~@3 e3@17 ~]/2", J: "e3", K: "f3/2", L: "a3/2", M: "e3/2",
N: "~@6 c3!2", O: "[e3@2 e3@2 d3@2 c3 d3@7 d3 e3]/2", P: "[f3@2 e3@2 f3@2 e3 d3@3 c3@2 c3@2 c3@2]/2",
Q: "[c3@2 a2@2 e3@2 d3 c3@9]/2", R: "[f3@2 e3@2 f3@2 g3 a3@5 ~@2 g3!2]/2", S: "[a3@2 g3@2 a3@2 g3 e3@17]/3",
T: "[~@3 e3@2 e3 d3 c3]/2", U: "d3", V: "f3@2 e3@2 f3@2 e3 c3", W: "c3", X: "e3@3 ~",
Y: "[e3@3 ~@5 f3@3 ~@3 e3@14 c3@4]/2", Z: "[f3@2 e3@2 f3@2 e3 d3@3 c3@4 a2!2]/2", AA: "[c3@2 a2@2 c3@2 d3 e3@17]/3",
AB: "[c3@2 a2@2 e3@2 d3 c3@17]/3", AC: "~@3 c3", AD: "[f3@2 e3@2 f3@2 e3 c3@5 ~@2 c3!2]/2",
AE: "[c3@2 a2@2 c3@2 d3 e3@5 ~@4]/2", AF: "d3@3 ~", AG: "[f3@2 e3@2 f3@2 e3 c3@9]/2", AH: "[e3@7 ~]/2",
AI: "[e3 ~@2 e3@2 d3 c3 a2]/2", AJ: "d3@2 ~ e3", AK: "[f3@2 e3 f3@3 e3 c3@5 ~@4]/2", AL: "[c3 a2 g2@6]/3",
AM: "[~@3 e3@2 d3 c3 a2]/2", AN: "d3 e3 f3 e3", AO: "[f3@2 e3@2 f3@2 e3 c3@3 a2@2 c3@2 a2@2]/2",
AP: "[c3@2 a2@2 e3@2 d3 e3@7 ~@2]/2", AQ: "[f3@2 e3 f3@3 e3 c3@9]/2", AR: "[c3@3 a2@3 g2@10]/2",
AS: "[f3@3 e3@3 c3@14 ~@4]/3", AT: "e3 ~@3",
})).s("gm_tuba").gain(0.45)
// bass · tuba · "Euphonium (Treble Clef)"
const bass_2 = note(`<
~@17 A B@2 C@2 D@2 E@2 B@2 C@2 D@2 F@2 G H@2 I@2 J@4 H@2 I@2 J@4 H@2 K@2 L@3 ~@3 G M N@2 ~ O@2 P@2 Q@3 ~ O@2 P@2 Q@3 R
~@28 M S T ~ O@2 P@2 Q@3 ~ O@2 P@2 Q@3 U@2 V W@2 X@3 Y@2 Z AA@2 AB@2 ~@3 AC@2 AD@2 AE@2 AF AG AH AI@3 ~ O@2 P@2 Q@3 ~
O@2 P@2 Q@3 AJ
>`.pickRestart({
A: "e3@3 ~ d3@3 ~ e3@3 ~ d3@3 ~", B: "[e3@3 ~ d3@3 ~ e3@3 ~ d3 ~ f3@5 ~ e3@3 ~ f3@3 ~ e3@3 ~]/2",
C: "[f3@3 ~ e3@3 ~ f3@3 ~ g3 ~ a3@5 ~ g3@3 ~ a3@3 ~ g3@3 ~]/2",
D: "[a3@3 ~ g3@3 ~ a3@3 ~ g3 ~ e3@4 ~@2 d3@3 ~ e3@3 ~ d3@3 ~]/2",
E: "[e3@3 ~@5 f3@3 ~@3 e3@5 ~ d3@3 ~ e3@3 ~ d3@3 ~]/2", F: "[e3@3 ~@5 f3@3 ~@3 e3@17 ~]/2", G: "c3", H: "d3/2",
I: "f3/2", J: "c3/4", K: "f3!4", L: "c3/3", M: "d3", N: "[e3@7 ~]/2", O: "[~ c3 e3 d3@4 ~]/2", P: "[~ d3!2 c3@4 ~]/2",
Q: "[~ a2 c3 e3@2 c3@2 c3@4 ~]/3", R: "c3@3 c3", S: "e3", T: "e3@3 ~", U: "[e3 ~@2 e3@2 d3 c3 a2]/2", V: "d3@2 ~ e3",
W: "[f3@2 e3 f3@3 e3 c3@5 ~@4]/2", X: "[c3 a2 g2@6]/3", Y: "[~@3 e3@2 d3 c3 a2]/2", Z: "d3 e3 f3 e3",
AA: "[f3@2 e3@2 f3@2 e3 c3@3 a2@2 c3@2 a2@2]/2", AB: "[c3@2 a2@2 e3@2 d3 e3@7 ~@2]/2", AC: "[f3,d4]!4",
AD: "[f3,c4]!4", AE: "[e3,c4]!4", AF: "[e3,c4] ~@3", AG: "e3 d3 c3 a2", AH: "d3@3 ~", AI: "[f3@3 e3@3 c3@14 ~@4]/3",
AJ: "e3 ~@3",
})).s("gm_tuba").gain(0.45)
// bass · tuba · "Euphonium (Treble Clef)" · soft notes
const bass_soft = note(`<
A@3 B@2 C@2 D E D@2 F@2 G@2 D E ~@65 H I@2 J@2 K@4 I@2 J@2 L@4 I@2 J@2 K@4 M N H ~@66
>`.pickRestart({
A: "c3/3", B: "[d3 d4@3]/2", C: "[f3 f4@3]/2", D: "c3 c4", E: "c3@3 ~@5 f3@3 ~@5", F: "d3 d4", G: "f3 f4", H: "c3",
I: "d3/2", J: "f3/2", K: "c3/4", L: "c3/2", M: "d3", N: "f3@2 e3@2 f3@2 e3 c3",
})).s("gm_tuba").gain(0.25)
// bass · tuba · "B♭ Sousaphone"
const bass_3 = note(`<
A@3 B@2 C@2 D@2 E@2 B@2 C@2 D@2 F@2 G@2 H@2 F I J@2 K@2 L@2 J M@2 N B@2 C@2 O@4 B@2 C@2 O@4 B@2 H@2 A@3 J K P N Q R S
N T@2 U@2 V@4 T@2 U@2 W@2 I X N B@2 C@2 O@4 B@2 C@2 E@4 B@2 C@2 O@4 Q Y N Q R S J@2 K@2 L@2 J I N@2 Q@2 Z@2 N I AA@2
G@2 H@2 F@2 AB@2 K@2 L@2 J@2 AB@2 G@2 H@2 F@2 AB@2 K@2 L@2 F@2 G@2 H@2 F I F@2 G@2 H@2 J I AC
>`.pickRestart({
A: "c2/3", B: "d2/2", C: "f2/2", D: "[c2@3 f2]/2", E: "c2/2", F: "c2!2", G: "d2!2", H: "f2!2", I: "c2 ~ f1 ~",
J: "c2!4", K: "d2!4", L: "f2!4", M: "[c2@2 ~@2 f1@2 ~ c2@7 c2@2]/2", N: "c2", O: "c2/4", P: "d2@2 d2@2 d2@2 d2 c2",
Q: "d2", R: "e2", S: "e2@3 ~", T: "[~ c2 e2 d2@4 ~]/2", U: "[~ d2!2 c2@4 ~]/2", V: "[~ a1 c2 e2@2 c2@2 c2@9]/4",
W: "[~ a1 c2 e2@2 c2@2 c2]/2", X: "c2@3 c2", Y: "f2@2 e2@2 f2@2 e2 c2", Z: "f2", AA: "[e2 ~@2 e2@2 d2 c2 a1]/2",
AB: "[c2 ~@2 e2@2 d2 c2 a1]/2", AC: "c2 ~@3",
})).s("gm_tuba").gain(0.45)
// drums · snare
const snare = s("sd").struct(`<
~@9 A@8 B@7 C B@7 A C D C D C D C D C D C D C D C D C D C D C D C D C D C D B@11 C B@7 C@2 D C D C D C D C D C D C D C
D C D C D C D C D C D C D B@2 E F B@7 C B@7 A G ~ B@6 G ~ B@6 G ~ B@6 G ~ B@3 H B@7 C B@7 ~@2
>`.pickRestart({
A: "x!2", B: "~ x", C: "~@4 x ~@2 x", D: "~ x ~@2 x ~@3", E: "x!4", F: "x!8", G: "x", H: "~@4 x ~ x!2",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct("<A@17 B@15 A B@79 ~ B@15 A C ~ B@6 C ~ B@6 C ~ B@6 C ~ B@19 A C>".pickRestart({
A: "x!2", B: "x!4", C: "x",
})).gain(0.4)
// … 37 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.