Strudelify

Paper Sun

Traffic

KeyD majorTempo128 bpm
0:00/0:00
// Paper Sun — Traffic
// 128 bpm, 4/4, key D 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 142 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/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.

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~ A B C D E F C D G H I J K L M N O P I Q R L S N ~@8 A B C D E F C D G H I J K L M N O P I Q R L S N ~@8 A B C D E F
  C D A B C D E F C D T U V W G H I J K L M N O P I Q R L S N ~@8 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AH AT AU AV AW AX AU AY AZ@2 ~
>`.pickRestart({
  A: "~@4 [a4,d5]@3 ~@3 [c5,d5]@3 ~@3", B: "[b4,f5]@3 ~@3 [a4,d5]@6 ~@4", C: "~@4 [a4,d5]@4 ~@2 [c5,d5]@3 ~@3",
  D: "[b4,f5]@4 ~@2 [a4,d5]@7 ~@3", E: "~@2 [a4,d5]@2 ~ [c5,d5]@2 ~", F: "b4@6 [a4,d5]@7 ~@3, f5 ~@3",
  G: "[g4,b4]@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5]@2 ~@2 [b4,d5]@2 [a4,c5] ~", // G Am Bm Am
  H: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ d5@2 ~@2 b4@2 ~@2, g4 ~@7 b4 ~@3 g4 ~@3", // G Am
  I: "b4@2 e4 ~ [g#4,b4] ~ [a4,c#5] ~ [b4,d5]@2 ~@2 [b4,d5] ~ [a4,c#5] ~, g#4 ~@15", // G#m A Bm A
  J: "b4@2 e4@2 b4@2 [a4,c#5] ~ [b4,d5] ~@3 g#4@2 ~@2, g#4 ~@3 g#4 ~@7 b4 ~@3", // A Bm
  K: "a#4@2 d4 ~ [g4,a#4] ~ [a4,c5] ~ [a#4,d5]@2 ~@2 [a#4,d5] ~ [a4,c5] ~, g4 ~@15", // Gm Am A# Am
  L: "[g4,a#4]@2 d4@2 [g4,a#4] ~ [a4,c5] ~ [a#4,d5] ~@3 a#4@2 ~@2, ~@12 g4 ~@3", // Gm Am A#
  M: "[f#4,a4]@2 d4@2 [f#4,a4]@2 [g4,a#4] ~ [a4,c5]@2 ~@2 [a4,c5] ~ [g4,a#4] ~", // F#m Gm Am Gm
  N: "a4@2 d4@2 [f#4,a4] ~ [g4,a#4] ~ [a4,c5] ~@3 a4@2 ~@2, f#4 ~@11 f#4 ~@3", // F#m Gm Am
  O: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5]@2 ~@2 d5@2 [a4,c5] ~, g4 ~@11 b4 ~@3", // G Am Bm Am
  P: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5] ~@3 b4@2 ~@2, g4 ~@11 g4 ~@3", // G Am Bm
  Q: "b4@2 e4@2 [g#4,b4] ~ [a4,c#5] ~ [b4,d5] ~@3 b4@2 ~@2, g#4 ~@11 g#4 ~@3", // G#m A Bm
  R: "a#4@2 d4@2 [g4,a#4] ~ [a4,c5] ~ [a#4,d5]@2 ~@2 [a#4,d5]@2 a4@2, g4 ~@13 c5 ~", // Gm Am A#
  S: "a4@2 d4@2 [f#4,a4] ~ [g4,a#4] ~ [a4,c5]@2 ~@2 c5@2 [g4,a#4] ~, f#4 ~@11 a4 ~@3", // F#m Gm Am Gm
  T: "[d3,d4,f#4]@3 [f3,c4,f4]@3 [g3,b4]@2, a3@3 ~@3 a4@3 ~@3 [d4,g4]@2 ~@2", U: "[d3,a3,d4,f#4]@7 ~",
  V: "[d3,d4,f#4]@3 [f3,c4,f4]@3 [g3,b4]@2, a3@2 ~@4 a4@3 ~@3 [d4,g4]@2 ~@2", W: "[d3,a3,d4,f#4]@15 ~",
  X: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,d5]@13 ~@3", Y: "a3@4 ~@2 a3 ~ a3@7 ~, [e4,a4,d5]@7 ~",
  Z: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,c#5]@7 ~", AA: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,c#5]@13 ~@3",
  AB: "a3@4 ~@2 a3 ~ a3@4 ~@4, [e4,a4,d5]@11 ~@5", AC: "a3@4 ~@2 a3 ~ a3@3 ~ [a3,a4,d5,f#5]@3 ~, [a4,d5,f#5]@5 ~@3",
  AD: "a3@4 ~@2 a3 ~ a3@6 ~@2, [a4,c#5,e5]@13 ~@3", AE: "a3@4 ~@2 a3 ~ a3@3 ~ a3@2 ~@2, [a4,c#5,e5]@3 ~",
  AF: "[a3,e4,a4,d5]@5 ~ [a3,e4,a4,d5] ~ [e4,a4,d5]@5 ~@3, ~@8 a3@3 ~@5", // Asus4 Dsus2
  AG: "[a4,d5,f#5]@4 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@6 ~@2", AH: "[a4,c#5,e5]@5 ~ [a4,c#5,e5] ~ [a4,c#5,e5]@6 ~@2",
  AI: "[a4,c#5,e5]@5 ~ [a4,c#5,e5] ~ [a4,c#5,e5]@4 ~@4", AJ: "[d4,e4,a4]@5 ~ [d4,e4,a4] ~ [d4,e4,a4]@5 ~@3",
  AK: "[a4,d5,f#5]@4 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@5 ~@3", AL: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@5 ~@3",
  AM: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@3 ~ [e4,a4,c#5]@3 ~", // A
  AN: "[d4,g4,b4]@5 ~ [d4,g4,b4] ~ [g4,b4,d5]@3 ~@3 [g4,b4,d5] ~", // G
  AO: "[b4,d5,f#5]@4 ~@2 [g4,b4,d5] ~ [g4,b4]@5 ~@3, ~@8 d5@7 ~", // Bm G
  AP: "[e4,a4,c#5]@4 ~@2 [e4,a4,c#5] ~ [e4,a4]@2 ~@2 [c#4,e4,a4]@3 ~, ~@2 c#5 ~", // A A5 A
  AQ: "[e4,a4,c#5]@4 ~@2 [e4,a4,c#5] ~ [e4,a4]@2 ~@2 [c#4,e4]@4, ~@8 c#5@4 a4 ~@3", // A A5 C#m
  AR: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [g4,b4,d5]@4 [d4,g4,b4] ~ b4 d5", // G
  AS: "[b4,d5,g5]@5 ~ [b4,d5,g5] ~ [b4,g5]@7 ~, ~@2 d5 ~", // G Em
  AT: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ e5@4 a4@3 ~, ~@4 a4 ~@3, ~@8 c#5 ~@7", // A
  AU: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [d4,g4,b4]@6 ~@2", AV: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [d4,g4,b4]@7 ~",
  AW: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ c#4@2 ~ c#4@2 ~@3, ~@4 [e4,a4]@3 ~", // A A5
  AX: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ [c#4,e4,a4]@5 ~@3", // A
  AY: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [g4,b4]@5 ~@3, ~@8 d4@7 ~", // G
  AZ: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ [c#4,e4,a4]@24]/2", // A
})).s("gm_piano").gain(0.38).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D E D F D G H I J K L M N O P Q R S T M U V W X Y Z AA AB AC A B C D E D F D G H I AD K L M N O P Q R S T M U
  V W X Y Z AA AB AC A B C D E D F D A B C D E D F D AE AF AE AG G H I J K L M N O P Q R S T M U V W X Y Z AA AB AC AB@3
  AC AB@18 AH AB@8 AI@2
>`.pickRestart({
  A: "d2 ~ d2@2 d3@2 d2 ~ d2@2 c3@4 d2@2, ~@4 c3 ~@11", B: "b2@4 d2@2 a2@4 d2 ~ d2@2 ~@2",
  C: "d2 ~ d2 ~ c3 ~ d2 ~ d2@2 c3@4 d2@2, ~ d3 ~@2", D: "b2@4 d2@2 a2@4 d2 ~ d2@3 ~",
  E: "d2 ~ d2@2 d3@2 d2 ~ d2 ~ c3@4 d2@2, ~@4 c3 ~@11", F: "d2 ~ d2 ~ d3@2 d2 ~ d2@2 c3@4 d2@2, ~@4 c3 ~@11",
  G: "g2@4 ~@2 g2@2 d2@3 ~@3 d2@2", H: "g2@3 ~@3 g2 ~ f#2@4 f2@4", I: "e2@2 ~ e2 b1@2 ~ b1",
  J: "e2@4 ~@2 e2@2 e2@3 ~ f2@2 f#2@2", K: "g2@3 ~@3 g2@2 d2@2 a#1@6", L: "g1@2 ~ g2 d2@2 a#1@2",
  M: "d2@2 ~ d2 a1@2 ~ a1", N: "d2@2 ~ d2 a1@2 f#1@2", O: "g1@2 ~ g1 d2@2 ~ d2", P: "g2@4 ~@2 g2@2 f#2@4 f2@3 ~",
  Q: "e2!2 ~ e2 b1@2 ~ b1", R: "e2 b1 g#1 b1 e1 b1 e2 b1", S: "d2@4 ~@2 d2@2 g2 ~ g2@2 ~@2 d2@2",
  T: "g2@3 ~@3 g2@2 a#2@4 g2@3 ~", U: "d2@4 ~@2 a1@2 d2@3 ~ d2@4", V: "c2@4 ~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  W: "a#1@4 ~@2 a#1@2 g1@4 ~@2 g1 ~", X: "a1@3 e2 a2 e2 a2 e2", Y: "~ e2 ~ e2 a2 ~ a2 e2", Z: "c2@3 g1 c2 g1 c2 g1",
  AA: "a#1@5 ~ a#1@2 g1@3 ~ g1@2 ~@2", AB: "a1 e2 a2 e2 a1 e2 a2 e2", AC: "a1 e2 a2 e2 a1 e2 a2@2",
  AD: "e2@2 ~ e2 f2@2 f#2@2", AE: "d2@3 f2@3 g2@2", AF: "d2@13 ~@3", AG: "d2@15 ~",
  AH: "a1 ~ e2@2 a2@2 e2@2 a1@2 e2@2 a2@2 e2@2", AI: "[a1@9 ~@7]/2",
})).s("gm_fretless_bass").gain(0.44)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~ A B@2 C D E F@2 G@2 H@2 I J K L M N O@3 P Q R S T U V W T U X A B@2 C D E F@2 G@2 H@2 I J K L M N O@3 P Q R S T U V
  W T U Y A B@2 C D E F@2 Z B@2 C D E AA@2 AB AC AD AE G@2 H@2 I J K L M N O@3 P Q R S T U V W T U X ~@33
