0:00/0:00
// Cartoon Heroes — Aqua
// 210 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 186 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(210/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, A@4 for four bars: edit a riff to change every repeat.
// bass · synth bass 2
const bass = note(`<
~@29 A B C D E D F G H I J@2 K@2 L M N O P Q R S@4 ~ T D U V W X Y@2 Z@2 AA@2 AB AC D U AD AE AF Y@2 AG@2 AH M AB AI ~
AJ G J@4 B C D E AK F G AL AM AN@2 AO@2 AP AQ AB AR AS AT ~ AU@2 AV@2 L AW AB E AX AY AM AZ@2 BA@2 BB BC N BD AS F BE
BF AM BG@2 BH@3 BI@3 BJ@2 BK@2 BL@3 BM C BN BO BP BQ R BR@2 BS@2 L AQ BT E V BU BP BV R BR@2 BS@2 L AQ BT E V BU AM
BW@2 BX@2 B BY ~
>`.pickRestart({
A: "~@12 ab1@3 ~", B: "~@3 ab1@3 ~@3 ab1@3 ~@4", C: "ab1@3 ~@3 ab1@3 ~@4 ab1@3", D: "~@3 ab1@3 ~@4 ab1@3 ~@3",
E: "ab1@3 ~@4 ab1@3 ~@3 ab1@3", F: "~ ab1@3 ~@3 ab1@3 ~@4 ab1@2", G: "~@4 ab1@3 ~@4 ab1@3 ~@2",
H: "~ ab1@3 ~@4 ab1@3 ~@3 ab1@2", I: "~@5 ab1@3 ~@3 ab1@3 ~@2",
J: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
K: "[~@2 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 db1@3 ~]/2", L: "~@3 db1@3 ~@3 db1@3 ~@4",
M: "db1@3 ~@3 db1@3 ~@4 db1@3", N: "~@3 db1@3 ~@4 db1@3 ~@3", O: "e1@3 ~@4 e1@3 ~@3 e1@3", P: "~@4 e1@3 ~@3 e1@3 ~@3",
Q: "~ e1@3 ~@3 e1@3 ~@4 e1@2", R: "~@5 eb1@3 ~@3 eb1@3 ~@2",
S: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2", T: "~@13 ab1@3", U: "ab1@3 ~@4 c2@3 ~@3 c2@3",
V: "~@4 c2@3 ~@3 c2@3 ~@3", W: "~ db1@3 ~@3 db1@3 ~@4 db1@2", X: "~@4 db1@3 ~@4 eb1@3 ~@2",
Y: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
Z: "[~@2 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~]/2",
AA: "[~@2 c2@3 ~@4 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~]/2", AB: "~@3 eb1@3 ~@4 eb1@3 ~@3",
AC: "eb1@3 ~@4 eb1@3 ~@3 ab1@3", AD: "~@4 c2@3 ~@4 c2@3 ~@2", AE: "~ db1@3 ~@4 db1@3 ~@3 db1@2",
AF: "~@5 db1@3 ~@3 eb1@3 ~@2", AG: "[~@2 ab1@3 ~@4 ab1@3 ~@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~]/2",
AH: "~@3 c2@3 ~@3 db1@3 ~@4", AI: "eb1@3 ~@4 eb1@3 ~@6", AJ: "~@7 ab1@3 ~@4 ab1@2", AK: "~@4 ab1@3 ~@3 ab1@3 ~@3",
AL: "~ ab1@3 ~@4 db1@3 ~@3 db1@2", AM: "~@5 db1@3 ~@3 db1@3 ~@2",
AN: "[~@2 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~@4 e1@3 ~]/2",
AO: "[~@2 e1@3 ~@4 e1@3 ~@3 e1@3 ~@4 e1@3 ~@3 e1@3 ~]/2", AP: "~@3 e1@3 ~@3 e1@3 ~@4",
AQ: "eb1@3 ~@3 eb1@3 ~@4 eb1@3", AR: "eb1@3 ~@4 eb1@3 ~@3 eb1@3", AS: "~@4 eb1@3 ~@3 eb1@3 ~@3",
AT: "~ eb1@3 ~@4 eb1@3 ~@5", AU: "[~@8 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
AV: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3 db1@3 ~]/2", AW: "db1@3 ~@3 eb1@3 ~@4 eb1@3",
AX: "~@4 ab1@3 ~@3 c2@3 ~@3", AY: "~ c2@3 ~@3 c2@3 ~@4 c2@2",
AZ: "[~ db1@3 ~@4 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
BA: "[~@2 eb1@3 ~@4 ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2", BB: "~@3 c2@3 ~@3 c2@3 ~@4",
BC: "c2@3 ~@3 c2@3 ~@4 db1@3", BD: "db1@3 ~@4 eb1@3 ~@3 eb1@3", BE: "~@4 ab1@3 ~@4 c2@3 ~@2",
BF: "~ c2@3 ~@4 c2@3 ~@3 c2@2", BG: "[~@2 db1@3 ~@3 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
BH: "[~@2 eb1@3 ~ db2@42]/3", BI: "[~@5 e2@18 ~]/3", BJ: "[~@7 eb2@5 ~@2 ab2@14 ~@4]/2",
BK: "[~ ab2@5 ~@2 g2@13 ~@7 f2@4]/2", BL: "[~@2 eb2@33 ~@13]/3", BM: "~@9 ab1@3 ~@4", BN: "~@3 c2@3 ~@4 c2@3 ~@3",
BO: "c2@3 ~@4 c2@3 ~@3 db1@3", BP: "~@4 db1@3 ~@4 db1@3 ~@2", BQ: "~ db1@3 ~@3 eb1@3 ~@4 eb1@2",
BR: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~]/2",
BS: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 db1@3 ~@3 db1@3 ~]/2", BT: "~@3 eb1@3 ~@4 ab1@3 ~@3",
BU: "~ c2@3 ~@3 c2@3 ~@4 db1@2", BV: "~ db1@3 ~@4 eb1@3 ~@3 eb1@2",
BW: "[~@2 db1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
BX: "[~@2 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~]/2", BY: "ab1@3 ab1@10 ~@3",
})).s("gm_synth_bass_2").gain(0.38)
// other · violin
const violin = note("<~@81 [~@5 ab5@3] ~@102 [~@3 ab5@6 ~@7] ~>").s("gm_violin").gain(0.12).pan(0.2)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@6 A@4 B@3 C@3 D@7 E@6 F@7 G@3 H@3 I@7 J@5 K@8 L@5 M@8 L@5 N@2 ~ O@3 P@7 Q@3 R@8 S@2 T@8 U@5 V@8 W@5 X@3 Y@8 Z@7 AA@8
AB@5 AC@8 AD@5 AE@8 AF ~
>`.pickRestart({
A: "[~@3 [eb3,ab3,c4,eb4]@13]/4", B: "[e3,ab3,c4,e4]/3", C: "[~ [f3,ab3,c4,f4]@11]/3",
D: "[~@8 [gb3,ab3,c4,gb4]@52 ~ [f4,f5]@26 [g4,g5]@13 [ab4,ab5]@12, ~@61 [ab3,db5]@51]/7", // Ab7 F G Ab Db5
E: "[~ [e4,e5]@26 [gb4,gb5]@13 [ab4,ab5]@13 eb5@13 [f4,f5]@13 [bb4,bb5]@13 ~@4, ~ [ab3,db5]@52 [eb3,g3,eb4]@39 ~@4]/6", // E Gb Ab F Bb Db5 Eb
F: "[~@9 [eb3,ab3,c4,eb4]@52 [e3,ab3,c4,e4]@51]/7", G: "[~ [f3,ab3,c4,f4]@47]/3", H: "[~@5 [gb3,ab3,c4,gb4]@43]/3",
I: "[~@9 [db4,f4,db5]@52 [e4,ab4,e5]@51]/7", J: "[~ [eb3,eb4,ab4]@26 [eb3,eb4,g4]@26 [eb3,eb4,f4]@26 ~]/5",
K: "[[eb3,eb4,g4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@12]/8", // Eb Ab Cm Db Eb
L: "[~ [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13]/5", // Ab Cm Db
M: "[[g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@12]/8", // Eb Ab Cm Db Eb
N: "[[g3,eb4,g4,bb4]@13 ~@3]/2", O: "[~ [eb3,ab3,c4,eb4]@11]/3", P: "[~@2 [e3,ab3,c4,e4]@13 [f3,ab3,c4,f4]@13]/7",
Q: "[~ [gb3,ab3,c4,gb4]@47]/3", R: "[~@5 [db4,f4,db5]@52 [e4,ab4,e5]@52 [eb3,eb4,ab4]@19]/8",
S: "[~@7 [eb3,eb4,g4]@25]/2", // Eb
T: "[~ [eb3,eb4,f4]@26 [eb3,eb4,g4]@26 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@26 [db3,db4,f4,ab4]@23]/8", // Ebsus2 Eb Ab Cm Db
U: "[~@3 [g3,eb4,g4,bb4]@26 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@25]/5", // Eb Ab Cm
V: "[~ [db3,db4,f4,ab4]@26 ~ [g3,eb4,g4,bb4]@25 [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@26 ~ [db3,db4,f4,ab4]@22]/8", // Db Eb Ab Cm Db
W: "[~@2 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@12]/5", // Eb Ab Cm
X: "[~ [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@10]/3", Y: "[~@3 [db3,db4,f4,ab4]@26 [e3,b3,e4,ab4]@26 [eb3,ab3,eb4]@9]/8",
Z: "[~@4 [eb3,g3,eb4]@13 [eb3,eb4,ab4]@13 [eb3,eb4,g4]@13 [eb3,c4,eb4,ab4]@13]/7", // Eb Ab5 Eb Ab
AA: "[[c3,c4,eb4,g4]@13 [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13 [c3,c4,eb4,g4]@12]/8", // Cm Db Eb Ab Cm
AB: "[~ [db3,db4,f4,ab4]@13 [g3,eb4,g4,bb4]@13 [eb3,c4,eb4,ab4]@13]/5", // Db Eb Ab
AC: "[~ [c3,c4,eb4,g4]@25 [db3,db4,f4,ab4]@26 [g3,eb4,g4,bb4]@26 ~ [eb3,c4,eb4,ab4]@26 [c3,c4,eb4,g4]@23]/8", // Cm Db Eb Ab Cm
AD: "[~@3 [db3,db4,f4,ab4]@26 [g3,eb4,g4,bb4]@26 [eb3,c4,eb4,ab4]@25]/5", // Db Eb Ab
AE: "[~ [c3,c4,eb4,g4]@26 [db3,db4,f4,ab4]@26 [c4,eb4,ab4,c5]@26 [eb3,eb4,g4,c5]@26 [ab3,c4,eb4,ab4]@23]/8", // Cm Db Ab Cm Ab
AF: "~@3 [ab3,c4,eb4,ab4]@6 ~@7", // Ab
})).s("gm_string_ensemble_2").gain(0.04).pan(0.9)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@7 A B C D E F G H I J K A ~@36 L@3 M@4 N@5 O@4 P@2 Q@2 R@5 S@2 T U ~@12 V@6 W@7 X@6 Y@4 Z@2 AA@3 AB@2 AC@2 AD@8 AE
AF AG AH AI AJ AK AL AM ~@3 AN@2 AO@4 AP@7 AQ@6 AR@7 AS@2 AT@8 AU ~
>`.pickRestart({
A: "~@2 [eb3,ab3] ~@9 [ab2,eb3,ab3] ~@3, ~ ab2 ~@6", B: "~@6 [ab2,eb3,ab3] ~@8 eb3", C: "[ab2,ab3] ~@15",
D: "~@7 [ab2,eb3,ab3] ~@8", E: "eb3 [ab2,ab3] ~@8 [ab2,eb3,ab3] ~@5", F: "~@4 [ab2,eb3,ab3] ~@11",
G: "~@10 [eb3,ab3] ~@5, ~@5 ab2 ~@2", H: "~@4 [ab2,eb3,ab3] ~@9 [ab2,eb3,ab3] ~", I: "~@8 [ab2,eb3,ab3] ~@7",
J: "~@15 [ab2,eb3,ab3]", K: "~@9 [ab2,eb3,ab3] ~@6", L: "[~@3 ab4 bb4 [c5,db5] eb5 f5 g5 ~ ab5@26 g5@12]/3",
M: "[~ bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@5]/4", N: "[~@2 ab5@26 g5@13 bb5@13 ab5@26]/5",
O: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [ab4,c6]@6 ~ ab5@13 c6@13 g5@12]/4", // Eb Fm Gm Ab
P: "[~ bb5@13 [db4,f5]@6 ~ [eb4,g5]@6 [f4,ab5]@5]/2", // Db Eb Fm
Q: "[~@2 [g4,bb5]@6 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [ab4,c6]@5]/2", // Gm Eb Fm Gm Ab
R: "[~@2 ab5@13 c6@13 g5@13 bb5@13 [db4,f5]@6 ~ [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6]/5", // Db Eb Fm Gm
S: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 ~@6]/2", T: "~@14 ab4 [bb4,c5]", U: "db5 eb5 f5 g5 ab5 ~@11",
V: "[~@5 f5@26 g5@13 ab5@13 e5@26 gb5@13]/6", W: "[ab5@13 eb5@13 f5@13 bb5@26 f5@13 bb5@13 eb6@13 ~@7 [ab4,bb4]]/7",
X: "[c5 db5 eb5 [f5,g5] ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 ~ [f4,ab5]@6]/6", // Fsus2 Eb Fm
Y: "[[g4,bb5]@6 ~ [ab4,c6]@6 ab5@26 g5@13 bb5@12]/4", Z: "[~@2 ab5@25 [eb4,g5]@5]/2",
AA: "[~@2 [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 ab5@13 ~ c6@13]/3", AB: "[g5@13 bb5@13 [db4,f5]@6]/2",
AC: "[[eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 [eb4,g5]@6 ~ [f4,ab5]@6]/2", // Eb Fm Gm Eb Fm
AD: "[~ [g4,bb5]@6 [ab4,c6]@6 ~ ab5@13 c6@13 g5@13 bb5@13 [db4,f5]@6 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@6 ~ ab3@2 ~ db3 ~@6]/8", // Gm Ab Db Eb Fm Gm Eb Fm …
AE: "db3 ~@2 ab3 ~@2 db3 ~@6 db3 ~@2", AF: "ab3 ~@2 db3 ~@6 db3 ~@2 ab3 ~@2", AG: "db3 ~@6 db3 ~@2 ab3 ~@2 db3 ~@2",
AH: "~@4 db3 ~@2 ab3 ~@2 db3 ~@5", AI: "~ db3 ~@2 ab3 ~@2 db3 ~@6 db3 ~", AJ: "~ ab3 ~@2 db3 ~@6 db3 ~@2 ab3 ~",
AK: "~ eb3 ~@3 c3 ~@2 eb3 ~@2 ab3@2 ~ eb3 ~", AL: "~@5 eb3 ~@2 g3 ~@2 eb3 ~@3 c3", AM: "~@2 eb3 ~@2 g3 ~@2 eb3 ~@7",
AN: "[[ab4,bb4] c5 db5 eb5 [f5,g5] ~ ab5@26]/2", AO: "[g5@26 f5@26 [eb4,g5]@6 ~ [f4,ab5]@5]/4",
AP: "[~ [g4,bb5]@6 ~ [ab4,c6]@6 ab5@26 g5@26 f5@26 [eb4,g5]@6 ~ [f4,ab5]@6 ~ [g4,bb5]@6]/7", // Gm Ab Eb Fm Gm
AQ: "[[ab4,c6]@6 ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@5]/6", // Ab Eb Fm
AR: "[~@2 [g4,bb5]@6 [ab4,c6]@6 ~ ab5@26 g5@13 bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6]/7", // Gm Ab Eb Fm Gm
AS: "[[ab4,c6]@6 ~ ab5@13 c6@12]/2", // Ab
AT: "[~ g5@13 bb5@13 ab5@26 g5@6 ~ ab5@19 [eb4,g5]@6 ~ [f4,ab5]@6 [g4,bb5]@6 ~ [ab4,c6]@6 c6@23]/8", // Eb Fm Gm Ab
AU: "~@3 [ab4,ab5]@6 ~@7", // Ab
})).s("gm_string_ensemble_1").gain(0.06).pan(0.2)
// other · brass section
const brass_section = note(`<
~@19 A B C@2 D E@2 F G@6 H@3 I@3 J@7 K@3 L@3 M@5 N@2 O@3 P@3 Q@2 R@3 S@2 T@6 U@2 V@3 W@7 X@3 I@3 Y@7 Z@3 AA@3 AB@5
AC@2 AD@3 AE@8 AC@2 AF AG@2 AH@4 AI AJ AK AJ AL AM AN AO AP ~@3 AQ@2 AR@3 AS@2 AT@8 AU@5 AV@8 AW@8 ~@2
>`.pickRestart({
A: "~@12 db4 ~@3", B: "db4 ~@15", C: "[~@6 db4@15 ~@5 db4 ~@2 c4 ~@2]/2", D: "~ db4 ~@2 db4 ~@11",
E: "[~@11 db4@15 ~@6]/2", F: "~ db4 ~@3 eb4 ~@2 eb4 ~@7",
G: "[~@15 eb4@18 ~@4 eb4 ~@3 ab3@3 ab3@42 ~@4 g3@3 ab3@3]/6", H: "[ab3@21 ~@2 g3]/3", I: "[~ ab3@3 ab3@42 ~@2]/3",
J: "[~@2 g3@3 ab3@3 ab3@42 ~@4 c4@2 ~ db4@3 db4@42 ~@4 c4@3 db4@3]/7", K: "[db4@21 ~@2 d4]/3",
L: "[~ eb4@3 ~ eb4@42 ~]/3", M: "[~@2 d4@3 eb4@3 ~ eb4@42 ~@3 eb4@2 ~ ab3@3 ~ ab3@19]/5",
N: "[~@3 c4@19 ~@4 c4@3 db4@3]/2", O: "[~ db4@19 ~@4 eb4@19 ~@3 eb4@2]/3", P: "[~@2 ab3@3 ab3@19 ~@4 c4@19 ~]/3",
Q: "[~@2 c4@3 ~ db4@3 db4@19 ~@4]/2", R: "[eb4@23 ~@3 ab3@3 ab3@16 ~@3]/3",
S: "[~ ab3@3 c4@3 c4@16 ~@3 c4@3 ~ db4@2]/2",
T: "[~ db4@19 ~@4 eb4@19 ~@4 eb4@3 ab3@3 ab3@16 ~@3 ab3@4 c4@3 c4@16 ~]/6", U: "[~@3 c4@3 db4@3 db4@19 ~@4]/2",
V: "[eb4@23 ~@3 ab3@3 ab3@6 ~ ab3@2 ~@4 ab3@2 ~@4]/3",
W: "[~ g3@2 ~ ab3@3 ab3@42 ~@4 g3@3 ab3@3 ~ ab3@42 ~@3 g3@3 ab3@3 ~]/7", X: "[ab3@14 ~ g3]/3",
Y: "[~ c4@2 ~@2 db4@3 db4@42 ~@3 c4@3 ~ db4@3 db4@42 ~@3 d4@3 ~ eb4@3]/7", Z: "[eb4@21 ~@2 d4]/3",
AA: "[~ eb4@3 eb4@42 ~@2]/3", AB: "[~@2 eb4@2 ~ ab3@3 ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 db4@19 ~]/5",
AC: "[~@3 eb4@19 ~@4 eb4@3 ab3@3]/2", AD: "[ab3@19 ~@4 c4@19 ~@4 c4@2]/3",
AE: "[~ db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ~ ab3@16 ~@3 ab3@3 c4@3 ~ c4@16 ~@3 c4@3 db4@3 ~ db4@19]/8", AF: "~ ab3@15",
AG: "[~@3 ab3@4 ~ c4@3 c4@16 ~@3 c4@2]/2", AH: "[~@2 db4@3 db4@19 ~@4 eb4@23 ~@9 db4 ~@3]/4", AI: "~@6 db4 ~@9",
AJ: "db4 ~@9 db4 ~@5", AK: "~@3 db4 ~@12", AL: "~@4 db4 ~@8 db4 ~@2", AM: "~@7 db4 ~@8", AN: "~@5 c4 ~@8 c4 ~",
AO: "~@8 c4 ~@7", AP: "~@2 c4 ~@8 c4 ~@4", AQ: "[~@6 ab3@3 ab3@19 ~@4]/2", AR: "[c4@19 ~@4 c4@3 db4@3 db4@19]/3",
AS: "[~@4 eb4@19 ~@4 eb4@3 ab3@2]/2",
AT: "[~ ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ~ ab3@19 ~@3]/8",
AU: "[c4@19 ~@4 c4@3 db4@3 ~ db4@19 ~@4 eb4@19 ~@3 eb4@3 ab3@2]/5",
AV: "[~@2 ab3@19 ~@3 c4@19 ~@4 c4@3 ~ db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ab3@16 ~@4 ab3@2]/8",
AW: "[~ c4@3 c4@16 ~@4 c4@3 db4@3 db4@19 ~@4 eb4@19 ~@4 eb4@3 eb4@3 eb4@16 ~@3 ab3@4 ab3@3 ab3@16 ~@4]/8",
})).s("gm_brass_section").gain(0.41).pan(0.6)
// other · trombone
const trombone = note(`<
~@19 A B C@2 D E@2 F G@6 H@3 I@3 J@7 K@3 L@3 M@5 N@2 O@3 P@3 Q@2 R@3 S@2 T@6 U@2 V@3 W@7 X@3 I@3 Y@7 Z@3 L@3 AA@5 AB@2
AC@3 AD@8 AB@2 AE AF@2 AG@7 AH@3 AI@3 ~@3 AJ@2 AK@3 AL@2 AM@8 AN@5 AO@8 AP@8 ~@2
>`.pickRestart({
A: "~@12 db3@3 ~", B: "db3 ~@15", C: "[~@6 db3@15 ~@5 db3@3 c3@3]/2", D: "db3@3 ~ db3 ~@11", E: "[~@11 db3@15 ~@6]/2",
F: "~ db3 ~@3 eb3@3 eb3 ~@7", G: "[~@15 eb3@19 ~@7 ab2@3 ab2@42 ~@4 g2@3 ab2@3]/6", H: "[ab2@21 ~@2 g2]/3",
I: "[~ ab2@3 ab2@42 ~@2]/3", J: "[~@2 g2@3 ab2@3 ab2@42 ~@4 c3@2 ~ db3@3 db3@42 ~@4 c3@3 db3@3]/7",
K: "[db3@21 ~@2 d3]/3", L: "[~ eb3@3 eb3@42 ~@2]/3", M: "[~@2 d3@3 eb3@3 ~ eb3@42 ~@3 eb3@2 ~ ab2@3 ~ ab2@19]/5",
N: "[~@3 c3@19 ~@4 c3@3 db3@3]/2", O: "[~ db3@19 ~@4 eb3@19 ~@3 eb3@2]/3", P: "[~@2 ab2@3 ab2@19 ~@4 c3@19 ~]/3",
Q: "[~@2 c3@3 ~ db3@3 db3@19 ~@4]/2", R: "[eb3@23 ~@3 ab2@3 ab2@16 ~@3]/3",
S: "[~ ab2@3 c3@3 c3@16 ~@4 c3@3 db3@2]/2",
T: "[~ db3@19 ~@4 eb3@19 ~@4 eb3@3 ab2@3 ab2@16 ~@3 ab2@4 c3@3 c3@16 ~]/6", U: "[~@3 c3@3 db3@3 db3@19 ~@4]/2",
V: "[eb3@23 ~@3 ab2@3 ab2@6 ~ ab2@2 ~@4 ab2@2 ~@4]/3",
W: "[~ g2@2 ~ ab2@3 ab2@42 ~@4 g2@3 ab2@3 ~ ab2@42 ~@3 g2@3 ab2@3 ~]/7", X: "[ab2@14 ~ g2]/3",
Y: "[~ c3@2 ~@2 db3@3 db3@42 ~@3 c3@3 ~ db3@3 db3@42 ~@3 d3@3 ~ eb3@3]/7", Z: "[eb3@21 ~@2 d3]/3",
AA: "[~@2 eb3@2 ~ ab2@3 ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 db3@19 ~]/5", AB: "[~@3 eb3@19 ~@4 eb3@3 ab2@3]/2",
AC: "[ab2@19 ~@4 c3@19 ~@4 c3@2]/3",
AD: "[~ db3@3 db3@19 ~@4 eb3@23 ~@3 ab2@3 ~ ab2@16 ~@3 ab2@3 c3@3 ~ c3@16 ~@3 c3@3 db3@3 db3@19 ~]/8", AE: "~ ab2@15",
AF: "[~@3 ab2@4 c3@3 ~ c3@16 ~@3 c3@2]/2", AG: "[~@2 db3@3 db3@19 ~@4 eb3@23 ~@9 db4@39 ~@13]/7",
AH: "[db4@13 ~@3]/3", AI: "[~@4 c4@39 ~@5]/3", AJ: "[~@6 ab2@3 ab2@19 ~@4]/2", AK: "[c3@19 ~@4 c3@3 db3@3 db3@19]/3",
AL: "[~@4 eb3@19 ~@4 eb3@3 ab2@2]/2",
AM: "[~ ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 db3@19 ~@4 eb3@23 ~@3 ab2@3 ab2@19 ~@4]/8",
AN: "[c3@19 ~@4 c3@3 db3@3 ~ db3@19 ~@3 eb3@19 ~@4 eb3@3 ab2@2]/5",
AO: "[~@2 ab2@19 ~@3 c3@19 ~@4 c3@3 db3@3 ~ db3@19 ~@4 eb3@23 ~@3 ab2@3 ab2@16 ~@4 ab2@2]/8",
AP: "[~ c3@3 c3@16 ~@4 c3@3 db3@3 db3@19 ~@4 eb3@19 ~@4 eb3@3 eb3@3 eb3@16 ~@3 eb3@4 ab2@3 ab2@16 ~@4]/8",
})).s("gm_trombone").gain(0.42).pan(0.1)
// bass · tuba
const bass_2 = note("<~@19 A B C@2 D E@2 F G@3 ~@105 H@4 I@3 J@3 ~@41>".pickRestart({
A: "~@12 db2@3 ~", B: "db2 ~@15", C: "[~@6 db2@15 ~@5 db2@3 c2@3]/2", D: "db2@3 ~ db2 ~@11", E: "[~@11 db2@15 ~@6]/2",
F: "~ db2 ~@3 eb2@3 eb2 ~@7", G: "[~@15 eb2@19 ~@14]/3", H: "[~@12 db2@39 ~@13]/4", I: "[db2@13 ~@3]/3",
J: "[~@4 c2@39 ~@5]/3",
})).s("gm_tuba").gain(0.17)
// other · timpani
const timpani = note(`<
A B C D@3 E F ~@3 G H I ~@4 J K L ~@3 M N O P Q R ~@4 S T U ~@3 P V W X ~@3 Y Z AA ~@4 AB AC ~@4 AD AE AF ~@4 AB AG AH
~@3 AD AI AF ~@4 AJ AK ~@6 AL AM AN ~@3 AO AP AQ ~@4 AR AS AT ~@3 AO AU ~@5 AV AW AX ~@3 AO AU AY ~@4 AV AW AX ~@4 P
AZ ~@2 AN ~@2 BA ~ BB BC BD ~@20 BE BF BG ~@3 BH BI BJ ~@4 AI BK Q BL AH ~@2
>`.pickRestart({
A: "~@4 ab2 ~@6 eb2 ~@4", B: "~ ab2 ~@6 eb2 ~@5 ab2 ~", C: "~@15 ab0", D: "ab0!16", E: "ab0 [ab0,ab2]!11 ab2 ~@3",
F: "~@3 ab2 ~@12", G: "~@10 ab2 ~@5", H: "~ eb2 ~@5 ab2 ~@6 eb2 ~", I: "~@4 ab2 ~@6 ab2 ~@4",
J: "~@3 ab2 ~@5 eb2 ~@6", K: "ab2 ~@5 eb2 ~@6 db3 ~@2", L: "~@3 db3 ~@12", M: "~@11 db3 ~@4",
N: "~ ab2 ~@6 db3 ~@5 ab2 ~", O: "~@5 eb3 ~@5 eb3 ~@4", P: "~@15 eb3", Q: "~@5 bb2 ~@6 eb3 ~@3", R: "~@2 bb2 ~@13",
S: "~@7 eb3 ~@5 ab2 ~@2", T: "~@4 eb3 ~@6 ab2 ~@4", U: "~ e3 ~@6 e3 ~@7", V: "~@6 ab2 ~@5 eb3 ~@3",
W: "~@3 ab2 ~@5 bb2 ~@6", X: "bb2 ~@15", Y: "~@7 bb2 ~@6 eb2 ~", Z: "~@4 bb2 ~@6 eb2 ~@4", AA: "~ d3 ~@6 d3 ~@7",
AB: "eb3 ~@5 bb2 ~@6 eb3 ~@2", AC: "~@3 bb2 ~@12", AD: "~@8 eb3 ~@5 bb2 ~", AE: "~@5 eb3 ~@5 bb2 ~@4",
AF: "~@2 ab2 ~@5 ab2 ~@7", AG: "~@3 bb2 ~@6 ab2 ~@5", AH: "ab2 ~@15", AI: "~@5 eb3 ~@6 bb2 ~@3", AJ: "~@7 bb2 ~@8",
AK: "~@4 bb2 ~@11", AL: "~@2 eb3 ~@6 ab2 ~@5 eb3", AM: "~@6 ab2 ~@6 e3 ~@2", AN: "~@3 e3 ~@12", AO: "~@11 eb3 ~@4",
AP: "~ ab2 ~@6 eb3 ~@5 ab2 ~", AQ: "~@5 bb2 ~@5 bb2 ~@4", AR: "~@3 bb2 ~@5 eb2 ~@6", AS: "bb2 ~@5 eb2 ~@6 d3 ~@2",
// … 159 more lines
More by Aqua
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.