Strudelify

Spot

Anna Oxa

KeyC minorTempo90 bpm
0:00/0:00
// Spot — Anna Oxa
// 90 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 1
const bass = note(`<
  ~@4 A B C D E F G H I J K L I J K M N O P Q R S T@2 U V W X Y V W Z U AA AB AC Y V AD@4 I J K L I J K M N O P Q R S
  T@2 U V W X Y V W Z U AA AB AC Y V AD@4 AE AF AG AH AI AJ AK AL AM AN AO AP AQ AN AO AR AM AS AT AU AQ AN AO AR AM AN
  AO AP AV ~@4
>`.pickRestart({
  A: "[c1,c2] ~ [c1,c2] ~@3 c1 [f1,f2] ~ [f1,f2] [g1,g2]@5 ~", // C F G
  B: "[c1,c2] ~ [c1,c2] ~@4 [bb1,bb2] ~ [bb1,bb2] [a1,a2] ~ [g1,g2]@4", // C Bb A G
  C: "[c1,c2] ~ [c1,c2] ~@3 c1 [f1,f2] ~ [f1,f2] [g1,g2]@6", D: "[c1,c2] ~ [c1,c2] ~@4 [f1,f2] ~ [g1,g2] [f1,f2]@5 ~",
  E: "[c1,c2] ~ [c1,c2] ~@4 [f1,f2] ~ [f1,f2] [g1,g2]@3 ~ [bb1,bb2] ~", // C F G Bb
  F: "[c1,c2] ~ [c1,c2] ~@3 c1 [bb1,bb2] ~ [bb1,bb2] [a1,a2] ~ [g1,g2]@4", // C Bb A G
  G: "[c1,c2] ~ [c1,c2] ~@4 [f1,f2] ~ [f1,f2] [g1,g2]@4 ~@2", // C F G
  H: "[c1,c2] ~ [c1,c2] ~@4 f1!2 [f2,f3] eb2 [c2,c3] bb1 [f1,f2] [f2,f3] [c2,eb2]", // C F C F Cm
  I: "[c1,c2]@4 ~@2 c2!2 ~ f2 ~ f2 g2@4", J: "[c1,c2]@2 c2 ~@4 bb1 ~ c2 ~ bb1 c2@3 ~",
  K: "bb1@2 bb1 ~@2 bb1 ~ eb2 ~ eb2 f2@6", L: "[eb1,eb2]@2 [eb1,eb2] ~@5 eb2 f2 eb1 c2 g2@3 ~",
  M: "[eb1,eb2]@2 [eb1,eb2] ~@4 eb1!2 eb2@2 bb1@2 f1 ~ [c1,eb1]", N: "[ab1,ab2]@4 ~@2 ab1!2 ~ eb2 ~ eb2 c2@4",
  O: "[g1,g2]@2 g2 ~@4 [c1,c2] [f1,f2] [g1,g2] ~ [f1,f2] [g1,g2]@3 ~", P: "gb1@2 gb1 ~@2 db2 ~ b1 ~ b1 db2@6",
  Q: "[f1,f2]@2 [f1,f2] ~@4 f1!2 eb2@2 bb1@2 f1 f2 [c2,eb2]", R: "[b1,b2]@4 ~@2 b1!2 ~ ab2 ~ ab2 gb2@4",
  S: "[c1,c2]@2 c2 ~@4 g1 [bb0,bb1] [c1,c2] ~ [bb0,bb1] [c1,c2]@3 ~", // C Bb C Bb C
  T: "[[f1,f2]@2 [f1,f2] ~@2 [f1,f2] [db1,db2] [db1,db2]@3 ~ [db1,db2] [db1,db2]@2 db2 [b0,b1]@2 ~ [b0,b1] ~@2 [b0,b1] ~ [b0,b1] [bb0,bb1]@4 [ab0,ab1]@4]/2", // F Db B Bb Ab
  U: "f1@2 f1 ~@2 c1 eb1 f1 ~ eb1 f1@3 c2@2 ~", V: "g1@2 g1 ~@2 eb2 b1 eb2 f2 g2 f2 eb2 g2@2 bb2 c3",
  W: "c2@2 c2 ~@2 [c2,c3] [bb1,bb2] [g1,g2] [eb1,eb2] [f1,f2] [f1,g2] [bb1,bb2] [g1,g2]@3 ~", // C Bb G Eb F Fsus2 Bb G
  X: "[c1,c2]@2 [c1,c2] ~ [eb1,eb2] [g1,g2] [bb1,bb2] [c2,c3] ~ [bb1,bb2] [c2,c3] ~ [bb1,bb2]@3 ~", // C Eb G Bb C Bb C Bb
  Y: "ab1@2 ab1 ~ eb1!2 f1 ab1 ~ f1 ab1@3 c2@2 ~", Z: "[c1,c2]@2 c2 c3!2 g2 f2 g2@2 ~ c2 bb2 g2 f2 eb2 c2",
  AA: "ab1@2 ab1 ~@2 f1 ~ eb1 ~ eb1 f1 eb1 c2@2 ab1 f1",
  AB: "g1@2 g1 ~@2 [d1,d2] [c1,c2] [d1,d2] [f1,f2] [g1,g2]!2 [f1,f2] [g1,g2]@2 [bb1,bb2] [c2,c3]", // D C D F G F G Bb …
  AC: "[c1,c2]@2 [c1,c2] ~ [eb1,eb2] [g1,g2] [bb1,bb2] [c2,c3]@8 ~", AD: "[c2@63 ~]/4",
  AE: "[f1,f2] ~ [f1,f2] ~@3 eb1 [f1,f2] ~ [eb1,eb2] [f1,f2]@2 ~ [f1,f2]@3", // F Eb F
  AF: "[eb1,eb2] ~ [eb1,eb2] ~@2 bb1 ~ eb2 ~ c2 eb2 ~ c2@4", AG: "bb1 ~ bb1 ~@3 f2 bb2 ~ bb2 ~ f2@2 bb1!2 f2",
  AH: "[eb1,eb2] ~ [eb1,eb2] ~@4 [f1,f2] ~ [ab1,ab2] [f1,f2]@5 ~", // Eb F Ab F
  AI: "[bb1,bb2] ~ [bb1,bb2] ~@2 [f1,f2] [ab1,ab2] [bb1,bb2] ~ [ab1,ab2] [bb1,bb2]@3 [f1,f2]@2 [eb1,eb2]", // Bb F Ab Bb Ab Bb F Eb
  AJ: "[ab1,ab2] ~ [ab1,ab2] ~@2 eb2 f2 [ab1,ab2] ~ [f1,f2] [ab1,ab2] ~ [f1,f2]@4", // Ab F Ab F
  AK: "e2 ~ e2 ~@2 db2 eb2 e2@2 db2 eb2 eb2@3 eb2 db2", AL: "ab1 ~ ab1 ~ ab1!2 ~ ab1 ~@4 [e1,e2]@3 ~",
  AM: "gb1@2 gb1 ~@2 db1 e1 gb1 ~ e1 gb1@3 db2@2 ~", AN: "ab1@2 ab1 ~@2 e2 c2 e2 gb2 ab2 gb2 e2 ab2@2 b2 db3",
  AO: "db2@2 db2 ~@2 [db2,db3] [b1,b2] [ab1,ab2] [e1,e2] [gb1,gb2] [gb1,ab2] [b1,b2] [ab1,ab2]@3 ~", // Db B Ab E Gb Gbsus2 B Ab
  AP: "[db1,db2]@2 [db1,db2] ~ [e1,e2] [ab1,ab2] [b1,b2] [db2,db3] ~ [b1,b2] [db2,db3] ~ [b1,b2]@3 ~", // Db E Ab B Db B Db B
  AQ: "a1@2 a1 ~ e1!2 gb1 a1 ~ gb1 a1@3 db2@2 ~", AR: "[db1,db2]@2 db2 db3!2 ab2 gb2 ab2@2 ~ db2 b2 ab2 gb2 e2 db2",
  AS: "a1@2 a1 ~@2 gb1 ~ e1 ~ e1 gb1 e1 db2@2 a1 gb1",
  AT: "ab1@2 ab1 ~@2 [eb1,eb2] [db1,db2] [eb1,eb2] [gb1,gb2] [ab1,ab2]!2 [gb1,gb2] [ab1,ab2]@2 [b1,b2] [db2,db3]", // Eb Db Eb Gb Ab Gb Ab B …
  AU: "[db1,db2]@2 [db1,db2] ~ [e1,e2] [ab1,ab2] [b1,b2] [db2,db3]@8 ~", AV: "a1 ~@7",
})).s("gm_synth_bass_1").gain(0.4)