>`.pickRestart({
  A: "~@4 a3 ~@2 a3, d3@2 d4@2 ~ d4@2 ~, ~ a3@2 d3@2 ~ d3@2",
  B: "[d4 ~ a3 d4 ~ a3 d4 ~ a3 ~@2 a3 d4 ~ a3 d4, ~ [d3,g3]@2 ~ d3@2 ~ d3@2 d4@2 ~@5, ~@10 d3@2 ~ d3@2 ~]/2", // G5
  C: "~ a3 ~@2 a3 ~ d3 a3, d3@2 d4@2 ~ d4@2 ~, ~@3 d3@2 ~@3", D: "d4 d3 a3 ~ d3 a3 ~ d3, ~@3 d4@2 ~ d4@2",
  E: "a3 ~@2 a3 ~@2 a3 d4, ~ d4@2 ~ d4@2 ~@2, ~@2 d3@2 ~ d3@2 ~",
  F: "[~ g3 a3 d4 ~ a3 ~@2 a3 ~@2 a3 ~@2 a3 d4, d3@5 ~@3 d3@4 d4@4 ~@2 d4@4 ~@2 d4@4 ~@4, ~@7 d3@2 ~ d3@2 ~ d3@2 ~]/2",
  G: "[~@2 d4 ~ c4 ~@5 b3 ~@2 b3 ~ d3, g3@5 ~ g3@5 ~ g3@4 d4@4 ~@2 d4@4 ~@2 d4@4, ~ b3@2 ~@2 d4@2 b3@2 g3@2 ~ g3@3 ~]/2",
  H: "[~@5 d4 ~@7 g#3 b3 d3, e3@2 b3@2 g#3@2 ~ g#3@2 e3@2 b3@2 ~@3, ~@2 g#3@4 e3@5 ~ e3@4 c#4@4 g#3@4 e3@4 ~@4]/2",
  I: "g3 a#3 d4 ~ a#3 d4 ~ a#3, ~@3 d3@2 ~ g3@2", J: "~@2 d3@2 g3@2 a#3@2 g3@2 d3@2 f3@2 d3 ~, [d4,g4] ~@3",
  K: "a3 ~ a3@2 d4@2 g3@2 a3@2 d4@2 d3@2 f#4@2, d3@3 ~@5", L: "~ a3 c4 ~ a3 d4 d3 a3, d3@2 ~ d3@2 ~@3",
  M: "~@4 c4 ~@2 b3, g3@2 d4@2 ~ d4@2 ~, ~ b3@2 g3@2 ~ g3@2",
  N: "~@2 b3 ~@2 b3 ~ d3, d4@2 ~ d4@2 ~ d4@2, ~@2 g3@4 ~@2 g3@5 ~@3",
  O: "[~ g#3 b3 ~ g#3 d4 ~@7 g#3 b3 ~ g3 a#3 ~@2 a#3 d4 ~ g3, e3@2 ~ e3@2 ~ e3@2 c#4@2 g#3@2 e3@3 d3@2 ~@2 d3@2 ~ d3@2, ~@7 g#3@2 e3@2 b3@2 ~@5 d4@2 ~@4]/3",
  P: "[d4,g4] ~ g3 a#3 g3 d3 f3 d3, ~ d3@2 ~@5", Q: "[d3,g3] a3 d4 g3 a3 ~ d3 f#4, ~@5 d4@2 ~",
  R: "~ a3 c4 a3 ~ a3 d4 a3, d3 ~ d4 ~", S: "c3 b2 c3 d3 d#3 f3 g3 c4", T: "d4 c4 a#3 f3 g3 a3 b3 d4",
  U: "c#4@6 d4 c#4", V: "a3", W: "c3 b2 c3 d3 d#3 f3 g3 a#3", X: "a3@13 ~@3", Y: "~ d4 c#4 a3 d4 c#4 a3@2, a3 ~@3",
  Z: "~@4 a3 ~@2 a3, [d3,g3]@2 d4@2 ~ d4@2 ~, ~ a3@2 d3@2 ~ d3@2", // G5
  AA: "[~@2 g3@2 a3@2 d4@2 ~@2 a3@2 ~@4 a3@2 ~@4 a3@2 ~@4 a3@3 ~, d3@5 ~@3 d3@4 d4@4 ~@2 d4@4 ~@2 d4@4 ~@4, ~@7 d3@2 ~ d3@2 ~ d3@2 ~]/2",
  AB: "[d3,d4,f#4]@6 [f3,a3,c4,f4]@5 ~ [b3,g4]@4, a3@3 ~@9 [g3,d4]@2 ~@2", AC: "[d3,a3,d4,f#4]@13 ~@3",
  AD: "[d3,d4,f#4]@6 [f3,a3,c4,f4]@5 ~ [g3,b3,g4]@4, a3@3 ~@9 d4 ~@3", AE: "[d3,a3,d4,f#4]@15 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.33)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~@25 A@2 B@2 A@2 B@2 ~@24 A@2 B@2 A@2 B@2 ~@8 C@4 D@4 ~@20 A@2 B@2 A@2 B@2 ~@33
>`.pickRestart({
  A: "[[d#4,g4]@2 f4 [b3,g4], a#4@3 ~, ~ d4]/2", B: "[c#4,e4,a4]/2",
  C: "[[a3,c4,e4,c5]@9 [g3,b4]@6 [f#3,a3,a4]@15 ~@2, ~@9 d4@21 ~@2, ~@9 b3@4 ~@19]/4", // Am G F#m
  D: "[[a3,c4,e4,c5]@9 [g3,b3,b4]@7 [f#3,a3,a4]@15 ~, ~@9 d4@21 ~@2]/4", // Am G F#m
})).s("gm_synth_strings_1").gain(0.32)

