Strudelify

Sensualite

Axelle Red

KeyF♯ majorTempo96 bpm
0:00/0:00
// Sensualite — Axelle Red
// 96 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · synth strings 1 · "Nappes"
const synth_strings_1 = note(`<
  ~@3 A@2 B C@2 D E C@2 D E F G@2 H@2 I@4 J K L M C@2 D E C@2 D E F N@2 H@2 I@4 J O@2 P@2 Q@2 R S T@2 U@2 V W U@2 V W X
  Y@2 ~@8 Z@2 AA@4 AB R Z@2 AA@4 AB R Z@2 AA@4 AB R AC ~
>`.pickRestart({
  A: "[e3,a3,c#4]/2", B: "[f#3,b3,d#4]@12 ~ [f#3,a#3,c#4]@2 ~", C: "[b3 a#3, [f#3,d#4]]/2", D: "[f#3,a3,c#4]",
  E: "g#3 g3, [e3,b3]", F: "[f#3,a#3,d#4]@5 ~ [g#3,b3,d#4]@10", G: "[[g3,b3,d4]@5 ~ [a3,c#4,e4]@18 ~@8]/2",
  H: "[[f#3,b3,d#4]@4 [f#3,a#3,d#4]@3 [g#3,b3,e4]@5 [a#3,c#4,f#4]@4]/2", // B D#m E F#
  I: "[[f#3,b3,d#4]@4 [f#3,a#3,d#4]@3 [g#3,b3,e4]@5 [f#3,a#3,c#4]@4]/2", J: "[f#3,b3,d#4] [g#3,b3,d#4]",
  K: "[g#3,b3,e4]", L: "[d#3,f#3,b3]!2", M: "[f#3,b3,c#4] [f#3,a3,c#4]", N: "[[g3,b3,d4]@5 ~ [a3,c#4,e4]@25 ~]/2",
  O: "[[g#3,b3,e4]@7 [d#3,f#3,b3]@5 [d#3,f#3,b3]@4]/2", P: "[b3,d#4,g#4]/2",
  Q: "[f#4@19 ~ f#4@3 ~ e4@3 ~ d#4@4, [a#3,c#4]]/2", R: "[a#3,c#4,f#4]", S: "[g#3,c#4,e4]",
  T: "[[e3,g#3,c#4]@4 ~@2 [f#3,a#3,d#4]@6 ~@2 [a#3,c#4,f#4]@7 ~ [c4,d#4,g#4]@10]/2", U: "[c#4 c4, [g#3,f4]]/2",
  V: "[g#3,b3,d#4]", W: "a#3 a3, [f#3,c#4]", X: "[g#3,c4,f4]@5 ~ [a#3,c#4,f4]@10",
  Y: "[[a3,c#4,e4]@5 ~ [b3,d#4,f#4]@18 ~@8]/2", Z: "[[g#3,c#4,f4]@4 [g#3,c4,f4]@3 [a#3,c#4,f#4]@5 [c4,d#4,g#4]@4]/2",
  AA: "[[g#3,c#4,f4]@4 [g#3,c4,f4]@3 [a#3,c#4,f#4]@5 [g#3,c4,d#4]@4]/2", AB: "[g#3,c#4,f4] [a#3,c#4,f4]",
  AC: "[f3,g#3,c#4]", // C#
})).s("gm_synth_strings_1").gain(0.18).pan(0.4)