// bass · synth bass 1 · soft notes
const bass_soft = note("<~@4 A B A ~ B A B C ~@3 D ~@33 D ~@30 E A ~@26 F G H I J>".pickRestart({
  A: "~@6 c2 ~@9", B: "~@6 [c1,c2] ~@9", C: "~@7 f2!2 ~ eb3 ~ bb2 ~@2 [c3,eb3]", D: "~@7 eb1 ~@8", E: "~@6 eb2 ~@9",
  F: "~@2 a1 ~ e1!2 gb1 a1 ~ gb1 a1@3 db2@2 ~", G: "ab1@2 ab1 ~@2 e2 c2 e2 gb2 ab2 gb2 e2 ab2@2 b2 db3",
  H: "db2@2 db2 ~@2 [db2,db3] [b1,b2] [ab1,ab2] [e1,e2] [gb1,gb2] [gb1,ab2] [b1,b2] [ab1,ab2]@3 ~", // Db B Ab E Gb Gbsus2 B Ab
  I: "[db1,db2]@2 db2 db3!2 ab2 gb2 ab2@2 ~ db2 b2 ab2 gb2 e2 db2", J: "gb1@2 gb1 ~@2 db1 e1 gb1 ~ e1 ~@6",
})).s("gm_synth_bass_1").gain(0.15)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@54 A B@2 C@3 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 ~@2 M N O P ~ Q R ~ S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2 T@2 U@2
  V@2 AB