// other · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note(`<
  ~@12 A@3 ~@5 B@3 ~@21 C@3 ~@5 D@3 ~@26 E F G H ~@3 I@3 ~@5 I@3 ~@10 J@2 K@2 L@2 K@2 M@2 N@4 K@2 M@2 K@2 M@2 K@2 M@2
  K@2 M@2 O@3
>`.pickRestart({
  A: "[~@8 b3 ~ b3@4 a#3@26 ~@8]/3", B: "[~@8 b3@3 ~ b3@2 a#3@30 ~@4]/3", C: "[~@4 b3 b3@2 a#3@15 ~@2]/3",
  D: "[~@4 b3!2 ~ a#3@16 ~]/3", E: "f#4 ~ f#4@4 [c4,f4,a4]@6 [d4,g4,b4]@4, [a3,d4]@3 ~@5",
  F: "[a3,d4]@15 ~, f#4@13 ~@3", G: "f#4 ~ f#4@4 [c4,f4,a4]@6 [g4,b4]@4, [a3,d4]@3 ~@3 d4 ~", H: "[a3,d4,f#4]@15 ~",
  I: "[~@8 b3 ~ b3@4 a#3@33 ~]/3", J: "[d5@15 ~]/2", K: "[c#5@31 ~]/2", L: "d5/2", M: "[d5@31 ~]/2",
  N: "[c#5@31 d5@31 ~@2]/4", O: "[c#5@11 ~@5]/3",
})).s("gm_tremolo_strings").gain(0.45)

// chords · sitar
const sitar = note(`<
  ~ A@2 B@2 C@2 D@4 ~@14 E F G@2 H F I@2 A@2 B@2 C@2 D@4 ~@14 E F G@2 H F I@2 A@2 B@2 C@2 J@2 K@2 B@2 C@2 L@4 M@2 N@2
  ~@14 E F G@2 H F I@2 O@8 P@8 Q@6 R@3 S@5 T@3