// chords · piano · "Ac.Piano"
const piano = note(`<
  A B@2 C@2 D E F G H I J K L M N@2 O@6 P Q R S E F G H I J K L M T@2 O@6 P U V W X Y@2 Z AA AB@2 AC AD AE AF AG AH@2 AI
  AJ AK@2 ~@4 AL@2 AM AN AO@6 AP AN AQ@6 AP AN AQ@6 AP AN AR ~
>`.pickRestart({
  A: "~@14 d#4 e4", B: "[[a3,e4,a4,c#5]@29 ~@3]/2", C: "[[a2,a3]@15 ~ [a2,a3]@15 ~, [e4,a4,c#5]@31 ~]/2",
  D: "[b2,b3,d#4,f#4,b4]", E: "[b3,d#4,f#4,b4]@15 ~", F: "a#3@3 d#3, [d#4,f#4,a#4]", G: "[f#3,f#4,a4,c#5]@15 ~",
  H: "[e3,e4,g#4,b4]@7 ~ [g3,e4,g4,b4]@7 ~", I: "[b3,f#4,b4,d#5]@15 ~", J: "[f#3,a#3,d#4,f#4]@15 ~",
  K: "c#5@12 d#5@3 ~, [f#3,f#4,a4]@15 ~", L: "[e3,e4,g#4,b4]@7 ~ [e3,e4,g4,b4]@8",
  M: "d#4@2 f#4@2 d#4 ~ [b3,d#4,g#4]@9 ~, [f#3,a#3]@5 ~@11", // G#m F#
  N: "[~@2 g4@3 ~ [c#4,e4,a4]@8 d#4 ~ c#5@8 ~@8, [g3,b3,d4]@5 ~ a3@18 ~@8, ~@15 e4@9 ~@8]/2", // A G
  O: "[[d#4,f#4,b4]@7 ~ [d#4,f#4,a#4]@5 ~ [e4,g#4,b4]@9 ~ [f#4,a#4,c#5]@4 ~@2 [d#4,f#4,b4]@9 ~ [d#4,f#4,a#4]@5 ~ [e4,g#4,b4]@8 ~@2 [f#4,a#4,c#5]@4 ~@2 [b3,d#4,f#4]@9 ~ [d#4,f#4,a#4]@5 ~ [e4,g#4,b4]@8 ~@2 [f#4,a#4,c#5]@6 [a#3,c#4,f#4]@2]/6", // B D#m E F# B D#m E F# …
  P: "[f#3,b3,d#4]@7 ~ [g#3,b3,d#4]@8", Q: "[g#3,b3,e4]",
  R: "[d#3,f#3,b3]@6 [d#3,f#3,b3]@2 [f#3,b3,d#4]@2 [f#3,b3,e4]@2 [b3,d#4,f#4]@3 ~", // B Esus2 B
  S: "[f#4,b4,c#5]@7 ~ [f#4,a4,c#5]@8", // F#sus4 F#m
  T: "[~@2 g4@3 ~ [c#4,e4]@8 d#4 ~ c#5@15 ~, [g3,b3,d4]@5 ~ [a3,a4]@24 ~@2, ~@15 e4@16 ~]/2", // C#m G A
  U: "[g#3,b3,e4]@14 [d#3,f#3,b3] ~", V: "f#3@3 b2 f#3 e3 d#3@2, b3@15 ~, d#3@9 ~@7", W: "[g#3,b3,d#4]",
  X: "[b3,d#4,g#4]@11 ~ [b3,d#4,g#4]@3 ~", Y: "[f#4@19 ~ [f#4,f#5]@4 [e4,e5]@4 d#5@4, [a#3,c#4]@31 ~, ~@14 d#4 ~]/2",
  Z: "[d#2,d#3,a#3,c#4,f#4]@15 ~", AA: "[e3,g#3,b3]",
  AB: "[[e3,g#3,c#4]@5 ~ [f#3,a#3,d#4,d#5]@6 ~@2 [a#3,c#4,f#4,f#5]@6 ~@2 [c4,d#4,g#4,g#5]@4 [c4,c5] ~ [c#4,c#5] ~ [d#4,d#5]@2]/2", // C#m D#m F# G# C C# D#
  AC: "[g#3,c#4,f4,g#4,c#5]@8 [g#3,c#4,g#4,c#5,f5]!2 ~ [g#3,c#4,g#4,c#5,d#5]@3 [g#3,c#4,f4,g#4,c#5] ~, c#3@15 ~", // C# G#sus4 C#
  AD: "[g#3,c4,g#4,c5,d#5]@3 [g#4,c5,f5]@3 [f4,g#4,c5]@3 ~ [g#4,c5,d#5]@2 ~ [g#4,c5,f5]@3, f3@15 ~, ~@3 [g#3,c4]@3 [g#3,c4]@2", // G# Fm G# Fm G#
  AE: "[g#3,b3,f4,g#4,b4]@8 [g#3,b3,g#4,b4,f5]!2 ~ [g#3,b3,g#4,b4,d#5]@3 [f4,g#4,c#5]@2, f3@14 [g#3,b3] ~", // Fdim G#m C# G#m
  AF: "[f#3,a#3,c#4,f#4,a#4,c#5]@2 [f#4,a4,c#5] [c#4,a4,c#5,f#5], ~@8 [f#3,a3]@7 ~", // F# F#m
  AG: "[g#3,c#4,f4,g#4,c#5]@7 ~ [g#3,c#4,g#4,c#5,f5]!2 ~ [g#3,c#4,g#4,c#5,d#5]@3 [g#4,c#5,f5]@2, c#3@14 [g#3,c#4] ~", // C# G#sus4 C# C#5
  AH: "[[g#3,c4,f5,g#5]@4 [c5,f5]@2 [c5,f5,g#5]@4 [c5,f5,a#5]@2 ~@12 [f5,g#5,c#6]!2 ~ [f5,g#5,b5]@3 [f3,g#3,b3]@2, f3@16 [f3,g#3,b3]@13 ~@3, c5@3 ~ a#5 ~ [g#3,c4]@8 [f5,g#5,b5]@9 ~@7 [f5,g#5,b5] ~]/2", // Fm F5 Fm Fsus4 C# Fdim G# Fdim
  AI: "[f#3,a#3,c#4]@6 [c#5,f#5,a#5] ~ [f#3,a3,c#4,c#5,f#5,a5]@8, [c#5,f#5,a#5]@5 ~@11", // F# F#m F#
  AJ: "f4@2 g#4@2 f4 ~ [c#4,f4,a#4]@9 ~, [g#3,c4]@5 ~@11", // A#m G#
  AK: "[~@2 a4@3 ~ [d#4,f#4,b4]@8 f4 ~ d#5@8 ~@8, [a3,c#4,e4]@5 ~ b3@18 ~@8, ~@15 f#4@9 ~@8]/2", // B A
  AL: "[[c#4,f4,g#4]@8 [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@8 ~@2 [g#4,c5,d#5]@8]/2", AM: "[g#3,c#4,f4] [a#3,c#4,f4]",
  AN: "[a#3,c#4,f#4]", // F#
  AO: "[[f4,g#4,c#5]@7 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@9 ~ [g#4,c5,d#5]@4 ~@2 [f4,g#4,c#5]@9 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@8 ~@2 [g#4,c5,d#5]@4 ~@2 [c#4,f4,g#4]@9 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@8 ~@2 [g#4,c5,d#5]@6 [c4,d#4,g#4]@2]/6", // C# Fm F# G# C# Fm F# G# …
  AP: "[g#3,c#4,f4]@7 ~ [a#3,c#4,f4]@8", // C# A#m
  AQ: "[[f4,g#4,c#5]@7 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@9 ~ [g#4,c5,d#5]@4 ~@2 [f4,g#4,c#5]@9 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@8 ~@2 [g#4,c5,d#5]@4 ~@2 [c#4,f4,g#4]@9 ~ [f4,g#4,c5]@5 ~ [f#4,a#4,c#5]@8 ~@2 [g#4,c5,d#5]@8]/6", // C# Fm F# G# C# Fm F# G# …
  AR: "[f3,g#3,c#4]", // C#
})).s("gm_piano").gain(0.44).pan(0.6)