>`.pickRestart({
  A: "g6", B: "f6/2", C: "[eb6@9 d6 bb5 g5]/3", D: "[ab5@3 g5@2 eb5@2 f5@5 [g5,g6]@2 [ab5,ab6]@2]/2",
  E: "[[bb5,bb6]@7 [ab5,ab6]]/2", F: "[[g5,g6]@6 [g5,g6] [c6,c7]]/2", G: "[[bb5,bb6]@6 [ab5,ab6] [g5,g6]]/2",
  H: "[[f5,f6]@2 [eb5,eb6]@4 [c5,c6] [d5,d6]]/2", I: "[[eb5,eb6]@7 [b4,b5]]/2", J: "[bb5@6 bb6 [c5,c7], bb4@7 ~]/2",
  K: "[[bb4,bb6]@3 [ab4,ab6]]/2", L: "[g4,g6]/2", M: "[g4,c5,f5]@3 ~@13", N: "[f4,bb4,eb5] ~@7", O: "f4",
  P: "[f3,db4] [g3,eb4]", Q: "~@9 b3@7", R: "[e3,bb3,db4]@15 ~", S: "[[b5,b6]@7 [a5,a6]]/2",
  T: "[[ab5,ab6]@6 [ab5,ab6] [db6,db7]]/2", U: "[[b5,b6]@6 [a5,a6] [ab5,ab6]]/2",
  V: "[[gb5,gb6]@2 [e5,e6]@4 [db5,db6] [eb5,eb6]]/2", W: "[[e5,e6]@7 [c5,c6]]/2", X: "[b5@6 b6 [db5,db7], b4@7 ~]/2",
  Y: "[[b4,b6]@3 [a4,a6]]/2", Z: "[[ab4,ab6]@6 [db5,db6] [eb5,eb6]]/2", AA: "[[e5,e6]@7 [a5,a6]]/2", AB: "[e5,e6]@3 ~",
})).s("gm_string_ensemble_1").gain(0.18).pan(0.7)

// other · synth brass 1
const synth_brass_1 = note(`<
  ~@12 A@2 B C A@2 D@2 E@2 F@2 G@4 H I@2 J H K@2 L H M@3 N O@2 ~@3 P Q R S T@2 U@2 V W X@2 Y@4 H Z@2 J H K@2 L H AA@3 N
  AB@2 ~@13 AC AD ~ AE@2 AF AG AH AI AJ AK AL@2 AM ~@9