>`.pickRestart({
  A: "[~@7 d3 ~@3 a3@5, d3@3 ~ d3@2 ~@2 b3@8, ~@2 d4@9 ~@5, ~@10 c4@17 ~@5, ~@20 d3@9 ~@3]/2",
  B: "[d3@2 ~@9 a3@5, ~@2 d4@7 ~@7, ~@8 d3@4 ~@2 d3@4 ~@2 d3@9 ~@3, ~@5 c4@6 ~@5, ~ b3]/2",
  C: "[d3@2 ~@5 d3 ~@3 a3@5, ~ d4@3 b3@4, ~@8 d3@4 ~@8 d3@9 ~@3, ~@5 c4@6 ~@5]/2",
  D: "[d3@2 ~@5 d3 ~@3 a3@5 g2@12 ~@4, ~@4 d4@13 ~@3 d3@28 ~@16, ~@2 d3 ~ b3@4 ~@8, ~@5 c4@6 ~@21]/4",
  E: "~@4 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~", F: "f3 ~ f3 ~ f3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2",
  G: "[~@2 a2@2 ~ a2 ~ a2@6 ~@3 a2@4 ~@2 a2 ~ a2@8, e3]/2", H: "~@2 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  I: "[a2@3 ~@3 a2 ~ a2@5 ~@3 a2@4 ~@2 a2 ~ a2@7 ~, e3@31 ~]/2",
  J: "[d3@2 ~@5 d3 ~@3 a3@5, ~@4 d4@13 ~@3 d3@12, ~@2 d3 ~ b3@4, ~@5 c4@6 ~@5]/2",
  K: "[~@7 d3 ~@3 a3@5, d3@4 d3@3 ~ b3@8, ~@2 d4@9 ~@5, ~@10 c4@17 ~@5, ~@20 d3@9 ~@3]/2",
  L: "[d3@4 ~@10 d3@2 ~@6 a3@10 ~@6 c4@6 ~@4 a3@13 ~@3, ~@4 d4@13 ~@3 d3@28 ~@16, ~@4 d3@2 ~@2 b3@8 a3@7 ~@9, ~@5 c4@6 ~@11 d4@10]/4",
  M: "[~@3 c4@3 ~@2 a3@8, a3@7 ~@9, ~@3 d4@5]/2", N: "[g2@3 ~]/2",
  O: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@4 a2@3 a2 ~@7 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@16 ~@8 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4, ~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@6 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~, ~@7 a2@4 ~@5, ~@32 d4@3 ~ d4@4 d4@3 ~ d4@4 ~@16]/8",
  P: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4 d4@3 ~ d4@5 ~@15, ~@2 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@3 ~ a3@4 a3@4 a3@4 ~@2, ~@48 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4]/8",
  Q: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4 d4@3 ~ d4@4, ~@4 a3@8 a3@8 a3@8 a3@8 a3@8 a3@7 a3@8 a3@8 ~ a3@8 a3@8 a3@8 ~@4]/6",
  R: "[~@3 c#4 ~@7 c#4 ~@7 d4 ~@2 a3@2, c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4, ~ a3@2 a3@2 a3@2 a3@2 a3@2 ~]/3",
  S: "[~@3 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@2 a3@2, d4@6 ~@2 d4@7 ~ c#4@6 ~@2 c#4@8 c#4@6 ~@2 c#4@8 d4@6 ~@2 d4@8 d4@6 ~@2 d4@7 ~, ~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~]/5",
  T: "[~@3 c#4 ~@2 a3@16 ~@2, c#4@3 ~ c#4@16 ~@4, ~ a3@2 ~@9]/3",
})).s("gm_sitar").gain(0.33)

// other · flute
const flute = note(`<
  ~ A B C D E F G H I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S T@2 R S T@2 A B C D E F G H I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S
  T@2 R S T@2 A B C D E F G H A B C D E F G H ~@4 I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S T@2 R S T@2 U@2 V@2 W X@3 Y Z@4 AA
  AB@2 AC@2 AD@4 AE AF AG AH AI AJ AK AL AM@2 ~
