Strudelify

Yellow Sun of Ecuador

Classics

KeyD minorTempo110 bpm
0:00/0:00
// Yellow Sun of Ecuador — Classics
// 110 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 12 tubular bells (copy of ch 1 dulcimer); ch 7 electric guitar clean (copy of ch 6 electric guitar jazz)
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(110/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 · dulcimer
const dulcimer = note("<~@20 A B ~@15 A B ~@7 C D ~@2 E ~@15 F G ~@15 H I ~@3>".pickRestart({
  A: "[d5,gb5] ~ [d5,gb5]@2 [c5,e5] ~ [c5,e5]@2 [b4,d5] ~ [b4,d5]@2 [a4,c5] ~ [a4,c5]@2", B: "[g4,b4] ~@3",
  C: "[a4,db5] ~ [a4,db5]@2 [g4,b4] ~ [g4,b4]@2 [gb4,a4] ~ [gb4,a4]@2 [e4,g4] ~ [e4,g4]@2", D: "[d4,gb4] ~@3",
  E: "~@8 [f3,ab3,bb3,b3] [c4,d4] [eb4,f4,g4,ab4] [bb4,c5,d5] [eb5,f5,g5,ab5] [bb5,c6,d6,eb6] [f6,g6,ab6] [bb6,c7]", // Fdim Csus2 Fm7 Bb Fm7 Cm7 Fm Bbsus2
  F: "[eb5,g5] ~ [eb5,g5]@2 [db5,f5] ~ [db5,f5]@2 [c5,eb5] ~ [c5,eb5]@2 [bb4,db5] ~ [bb4,db5]@2", G: "[ab4,c5] ~@3",
  H: "[g4,eb5]@4 ~@2 [bb4,eb5]@2 [g4,bb4]@4 [g4,bb4]@3 ~", I: "[g4,bb4] ~@3",
})).s("gm_dulcimer").gain(0.34).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  ~ A B C@4 D@4 E C@3 D@4 F G H@2 I J K@2 L M N C@2 D@4 F G H@2 I J K@2 L M O A B P Q R S T U T@2 V S R S T U T@2 W X
  Y@2 Z AA AB@2 AC AD AE R S T U T@2 Y S AF AG AH AI
>`.pickRestart({
  A: "d2@11 ~@2 d2 gb2@2", B: "a2@8 ~@2 a2@2 ~ gb2 e2 ~", C: "d2@4 ~@2 d2 ~ a1@6 ~@2", D: "a1@4 ~@2 a1 ~ e2@6 ~@2",
  E: "g2@4 ~@2 g2 ~ g2@3 ~ g2@3 ~", F: "g2@4 ~@2 g2 ~ d2@4 ~@2 d2 ~", G: "d3@3 ~ c3@3 ~ b2@3 ~ a2@3 ~",
  H: "g2@4 ~@2 g2 ~ d2@6 ~@2", I: "d2@4 ~@2 d2 ~ db2@3 ~ c2@3 ~", J: "b1@3 ~ eb2@3 ~ b2@3 ~ gb2@3 ~",
  K: "e2@4 ~@2 e2 ~ b1@6 ~@2", L: "e2@3 ~ ab2@3 ~ e3@3 ~ b2@3 ~", M: "a2@4 ~@2 a2 ~ e2@6 ~@2",
  N: "a1 b1 ~ db2 ~ e2 a2@2", O: "a2@3 ~ g2@3 ~ gb2@3 ~ e2@3 ~", P: "d2@4 ~@2 d2 ~ gb1@3 ~ a1@3 ~",
  Q: "d2@4 ~@2 d2 ~ bb1@6 ~@2", R: "eb2@4 ~@2 eb2 ~ bb1@6 ~@2", S: "eb2@4 ~@2 eb2 ~ bb1@3 ~ eb2@3 ~",
  T: "bb1@4 ~@2 bb1 ~ f2@6 ~@2", U: "bb1@4 ~@2 bb1 ~ f2@3 ~ bb1@3 ~", V: "ab2@4 ~@2 ab2 ~ ab2@3 ~ ab2@3 ~",
  W: "ab2@4 ~@2 ab2 ~ eb2@4 ~@2 eb2 ~", X: "eb3@3 ~ db3@3 ~ c3@3 ~ bb2@3 ~", Y: "ab2@4 ~@2 ab2 ~ eb2@6 ~@2",
  Z: "eb2@4 ~@2 eb2 ~ d2@3 ~ db2@3 ~", AA: "c2@3 ~ e2@3 ~ c3@3 ~ g2@3 ~", AB: "f2@4 ~@2 f2 ~ c2@6 ~@2",
  AC: "f2@3 ~ a2@3 ~ f3@3 ~ c3@3 ~", AD: "bb2@4 ~@2 bb2 ~ f2@6 ~@2", AE: "bb1 c2 ~ d2 ~ f2 bb2@2",
  AF: "eb2@11 ~@2 eb2 g2@2", AG: "bb2@8 ~@2 bb2@2 ~ g2 f2 ~", AH: "eb2@6 ~@2 eb2 ~ eb2@2 bb1 c2 d2@2", AI: "eb2@3 ~",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@20 A B@2 C D E@3 F G ~@7 A B@2 C D E@3 H@2 ~@2 I J@7 K@8 L M N@2 O P Q@3 R S T@6 U@6
>`.pickRestart({
  A: "d4@2 e4 gb4", B: "[g4@15 g5@8 ~ gb5@4 e5@4]/2", C: "gb5@2 e5 d5", D: "eb5@2 e5 gb5",
  E: "[e5@15 ab5@16 [d5,b5]@17]/3", F: "[db5,a5]",
  G: "~@2 db5@3 ~ db5@3 ~@3 db5@3 ~, ~ a5@2 ~@2 a5@3 ~ a5@2 a5@3 ~@2, ~@5 db5 ~@2",
  H: "[[db5,a5]@19 ~ g5@3 ~ gb5@3 ~ e5@4, ~@19 b4@4 a4@4 g4@4 ~]/2", I: "[d4,gb4,a4]",
  J: "[[a4,d5,gb5]@7 ~ d4@7 g5 g4@31 [f4,d5]@32 ~ d5@32, ~@7 [f4,bb4]@8 eb5@32 ~@32 [f5,ab5]@32 ~, ~ bb4@6]/7", // D Dm Bb5 Fm
  K: "[[ab4,c5]@16 g4@47 ~@32 ab4@32 [ab4,c5], eb5@63 [f4,d5]@64 ~, ~ bb4@5 ~@2]/8", L: "~@7 bb4@9, eb5, ~@6 g4@9 ~",
  M: "[g4,eb5]@3 ~ f4@4 [eb4,c5]@4 [db4,bb4]@4, ~@3 db5@5 ~@8", N: "[ab4@15 ab5@8 ~ g5@4 f5@4]/2", O: "g5@2 f5 eb5",
  P: "e5@2 f5 g5", Q: "[f5@15 a5@16 [eb5,c6]@17]/3", R: "[d5,bb5]",
  S: "~@2 d5@3 ~ d5@3 ~@3 d5@3 ~, ~ bb5@2 ~@2 bb5@3 ~ bb5@2 bb5@3 ~@2, ~@5 d5 ~@2",
  T: "[[g4,eb5]@31 ~@32 ab4@32 [ab4,c5], bb4@2 ~, ~@31 [f4,d5]@64 ~]/6", // Cm Ab Dm
  U: "[~@48 [f4,d5]@16 [g4,eb5]@31 ~, eb5 ~, ~ g4@7 ~@8, ~@7 bb4@88 ~]/6", // Dm Cm
})).s("gm_string_ensemble_2").gain(0.36)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C@3 D E@3 F G C@2 D E@3 F H C I G J K L@2 M E N C D E@3 F H C I G J K L@2 M E O A B C P Q R S@3 T U Q@2 R S@3 T
  V Q W U X Y Z@2 AA S AB Q R S@3 T V AC AD AE Q AF