>`.pickRestart({
  A: "[~@2 g5@3 g5@3 c5@5 ~ g5@4 g5@3 ~ f5@7 ~@3]/2", B: "~@2 f5 ~ f5@2 f5 ~ f5 ~ f5@3 ~ f5@2", C: "eb5@3 ~@5",
  D: "[~@2 f5@2 f5 ~ f5 ~ f5 ~ f5 ~ g5 ~ g5@7 ~@11]/2", E: "[~@2 c6@3 c6@3 bb5@3 ab5@3 bb5@7 ~@11]/2",
  F: "[~@2 bb5 ~ bb5 ~ bb5 ~ ab5@2 gb5@3 ~ ab5@8 ~@10]/2",
  G: "[~@2 gb5@3 ~ gb5@2 f5@3 eb5@2 ~ bb5@6 g5@2 f5@3 ~ f5@2 ~@2 c6@4 bb5@2 ~@2 ab5@3 ~ g5@3 ~ g5@4 f5@5 ~ eb5@4 f5@4]/4",
  H: "g5@2 eb5 f5 ~ c5 ~ eb5 ~@4 eb5@2 f5 ~", I: "[g5@2 eb5 f5 ~ b4 ~ eb5 ~@4 g5 ~ f5@4 eb5@8 ~@6]/2",
  J: "~@8 eb5@4 f5@3 ~", K: "[g5@2 eb5 f5 ~ b4 ~ eb5 ~@4 c6 ~ bb5@4 ab5 g5@8 ~@5]/2", L: "~@2 eb5 f5",
  M: "[gb5@2 eb5 f5 ~ b4 ~ eb5 ~@4 g5 ~ d6@6 c6 ~ f5@3 f5!2 eb5 f5@3 g5@2 ab5@2 bb5@2 ab5 g5 ~ eb5@4 f5@3 ~]/3",
  N: "g5@2 eb5 f5 ~ g5 ~ eb5 ~@4 eb5@2 f5 ~", O: "[g5@2 eb5 f5 ~ b4 ~ eb5 ~@4 eb5 ~ d5@5 c5@12 ~]/2",
  P: "~@2 g5@3 g5@2 ~ c5@4 ~@2 g5@2", Q: "~@2 g5@3 ~ f5@4 ~@6", R: "~@2 f5 ~ f5 ~ f5 ~ f5 ~ g5@3 ~ f5@2", S: "eb5 ~@3",
  T: "[~@2 bb5@3 ab5@2 ~ g5@3 f5@2 ~ g5@6 g5@2 f5@6 ~@4]/2", U: "[~@2 f5 ~ f5@2 f5 ~ f5 ~ f5 ~ g5 ~ g5@4 bb4 ~@13]/2",
  V: "~@2 c6@3 ~ c6@2 ~@2 bb5@2 ab5@2 bb5@2", W: "c6@2 c6@3 ~@11", X: "[~@2 bb5@3 bb5@2 ~ ab5@3 gb5@2 ~ ab5@5 ~@13]/2",
  Y: "[~@2 gb5@3 gb5@2 ~ f5@3 eb5@2 ~ bb5@6 g5 ~ f5@7 ~ c6@4 bb5@2 ~@2 ab5@4 g5@3 ~ g5@4 f5@4 ~@2 eb5@4 f5@4]/4",
  Z: "[g5@2 eb5 f5 ~ b4 ~ eb5 ~@4 g5 ~ f5@17 ~]/2",
  AA: "[gb5@2 eb5 f5 ~ b4 ~ eb5 ~@4 g5 ~ d6@6 c6 ~ f5@3 f5!2 eb5 f5@3 g5@2 ab5@2 bb5@2 ab5@2 ~ eb5@4 f5@3 ~]/3",
  AB: "[gb5@2 eb5 f5 ~ b4 ~ eb5 ~@4 eb5 ~ d5@5 c5@12 ~]/2", AC: "~@6 gb5 e5 gb5 ~ gb5 e5 gb5 ~ gb5 e5",
  AD: "gb5 ab5 ~ ab5@7 ~@6", AE: "[~@4 b5@7 ~ db6 ~ b5@4 a5 ab5@3 ~@10]/2", AF: "~@12 ab5@2 a5 ~",
  AG: "b5@2 b5!2 ~ b5 ~ b5@3 ~@2 ab5 ~ a5 ~", AH: "b5 ~ a5 ab5@6 e5 ~ gb5@5",
  AI: "~@2 gb5 e5 gb5@3 e5 gb5 e5 gb5@2 gb5 e5 gb5 ~", AJ: "gb5 e5 gb5@2 gb5 e5 gb5@2 gb5@8", AK: "e5 ~@3",
  AL: "[~@15 gb5@2 e5 gb5 ~ e5 gb5 ~ e5 gb5 ~ e5 gb5 ~ e5 gb5 ~]/2", AM: "e5 gb5 ~ ab5 ~ ab5@2 b5@7 ~@2",
})).s("gm_synth_brass_1").gain(0.52)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@12 A B C D E@2 C F G H I C J K L@2 M N O@2 M P Q@2 M R S T U V W@4 A B C D E@2 C F G H I C J K L@2 M N O@2 M P Q@2 M
  R S T U V W@4 X Y Z AA AB AC AD AE AF AG AH@2 AF AI AJ@2 AF AK AL AM AN AO AJ@2 AF AG AH@2 AF AI AJ@2 AP
>`.pickRestart({
  A: "[g3,bb3,c4,eb4]@15 ~", B: "[g3,a3,c4,eb4]@7 ~", C: "[ab3,c4,eb4]@15 ~", D: "[g3,bb3,eb4]@7 ~",
  E: "[[g3,bb3,c4,eb4]@6 bb3 a3@8 ~, ~@6 [g3,eb4]@9 ~]/2", F: "[g3,bb3,eb4]@15 ~", G: "[ab3,bb3,c4,eb4]@15 ~",
  H: "[bb3,d4,f4]@15 ~", I: "[gb3,ab3,bb3,db4]", J: "[gb3,bb3,b3,eb4]@15 ~", K: "[g3,bb3,c4,eb4]",
  L: "[[c4,eb4,ab4]@5 ~ [bb3,eb4,g4]@7 ~ [ab3,db4,f4]@9 ~ [ab3,c4,eb4]@8]/2", M: "[ab3,c4,eb4,g4]@15 ~",
  N: "[b3,eb4,g4]@15 ~", O: "[eb4@24 eb4@3 ~ [a3,db4,f4]@4, [g3,bb3,c4]@27 ~@5]/2", P: "[g3,b3,eb4,g4]",
  Q: "[d4@16 c4@7 ~ [c4,eb4]@4 [c4,eb4,f4]@4, bb3, [g3,g4]@27 ~@5, eb4@23 ~@9]/2", R: "[ab3,b3,eb4,f4]",
  S: "[bb3,d4,f4]", T: "[bb3,d4,f4]@2 [c4,eb4] [d4,f4], ~@8 ab3@7 ~", U: "[ab3,c4,eb4,g4]", V: "[g3,b3,eb4,g4]@15 ~",
  W: "[[g3,bb3,c4,eb4]@61 ~@3]/4", X: "bb3@4 bb3@3 a3@8 ~, [c4,f4]", Y: "ab3@7 g3@8 ~, [bb3,eb4]@15 ~",
  Z: "~@7 bb4@8 ~, [bb3,eb4,f4]", AA: "[f3,ab3,db4] [g3,bb3,eb4]", AB: "[bb3,eb4,f4]",
  AC: "[ab3,db4,eb4]@3 [eb3,a3,b3]", AD: "[e2,e3,gb3,bb3,db4]", AE: "~@3 [ab3,c4,e4]", AF: "[a3,db4,e4,ab4]@15 ~",
  AG: "[c4,e4,ab4]@15 ~", AH: "[e4@24 e4@3 ~ [bb3,d4,gb4]@4, [ab3,b3,db4]@27 ~@5]/2", AI: "[ab3,c4,e4,ab4]",
  AJ: "[eb4@16 db4@7 ~ [db4,e4]@4 [db4,e4,gb4]@4, b3, [ab3,ab4]@27 ~@5, e4@23 ~@9]/2", AK: "[a3,c4,e4,gb4]",
  AL: "[b3,eb4,gb4]", AM: "[b3,eb4,gb4]@2 [db4,e4] [eb4,gb4], ~@8 a3@7 ~", AN: "[a3,db4,e4,ab4]",
  AO: "[ab3,c4,e4,ab4]@15 ~", AP: "[a3,db4,e4,ab4]@11 ~@5",
})).s("gm_synth_strings_1").gain(0.2)