>`.pickRestart({
  A: "d6@2 ~@2 a5@2 ~@4 a5 ~@5", B: "a5 ~@5 a5@7 ~@3", C: "d6@2 ~@2 a5 ~@5 a5@2 ~@4", D: "b5@3 ~@3 a5@7 ~@3",
  E: "d6 ~@3 a5@2 ~@4 a5 ~@5", F: "b5 ~@2 a5@3 ~@2", G: "d6@2 a5@2 d6@2 ~@4 d6 ~@5", H: "d6@2 ~@4 d6@9 ~",
  I: "[g5@8 a5@13 ~@9 g5@2]/2", J: "[g#5@5 g5 f#5 f5 e5@15 ~@5 g#4@2 a#4@2]/2", K: "[g5@3 a5 a#5@2 d5@6 g5@2 a5 g5]/2",
  L: "[f#5@3 ~ f#5@2 d5@21 ~@5]/2", M: "g5 a5", N: "d5@5 ~@3 g5@7 ~", O: "[g#5@6 g5 [f5,f#5] e5@20 ~@4]/2",
  P: "[g5@3 d5@9 g5@2 a5 g5]/2", Q: "[f#5@3 d5@11 ~@2]/2", R: "c6", S: "a#5 g5", T: "a5/2", U: "[~ d6@3]/2",
  V: "[c#6@5 a5 e5 c#5]/2", W: "~ e5 a5 e5 ~ e5 g5 ~", X: "[~@2 e5@2 a5@2 e5@2 ~@2 e5@2 a5@35 ~]/3", Y: "e5",
  Z: "[a5@51 ~@5 e5@8]/4", AA: "a5@7 ~",
  AB: "[~@2 c6@2 a5@2 e5@2 a5@4 c#6@2 a5@4 c#6@2 a5@2 e5 ~ c#6@2 a5@2 e5@3 ~, ~@12 b5 ~@5 b5 ~@13]/2",
  AC: "[~@2 g5@2 b5@2 g5@2 d5@14 ~@2 a5@2 e5 ~ e5@4]/2",
  AD: "[a5@37 ~ e6@2 d6@12 c#6@2 d6@2 c#6@2 d6@2 c#6@2 d6@2, ~@56 b5 ~@7]/4", AE: "c#6@3 a5 e5@2 c#5@2, b5 ~@15",
  AF: "a4@3 ~ a4@2 c#5 a4 [a4,c#5] e4@2 ~ a4@4", AG: "d5@3 e5 f#5@4",
  AH: "a5 b5 a5 b5 a5 [a5,b5] ~ b5 [a5,b5] a5 ~ b5 a5 [a5,b5] ~ b5", // Asus2
  AI: "a5 ~ c#5@2 a4@2 e4@2 c#5@2 e4 ~ a4@2 e4 ~, ~@2 b4 ~@13", AJ: "~@6 c#6 ~ c#6@2 a5@2 g5@2 e5@2",
  AK: "g5 e5 a5 b5@3 ~ e5", AL: "g5 e5 a5 b5 c#6 a5 g5 e5", AM: "[c#5 a4 e4 a4@2 e4@11]/2",
})).s("gm_flute").gain(0.33).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~ A@7 B ~@16 C D E@2 F G H@2 A@2 I J K J A L ~@16 C D E@2 F G H@2 M A@6 B N O@2 P O@3 Q R S R T ~@16 C D E@2 F G H@2
  U@2 V@2 W@2 V@2 X@2 V@2 Y@2 V@2 W@2 V@2 Z@2 AA@2 AB@2 AC@2 AD@2 AE@3
>`.pickRestart({
  A: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4", B: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 ~",
  C: "~@2 g3 ~ g3@11 ~", D: "~@2 f3 ~ f3@4 ~@2 d3 ~ d3@4", E: "[e3@31 ~]/2", F: "~@2 g3 ~ g3@12",
  G: "~@2 f3 ~ f3@4 d3@8", H: "[e3@29 ~@3]/2", I: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 [c4,d4] c4 d4 c4",
  J: "d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 [c4,d4]", K: "c4 d4 c4 d4 c4 d4 [c4,d4] c4 d4 c4 d4 c4 d4 c4 d4 c4",
  L: "c4 d4 c4 [c4,d4] d4 c4 d4 c4 d4 c4 d4 c4 d4@2 ~@2", M: "[c4,d4] d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4",
  N: "~ f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4",
  O: "d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4",
  P: "d4 f#4 d4 f#4 ~ [d4,f#4] ~ [d4,f#4] d4 f#4 d4 f#4 d4 f#4 d4 f#4", // D
  Q: "d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 ~", R: "a3@3 c4@3 d4@2", S: "a3@7 ~", T: "a3@15 ~",
  U: "[c#4 d4@14 ~]/2", V: "[c#4@29 ~@3]/2", W: "d4/2", X: "[d4@15 ~, c#4 ~@31]/2", Y: "[d4, c#4 ~@31]/2",
  Z: "[a3@29 ~@3]/2", AA: "[c4@8 c#4@21 ~@3]/2", AB: "[d4@7 ~, c#4 ~@31]/2", AC: "[a3@15 ~]/2", AD: "[d4@29 ~@3]/2",
  AE: "[c#4@11 ~@5]/3",
})).s("gm_alto_sax").gain(0.38).pan(0.7)

