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: edit a riff to change every repeat.
// bass · synth bass 2
const bass = note(`<
~@29 A B C D E F G H I J K@2 L@2 M N O P Q R S T@2 U@2 ~ V D W X Y Z AA J AB@2 AC@2 AD AE F AF AG AH AI AJ@2 AK@2 AL N
AD AM ~ AN H K@2 AO@2 AP C D E F G H AQ AR AS@2 AT@2 AU AV AW AX AY AZ ~ BA@2 BB@2 M BC AD E BD BE BF BG@2 BH@2 BI BJ
O BK AW G BL BM AR BN@2 BO@3 BP@3 BQ@2 BR@2 BS@3 BT C BU BV BW BX AY I BY BZ@2 M CA CB E X CC BF CD S CE@2 BZ@2 M CA
CB G AG CF AR CG@2 CH@2 AP CI ~
>`.pickRestart({
A: "~@12 ab1@3 ~", B: "~@2 ab1@3 ~@4 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: "~@4 ab1@3 ~@3 ab1@3 ~@3", G: "~ ab1@3 ~@3 ab1@3 ~@4 ab1@2",
H: "~@4 ab1@3 ~@4 ab1@3 ~@2", I: "~ ab1@3 ~@4 ab1@3 ~@3 ab1@2", J: "~@5 ab1@3 ~@3 ab1@3 ~@2",
K: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
L: "[~@2 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 db1@3 ~]/2", M: "~@3 db1@3 ~@3 db1@3 ~@4",
N: "db1@3 ~@3 db1@3 ~@4 db1@3", O: "~@3 db1@3 ~@4 db1@3 ~@3", P: "e1@3 ~@4 e1@3 ~@3 e1@3", Q: "~@4 e1@3 ~@3 e1@3 ~@3",
R: "~ e1@3 ~@3 e1@3 ~@4 e1@2", S: "~@5 eb1@3 ~@3 eb1@3 ~@2",
T: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
U: "[~@2 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~]/2", V: "~@13 ab1@3", W: "ab1@3 ~@4 c2@3 ~@3 c2@3",
X: "~@4 c2@3 ~@3 c2@3 ~@3", Y: "~ db1@3 ~@3 db1@3 ~@4 db1@2", Z: "~@4 db1@3 ~@4 eb1@3 ~@2",
AA: "~ eb1@3 ~@4 eb1@3 ~@3 eb1@2", AB: "[~@2 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~]/2",
AC: "[~@2 c2@3 ~@4 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~]/2", AD: "~@3 eb1@3 ~@4 eb1@3 ~@3",
AE: "eb1@3 ~@4 eb1@3 ~@3 ab1@3", AF: "~ ab1@3 ~@3 c2@3 ~@4 c2@2", AG: "~@4 c2@3 ~@4 c2@3 ~@2",
AH: "~ db1@3 ~@4 db1@3 ~@3 db1@2", AI: "~@5 db1@3 ~@3 eb1@3 ~@2",
AJ: "[~@2 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
AK: "[~@2 ab1@3 ~@4 ab1@3 ~@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~]/2", AL: "~@3 c2@3 ~@3 db1@3 ~@4", AM: "eb1@3 ~@4 eb1@3 ~@6",
AN: "~@7 ab1@3 ~@4 ab1@2", AO: "[~@2 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~]/2",
AP: "~@3 ab1@3 ~@3 ab1@3 ~@4", AQ: "~ ab1@3 ~@4 db1@3 ~@3 db1@2", AR: "~@5 db1@3 ~@3 db1@3 ~@2",
AS: "[~@2 db1@3 ~@3 db1@3 ~@4 db1@3 ~@3 db1@3 ~@4 e1@3 ~]/2",
AT: "[~@2 e1@3 ~@4 e1@3 ~@3 e1@3 ~@4 e1@3 ~@3 e1@3 ~]/2", AU: "~@3 e1@3 ~@3 e1@3 ~@4",
AV: "eb1@3 ~@4 eb1@3 ~@3 eb1@3", AW: "~@4 eb1@3 ~@3 eb1@3 ~@3", AX: "~ eb1@3 ~@3 eb1@3 ~@4 eb1@2",
AY: "~@4 eb1@3 ~@4 eb1@3 ~@2", AZ: "~ eb1@3 ~@4 eb1@3 ~@5", BA: "[~@8 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~]/2",
BB: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3 db1@3 ~]/2", BC: "db1@3 ~@3 eb1@3 ~@4 eb1@3",
BD: "~@4 ab1@3 ~@3 c2@3 ~@3", BE: "~ c2@3 ~@3 c2@3 ~@4 c2@2", BF: "~@4 db1@3 ~@4 db1@3 ~@2",
BG: "[~ db1@3 ~@4 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
BH: "[~@2 eb1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~]/2", BI: "~@3 c2@3 ~@3 c2@3 ~@4",
BJ: "c2@3 ~@3 c2@3 ~@4 db1@3", BK: "db1@3 ~@4 eb1@3 ~@3 eb1@3", BL: "~@4 ab1@3 ~@4 c2@3 ~@2",
BM: "~ c2@3 ~@4 c2@3 ~@3 c2@2", BN: "[~@2 db1@3 ~@3 db1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
BO: "[~@2 eb1@3 ~ db2@42]/3", BP: "[~@5 e2@18 ~]/3", BQ: "[~@7 eb2@5 ~@2 ab2@14 ~@4]/2",
BR: "[~ ab2@5 ~@2 g2@13 ~@7 f2@4]/2", BS: "[~@2 eb2@33 ~@13]/3", BT: "~@9 ab1@3 ~@4", BU: "~@3 c2@3 ~@4 c2@3 ~@3",
BV: "c2@3 ~@4 c2@3 ~@3 db1@3", BW: "~@4 db1@3 ~@3 db1@3 ~@3", BX: "~ db1@3 ~@3 eb1@3 ~@4 eb1@2",
BY: "~@5 ab1@3 ~@4 c2@3 ~", BZ: "[~@2 c2@3 ~@4 c2@3 ~@3 c2@3 ~@4 db1@3 ~@3 db1@3 ~]/2",
CA: "eb1@3 ~@3 eb1@3 ~@4 eb1@3", CB: "~@3 eb1@3 ~@4 ab1@3 ~@3", CC: "~ c2@3 ~@3 c2@3 ~@4 db1@2",
CD: "~ db1@3 ~@4 eb1@3 ~@3 eb1@2", CE: "[~@2 ab1@3 ~@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@4 c2@3 ~]/2",
CF: "~ c2@3 ~@4 c2@3 ~@3 db1@2", CG: "[~@2 db1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~]/2",
CH: "[~@2 eb1@3 ~@4 eb1@3 ~@3 eb1@3 ~@4 eb1@3 ~@3 ab1@3 ~]/2", CI: "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]@26 [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]@26 [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 L ~@36 M@3 N@4 O@5 P@4 Q@2 R@7 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: "~@2 [ab2,eb3,ab3] ~@9 [ab2,eb3,ab3] ~@3",
M: "[~@3 ab4 bb4 [c5,db5] eb5 f5 g5 ~ ab5@26 g5@12]/3", // Dbmaj7
N: "[~ bb5@13 ab5@26 [eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@5]/4", O: "[~@2 ab5@26 g5@13 bb5@13 ab5@26]/5",
P: "[[eb4,g5]@6 [f4,ab5]@6 ~ [g4,bb5]@6 [ab4,c6]@6 ~ ab5@13 c6@13 g5@12]/4", // Eb Fm Gm Ab
Q: "[~ bb5@13 [db4,f5]@6 ~ [eb4,g5]@6 [f4,ab5]@5]/2", // Db Eb Fm
R: "[~@2 [g4,bb5]@6 [eb4,g5]@6 ~ [f4,ab5]@6 [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]/7", // Gm Eb Fm Gm Ab Db Eb Fm …
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: "[~ ab5@26 [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@6, ~@105 bb5@6 ~]/7", // Gm Ab Eb Fm
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 Y@3 Z@7 AA@3 AB@3 AC@5
AD@2 AE@3 AF@8 AD@2 AG AH@2 AI@4 AJ AK AL AK AM AN AO AP AQ ~@3 AR@2 AS@3 AT@2 AU@8 AV@3 AW@5 AX@5 AY@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@2]/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 ~@4 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: "[ab3@3 ~ ab3@42 ~@2]/3", Z: "[~ c4@2 ~@2 db4@3 db4@42 ~@3 c4@3 ~ db4@3 db4@42 ~@3 d4@3 ~ eb4@3]/7",
AA: "[eb4@21 ~@2 d4]/3", AB: "[~ eb4@3 eb4@42 ~@2]/3",
AC: "[~@2 eb4@2 ~ ab3@3 ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 db4@19 ~]/5", AD: "[~@3 eb4@19 ~@4 eb4@3 ab3@3]/2",
AE: "[ab3@19 ~@4 c4@19 ~@4 c4@2]/3",
AF: "[~ 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", AG: "~ ab3@15",
AH: "[~@3 ab3@4 ~ c4@3 c4@16 ~@3 c4@2]/2", AI: "[~@2 db4@3 db4@19 ~@4 eb4@23 ~@9 db4 ~@3]/4", AJ: "~@6 db4 ~@9",
AK: "db4 ~@9 db4 ~@5", AL: "~@3 db4 ~@12", AM: "~@4 db4 ~@8 db4 ~@2", AN: "~@7 db4 ~@8", AO: "~@5 c4 ~@8 c4 ~",
AP: "~@8 c4 ~@7", AQ: "~@2 c4 ~@8 c4 ~@4", AR: "[~@6 ab3@3 ab3@19 ~@4]/2", AS: "[c4@19 ~@4 c4@3 db4@3 db4@19]/3",
AT: "[~@4 eb4@19 ~@4 eb4@3 ab3@2]/2",
AU: "[~ ab3@19 ~@4 c4@19 ~@4 c4@3 db4@3 ~ db4@19 ~@3 eb4@23 ~@3 ab3@3 ~ ab3@19 ~@3]/8",
AV: "[c4@19 ~@4 c4@3 db4@3 ~ db4@18]/3", AW: "[~@5 eb4@19 ~@3 eb4@3 ~ ab3@3 ab3@19 ~@4 c4@19 ~@3 c4]/5",
AX: "[~@3 db4@3 db4@19 ~@4 eb4@23 ~@3 ab3@3 ab3@16 ~@4 ab3@2]/5",
AY: "[~ 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 Y@3 Z@7 AA@3 L@3 AB@5
AC@2 AD@3 AE@8 AC@2 AF AG@2 AH@7 AI@3 AJ@3 ~@3 AK@2 AL@3 AM@2 AN@8 AO@3 AP@5 AQ@5 AR@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: "[ab2@3 ~ ab2@42 ~@2]/3", Z: "[~ c3@2 ~@2 db3@3 db3@42 ~@3 c3@3 ~ db3@3 db3@42 ~@3 d3@3 ~ eb3@3]/7",
AA: "[eb3@21 ~@2 d3]/3", AB: "[~@2 eb3@2 ~ ab2@3 ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 db3@19 ~]/5",
AC: "[~@3 eb3@19 ~@4 eb3@3 ab2@3]/2", AD: "[ab2@19 ~@4 c3@19 ~@4 c3@2]/3",
AE: "[~ 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", AF: "~ ab2@15",
AG: "[~@3 ab2@4 c3@3 ~ c3@16 ~@3 c3@2]/2", AH: "[~@2 db3@3 db3@19 ~@4 eb3@23 ~@9 db4@39 ~@13]/7",
AI: "[db4@13 ~@3]/3", AJ: "[~@4 c4@39 ~@5]/3", AK: "[~@6 ab2@3 ab2@19 ~@4]/2", AL: "[c3@19 ~@4 c3@3 db3@3 db3@19]/3",
AM: "[~@4 eb3@19 ~@4 eb3@3 ab2@2]/2",
AN: "[~ ab2@19 ~@4 c3@19 ~@4 c3@3 db3@3 ~ db3@19 ~@3 eb3@23 ~@3 ab2@3 ~ ab2@19 ~@3]/8",
AO: "[c3@19 ~@4 c3@3 db3@3 ~ db3@18]/3", AP: "[~@4 eb3@19 ~@4 eb3@3 ~ ab2@3 ab2@19 ~@4 c3@19 ~@3 c3]/5",
AQ: "[~@3 db3@3 db3@19 ~@4 eb3@23 ~@3 ab2@3 ab2@16 ~@4 ab2@2]/5",
AR: "[~ 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 AI AJ AK ~@4 AL AM ~@6 AN AO AP ~@3 AQ AR AS ~@4 AT AU AV ~@3 AQ AW ~@5 AX AY AZ ~@3 AQ AW BA ~@4 BB BC AZ ~@4 P
BD ~@2 AP ~@2 BE ~ BF BG BH ~@20 BI BJ BK ~@3 BL BM BN ~@4 AJ BO BP BQ 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",
// … 177 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.