// other · pad new age
const pad_new_age = note(`<
  ~@19 A ~ B ~ C ~@2 D E F ~@6 G H ~@2 I H ~@12 A ~ B ~ C ~@2 D E F ~@6 G H ~@2 I H ~@13 J ~@6 K L ~@2 M L ~@3 J ~@6 K L
>`.pickRestart({
  A: "~@8 [eb4,eb5] ~ [g4,g5] ~ [bb4,bb5] ~ [eb5,eb6] ~", B: "~@10 [bb5,bb6] ~ [c6,c7] ~ [db6,db7] ~",
  C: "~@10 [g5,g6] ~ [ab5,ab6] ~ [bb5,bb6] ~", D: "[ab5,ab6] ~@5 [g5,g6] ~@3 [eb5,eb6] ~@3 [f5,f6] ~",
  E: "~@8 g5 ~@3 ab5 ~@3", F: "bb5 ~@3 g5 ~@11", G: "[c6,c7] ~@3 [bb5,bb6] ~@3 [g5,g6] ~@3 [f5,f6] ~@3",
  H: "[eb5,eb6] ~@15", I: "~@8 [g5,g6] ~@3 [f5,f6] ~@3", J: "b5 ~@3 ab5 ~@11",
  K: "[db6,db7] ~@3 [b5,b6] ~@3 [ab5,ab6] ~@3 [gb5,gb6] ~@3", L: "[e5,e6] ~@15", M: "~@8 [ab5,ab6] ~@3 [gb5,gb6] ~@3",
})).s("gm_pad_new_age").gain(0.38).pan(0.4)

