Strudelify

Laura non c'e

Nek

KeyA minorTempo127 bpm
0:00/0:00
// Laura non c'e — Nek
// 127 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 14 acoustic guitar steel (copy of ch 13 acoustic guitar steel)
// 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(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.

// bass · electric bass finger
const bass = note(`<
  ~@15 A B C D E F C D F G A D H I J@2 K L J@2 K M J@2 N@2 A B C D E F C D F G A D H O J@2 K L J@2 K M P@2 Q R S T U V W
  X Y Z AA AB AC@2 AD AE AF AG AH AI AJ A AH AI A AK AF AI E AL AM@2 AN AO AM@2 AN AP AM@2 AN AO AM@2 AN AQ AR@2
>`.pickRestart({
  A: "a1@2 ~ a1 a1@2 ~@2", B: "f1@4 ~@2 f1@2 f1@5 ~ f1 ~", C: "g1@2 ~ g1 g1@2 ~@2", D: "e1@4 ~@2 e1@2 e1@4 ~@2 e1 ~",
  E: "a1@4 ~@2 a1@2 a1@4 ~@2 a1 ~", F: "f1@2 ~ f1 f1@2 ~@2", G: "g1@4 ~@2 g1@2 g1@5 ~ g1 ~",
  H: "f1@4 ~@2 f1@2 f1@4 ~@2 f1 ~", I: "g1 ~@3 g1 ~@11", J: "[a1!5 b1@2 c2@2 c2!7]/2", K: "d2!8", L: "f1!7 g1",
  M: "f1!4 g1!4", N: "[d2!7 f1@8 ~]/2", O: "g1 ~@3 g1@2 ~@10",
  P: "[a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 ~@2 a1@4 g1@2 a1@2 c2@2 a1@2 g1@2 a1@3 ~]/2",
  Q: "d2@3 ~ d2@2 ~@2 d2@2 a1@2 g#1@2 g1@2", R: "~@2 g1@2 ~@2 g1@2 g1@3 ~ g1@2 a1@2", S: "c2@4 c2@3 c2",
  T: "f1@2 f1@3 ~ f1@2 e1@2 e1@4 e1@2", U: "d2!2 ~ f2 ~ f2 a1 g#1", V: "g1!2 ~ g1 g1@2 ~ g1", W: "a1@3 b1@3 c2@2",
  X: "e1@4 e2 d2 b1 a1", Y: "d1@5 ~ d2@2 ~@2 d2@2 ~@2 d2@2", Z: "e1!2 ~ e1 g#1@3 g#1",
  AA: "a1@2 a1@3 ~ a1@2 a1@5 ~ a1@2", AB: "g1 ~ g1@2 ~@2 g1@2 g1@5 ~ g1@2", AC: "f1!2 ~ f1 f2@3 f1",
  AD: "e1@3 ~ e1@3 ~ e1@3 ~ e1@4", AE: "e1!8", AF: "c#2@2 ~ c#2 c#2@2 ~@2", AG: "a1@4 ~@2 a1@2 a1@5 ~ a1 ~",
  AH: "b1@2 ~ b1 b1@2 ~@2", AI: "g#1@4 ~@2 g#1@2 g#1@4 ~@2 g#1 ~", AJ: "c#2@4 ~@2 c#2@2 c#2@4 ~@2 c#2 ~",
  AK: "b1@4 ~@2 b1@2 b1@5 ~ b1 ~", AL: "b1 ~@3 b1 ~@3 b1@2 ~@2 b1@2 ~@2", AM: "[c#2!5 d#2@2 e2@2 e2!7]/2", AN: "f#2!8",
  AO: "a1!7 b1", AP: "a1!4 b1!4", AQ: "a1@2 a1@2 a1@2 a1@2 b1@2 b1@2 b1 ~@3", AR: "[c#2 ~@3 c#2@27 ~]/2",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@65 A@3 B C D E F G H I@2 J@2 K@2 ~@32>".pickRestart({
  A: "[d5 ~ e4, f4@2 ~, ~ b4@2]/3", B: "a4@3 g4@3 c5@2, c4", C: "[f4,d5]", D: "[d4,b4]",
  E: "[e4,c5]@2 ~ [d4,b4]@2 ~ [c4,a4]@2", F: "[e4,g4]", G: "[f3,a3]", H: "[g#3,b3]", I: "[a3 g3, e4]/2",
  J: "[g4 f4 c4 d4, f3]/2", K: "[g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3@7 ~, e4@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.3)

// other · distortion guitar
const distortion_guitar = note("<~@80 A@7 B@2 ~@24>".pickRestart({
  A: "[~@7 d3@5 b2@27 ~ d3@4 b2@2 c#3@9 f#3@6 ~ f#3@9 d3@5 b2@6 f#3@8 e3@4 c#3@9 ~ d3@4 b2@2 c#3@2]/7",
  B: "[~@2 c#4@12 a3@17 ~]/2",
})).s("gm_distortion_guitar").gain(0.47).pan(0.7)

// chords · pad warm
const pad_warm = note("<~@22 A@6 B@6 C@7 ~@7 A@6 B@6 D@5 ~@15 E@7 F@7 G@8 H@8 I@3>".pickRestart({
  A: "[~@15 [a3,c4]@16 [b3,d4]@16 [c4,e4]@16 [b3,d4]@16 [a3,c4,g4]@16 [b3,d4], ~@15 g4@64 ~@17]/6", // Am Bm C Bm Am7 Bm
  B: "[~@15 a3@16 g3@16 d4@16 c4@8 d4@8 c4@16 g3, ~@15 c4@32 a3@48 ~]/6",
  C: "[~@15 d4@15 c4@9 d4@8 ~@16 g3@16 d4@16 c4@5 ~@12, ~@15 a3@48 ~@16 a3@21 ~@12, ~@47 c4@32 ~@33]/7",
  D: "[~@15 d4@15 c4@9 d4@8 ~@16 g3@16 ~, ~@15 a3@48 ~@17, ~@47 c4@32 ~]/5",
  E: "[~@15 g#4@16 a3@16 ~ d#4@14 ~ [g#3,b3,d#4]@16 g#4@16 a3@16 [b3,f#4], ~@15 [c#4,e4]@32 [b3,f#4]@15 ~@17 [c#4,e4]@32 ~]/7", // G#m B5 C#m B5 C#m
  F: "[d#4@14 ~ [g#3,b3,d#4]@16 [a3,c#4,e4]@16 [b3,d#4,f#4]@16 [c#4,e4]@16 [b3,d#4]@16 [a3,c#4,e4]@16 [b3,d#4,f#4], ~@63 g#4@31 ~@18]/7", // G#m A B C#m B A B
  G: "[~@3 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@2 ~@6 c#4@16 b3@16 f#4@16 e4@8 f#4@8 ~@16 b3@16 ~@15 e4@2, ~@15 e4@32 c#4@48 ~@16 [c#4,f#4]@17, ~@79 e4@32 ~@17]/8", // B F#5
  H: "[~@7 f#4@8 c#4 ~@15 b3@16 f#4@16 e4@8 f#4@8 ~@16 b3@16 ~@15 e4@2, ~@15 e4@32 c#4@48 ~@16 [c#4,f#4]@17, ~@79 e4@32 ~@17]/8", // F#5
  I: "[~@7 [b3,d#4,f#4]@8 [c#3,b3,e4]@3 ~ [c#3,b3,e4]@28 ~]/3", // B C#m7
})).s("gm_pad_warm").gain(0.13)

// other · distortion guitar
const distortion_guitar_2 = note(`<
  ~@29 A B C D A B C D A B E@2 ~@14 A B C D A B C D F@2 ~@30 G H I J G H I J G H I J G H I J K@2
>`.pickRestart({
  A: "~@2 c4 ~ e4 ~@5 b3@2 ~@2 c4@2", B: "~@2 c4 ~ e4 ~ d4 ~@3 c4 ~ e4 ~ d4 ~",
  C: "~@2 d4 ~ e4 ~ d4 ~@3 d4 ~ e4 ~ d4 ~", D: "~@2 [c4,e4] ~ [c4,e4]@2 ~@2 [c4,e4]@2 ~@4 [c4,e4]@2",
  E: "[~@2 d4 ~ e4 ~ d4 ~@3 d4 ~ e4 ~ [f4,a4]@18]/2", F: "[~@2 c4 ~ e4 ~@5 a#4@4 a4@18]/2",
  G: "~@2 e4 ~ g#4 ~@5 d#4@2 ~@2 e4@2", H: "~@2 e4 ~ g#4 ~ f#4 ~@3 e4 ~ g#4 ~ f#4 ~",
  I: "~@2 f#4 ~ g#4 ~ f#4 ~@3 f#4 ~ g#4 ~ f#4 ~", J: "~@2 [e4,g#4] ~ [e4,g#4]@2 ~@2 [e4,g#4]@2 ~@4 [e4,g#4]@2",
  K: "[[c#4,g#4]@2 ~@2 [c#4,g#4]@27 ~]/2", // C#5
})).s("gm_distortion_guitar").gain(0.32)

// chords · pad sweep
const pad_sweep = note("<~@13 A@2 ~@98>".pickRestart({
  A: "[~@3 [b3,d4,g4]@13]/2", // G
})).s("gm_pad_sweep").gain(0.33).pan(0.6)

// chords · distortion guitar
const distortion_guitar_3 = note(`<
  ~@63 A@2 B C@2 D B E F G B H@2 E I@2 J K ~@8 L M N O L P Q@2 R@2 Q@2 S@2 Q@2 R@2 Q@2 S@2 T@2
>`.pickRestart({
  A: "[~@5 [a2,e3] ~ [a2,e3]@9]/2", B: "[d3,a3,d4]@15 ~", C: "[[g2,d3,g3]@15 ~ [g3,c4]@16, ~@15 c3@16 ~]/2",
  D: "[f2,c3,f3]@15 ~", E: "[g2,d3,g3]@15 ~", F: "a2@3 b2@3 c3@2", G: "e3@7 ~",
  H: "[[e3,b3,e4]@15 ~ [e3,a3]@16, ~@15 a2@16 ~]/2", I: "[f3,c4,f4]@15 ~", J: "e3 f3 e3 f3 e3 f3 e3 f3", K: "e3@7 ~@9",
  L: "a2 ~ a2 ~ [a3,e4]@2 a2 ~ a2 ~ [a3,e4]@2 ~@4", M: "b2 ~ b2 ~ [f#3,b3]@2 b2 ~ b2 ~ [f#3,b3]@2 ~@4",
  N: "c#3 ~ c#3 ~ [g#3,c#4]@2 c#3 ~ c#3 ~ [g#3,c#4]@2 ~@4", O: "g#2 ~ g#2 ~ [b3,d#4]@2 g#2 ~ g#2 ~ [b3,d#4]@2 ~@4",
  P: "[b2,f#3]@2 ~@2 [b2,f#3]@3 ~ [b2,f#3]@3 ~ [b2,f#3]@4", // B5
  Q: "[[c#3,g#3]!5 [d#3,a#3]@2 [e3,b3]@2 [e3,b3]!5 [e3,b3]@2]/2", // C#5 D#5 E5
  R: "[[f#3,c#4]!5 [f#3,c#4]@2 [a2,e3]@2 [a2,e3]!5 [a2,e3]@2]/2", // F#5 A5
  S: "[[f#3,c#4]!5 [f#3,c#4]@2 [a2,e3]@2 [a2,e3]!3 [b2,f#3]!2 [b2,f#3]@2]/2", T: "[[c#3,g#3]@2 ~@2 [c#3,g#3]@27 ~]/2",
})).s("gm_distortion_guitar").gain(0.24).pan(0.3)

// other · distortion guitar
const distortion_guitar_4 = note(`<
  ~@29 A@2 B A@3 B A@3 C ~@15 A@2 B A@3 B A D ~ E F G H E F I J E K L M N@2 O P@4 ~@11 Q@2 R Q@3 R Q@3 R Q@3 R Q ~@2
>`.pickRestart({
  A: "c4!16", B: "d4!16", C: "d4!14 ~@2", D: "c4!10 ~@6", E: "d3 ~ d3@2 d3@2 [d4,f4]@2 ~@2 [d4,f4]@2 ~@4",
  F: "g2 ~ g2@2 g2@2 [d4,f4]@2 ~@2 [d4,f4]@2 ~@4", G: "c3 ~ c3@2 c3 ~ [c4,e4]@2 ~@2 [c4,e4]@2 ~@4",
  H: "f2 ~ f2@2 f2 ~ [c4,e4]@2 ~@2 [c4,e4]@2 ~@4", I: "a2@3 b2@3 c3@2", J: "e3@7 ~",
  K: "e3 ~ e3@2 e3@2 [b3,e4]@2 ~@2 [b3,e4]@2 ~@4", L: "a2 ~ a2@2 a2 ~ [c4,e4]@2 ~@2 [c4,e4]@2 ~@4",
  M: "g2 ~ g2@2 g2 ~ [c4,e4]@2 ~@2 [c4,e4]@2 ~@4", N: "f2 ~ f2@2 f2@2 [d4,f4]@2 ~@2 [d4,f4]@2 ~@4",
  O: "b2 c3 b2 c3 b2 c3 b2 c3", P: "[b2@7 d#4 e4@2 d#4@2 b3@2 c#4@38 ~@12]/4", Q: "e4!16", R: "f#4!16",
})).s("gm_distortion_guitar").gain(0.29)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~@65 A B@2 C A D E F G@2 H@4 I J ~@32>".pickRestart({
  A: "a4", B: "g4/2", C: "a4 c4@3", D: "g4", E: "c5@5 ~ b4@5 ~ a4@4", F: "g4@15 ~", G: "d4/2", H: "[c4@7 d4]/4",
  I: "b3 c4 b3 c4 b3 c4 b3 c4", J: "b3@7 ~",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@2 B@2 C@2 B@2 D@2 E@2 F G H@2 B@2 C@2 B@2 D@2 E@2 I J K@2 L@2 K@2 M@2 K@2 N@2 H@2 B@2 C@2 B@2 D@2 E@2 I J K@2 L@2
  K@2 M@2 O@2 ~@16 P@2 Q@2 R@2 Q@2 S@2 T@2 U V W@2 X@2 W@2 Y@2 W@2 X@2 W@2 Y@2 Z@2
>`.pickRestart({
  A: "[[a2,e3,a3,c4]@4 [a2,e3,a3,c4,e4]@3 [e3,a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [f3,a3,c4,e4]@4 [f3,a3,c4]@2 [f3,a3,c4,e4]@3 [a3,c4,e4] [f3,a3,c4,e4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@5 a2@2 ~@6 e4@2 ~]/2", // Am Fmaj7 F Fmaj7 Am Fmaj7 F
  B: "[[g2,d3,g3,b3]@4 [g2,d3,g3,b3,d4]@3 [d3,g3,b3,d4] [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [e2,b2,e3,b3]@4 [e2,b2,e3,b3]@2 [e2,b2,e3,b3,d4]@3 [b2,e3,b3,d4] [e2,b2,e3,b3,d4]@2 [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2, ~@5 g2@2 ~@6 d4@2 ~]/2", // G E5 E7 E5
  C: "[[a2,e3,a3,c4]@2 [a2,e3,a3,c4,e4]@2 [e3,a3,c4] [e3,a3,c4,e4]!2 [f3,a3,c4,e4]@3 [f3,a3,c4,e4]@2 [f3,a3,c4,e4] [f3,a3,c4]!3, ~@4 a2@2 ~@7 e4@2 ~]/2", // Am Fmaj7 F
  D: "[[f2,c3,f3,a3]@4 [f2,c3,f3,a3,c4]@3 [c3,f3,a3,c4] [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [g2,d3,g3,b3,d4]@4 [g2,d3,g3]@2 [g2,d3,g3,b3,d4]@3 [d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]@2, ~@5 f2@2 ~@6 [b3,d4]@2 ~]/2", // F G G5 G G5 Bm
  E: "[[a2,e3,a3,c4]@4 [a2,e3,a3,c4,e4]@3 [e3,a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e2,b2,e3,b3]@4 [e2,b2,e3,b3]@2 [e2,b2,e3,b3,d4]@3 [b2,e3,b3,d4] [e2,b2,e3,b3,d4]@2 [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2, ~@5 a2@2 ~@6 d4@2 ~]/2", // Am E5 E7 E5
  F: "[f2,c3,f3,a3]@4 [f2,c3,f3,a3,c4]@3 [c3,f3,a3,c4] [c3,f3,a3,c4]@2 [f2,c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [d3,g3,b3] [d3,g3,b3,d4]", // F G
  G: "[g2,d3,g3,b3,d4]@15 ~", // G
  H: "[[a2,e3,a3,c4]@4 [a2,e3,a3,c4,e4]@4 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [f3,a3,c4,e4]@4 [f3,a3,c4]@2 [f3,a3,c4,e4]@3 [a3,c4,e4] [f3,a3,c4,e4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@5 a2@2 ~@6 e4@2 ~]/2", // Am Fmaj7 F Fmaj7 Am Fmaj7 F
  I: "[f2,c3,f3,a3]@4 [f2,c3,f3,a3,c4]@3 [c3,f3,a3,c4] [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2, ~@5 f2@2 ~", // F
  J: "[d3,g3,b3,d4,g4] ~ [d3,g3,b3,d4,g4] ~@5", // G
  K: "[[a2,e3,a3,c4]!2 [a2,e3,a3,c4,e4]!2 [e3,a3,c4,e4]!2 ~ [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4] [c3,e3,g3,c4,e4] [e3,g3,c4,e4] [c3,e3,g3,c4,e4] [c3,e3,g3,c4]!3, ~@13 e4@2 ~]/2", // Am C
  L: "[[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [a3,d4,f#4] ~ [d3,a3,d4,f#4]@3 ~ [f3,a3,c4,f4]@4 [f3,a3,c4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [g3,b3,d4]@2, f#4@2 ~@11 f4@2 ~]/2", // D5 D F G
  M: "[[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [a3,d4,f#4] ~ [d3,a3,d4,f#4]@3 ~ [f3,a3,c4,f4]@4 [f3,a3,c4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2, f#4@2 ~@11 g4@2 ~]/2", // D5 D F G
  N: "[[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [a3,d4,f#4] ~ [d3,a3,d4,f#4]@3 ~ [f3,a3,c4,f4]@14 ~@4, f#4 ~@7]/2", // D5 D F
  O: "[[a2,e3,a3,c4]!2 [a2,e3,a3,c4,e4]!2 [e3,a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4]@8 ~]/2", // Am
  P: "[[c#3,g#3,c#4,e4]@4 [c#3,g#3,c#4,e4,g#4]@4 [g#3,c#4,e4,g#4]@2 [g#3,c#4,e4,g#4]@2 [g#3,c#4,e4,g#4]@2 [a3,c#4,e4,g#4]@4 [a3,c#4,e4]@2 [a3,c#4,e4,g#4]@3 [c#4,e4,g#4] [a3,c#4,e4,g#4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@5 c#3@2 ~@6 g#4@2 ~]/2", // C#m Amaj7 A Amaj7 C#m Amaj7 A
  Q: "[[b2,f#3,b3,d#4]@4 [b2,f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4] [f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4]@2 [g#2,d#3,g#3,d#4]@4 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4,f#4]@3 [d#3,g#3,d#4,f#4] [g#2,d#3,g#3,d#4,f#4]@2 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]@2, ~@5 b2@2 ~@6 f#4@2 ~]/2", // B G#5 G#7 G#5
  R: "[[c#3,g#3,c#4,e4]@2 [c#3,g#3,c#4,e4,g#4]@2 [g#3,c#4,e4] [g#3,c#4,e4,g#4]!2 [a3,c#4,e4,g#4]@3 [a3,c#4,e4,g#4]@2 [a3,c#4,e4,g#4] [a3,c#4,e4]!3, ~@4 c#3@2 ~@7 g#4@2 ~]/2", // C#m Amaj7 A
  S: "[[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4,e4]@3 [e3,a3,c#4,e4] [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [b2,f#3,b3,d#4,f#4]@4 [b2,f#3,b3]@2 [b2,f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2, ~@5 a2@2 ~@6 [d#4,f#4]@2 ~]/2", // A B B5 B B5 D#m
  T: "[[c#3,g#3,c#4,e4]@4 [c#3,g#3,c#4,e4,g#4]@3 [g#3,c#4,e4,g#4] [g#3,c#4,e4,g#4]@2 [g#3,c#4,e4,g#4]@2 [g#3,c#4,e4,g#4]@2 [g#2,d#3,g#3,d#4]@4 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4,f#4]@3 [d#3,g#3,d#4,f#4] [g#2,d#3,g#3,d#4,f#4]@2 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]@2, ~@5 c#3@2 ~@6 f#4@2 ~]/2", // C#m G#5 G#7 G#5
  U: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4,e4]@3 [e3,a3,c#4,e4] [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2, ~@5 a2@2 ~", // A
  V: "[f#3,b3,d#4,f#4,b4] ~ [f#3,b3,d#4,f#4,b4] ~ [f#3,b3,d#4,f#4,b4] ~ [f#3,b3,d#4,f#4,b4] ~", // B
  W: "[[c#3,g#3,c#4,e4]!2 [c#3,g#3,c#4,e4,g#4]!2 [g#3,c#4,e4,g#4]!2 ~ [e3,g#3,b3,e4,g#4]@2 [e3,g#3,b3,e4] [e3,g#3,b3,e4,g#4] [g#3,b3,e4,g#4] [e3,g#3,b3,e4,g#4] [e3,g#3,b3,e4]!3, ~@13 g#4@2 ~]/2", // C#m E
  X: "[[f#3,c#4,f#4]@2 [f#3,c#4,f#4]@2 [f#3,c#4,f#4,a#4]@2 [f#3,c#4,f#4,a#4]@2 [c#4,f#4,a#4] ~ [f#3,c#4,f#4,a#4]@3 ~ [a3,c#4,e4,a4]@4 [a3,c#4,e4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [b3,d#4,f#4]@2, a#4@2 ~@11 a4@2 ~]/2", // F#5 F# A B
  Y: "[[f#3,c#4,f#4]@2 [f#3,c#4,f#4]@2 [f#3,c#4,f#4,a#4]@2 [f#3,c#4,f#4,a#4]@2 [c#4,f#4,a#4] ~ [f#3,c#4,f#4,a#4]@3 ~ [a3,c#4,e4,a4]@4 [a3,c#4,e4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [b3,d#4,f#4,b4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2, a#4@2 ~@11 b4@2 ~]/2", // F#5 F# A B
  Z: "[[e3,g#3,c#4,e4] ~ [e3,g#3,c#4,e4]@13 ~]/2", // C#m
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.8)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@15 A@7 B A@5 C A@11 D A@4 E A@2 B A@5 C A@8 F G D@6 H I D@6 ~ J A@4 E A@2 B A@5 K A@16 C ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "x!2 ~@2", D: "~ x", E: "x!2 ~ x", F: "~ x ~@2", G: "~@4 x!3 ~",
  H: "x ~@2 x ~@2 x ~", I: "x ~ x!3 ~ x ~", J: "~@3 x!4 ~", K: "x ~@3 x ~@3 x ~ x!6",
})).gain(0.66)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@27 A ~@25 A ~@10 B ~@14 C D ~@12 A ~@19>".pickRestart({
  A: "~@13 x!3", B: "~@2 x!2 ~@4", C: "~@5 x!3", D: "x!3 ~@5",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@15 A B@3 A B@2 C A B@3 D E A@10 F ~ A B@2 G H B@2 C A B@3 D E A@9 ~@17 A B@2 G H B@2 C A B@3 D I A@15 D ~@2
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", C: "x ~ x ~ x ~ x!8 ~@2", D: "x!6 ~@2", E: "x!2 ~@2", F: "x!6 ~ x",
  G: "x ~ x ~ x ~ x!3 ~ x ~@5", H: "x!2 ~ x!5", I: "x!3 ~",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@22 A ~@4 B ~@11 B ~@4 B C ~@2 A ~@4 B ~@30 B C ~@2 A ~@4 B ~@16 B ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct(`<
  ~@15 A ~@7 A ~@5 A ~@3 A ~@3 A ~ B ~ A ~@3 C ~@3 A ~@5 A ~@3 A ~@3 D ~ A ~ A E ~@2 F A@2 ~@7 A ~@3 G ~@3 A ~@5 A ~@3 A
  ~@3 A ~@3 A ~@3 G ~
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~ x ~@2", D: "~@5 x ~ x", E: "~ x", F: "x ~@2 x ~@2 x ~", G: "x!2 ~@2",
})).gain(0.39)

// drums · ride bell
const ride_bell = s("rd").struct("<~@65 [x!8]!15 [x!7 ~] ~@14 [x!4]!8 [x!16]!8 ~@2>").gain(0.33)

// drums · tambourine
const tambourine = s("tb").struct("<~@15 A@13 B C@10 D ~ A@4 E A@8 B C@8 D ~@17 A@4 F A@8 G C@15 H ~@2>".pickRestart({
  A: "x!8", B: "x!2 ~@2", C: "x!16", D: "x!15 ~", E: "x!2 ~@2 x!4", F: "x!2 ~ x!5", G: "x!3 ~", H: "x!13 ~@3",
})).gain(0.33)

stack(
  bass, string_ensemble_1, distortion_guitar, pad_warm, distortion_guitar_2, pad_sweep, distortion_guitar_3,
  distortion_guitar_4, string_ensemble_1_2, acoustic_guitar_steel, kick, snare, snare_soft, hihat, open_hat, crash,
  ride_bell, tambourine
)

More by Nek