// other · string ensemble 2 · "Viol M‚l"
const string_ensemble_2 = note(`<
  ~@17 A@4 B@2 C D E F G H I J K L M N O P@2 A@4 Q@2 R@2 S ~@3 T U V ~@2 W X Y Z AA AB AC AD AE AF@2 ~@4 AG@2 AH AI AJ@4
  AK@2 AH AI AJ@4 AK@2 AH AI AJ@4 AL@2 AM@2 AN ~
>`.pickRestart({
  A: "[b4@4 ~@4 a#4@4 ~@2 b4@6 ~@4 c#5@4 ~@2 b4@5 ~@5 a#4@4 ~@2 b4@6 ~@4 c#5@5 ~@3]/4",
  B: "[b4@5 ~@3 a#4@4 ~@2 b4@6 ~@4 c#5@4 ~@4]/2", C: "b4@7 ~ g#4@8", D: "e4@7 ~", E: "b4@13 ~@3", F: "b4@4 b4@3 ~",
  G: "b4", H: "a#4@10 f#4@3 g#4@3", I: "a4@12 ~@2 [f#4,g#4] a4", J: "b4@2 ~ c#5, ~ b4", K: "d#5@11 ~ f#5@4, b4",
  L: "a#4@10 f#4@2 ~ g#4@3, f#5@3 g#5", M: "f#5 d#5, a4", N: "[g#4,b4] [g4,b4]", O: "d#4@3 g#4@5",
  P: "[g4@6 a4@23 ~@3]/2", Q: "[b4@5 ~@3 a#4@4 ~@4 g#4@8 [a#4,c#5]@8, ~@7 b4@3 ~@6]/2",
  R: "[b4 g#4 e5@2, d#5@8 e4@7 ~, ~ g#5@3]/2", S: "[d#5,f#5], b4@13 ~@3", T: "~ f#5 e5 d#5", U: "f#5", V: "e5@15 ~",
  W: "c#5", X: "c5@10 g#4@3 a#4@3", Y: "b4@12 ~@2 [g#4,a#4] b4", Z: "c#5@2 ~ d#5, ~ c#5", AA: "f5@11 ~ g#5@4, c#5",
  AB: "c5@10 g#4@2 ~ a#4@3, g#5@3 a#5", AC: "g#5 f5, b4", AD: "[a#4,c#5] [a4,c#5]", AE: "f5@3 a#5@5",
  AF: "[a5@3 b5@9 ~@4]/2", AG: "[c#5@4 c5@3 c#5@5 d#5@4]/2", AH: "c#5@7 ~ a#4@8", AI: "f#4@7 ~",
  AJ: "[c#5@4 ~@4 c5@4 ~@2 c#5@6 ~@4 d#5@4 ~@2 c#5@5 ~@5 c5@4 ~@2 c#5@6 ~@4 d#5@5 ~@3]/4",
  AK: "[c#5@5 ~@3 c5@4 ~@2 c#5@6 ~@4 d#5@4 ~@4]/2", AL: "[c#5@5 ~@3 c5@4 ~@4 a#4@8 [c5,d#5]@8, ~@7 c#5@3 ~@6]/2",
  AM: "[c#5 a#4 f#5@2, f5@8 f#4@7 ~, ~ a#5@3]/2", AN: "[c#5,f5]@7 ~, g#5",
})).s("gm_string_ensemble_2").gain(0.17).pan(0.1)