// other · pad new age · soft notes
const pad_new_age_soft = note("<~@28 A ~@33 A ~@25 B ~@15 B ~@8>".pickRestart({
  A: "~@8 eb5 ~@3 c5 ~@3", B: "~@8 e5 ~@3 db5 ~@3",
})).s("gm_pad_new_age").gain(0.25).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@4 A ~ B C A ~ B D ~@8 E@2 F@2 G@2 ~@2 H ~@3 H ~@9 I@2 J@2 K L M N O P M N E@2 F@2 G@2 ~@2 H ~@3 H ~@9 I@2 Q R S T U
  V W X ~ Y ~@4 Z ~@15 Z ~@4
>`.pickRestart({
  A: "[c3,g3]@2 [c3,g3] ~@13", B: "~ [bb3,eb4]@3", C: "bb4 [ab4,a4] g4 [eb4,f4] eb4 [c4,d4] c4 [bb2,f3,bb3]",
  D: "f3 g3@2 bb3@2 c4@10 ~", E: "[~@6 eb4@8 ~@2 [d4,f4]@15 ~, ab4@7 ~@9, ~ g4@13 ~@18, ~@2 c4@12 ~ bb3@15 ~@2]/2",
  F: "[~ f4@11 ~@4 eb4@13 ~@3, gb4@12 ~@3 [ab3,c4]@13 ~@4]/2", // Ab
  G: "[~@2 b3@11 ~@3 [eb4,g4]@14 ~@2, e4@11 ~@21, ~ eb4@10 ~@4 [bb3,c4]@14 ~@3]/2", H: "[c4,eb4,g4] ~",
  I: "[f4@5 ~@15 a4@12, ~@6 [f4,g4,c5]@21 ~@5]/2", // Fsus2
  J: "[f4@5 ~ [f4,g4]@11 [g4,bb4] [f4,a4] ~ [eb4,g4]@2 [c4,eb4] ~ [bb3,eb4] [g3,c4] ~ f3 g3@2 ~ eb5, ~@6 c5@21 bb3@3 [f4,bb4,d5]@2]/2", // Fsus2 Gm F Eb Cm Eb5 C5 Bb
  K: "[g4,bb4,eb5]@3 ~ c4 bb3 ~ c4 ~ bb3 ~ c4 ~ bb3@2 ~", L: "~@4 c4 bb3 ~ c4 ~ bb3 ~@2 bb3 ~ bb3@2",
  M: "~@4 c4 bb3 ~ c4 ~ bb3 ~ bb3 c4@3 ~", N: "~@2 bb3 ~ bb3 ~@2 bb3 ~ bb3 ~@2 g3@2 bb3@2",
  O: "~@4 c4 bb3 ~ c4 ~ bb3 ~ c4 ~ bb3@2 ~", P: "~@2 c4 ~ c4 bb3 ~ c4 ~ bb3 ~@2 bb3 ~ bb3@2", Q: "f4@5 ~ [f4,g4,c5]@10",
  R: "~ [g4,bb4] [f4,a4] ~ [eb4,g4]@2 [c4,eb4] ~ [bb3,eb4] [g3,c4] ~ f3 g3@2 ~ eb5, ~@11 bb3@3 [f4,bb4,d5]@2", // Gm F Eb Cm Eb5 C5 Bb
  S: "[g4,bb4]@3 ~ [c4,f4,bb4]@3 a4 ~@8", T: "~@4 [bb3,eb4,ab4]@3 g4 ~@4 [g3,bb3,eb4]@2 ~@2",
  U: "[bb3,c4,f4]@3 ~ [eb4,g4]@3 [d4,f4] ~@8", // Bbsus2 Eb Dm
  V: "[f3,ab3,db4]@3 [f3,ab3,db4] ~@2 [f3,ab3,db4]@3 [g3,bb3,eb4] ~@2 [g3,bb3,eb4]@4", // Db Eb
  W: "~@4 [bb3,eb4,f4]@3 [bb3,d4,f4] ~@8", X: "~@4 [ab3,db4,eb4]@3 [ab3,c4,eb4] ~@8",
  Y: "~@9 ab3 [ab3,bb3,e4,gb4]!2 ~@2 [ab3,c4,e4]@2, ~@9 c4@3 ~@4", Z: "[db4,e4,ab4] ~",
})).s("gm_electric_guitar_clean").gain(0.23).pan(0.7)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@22 A ~@24 B C D ~ E C D ~@2 A ~@56>".pickRestart({
  A: "~ bb3@5 ~@2", B: "~@2 c4 ~@8 bb3 ~@4", C: "~@2 c4 ~@13", D: "~@5 f3 g3 ~@3 g3 f3 ~@4", E: "~@11 bb3 ~@4",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.7)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@4 A@2 B@2 A@2 C@2 ~@18 A@2 D@2 E F ~@3 G@2 ~@23 H@2 D@2 I F ~@3 G@2 ~ J@2 D@2 ~@2 K L@2 M N ~@3 O@2 P@2 Q R ~@3 S@2
  ~@5 O@2 P@2 Q R ~
>`.pickRestart({
  A: "[~@4 f5@2 f5 ~ c5 eb5 ~ eb5@8 ~ [f4,c5]@2 c5 f4 g4 bb4 ~ bb4@4 [ab4,a4]]/2", B: "[g4@7 [e4,f4] eb4@20 ~@4]/2",
  C: "[g4@7 b4 c5@20 ~@4]/2", D: "[g4@7 e4 eb4@20 ~@4]/2", E: "~@4 f5@2 f5 ~ c5 eb5 ~ eb5@4 d5", F: "c5@15 ~, db5 ~@15",
  G: "[~@4 d5@2 c5 f4 g4 c5 ~ bb4@21]/2", H: "[~@4 f5@2 f5 ~ c5 eb5 ~ eb5@8 ~ [f4,c5]@2 c5 f4 g4 bb4 ~ bb4@4 ab4]/2",
  I: "~@4 f5@2 f5 ~ c5 eb5 ~ eb5@4 ~", J: "[~@4 f5@2 f5 bb4 c5 eb5@2 eb5@8 ~ [f4,c5]@2 c5 f4 g4 bb4 ~ bb4@4 ab4]/2",
  K: "~@11 f4@2 ab4 bb4 ~", L: "[~@2 bb5 ab5 ~ f5 ~ eb5@4 ~ c5 ~ ab4 bb4@12 ~ bb5@4]/2", M: "f5@11 ~ ab5@4",
  N: "eb5@4 db5@11 ~", O: "[~@4 gb5@2 gb5 ~ db5 e5 ~ e5@8 ~ [gb4,db5]@2 db5 gb4 ab4 b4 ~ b4@4 [a4,bb4]]/2",
  P: "[ab4@7 f4 e4@20 ~@4]/2", Q: "~@4 gb5@2 gb5 ~ db5 e5 ~ e5@4 eb5", R: "db5@15 ~, d5 ~@15",
  S: "[~@4 eb5@2 db5 gb4 ab4 db5 ~ b4@21]/2",
})).s("gm_lead_8_bass_lead").gain(0.22).pan(0.8)