>`.pickRestart({
  A: "[a2,d3,a3,d4,gb4]@15 ~", B: "[a2,e3,a3,db4,e4]@15 ~",
  C: "[a3,d4,gb4]@2 [a3,d4] [d3,a3,d4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [a3,d4,gb4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [d3,a3,d4] [a3,d4]!2 ~ [a3,d4], [a2,d3] ~@2 a2, ~@6 [d3,gb4] [d3,a3,d4,gb4]", // D D5 D D5 D
  D: "[a3,d4,gb4]@2 [a3,d4] [d3,a3,d4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [a3,d4,gb4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [d3,a3,d4] [a3,d4]!2 ~ [g3,d4], [a2,d3] ~@2 a2, ~@6 [d3,gb4] [d3,a3,d4,gb4]", // D D5 D D5 G5 D5 D
  E: "[a3,db4,e4]@2 [a3,db4] [e3,a3,db4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [a3,db4,e4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [e3,a3,db4] [a3,db4]!2 ~ [a3,db4], [a2,e3] ~@2 a2, ~@6 [e3,e4] [e3,a3,db4,e4]", // A A5 E A
  F: "[a3,db4,e4]@2 [a3,db4] [e3,a3,db4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [a3,db4,e4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [e3,a3,db4] [a3,db4]!2 ~ [g3,db4], [a2,e3] ~@2 a2, ~@6 [e3,e4] [e3,a3,db4,e4]", // A Gdim A5 E A
  G: "[b3,d4,g4]@2 [b3,d4] [g3,b3,d4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [b3,d4,g4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [g3,b3,d4] [b3,d4]!2 ~ [a3,d4], [d3,g3] ~@2 d3, ~@6 [g3,g4] [g3,b3,d4,g4]", // G Bm G Bm D5 G5 G
  H: "[b3,d4,g4]@2 [b3,d4] [g3,b3,d4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [a3,d4,g4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [d3,a3,d4] [a3,d4]!2 ~ [a3,d4], [d3,g3] ~@2 a2, ~@6 [d3,gb4] [d3,a3,d4,gb4]", // G Bm G Dsus4 D D5 G5 D
  I: "[b3,d4,g4]@2 [b3,d4] [g3,b3,d4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [b3,d4,g4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [g3,b3,d4] [b3,d4]!2 ~ [b3,d4], [d3,g3] ~@2 d3, ~@6 [g3,g4] [g3,b3,d4,g4]", // G Bm G Bm G5 G
  J: "[a3,d4,gb4]@2 [a3,d4] [d3,a3,d4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [a3,d4,gb4] [d3,a3,db4,gb4]@2 [d3,a3,db4,gb4] [d3,a3,db4] [a3,c4]!2 ~ [g3,b3], [a2,d3] ~@2 a2, ~@6 [d3,gb4] [d3,a3,c4,gb4]", // D D5 D Dmaj7 Am G D5 D …
  K: "[b3,eb4,gb4]@2 [b3,eb4] [gb3,b3,eb4] [gb3,b3,eb4,gb4]@2 [gb3,b3,eb4,gb4] [b3,eb4,gb4] [gb3,b3,eb4,gb4]@2 [gb3,b3,eb4,gb4] [gb3,b3,eb4] [b3,eb4]!2 ~ [a3,eb4], [b2,gb3] ~@2 b2, ~@6 [gb3,gb4] [gb3,b3,eb4,gb4]", // B Adim B5 Gb B
  L: "[b3,e4,ab4]@2 [b3,e4] [e3,b3,e4] [e3,b3,e4,ab4]@2 [e3,b3,e4,ab4] [b3,e4,ab4] [e3,b3,e4,ab4]@2 [e3,b3,e4,ab4] [e3,b3,e4] [b3,e4]!2 ~ [b3,e4], [b2,e3] ~@2 b2, ~@6 [e3,ab4] [e3,b3,e4,ab4]", // E E5 E E5 E
  M: "[b3,d4,ab4]@2 [b3,d4] [e3,b3,d4] [e3,b3,d4,ab4]@2 [e3,b3,d4,ab4] [b3,d4,ab4] [e3,b3,d4,ab4]@2 [e3,b3,d4,ab4] [e3,b3,d4] [b3,d4]!2 ~ [b3,d4], [b2,e3] ~@2 b2, ~@6 [e3,ab4] [e3,b3,d4,ab4]", // Abdim Bm E7 Abdim E7 Bm E5 E …
  N: "[a2,e3,a3,db4,e4] [e3,a3,db4,e4] ~ [a3,db4,e4] ~ [e3,a3,db4,e4] [a3,db4,e4] ~, ~@3 [a2,e3]@2 ~ [a2,e3]@2", // A A5
  O: "[a3,db4,e4]@2 [a3,db4] [e3,a3,db4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [a3,db4,e4] [e3,a3,db4,e4]@2 [e3,a3,db4,e4] [e3,a3,db4] [a3,db4]!2 [e3,a3,db4,e4]@2, [a2,e3]@4 ~@8 [a2,e3,e4]@3 ~", // A A5
  P: "[a3,d4,gb4]@2 [a3,d4] [d3,a3,d4] [d3,a3,d4,gb4]@2 [d3,a3,d4,gb4] [a3,d4,gb4] [d3,ab3,d4,f4]@2 [d3,ab3,d4,f4] [d3,ab3,d4] [ab3,d4]!2 ~ [ab3,d4], [a2,d3] ~@2 bb2, ~@6 [d3,f4] [d3,ab3,d4,f4]", // D D5 D Ddim Abdim D5 Dm Ddim
  Q: "[bb3,eb4,g4]@2 [bb3,eb4] [eb3,bb3,eb4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [bb3,eb4,g4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [eb3,bb3,eb4] [bb3,eb4]!2 ~ [bb3,eb4], [bb2,eb3] ~@2 bb2, ~@6 [eb3,g4] [eb3,bb3,eb4,g4]", // Eb Eb5 Eb Eb5 Eb
  R: "[bb3,eb4,g4]@2 [bb3,eb4] [eb3,bb3,eb4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [bb3,eb4,g4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [eb3,bb3,eb4] [bb3,eb4]!2 ~ [ab3,eb4], [bb2,eb3] ~@2 bb2, ~@6 [eb3,g4] [eb3,bb3,eb4,g4]", // Eb Eb5 Eb Eb5 Ab5 Eb5 Eb
  S: "[bb3,d4,f4]@2 [bb3,d4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4] [bb3,d4]!2 ~ [bb3,d4], [bb2,f3] ~@2 bb2, ~@6 [f3,f4] [f3,bb3,d4,f4]", // Bb Bb5 F Bb
  T: "[bb3,d4,f4]@2 [bb3,d4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4] [bb3,d4]!2 ~ [ab3,d4], [bb2,f3] ~@2 bb2, ~@6 [f3,f4] [f3,bb3,d4,f4]", // Bb Abdim Bb5 F Bb
  U: "[c4,eb4,ab4]@2 [c4,eb4] [ab3,c4,eb4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [ab3,c4,eb4] [c4,eb4]!2 ~ [bb3,eb4], [eb3,ab3] ~@2 eb3, ~@6 [ab3,ab4] [ab3,c4,eb4,ab4]", // Ab Cm Ab Cm Eb5 Ab5 Ab
  V: "[c4,eb4,ab4]@2 [c4,eb4] [ab3,c4,eb4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [bb3,eb4,ab4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [eb3,bb3,eb4] [bb3,eb4]!2 ~ [bb3,eb4], [eb3,ab3] ~@2 bb2, ~@6 [eb3,g4] [eb3,bb3,eb4,g4]", // Ab Cm Ab Ebsus4 Eb Eb5 Ab5 Eb
  W: "[c4,eb4,ab4]@2 [c4,eb4] [ab3,c4,eb4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [ab3,c4,eb4] [c4,eb4]!2 ~ [c4,eb4], [eb3,ab3] ~@2 eb3, ~@6 [ab3,ab4] [ab3,c4,eb4,ab4]", // Ab Cm Ab Cm Ab5 Ab
  X: "[bb3,eb4,g4]@2 [bb3,eb4] [eb3,bb3,eb4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [bb3,eb4,g4] [eb3,bb3,d4,g4]@2 [eb3,bb3,d4,g4] [eb3,bb3,d4] [bb3,db4]!2 ~ [ab3,c4], [bb2,eb3] ~@2 bb2, ~@6 [eb3,g4] [eb3,bb3,db4,g4]", // Eb Eb5 Eb Ebmaj7 Bbm Ab Eb5 Eb …
  Y: "[c4,e4,g4]@2 [c4,e4] [g3,c4,e4] [g3,c4,e4,g4]@2 [g3,c4,e4,g4] [c4,e4,g4] [g3,c4,e4,g4]@2 [g3,c4,e4,g4] [g3,c4,e4] [c4,e4]!2 ~ [bb3,e4], [c3,g3] ~@2 c3, ~@6 [g3,g4] [g3,c4,e4,g4]", // C Bbdim C5 G C
  Z: "[c4,f4,a4]@2 [c4,f4] [f3,c4,f4] [f3,c4,f4,a4]@2 [f3,c4,f4,a4] [c4,f4,a4] [f3,c4,f4,a4]@2 [f3,c4,f4,a4] [f3,c4,f4] [c4,f4]!2 ~ [c4,f4], [c3,f3] ~@2 c3, ~@6 [f3,a4] [f3,c4,f4,a4]", // F F5 F F5 F
  AA: "[c4,eb4,a4]@2 [c4,eb4] [f3,c4,eb4] [f3,c4,eb4,a4]@2 [f3,c4,eb4,a4] [c4,eb4,a4] [f3,c4,eb4,a4]@2 [f3,c4,eb4,a4] [f3,c4,eb4] [c4,eb4]!2 ~ [c4,eb4], [c3,f3] ~@2 c3, ~@6 [f3,a4] [f3,c4,eb4,a4]", // Adim Cm F7 Adim F7 Cm F5 F …
  AB: "[bb2,f3,bb3,d4,f4] [f3,bb3,d4,f4] ~ [bb3,d4,f4] ~ [f3,bb3,d4,f4] [bb3,d4,f4] ~, ~@3 [bb2,f3]@2 ~ [bb2,f3]@2", // Bb Bb5
  AC: "[bb3,eb4,g4]@2 [bb3,eb4] [eb3,bb3,eb4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [bb3,eb4,g4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [eb3,bb3,eb4] [bb3,eb4]!2 [eb3,bb3,eb4,g4]@2, [bb2,eb3]@4 ~@8 [bb2,eb3,g4]@3 ~", // Eb Eb5 Eb Eb5 Eb Eb5 Eb
  AD: "[bb2,eb3,bb3,eb4,g4]@15 ~", AE: "[bb2,f3,bb3,d4,f4]@15 ~", AF: "[bb2,eb3,bb3,eb4,g4]@7 ~",
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@3 A@4 B@4 C A@3 B@4 D A C@2 A E F@2 G B H A@2 B@4 D A C@2 A E F@3 B@2 ~@2 A I J@2 K@4 L J@3 K@4 M J L@2 J N O@2 P K
  Q J@2 K@4 M J ~@2 J ~
>`.pickRestart({
  A: "~@2 gb4 ~ a2@2 a2 ~ a2@2 a2 ~@5", B: "~@2 e4 ~ a2@2 a2 ~ a2@2 a2 ~@5", C: "~@2 g4 ~ d3@2 d3 ~ d3@2 d3 ~@5",
  D: "~@2 g4 ~ d3@2 d3 ~ a2@2 a2 ~@5", E: "~@2 gb4 ~ b2@2 b2 ~ b2@2 b2 ~@5", F: "~@2 ab4 ~ b2@2 b2 ~ b2@2 b2 ~@5",
  G: "~@2 ab4 ~ b2@2 b2 ~ b2@2 b2 ~@4 f4", H: "~ a2 ~@3 a2 ~@2", I: "~@2 gb4 ~ a2@2 a2 ~ bb2@2 bb2 ~@5",
  J: "~@2 g4 ~ bb2@2 bb2 ~ bb2@2 bb2 ~@5", K: "~@2 f4 ~ bb2@2 bb2 ~ bb2@2 bb2 ~@5",
  L: "~@2 ab4 ~ eb3@2 eb3 ~ eb3@2 eb3 ~@5", M: "~@2 ab4 ~ eb3@2 eb3 ~ bb2@2 bb2 ~@5",
  N: "~@2 g4 ~ c3@2 c3 ~ c3@2 c3 ~@5", O: "~@2 a4 ~ c3@2 c3 ~ c3@2 c3 ~@5", P: "~@2 a4 ~ c3@2 c3 ~ c3@2 c3 ~@4 gb4",
  Q: "~ bb2 ~@3 bb2 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.3)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A B C D ~@3 E F ~@2 G H ~@2 E F ~@11 I ~@3 E F ~@12 A B C D ~@3 J K ~@2 L M ~@2 J K ~@11 N ~@3 J K ~@3 O P Q R
>`.pickRestart({
  A: "gb3@2 g3@3 ~ a3@9 ~", B: "e3@2 gb3@3 ~ g3@4 a2@2 g3 gb3 e3@2", C: "d3@7 ~ d3@2 e3@2 g3 gb3 e3@2", D: "d3 ~",
  E: "a2@2 b2@3 ~ db3@4 a2@2 g3 gb3 e3@2", F: "a2@7 ~@9", G: "~@8 d3@2 e3@2 g3 gb3 e3@2", H: "d3@7 ~@9",
  I: "a3 g3 ~ e3 ~ db3 a2@2", J: "bb2@2 c3@3 ~ d3@4 bb2@2 ab3 g3 f3@2", K: "bb2@7 ~@9", L: "~@8 eb3@2 f3@2 ab3 g3 f3@2",
  M: "eb3@7 ~@9", N: "bb3 ab3 ~ f3 ~ d3 bb2@2", O: "g3@2 ab3@3 ~ bb3@9 ~", P: "f3@2 g3@3 ~ ab3@4 bb2@2 ab3 g3 f3@2",
  Q: "eb3@7 ~ eb3@2 f3@2 ab3 g3 f3@2", R: "eb3 ~",
})).s("gm_electric_guitar_jazz").gain(0.38).pan(0.6)

// other · electric guitar muted
const electric_guitar_muted = note("<~ A B ~@17 C ~@8 D ~@7 C ~@8 E A B ~@17 F ~@8 G ~@8 H I J ~>".pickRestart({
  A: "~@13 d3 gb3@2", B: "~@10 a3@2 ~ gb3 e3 ~", C: "~@4 c4@3 ~ b3@3 ~@5", D: "~ b2 ~@6", E: "~@4 g3@3 ~ gb3@3 ~@5",
  F: "~@4 db4@3 ~ c4@3 ~@5", G: "~ c3 ~@6", H: "~@13 eb3 g3@2", I: "~@10 bb3@2 ~ g3 f3 ~", J: "~@13 c3 d3@2",
})).s("gm_electric_guitar_muted").gain(0.25)

// chords · pad new age · Em D Fm Eb
const pad_new_age = note(`<
  ~@11
  [d4 ~ d5 [e5,g5], g4 ~, ~ b4@2 ~]
  [[d5,gb5]]
  ~@44
  [eb4 ~ eb5 [f5,ab5], ab4 ~, ~ c5@2 ~]
  [[eb5,g5]]
  ~@29
>`).s("gm_pad_new_age").gain(0.35)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@2 B@2 C@3 D C@3 D C@3 D C@3 D C@8 E C@3 D C@3 D C@8 F A@2 B@2 C@3 D C@3 D C@3 D C@3 D C@8 E C@3 D C@3 D A@2 D A
>`.pickRestart({
  A: "x", B: "x ~@2 x!3 ~@2", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!3 ~ x", E: "~ x ~ x ~ x ~@2", F: "x ~@2 x!2 ~@2 x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<A B@2 C@26 D C@17 B@2 C@26 D C@8 B@2 C ~>".pickRestart({
  A: "~@7 x!2 ~@7", B: "~@5 x ~@2", C: "~ x ~ x", D: "x",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@3 A@26 ~ A@17 ~@2 A@26 ~ A@8 ~@2 A ~>".pickRestart({
  A: "x!16",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<A@3 ~@26 B ~@17 A@2 ~@26 B ~@8 A@2 ~@2>".pickRestart({
  A: "~@12 x!3 ~", B: "~@10 x ~ x!3 ~",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<[~@5 x ~@2] ~@28 [~ x ~ x ~@4] ~@45 [~ x ~ x ~@4] ~@12>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~ A@3 ~@26 A ~@16 A@3 ~ A ~@24 A ~@7 A@4>".pickRestart({
  A: "x",
})).gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<~@3 A@26 B A@17 ~@2 A@26 B A@8 ~@2 A ~>".pickRestart({
  A: "~ x ~ x", B: "x",
})).gain(0.48)

stack(
  dulcimer, bass, string_ensemble_2, acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_jazz,
  electric_guitar_muted, pad_new_age, kick, snare, hihat, mid_tom, high_tom, crash, tambourine
)

More by Classics