// bass · electric bass finger · "Basse"
const bass = note(`<
  ~@2 A B@2 C D E F G D H I J K L@2 M N O P M N Q R S T U E F G D H I J K V@2 M N O P M N Q W X Y Z AA AB AC AD AE@2 AF
  AG AH AI AF AJ AK AL AM AN@2 ~@3 AO AP@3 AQ AR AS AT AU AR AS AV AW AR AS AT AU AR AS AV AX AR AS AT AU AR AS AV AY AZ
  ~
>`.pickRestart({
  A: "~@8 a2 f#2 ~ e2 ~ c#2 b1 ~", B: "a1@14 ~ a1", C: "b1@15 ~", D: "b1@4 b1 ~@3 b1!2 ~ b1!2 ~ f#1 g#1",
  E: "b1@4 b1 ~ b1!2 ~ b1 b1@2 b1 ~@3", F: "b1@4 ~@2 b1!2 ~ b1 b1@2 b1 ~ g#1 f#1", G: "e1@4 ~@2 e1!2 ~ e1!2 ~ f#1@4",
  H: "b1@4 b1 ~ b1!2 ~ b1 b1@2 b1@2 ~@2", I: "b1@4 ~@2 b1!2 ~ b1 b1@2 b1@3 ~", J: "e1@4 ~@2 e1!2 ~ e1!2 ~ e1@4",
  K: "d#2@4 d#2 ~ g#1@8 ~@2", L: "[g1@2 ~ a1@9 a1@2 ~@2]/2", M: "b1@2 b1 ~ b1@4 d#2 ~ d#2!2 ~ d#2 e2@2",
  N: "~@2 e2 ~ e1@4 f#1!2 ~ f#1 ~ f#1 g#1 f#1", O: "b1@2 b1@2 b1@2 d#2 ~ d#2@2 ~ d#2 d#2@2 ~ d#2",
  P: "e2@4 ~ e1 e2 e1 f#1@2 f#1!2 ~ g#1 b1 g#1", Q: "b1@2 b1 ~ b1@2 f#1@2 g#1@7 ~", R: "e1@7 ~", S: "b1@7 ~",
  T: "f#1@12 f#1 g#1@3", U: "b1@4 b1 ~@2 b1 b1@2 b1@2 b1 ~ f#1 g#1", V: "[g1@2 ~ a1@12 ~]/2", W: "e1@12 ~@2 b1 ~",
  X: "b1@13 ~ f#1 g1", Y: "g#1@4 ~@4 d#2 f#2 g#2 g#2@2 f#2 d#2 b1", Z: "g#1@4 ~@4 d#2 f#2 g#2 g#2@2 f#2 d#2 g#1",
  AA: "f#1@4 ~@4 c#2 d#2 f#2 f#2@2 d#2 c#2 g#1", AB: "f#1@4 ~@4 c#2 d#2 f#2 f#2@2 e2 d#2 c#2",
  AC: "d#2@4 ~@4 a#1 c#2 d#2 d#2@2 d#2 c#2 a#1", AD: "c#2@4 ~@2 g#1 a#1 c#2 ~ c#2@2 ~@2 c#2!2",
  AE: "[c#2@5 ~ d#1 ~ d#1@4 ~@2 f#1@6 ~@2 g#1@9 ~]/2", AF: "c#2@4 c#2 ~@3 c#2!2 ~ c#2!2 ~ g#1 a#1",
  AG: "c#2@4 c#2 ~ c#2!2 ~ c#2 c#2@2 c#2 ~@3", AH: "c#2@4 ~@2 c#2!2 ~ c#2 c#2@2 c#2 ~ a#1 g#1",
  AI: "f#1@4 ~@2 f#1!2 ~ f#1!2 ~ g#1@4", AJ: "c#2@4 c#2 ~ c#2!2 ~ c#2 c#2@2 c#2@2 ~@2",
  AK: "c#2@4 ~@2 c#2!2 ~ c#2 c#2@2 c#2@3 ~", AL: "f#1@4 ~@2 f#1!2 ~ f#1!2 ~ f#1@4", AM: "f2@4 f2 ~ a#1@8 ~@2",
  AN: "[a1@2 ~ b1@7 ~@6]/2", AO: "~@9 c#2 g#2 c#2 g#2 a#2 g#2 a#1", AP: "[c#2@4 f2@2 ~ f#2@5 g#2@3 c#2@3 c#2 a#1@5]/3",
  AQ: "f#1@8 ~@2 g#1 a#1 c#2 a#1 c#2 a#1", AR: "c#2@2 c#2 ~ c#2@4 f2 ~ f2!2 ~ f2 f#2@2",
  AS: "~@2 f#2 ~ f#1@4 g#1!2 ~ g#1 ~ g#1 a#1 g#1", AT: "c#2@2 c#2@2 c#2@2 f2 ~ f2@2 ~ f2 f2@2 ~ f2",
  AU: "f#2@4 ~ f#1 f#2 f#1 g#1@2 g#1!2 ~ a#1 c#2 a#1", AV: "c#2@2 c#2 ~ c#2@2 g#1@2 a#1@3 a#1 a#1@2 f#1@2",
  AW: "f#1@4 ~ c#2 f#2 c#2 f#2@2 f#2@2 f#2@4", AX: "f#1@4 ~ c#2 f#2 c#2 f#2@2 f#2@2 f#2 f#1@2 f#2",
  AY: "f#1@4 ~ c#2 f#2 c#2 f#2@2 f#2@2 f#2@2 f#2!2", AZ: "c#2",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · acoustic guitar nylon · "Ac.Gtr"
const acoustic_guitar_nylon = note(`<
  ~@6 A B C D E F G H I@3 ~@5 J@5 A B C D E F G H I@3 ~@5 K@4 ~@8 L M N O P Q R S T@3 ~@5 U@3 V W X Y V Z@3 V W X Y V
  Z@3 V W X Y V AA@4 ~
>`.pickRestart({
  A: "[b3,d#4]@3 [b3,d#4]!2 ~ [b3,d#4]!2 ~ [b3,d#4]!2 ~@3 [b3,d#4]!2", // B
  B: "[a#3,d#4]@3 [a#3,d#4]!2 ~@2 [a#3,d#4]@2 [a#3,d#4]!2 ~ [a#3,d#4]@3 ~", // D#5
  C: "[a3,d#4]@3 [a3,d#4]!2 ~ [a3,d#4]!2 ~@2 [a3,d#4] ~ [a3,d#4]!2 [a3,d#4]@2", // Adim
  D: "[b3,e4]@3 [b3,e4]!2 ~ [b3,e4]!2 ~ [g3,e4]!2 ~ [b3,e4]@2 [g3,e4]@2", // E5 C E5 C
  E: "[b3,d#4]@3 ~ [b3,d#4] ~ [b3,d#4]!2 ~ [b3,d#4]!2 ~ [b3,d#4]@2 [b3,d#4]!2", // B
  F: "[a#3,d#4]@3 [a#3,d#4]!2 ~ [a#3,d#4]!2 ~ [a#3,d#4]!2 ~ [a#3,d#4]!3 ~", // D#5
  G: "[a3,d#4]@3 [a3,d#4]!2 ~ [a3,d#4]!2 ~ [a3,d#4]!2 ~ [a3,d#4]@2 [b3,d#4] [a3,d#4]", // Adim B Adim
  H: "[b3,e4]@3 ~ [b3,e4] ~@2 [b3,e4]!2 ~ [b3,e4]@2 [b3,e4]@2 [b3,e4]!2", // E5
  I: "[[d#3,f#3,a#3]@2 ~ [g#3,b3,d#4]@3 ~@2 [b3,d4]@2 ~ [a3,c#4,e4]@11 ~@2, ~@15 g3@5 ~@28]/3", // D#m G#m Bm A
  J: "[~@16 [f#3,b3]@6 ~@2 [g#3,b3]@5 ~@3 [g#3,b3]@13 ~@3 b3@13 ~@3 b3@6 ~@2 [f#3,a3]@8, ~@15 d#3@6 ~@2 d#3@5 ~@3 e3@13 ~@3 [d#3,f#3]@14 ~@2 [c#3,f#3]@7 ~ c#3@7 ~@2]/5", // B5 G#m F#m D#m F#5
  K: "[~@16 [f#3,b3]@6 ~@2 [g#3,b3]@5 ~@3 [g#3,b3]@13 ~ [f#3,b3]@18, ~@15 d#3@6 ~@2 d#3@5 ~@3 e3@13 ~@2 d#3@14 ~@4]/4", // B5 G#m B5
  L: "[c#4,f4]@3 [c#4,f4]!2 ~ [c#4,f4]!2 ~ [c#4,f4]!2 ~@3 [c#4,f4]!2", // C#
  M: "[c4,f4]@3 [c4,f4]!2 ~@2 [c4,f4]@2 [c4,f4]!2 ~ [c4,f4]@3 ~", // F5
  N: "[b3,f4]@3 [b3,f4]!2 ~ [b3,f4]!2 ~@2 [b3,f4] ~ [b3,f4]!2 [b3,f4]@2", // Bdim
  O: "[c#4,f#4]@3 [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [a3,f#4]!2 ~ [c#4,f#4]@2 [a3,f#4]@2", // F#5 D F#5 D
  P: "[c#4,f4]@3 ~ [c#4,f4] ~ [c#4,f4]!2 ~ [c#4,f4]!2 ~ [c#4,f4]@2 [c#4,f4]!2", // C#
  Q: "[c4,f4]@3 [c4,f4]!2 ~ [c4,f4]!2 ~ [c4,f4]!2 ~ [c4,f4]!3 ~", // F5
  R: "[b3,f4]@3 [b3,f4]!2 ~ [b3,f4]!2 ~ [b3,f4]!2 ~ [b3,f4]@2 [c#4,f4] [b3,f4]", // Bdim C# Bdim
  S: "[c#4,f#4]@3 ~ [c#4,f#4] ~@2 [c#4,f#4]!2 ~ [c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4]!2", // F#5
  T: "[[f3,g#3,c4]@2 ~ [a#3,c#4,f4]@3 ~@2 [c#4,e4]@2 ~ [b3,d#4,f#4]@11 ~@2, ~@15 a3@5 ~@28]/3", // Fm A#m C#m B
  U: "[~@16 [g#3,c#4]@6 ~@2 [a#3,c#4]@5 ~@3 [a#3,c#4]@13 ~@3, ~@15 f3@6 ~@2 f3@5 ~@3 f#3@13 ~@4]/3", // C#5 A#m
  V: "[c#4,f4]@3 [c#4,f4]!2 ~ [c#4,f4]!2 ~ [c4,f4]!2 ~@3 [c4,f4]!2", // C# F5
  W: "[c#4,f#4]@3 [c#4,f#4]!2 ~@2 [c4,d#4]@2 [c4,d#4]!2 ~ [c4,d#4]@3 ~", // F#5 Cm
  X: "[c#4,f4]@3 [c#4,f4]!2 ~ [c#4,f4]!2 ~@2 [c#4,f4] ~ [c#4,f4]!2 [c#4,f4]@2", // C#
  Y: "[c#4,f#4]@3 [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [d#4,g#4]!2 ~ [d#4,g#4]@2 [d#4,g#4]@2", // F#5 G#5
  Z: "[[c#4,f#4]@3 [c#4,f#4]!2 ~@2 [c4,d#4]@2 [c4,d#4]!2 ~ [c4,f4]@3 ~ [g#3,c#4]@3 [c#4,f4]!2 ~ [c#4,f4] ~ [c#4,f4]@2 [c#4,f4] ~ [c#4,f4]!3 ~ [a#3,c#4]@3 [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [c#4,f#4]@2 [c#4,f#4]@2, ~@15 f3@3 ~@5 g#3@2 ~@6 f#3@13 ~@4]/3", // F#5 Cm F5 C#5 C# A#m F#5
  AA: "[[c#4,f#4]@3 [c#4,f#4]!2 ~@2 [c4,d#4]@2 [c4,d#4]!2 ~ [c4,f4]@3 ~ [g#3,c#4]@3 [c#4,f4]!2 ~ [c#4,f4] ~ [c#4,f4]@2 [c#4,f4] ~ [c#4,f4]!3 ~ [a#3,c#4]@3 [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [c#4,f#4]!2 ~ [c#4,f#4]@2 [c#4,f#4] ~ g#3@14 ~@2, ~@15 f3@3 ~@5 g#3@2 ~@6 f#3@13 ~@3 [c#3,f3]@17]/4", // F#5 Cm F5 C#5 C# A#m F#5 C#
})).s("gm_acoustic_guitar_nylon").gain(0.26).pan(0.4)

// chords · electric guitar clean · "GtrClean"
const electric_guitar_clean = note(`<
  ~@17 A B A B A C ~@15 A B A B A C ~@3 D@2 E@2 F G H@2 ~@11 I J I K I L ~@2 I J I K I L ~@2 I J I K I L ~@2 I J I K I L
  ~@4
>`.pickRestart({
  A: "~@2 [f#3,b3]!2 ~ [f#3,b3]!2 ~ [f#3,a#3]!2 ~ [f#3,a#3]!2 ~ [g#3,b3]!2", // B5 F# G#m
  B: "~@2 [g#3,b3]!2 ~ [g#3,b3]!2 ~ [a#3,c#4]!2 ~ [a#3,c#4]!2 ~ [f#3,b3]!2", // G#m A#m B5
  C: "~@2 [g#3,b3]!2 ~ [g#3,b3]!2 ~ [a#3,c#4]!2 ~ [a#3,c#4]!2 ~ [f#3,b3] ~", // G#m A#m B5
  D: "~@2 [d#4,g#4] ~@3 [d#4,g#4] ~@3 [d#4,g#4] ~@3 [d#4,g#4] ~", // G#5
  E: "~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [c#4,f#4] ~", // F#5
  F: "~@2 [d#4,f#4] ~@3 [d#4,f#4] ~@3 [d#4,f#4] ~@3 [d#4,f#4] ~", // D#m
  G: "~@2 [e4,g#4] ~@3 [e4,g#4] ~@3 [e4,g#4]@4 [e4,g#4] ~", // E
  H: "[[g#4,c#5]@4 ~@2 [a#4,d#5]@6 ~@2 [c#4,f#4]@7 ~ [d#4,g#4]@5 ~@5]/2", // C#5 D#5 F#5 G#5
  I: "~@2 [g#3,c#4]!2 ~ [g#3,c#4]!2 ~ [g#3,c4]!2 ~ [g#3,c4]!2 ~ [a#3,c#4]!2", // C#5 G# A#m
  J: "~@2 [a#3,c#4]!2 ~ [a#3,c#4]!2 ~ [c4,d#4]!2 ~ [c4,d#4]!2 ~ [g#3,c#4]!2", // A#m Cm C#5
  K: "~@2 [a#3,c#4]!2 ~ [a#3,c#4]!2 ~ [c4,d#4] [c4,d#4]@2 [c4,d#4]!2 ~ [g#3,c#4]!2", // A#m Cm C#5
  L: "~@2 [a#3,c#4]!2 ~ [a#3,c#4]!2 ~ [c4,d#4]!2 ~ [c4,d#4]!2 ~ [g#3,c#4] ~", // A#m Cm C#5
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.6)

// other · electric guitar muted · "Gtr Mute"
const electric_guitar_muted = note("<~@3 A B ~@11 C ~@11 D ~@3 D ~@15 D ~@3 E ~@47>".pickRestart({
  A: "~@2 e3 ~ a3!2 f#3 ~ a3 ~@2 a3 ~ a3 f#3 ~", B: "a3 ~@15", C: "~@2 c#4 b3 c#4 b3 g#3!2 b3 ~@2 b3 ~ g#3 b3 ~",
  D: "~@4 b3!5 ~ b3!2 ~ b3!2 ~", E: "~@4 c#4!5 ~ c#4!2 ~ c#4!2 ~",
})).s("gm_electric_guitar_muted").gain(0.24).pan(0.2)

// other · harmonica · "Harmnica"
const harmonica = note("<~@81 A B@2 C D E F G H I@2 J@2 K L M H N ~>".pickRestart({
  A: "~@14 f#5!2", B: "[g#5@13 ~ g#5@4 ~@12 f5 f#5, g5 ~@31]/2", C: "f#5 g#5@2 f#5 f5 d#5 c#5 c5 c#5@2 ~@6, ~ g5 ~@14",
  D: "~@11 g#4 f#4@3 g#4, ~@12 g4 ~@3", E: "c#5 [c5,c#5] c#5 ~@13", F: "~@4 [g4,g#4] ~ [f4,f#4] g#4 c#5 c5 c#5@2 ~@4",
  G: "f5@3 ~ f5@3 ~ g#5 g5 f#5 g#5 g5 f#5 g#5 g5, e5 ~@3 e5 ~@11",
  H: "f#5 g#5 g5 f#5 f5@2 f5 f#5 f5 c#5 g#4 f#4 f4 g#4 c#5 c5", I: "[c#5@8 ~@6 g#5@4 ~@12 f5 f#5]/2",
  J: "[f#5 g#5@2 f#5 f5 d#5 c#5 c5 c#5@19 g#4 f#4@3 g#4, ~ g5 ~@26 g4 ~@3]/2", K: "c#5 [c5,c#5] c#5@9 ~@5",
  L: "~@4 [g4,g#4] ~ [f4,f#4] g#4 c#5 c5 c#5@5 ~", M: "f5@4 f5@4 g#5 g5 f#5 g#5 g5 f#5 g#5 g5, e5 ~@3 e5 ~@11",
  N: "c#5@3 ~",
})).s("gm_harmonica").gain(0.29)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@13 B@2 C A@7 D C A@9 B@2 E A@7 D A@4 D A@2 F G A@7 H B@2 ~ A@7 I A@7 J A@7 D A@7 K C ~
>`.pickRestart({
  A: "x!2", B: "x ~@2 x ~@4", C: "x", D: "x ~@3 x ~@2 x", E: "~@4 x!2 ~@2", F: "x ~@2 x ~@3 x", G: "~@3 x ~@2 x ~",
  H: "x ~@7 x ~@2 x!2 ~ x ~", I: "x!2 ~@2 x!2 ~ x", J: "x ~@7 x ~@6 x", K: "x ~ x ~ x ~ x!2",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@16 A@2 B A C D B ~@4 E C@3 E F G H ~@2 C ~ I E J K B C ~@10 E C@3 E F G C ~@4 D ~@7 I E J K B C L ~ I E J K B C ~@2
  I E J K B C K ~@2
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@9 x ~ x ~@3 x", C: "~@7 x ~@8", D: "~@15 x", E: "~@7 x ~@6 x ~", F: "~@7 x ~@7 x",
  G: "~@7 x ~ x ~@6", H: "~@7 x ~@2 x ~@5", I: "~@7 x ~@2 x ~@4 x", J: "~@7 x ~@6 x!2", K: "~@7 x ~@3 x ~@4",
  L: "~@7 x",
})).gain(0.32)
// … 107 more lines

More by Axelle Red