// other · lead 8 bass lead · soft notes
const lead_8_bass_lead_soft = note(`<
  ~@4 A ~@3 A ~ A ~@19 A ~ B ~ A ~@29 A C B ~ D ~@8 C B ~@11 E ~ F ~ E ~@11 E ~ F ~ E ~@2
>`.pickRestart({
  A: "~@7 bb4 ~@8", B: "~@7 f4 ~@8", C: "~@15 a4", D: "~@7 bb4 ~@7 d5", E: "~@7 b4 ~@8", F: "~@7 gb4 ~@8",
})).s("gm_lead_8_bass_lead").gain(0.11).pan(0.8)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@5 A ~@3 B ~ C ~@8 D ~@10 E F ~@9 G@2 H@2 ~@4 I J K ~ D ~@10 E F ~@9 G@2 H@2 ~@7 L ~@3 M N ~@14 M N ~@4
>`.pickRestart({
  A: "~@8 eb4 [eb4,f4]!2 f4 [eb4,f4]!2 ~@2", B: "~@8 eb4 [eb4,f4]!2 f4 [eb4,f4]!2 eb4 ~",
  C: "f3 g3@2 bb3@2 ~@7 g4 [eb4,f4] c4 ~, ~@5 c4@9 ~@2", D: "~@3 eb4@5", E: "~@3 a3", F: "ab3@3 ~",
  G: "[~@3 eb4@17 f4@12, [c4,f4]@5 ~@3]/2", // F5
  H: "[~@3 eb4@6 g3 [ab3,a3] [bb3,b3,c4,db4,d4] [eb4,bb4] g4@9 ~@10, [c4,f4]@11 ~@21]/2", // Amaj7 Eb5 F5
  I: "~@12 eb4 [eb4,f4] f4 [eb4,f4]", J: "[eb4,f4] ~@11 eb4 [eb4,f4] f4 [eb4,f4]", K: "[eb4,f4] ~@15",
  L: "~@3 [c4,e4,ab4]", M: "~@3 bb3", N: "a3@3 ~",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.2)

// other · electric guitar jazz · soft notes · Cm
// … 252 more lines

More by Anna Oxa