Strudelify

Nice to Be With You

Gallery

KeyA majorTempo127 bpm
0:00/0:00
// Nice to Be With You — Gallery
// 127 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(127/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 · epiano2 · "J"
const epiano2 = note("<~@5 A B@8 C@8 D@7 E@4 B@8 F@5 G@8 H@8 I@7 J@2 B@8 K@7 B@8 L@8>".pickRestart({
  A: "~@5 [a2,a3,c#4,a4] ~@2", // A
  B: "[~@10 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@8 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 a3@2, ~@5 d3@7 ~ d3@6 ~@2 a2@7 ~ a2@6 ~@2 d3@7 ~ d3@6 ~@2 a2@7 ~ a2@3, ~@14 a3@12 ~@4 a3@8 ~@8 a3@11 ~@5 a3@11 ~@5 a3@11 ~@5 a3@7 ~@9 a3@11 ~@7]/8", // D A D A
  C: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@12 [c#4,e4,a4]@4 a3@2 [c#4,e4,a4]@2 a3@2 [c#4,e4,g#4]@4 ~@8 c#4@4 ~@4 c#4@2, ~@4 a3@4 ~@2 e3@14 ~@2 d3@12 ~@4 a2@14 ~@2 a2@14 ~@2 a2@15 ~ a2@14 ~@2 c#3@14 ~@2 [c#3,e4,g#4,c#5]@6, ~@14 b3@10 ~@6 a3@7 ~@9 a3@13 ~@3 a3@5 ~ a3@4 ~@6 a3@4 ~@2 a3@5 ~@5 a3@4 ~@14 [e4,g#4,c#5]@9 ~@7, ~@86 [c#4,e4,a4]@8 ~@16 c#4@5 ~@13]/8", // A E D A C#m A
  D: "[[e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@3 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 a3@2 ~@2 a3@2 ~@4 a3@2 [d4,f#4,a4]@4 a3@2 [d4,f#4,a4]@2 a3@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@3 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@12 [c#4,e4,a4]@4 a3@2 [c#4,e4,a4]@2 a3@2 [c#4,e4,g#4]@4 ~@8 c#4@4 ~@4 c#4@2, ~@4 c#4@5 ~ d3@15 ~ d3@15 ~ e3@15 ~ a2@15 ~ a2@14 ~@2 c#3@14 ~@2 [c#3,e4,g#4,c#5]@6, ~@14 a3@5 ~@3 [d4,f#4,a4]@8 ~@16 b3@4 ~@2 b3@5 ~@5 a3@4 ~@2 a3@5 ~@5 a3@4 ~@14 [e4,g#4,c#5]@9 ~@7, ~@70 [c#4,e4,a4]@8 ~@16 c#4@5 ~@13]/7", // C#m D E A C#m D C#m A
  E: "[[e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@3 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 a3@2 ~@2 a3@2 ~@4 a3@2 [d4,f#4,a4]@4 a3@2 [d4,f#4,a4]@2 a3@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@3 ~ [a2,a3,e4,a4,c#5]@2 ~@4, ~@4 c#4@5 ~ d3@15 ~ d3@15 ~ e3@15 ~@7, ~@14 a3@5 ~@3 [d4,f#4,a4]@8 ~@16 b3@4 ~@2 b3@5 ~@7]/4", // C#m D E A D
  F: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 a3@2, ~@2 a3@2 ~ e3@7 ~ d3@6 ~@2 a2@7 ~ e3@7 ~ d3@3, ~@14 b3@10 ~@6 a3@7 ~@9 a3@13 ~@3 b3@10 ~@8]/5", // A E D A E D
  G: "[[d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@8 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 a3@2, ~@5 a2@7 ~ a2@7 ~ d3@7 ~ d3@6 ~@2 a2@7 ~ a2@6 ~@4 b3@5 ~@4, ~@14 a3@13 ~@3 a3@13 ~@3 a3@12 ~@4 a3@8 ~@8 a3@11 ~@5 a3@11 ~ e3@14 ~@2 d3@6]/8", // D A D A E D
  H: "[[d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@12 [c#4,e4,a4]@4 a3@2 [c#4,e4,a4]@2 a3@2 [c#4,e4,g#4]@4 ~@8 c#4@4 [e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@3 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 a3@2 ~@2 a3@2 ~@4 a3@2, ~@10 a2@14 ~@2 a2@14 ~@2 a2@15 ~ a2@14 ~@2 c#3@14 ~@2 c#3@14 ~@2 d3@15 ~ d3@6, ~@14 a3@13 ~@3 a3@5 ~ a3@4 ~@6 a3@4 ~@2 a3@5 ~@5 a3@4 ~@14 [e4,g#4,c#5]@9 ~@29 [d4,f#4,a4]@8 ~@2, ~@54 [c#4,e4,a4]@8 ~@16 c#4@5 ~@11 c#4@4 ~@2 c#4@5 ~@5 a3@5 ~@13]/8", // D A C#m D C#m D A
  I: "[[d4,f#4,a4]@4 a3@2 [d4,f#4,a4]@2 a3@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@3 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@12 [c#4,e4,a4]@4 a3@2 [c#4,e4,a4]@2 a3@2 [c#4,e4,g#4]@4 ~@8 c#4@4 [e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@4 ~@2 [e4,g#4,c#5]@3 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 a3@2 ~@2 a3@2 ~@4 a3@2, ~@10 e3@15 ~ a2@15 ~ a2@14 ~@2 c#3@14 ~@2 c#3@14 ~@2 d3@15 ~ d3@6, ~@14 b3@4 ~@2 b3@5 ~@5 a3@4 ~@2 a3@5 ~@5 a3@4 ~@14 [e4,g#4,c#5]@9 ~@29 [d4,f#4,a4]@8 ~@2, ~@38 [c#4,e4,a4]@8 ~@16 c#4@5 ~@11 c#4@4 ~@2 c#4@5 ~@5 a3@5 ~@13]/7", // D E A C#m D C#m D A
  J: "[[d4,f#4,a4]@4 a3@2 [d4,f#4,a4]@2 a3@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@3 ~ [a2,a3,e4,a4,c#5]@2 ~@4, ~@10 e3@15 ~@7, ~@14 b3@4 ~@2 b3@5 ~@7]/2", // D E A
  K: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [a2,a3,e4,a4,c#5]@2 ~@4, ~@2 a3@2 ~ e3@7 ~ d3@6 ~@2 a2@7 ~ e3@7 ~ d3@6 ~@2 a2@7 ~@4, ~@14 b3@10 ~@6 a3@7 ~@9 a3@13 ~@3 b3@10 ~@6 a3@7 ~@9 a3@12 ~@6]/7", // A E D A E D A
  L: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@2 ~@2 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@9 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@8 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@9 ~ [a2,a3,e4,a4,c#5]@16 ~@6, ~@2 a3@2 ~ e3@7 ~ d3@6 ~@2 a2@7 ~ e3@7 ~ d3@6 ~@2 a2@7 ~@12, ~@14 b3@10 ~@6 a3@7 ~@9 a3@13 ~@3 b3@10 ~@6 a3@7 ~@9 a3@12 ~@22]/8", // A E D A E D A
})).s("gm_epiano2").gain(0.27).pan(0.7)

// bass · electric bass pick · "E"
const bass = note(`<
  ~@5 A B C D E F G D H I J K L M N O P Q R C S N O P Q R C S T C D E F G D H I J K L J K L@2 C D E F J K L M N O P Q R
  C S N O P Q R C S T C D E F G D H I J K L J K L T C D E F G D H I J K L J K L U
>`.pickRestart({
  A: "~@6 a1 e1", B: "a1 ~@7", C: "d2@4 ~@2 d2@2 a1@4 d2@3 ~", D: "d2@4 ~@2 d2@2 a1 ~ a1@2 d2@3 ~",
  E: "a1@5 ~ a1@2 e1@3 ~ e1@4", F: "a1@4 ~@2 a1@2 e1 ~ e1@2 f#1@2 a1 ~", G: "d2@5 ~ d2@2 a1@4 d2@3 ~",
  H: "a1@4 ~@2 a1@2 e1@4 a1@3 ~", I: "a1@5 ~ a1@2 e1 ~ e1@2 f#1@2 a1 ~", J: "e2@5 ~ e2@2 b1 ~ b1@2 e2@3 ~",
  K: "d2@5 ~ d2@2 a1 ~ a1@2 d2@2 ~@2", L: "a1@5 ~ a1@2 e1 ~ e1@2 a1@3 ~", M: "a1@5 ~ a1@2 e1 ~ e1@2 a1@2 ~@2",
  N: "a1@4 ~@2 a1@2 e2@5 ~ e2@2", O: "a1@5 ~ a1@2 e2@3 ~ e2@3 ~", P: "c#2@4 ~@2 c#2@2 g#1@5 ~ g#1@2",
  Q: "c#2@5 ~ c#2@2 g#1@4 c#2@4", R: "d2@4 ~@2 d2@2 a1@5 ~ a1@2", S: "e2@4 ~@2 e2@2 b1@4 e2@3 ~", T: "a1@3 ~@13",
  U: "a1",
})).s("gm_electric_bass_pick").gain(0.54)

// chords · rock organ · "S"
const rock_organ = note(`<
  ~@7 A@4 B@2 C@2 D E@3 F@4 G@2 H F@4 G@2 H I A@4 B@2 C@2 J K L J K M@2 A@4 D E@3 F@4 G@2 H F@4 G@2 H I A@4 B@2 C@2 J K
  L J K N I A@4 B@2 C@2 J K L J K M@2
>`.pickRestart({
  A: "[[d5,f#5]@31 ~ [c#5,e5]@31 ~, a4@63 ~]/4", B: "[[a4,d5,f#5]@31 ~]/2", C: "[[a4,c#5,e5]@31 ~]/2", D: "[e5,g#5,b5]",
  E: "[[d5,f#5]@15 ~ [c#5,e5]@30 ~@2, a5@23 ~]/3", F: "[a4@31 ~ g#4@31 ~, [c#5,e5]@63 ~]/4", G: "[a4,d5,f#5]/2",
  H: "[b4,e5,g#5]", I: "[c#5,e5,a5] ~@7", J: "[b4,e5,g#5]@15 ~", K: "[a4,d5,f#5]@15 ~", L: "[a4,c#5,e5]@15 ~",
  M: "[[a4,c#5,e5]@15 ~]/2", N: "[a4,c#5,e5]",
})).s("gm_rock_organ").gain(0.18).pan(0.8)

// chords · acoustic guitar steel · "E"
const acoustic_guitar_steel = note(`<
  ~ A B A B C D E F G@2 E H I@2 J K L M N O P Q R S T N O P Q R S T U E F G@2 E H I@2 J K L V K L@2 E F G@2 V K L M N O
  P Q R S T N O P Q R S T U E F G@2 E H I@2 J K L V K L U E F G@2 E H I@2 J K L V K L ~
>`.pickRestart({
  A: "~@2 b3 ~@3 g#3 b2, e2, ~@2 e3@4 c#4@9 ~, ~@4 g#3@6 b3@5 ~, ~@8 e3@7 ~",
  B: "~@2 f#4 ~@3 d4 a3, d3@15 ~, ~@2 a3@4 g4@9 ~, ~@4 d4@6 f#4@5 ~, ~@8 a3@5 ~@3",
  C: "~@8 e3@2 a3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~, a2@11 ~@5, ~ e3@2 [c#4,e4]@2 ~@3, ~@4 a3@5 ~@7", // A C#m
  D: "[a2,a3,c#4,e4] ~@15", E: "~@3 [d4,f#4]@2 ~@2 a3, d3@7 ~, ~@2 f#3@6 ~@2 f#3@5 ~, ~@4 a3@7 ~ [d4,f#4]@4",
  F: "~@3 [d4,f#4]@2 f#3 ~ a3, d3@7 ~, ~ f#3@3 ~@4, ~@4 a3@7 ~ [d4,f#4]@4", // D
  G: "[~@3 [c#4,e4]@2 ~@6 [c#4,e4]@2 ~@2 a3, a2@7 a3@2 e3@3 ~ e3@2 ~, ~@2 e3@6 ~@2 e3@5 ~ a2@13 ~@3, ~@4 a3@7 ~ [c#4,e4]@6 ~@2 a3@6 ~@2 [c#4,e4]@4]/2", // C#m
  H: "~@3 [d4,f#4]@2 f#3 ~ a3, d3@13 ~@3, ~ f#3@3 ~@4, ~@2 a3@3 ~ [d4,f#4]@2", // D
  I: "[~@6 [c#4,e4]@4 ~@12 [c#4,e4]@4 ~@2 [c#4,e4]@2 a3 ~, a2@14 ~@2 a2@15 ~, ~@2 e3@6 ~@2 e3@4 a3@4 e3@6 ~@2 e3@5 ~, ~@4 a3@6 ~@2 [c#4,e4]@6 ~@2 a3@7 ~@5]/2", // C#m
  J: "~@4 [e4,g#4] ~ [e4,g#4]@4 ~@4 b3@2, e3@7 ~, ~ g#3@3 ~ g#3@2 ~, ~@3 [e4,g#4]", // E
  K: "~@4 [d4,f#4] ~ [d4,f#4]@4 a3@2 ~@2 a3@2, d3@3 [d4,f#4], ~@2 f#3@11 ~@3", // D
  L: "~@4 [c#4,e4] ~ [c#4,e4]@4 a3@2 ~@2 a3@2, a2@7 ~, ~ e3@6 ~, ~@3 [c#4,e4]", // C#m
  M: "~@4 [c#4,e4] ~ [c#4,e4]@4 a3@2 [c#4,e4]@2 a3 ~, a2@15 ~, ~ e3@6 ~", // C#m
  N: "~@2 a3 [c#4,e4]@2 a3 ~ a3, a2@7 ~, ~ e3@6 ~, ~@3 [c#4,e4]", // C#m
  O: "~@4 a3@2 [c#4,e4]@4 a3@2 ~@2 a3 ~, a2@3 [c#4,e4], ~@2 e3@11 ~@3", // C#m
  P: "~@2 c#4 [e4,g#4]@2 c#4 ~ c#4, c#3@7 ~, ~ g#3@6 ~, ~@3 [e4,g#4]", // E
  Q: "~@2 c#4 [e4,g#4]@2 c#4 ~ c#4, c#3@3 [e4,g#4], ~@2 g#3@11 ~@3", // E
  R: "~@2 d4 [f#4,a4]@2 d4 ~ d4, d3@7 ~, ~ a3@6 ~, ~@3 [f#4,a4]", // F#m
  S: "~@2 d4 [f#4,a4]@2 d4 ~ d4, d3@3 [f#4,a4], ~@2 a3@11 ~@3", // F#m
  T: "~@4 e4@2 [g#4,b4]@4 e4@2 [g#4,b4]@2 e4 ~, e3@15 ~, ~ b3@6 ~", U: "[a2,a3,c#4,e4] ~@7",
  V: "~@4 [e4,g#4] ~ [e4,g#4]@4 ~@4 b3@2, ~ g#3@3 ~ g#3@2 ~, ~@3 [e4,g#4]", // E
})).s("gm_acoustic_guitar_steel").gain(0.33).pan(0)

// chords · acoustic guitar steel · "J"
const acoustic_guitar_steel_2 = note(`<
  ~ A B C D E F G@2 H I J@2 K L M N O P O Q R S T U V O Q R S T U V W G@2 H I J@2 K L M N O X N O@2 Y G H I M N O P O Q
  R S T U V O Q R S T U V W G@2 H I J@2 K L M N O X N O W G@2 H I J@2 K L M N O X N O Z
>`.pickRestart({
  A: "~@4 b3@2 ~@4 b3@5 ~, e2@13 ~@3, ~@2 e3@11 ~@3, ~@4 g#3@11 ~, ~@3 c#4@5",
  B: "~@2 f#4 ~@2 f#4@3, d3@13 ~@3, ~ a3@5 ~@2, ~ d4@3, ~@3 g4@5",
  C: "~@4 b3@2 ~@4 b3@5 ~, e2@3 ~, ~@2 e3@11 ~@3, ~@4 g#3@11 ~, ~@6 c#4@9 ~",
  D: "~@4 f#4@2 ~@8 d4 ~, d3@15 ~, ~@2 a3@13 ~, ~@2 d4@3 f#4@3, ~@6 g4@9 ~",
  E: "~@10 a3 ~ [a3,c#4,e4] ~ [a2,a3,c#4,e4] ~, a2@13 ~@3, ~ e3@2 [c#4,e4]@2 ~@3, ~ a3 e3 ~", F: "[a2,a3,c#4,e4] ~@15",
  G: "[f#4,a4]@2 d4@2 [f#4,a4] ~ [d4,f#4,a4]@4 d4@2 [f#4,a4]@2 d4@2", // F#m D F#m
  H: "[e4,a4]@2 c#4@2 [e4,a4] ~ [e4,a4]@4 c#4@2 [e4,a4]@2 c#4@2, ~@3 c#4 ~@4", // A5
  I: "[e4,a4]@2 c#4@2 [e4,a4] ~ [e4,a4]@4 c#4@2 [e4,a4]@2 c#4 ~, ~@6 c#4 ~@9", // A5
  J: "[f#4,a4]@2 d4@2 [f#4,a4] ~ [d4,f#4,a4]@4 d4@2 [f#4,a4]@2 d4 ~", // F#m D F#m
  K: "[e4,a4]@2 c#4@2 [e4,a4] ~ [c#4,e4,a4]@4 c#4@2 [e4,a4]@2 c#4 ~", // A5 A A5
  L: "[e4,a4]@2 c#4@2 [e4,a4] ~ [e4,a4]@4 c#4@2 [e4,a4]@2 c#4 ~", // A5
  M: "[g#4,b4]@2 e4@2 [g#4,b4] ~ [e4,g#4,b4]@4 e4@2 [g#4,b4]@2 e4 ~", // G#m E G#m
  N: "[f#4,a4]@2 d4 ~ [d4,f#4,a4] ~ [d4,f#4,a4]@4 d4@2 [f#4,a4]@2 d4 ~", // F#m D F#m
  O: "[e4,a4]@2 c#4@2 [e4,a4] ~ [e4,a4]@4 c#4@2 [e4,a4]@2 c#4@2", // A5
  P: "[e4,a4]@2 c#4@2 [e4,a4] ~ [e4,a4]@4 c#4@2 [e4,a4]@2 c#4 ~, ~@3 c#4 ~@4", // A5
  Q: "[e4,a4]@2 c#4@2 [e4,a4] ~ e4@4 c#4@2 [e4,a4]@2 c#4@2, ~@6 a4@3 ~@7", // A5
  R: "[e4,g#4]@2 c#4@2 [e4,g#4] ~ [e4,g#4]@4 c#4@2 [e4,g#4]@2 c#4@2", // E
  S: "[e4,g#4]@2 c#4@2 [e4,g#4] ~ [e4,g#4]@4 c#4@2 [e4,g#4]@2 c#4 ~", // E
  T: "[f#4,a4]@2 d4@2 [f#4,a4] ~ [f#4,a4]@4 d4@2 [f#4,a4]@2 d4@2", // F#m
  U: "[f#4,a4]@2 d4@2 [f#4,a4] ~ [f#4,a4]@4 d4@2 [f#4,a4]@2 d4 ~", // F#m
  V: "[g#4,b4]@2 e4@2 [g#4,b4] ~ [g#4,b4]@4 e4@2 [g#4,b4]@2 e4 ~", W: "[c#4,e4,a4] ~@7",
  X: "[e4,g#4,a4,b4]@2 e4@2 [g#4,b4] ~ [e4,g#4,b4]@4 e4@2 [g#4,b4]@2 e4 ~", // E G#m E G#m
  Y: "[e4,f#4,a4]@2 d4@2 [f#4,a4] ~ [d4,f#4,a4]@4 d4@2 [f#4,a4]@2 d4@2", Z: "[e4,a4]@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(1)

// chords · string ensemble 1 · "A"
const string_ensemble_1 = note(`<
  ~@19 A@4 B@2 C A@4 B@2 C ~ D@2 E@2 D@2 E@2 F G H ~@12 A@4 B@2 C A@4 B@2 C ~ D@2 E@2 D@2 E@2 F G H ~@4 D@2 E@2 D@2 E@2
  F G H ~@4
>`.pickRestart({
  A: "[a4@31 ~ g#4@31 ~, [c#5,e5]@63 ~]/4", B: "[[a4,d5,f#5], f#4 ~@31]/2", C: "[g#4,b4,e5]", D: "[[a4,d5,f#5]@31 ~]/2",
  E: "[[a4,c#5,e5]@31 ~]/2", F: "[b4,e5,g#5]@15 ~", G: "[a4,d5,f#5]@15 ~", H: "[a4,c#5,e5]",
})).s("gm_string_ensemble_1").gain(0.14).pan(0.3)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@8 A ~ B ~ A ~ B ~@5 C D ~@5 C D ~@6 A ~ B ~ A ~ B ~@6 E F@2 G@2 H I J K ~ C D ~ L@2 ~@2 C D ~ M@2 ~@3 A ~ B ~ A ~ B
  ~@8 A ~ B ~ A ~ B ~@3 H N O@2
>`.pickRestart({
  A: "f#5 e5@2 d5@2 a4@3", B: "e5 c#5@2 b4@2 a4@3", C: "~@8 c#5@3 b4@3 a4@2", D: "g#4@15 ~",
  E: "~@12 f#3@3 ~, ~@4 c#4@11 ~, ~@8 b3@7 ~",
  F: "[[f#3,a3]@2 [f#3,a3]@2 ~@2 a3@6 [c3,e3]@6 ~@10 f#3@3 ~, ~@6 f#3@3 ~@11 c#4@11 ~, ~@24 b3@7 ~]/2", // F#m C
  G: "[[e3,a3]!2 ~ a3@3 [b2,d3]@3 ~@5 f#3 ~, ~@6 e3@3 ~@11 c#4@7 ~@5, ~@24 b3@7 ~]/2", // A5 Bm
  H: "[g#3,b3] ~ [g#3,b3]@2 ~@2 b3@6 g#3@3 ~", I: "[f#3,a3] ~ [f#3,a3]@2 ~@2 a3@6 f#3@2 ~@2",
  J: "[c#3,a3]@7 ~ a3@2 f#3@2 e3@2 c#3@2", K: "a2@13 ~@3", L: "[~@8 a4@3 f#4@2 ~@3 d5@13 ~@3, ~@13 a4@15 ~@4]/2",
  M: "[~@8 a4@3 f#4@3 ~@2 d5@13 ~@3, ~@7 a4@8 ~]/2", N: "[f#3,a3] ~ [f#3,a3]@2 ~@2 a3@6 f#3@3 ~",
  O: "[[e3,a3]@10 ~@2 [c#4,a4]@19 ~, ~@12 g#4 ~@19]/2", // A5 F#m
})).s("gm_electric_guitar_jazz").gain(0.28).pan(0.3)

// chords · alto sax
const alto_sax = note(`<
  ~@7 A@2 B@2 C@2 D@2 E F ~@17 A@2 B@2 C@2 D@2 E F ~@28 A@2 B@2 C@2 D@2 E F ~@5 A@2 B@2 C@2 D@2 E F ~@5
>`.pickRestart({
  A: "[[d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4]@2 [a3,d4]@8 ~@12]/2", // D D5
  B: "[[c#4,e4]@2 ~@2 [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4]@2 [a3,c#4]@8 ~@12]/2", // C#m A
  C: "[[d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4]@2 d4@11 ~@9, ~@12 a3@7 ~@13]/2", // D
  D: "[[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4]@2 c#4@11 ~@9, ~@12 a3@9 ~@11]/2", // C#m
  E: "[e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4]@3 ~ [e4,g#4]@3 ~ [e4,g#4] ~", // E
  F: "[d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4]@4 d4@2", // D
})).s("gm_alto_sax").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~@6 A B@26 A B@37 A B@14 A B@14 A>".pickRestart({
  A: "x", B: "x ~@2 x!3 ~@2",
})).gain(0.71)

// drums · clap
const clap = s("cp").struct("<~@7 A@26 ~ A@37 ~ A@14 ~ A@14 ~>".pickRestart({
  A: "~ x ~ x",
})).gain(0.71)

// drums · snare
const snare = s("sd").struct("<~@7 A@26 B A@22 C A@14 D A@14 D A@14 ~>".pickRestart({
  A: "~ x ~ x", B: "~@10 x!3 ~ x ~", C: "~@4 x ~@5 x!3 ~ x ~", D: "~@10 x!3 ~ x!2",
})).gain(0.71)

// drums · hihat
const hihat = s("hh").struct(`<
  A@6 B C D C E C D C E C D C E C D C E C D C@2 D C E C D C ~ C D C E C D C E C D C E C E@2 C D C E C D C E C D C E C D
  C@2 D C E C D C ~ C D C E C D C E C D C E C E ~ C D C E C D C E C D C E C E ~
>`.pickRestart({
  A: "x!4", B: "x", C: "x!8", D: "x!7 ~", E: "x!5 ~ x ~",
})).gain(0.71)

// drums · low tom
const low_tom = s("lt").struct("<~@100 [~@7 x] ~>").gain(0.71)

// drums · mid tom
const mid_tom = s("mt").struct("<~@100 [~@3 x] ~>").gain(0.71)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~@2 A ~ B ~ A ~@3 A ~ B ~ A ~ B ~ A ~ B ~ B@2 ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~@2 A
  ~ B ~ A ~@3 A ~ B ~ A ~ B ~ A ~ B ~ B ~@2 A ~ B ~ A ~ B ~ A ~ B ~ B ~
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~ x",
})).gain(0.71)

// drums · high tom
const high_tom = s("ht").struct("<~@100 [~@10 x!2 ~@4] ~>").gain(0.71)

// drums · crash
const crash = s("cr").struct(`<
  ~@7 A ~@7 A ~@3 A ~@6 A ~@6 A@2 ~@7 A ~@6 A ~@3 A ~@3 A ~@6 A ~@6 A@2 ~@7 A ~@5 A@2 ~@7 A ~@5 A
>`.pickRestart({
  A: "x",
})).gain(0.71)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@7 A B@7 A B@3 A B@6 A B@6 ~ A B@7 A B@6 A B@3 A B@3 A B@6 A B@6 ~ A B@7 A B@5 ~ A B@7 A B@5 ~
>`.pickRestart({
  A: "~@2 x ~ x ~@2 x", B: "x ~ x ~ x ~ x!2",
})).gain(2.29)

// drums · congas
const congas_2 = s("conga:18").struct(`<
// … 21 more lines

More by Gallery