// other · marimba
const marimba = note("<~@25 A B C D E F G H ~@24 A B C D E F G H ~@36 A B C D E F G H I ~@32>".pickRestart({
  A: "c5 [c4,c5] c4 [c4,c5] c5 [c4,c5] c4 [c4,c5] c5 [c4,c5]!2 c4 c5 [c4,c5] c4 [c4,c5]", // C
  B: "a#4 [a#3,a#4] a#3 [a#3,a#4] a#4 [a#3,a#4] a#3 [a#3,a#4] g4 [g3,g4] g3 [g3,g4] g4 [g3,g4] g3 [g3,g4]", // A# G
  C: "a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a4@2 g#4@2 e4@2 d4 ~ c#4 ~", D: "~@4 a3@2 ~@2 e3@2 g#3@2 a3@3 ~",
  E: "c5 [c4,c5] c4 [c4,c5]!2 c5 [c4,c5] c4 [c4,c5] c5 c4 [c4,c5] c5 [c4,c5] c4 [c4,c5]", // C
  F: "a#4 [a#3,a#4] a#3 [a#3,a#4] a#4 [a#3,a#4] a#3 [a#3,a#4] ~ [g3,g4] g3 [g3,g4] g4 [g3,g4] g3 [g3,g4]", // A# G
  G: "a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4]", // A
  H: "a4 ~ d4@2 e4@2 a4@2 d4@2 e4@2 a4 ~@3", I: "~@2 d4@2 e4@2 a4@2 d4@2 e4@2 a4 ~@3",
})).s("gm_marimba").gain(0.18)

// … 85 more lines

More by Traffic