Strudelify

Il tavolino

Nomadi

KeyG majorTempo104 bpm
0:00/0:00
// Il tavolino — Nomadi
// 103.5 bpm, 12/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(103.5/6)

// 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 · fretless bass
const bass = note(`<
  ~ A B C D E F G H I J K H L M N O P Q R S T U K V N M N W X Q Y H Z U Z V AA AB AC O AD F AE AF Z AG AH V AI AJ AK AL
  E AM AN AO Z AJ AP V AQ AJ AR H Z U AQ V AQ U Z O AS AJ AR AO AR U AR AO AT@2
>`.pickRestart({
  A: "c3@4 g2 e2 g2@3 g2@2 a2", B: "b2@4 b2 f#2 e2@3 f#2 e2@2", C: "c3@4 g2 d2 g2@3 g2@3", D: "a2@4 g2 a2 d2@3 d2@3",
  E: "g2@4 g2@2 d2@4 a1 d2", F: "e2@7 ~ e2@4 b1@8 a1@2 b1@2", G: "c2@2 g2 g1@2 g1", H: "a1@4 g1 a1 d2@3 a1 d2@2",
  I: "c2@4 g1@2 g2@3 ~ g2@2", J: "b1@4 a1@2 e2@3 b1 e2@2", K: "c2@4 g1 c2 g1@4 g1@2", L: "c2@4 c2 d2 g2@3 g2@3",
  M: "b1@4 a1 b1 e2@3 e2@3", N: "c2@4 g1 c2 g2@3 g2@3", O: "a1@4 g1 a1 d2@3 d2@3", P: "g1@4 g1@2 d2@4 b1 d2",
  Q: "e2@4 e2@2 b1@4 a1 b1", R: "c2@4 g2 c2 g2@4 g1@2", S: "a1@4 g1@2 d2@3 a1 d2 a1", T: "c2@4 g2 c2 g2@4 g1 a1",
  U: "b1@4 a1 b1 e2@3 b1 e2@2", V: "a1@4 g1 a1 d2@3 a1 d2 c#2", W: "a1@7 ~ g1@2 a1@2 d2@6 d2@6",
  X: "g2@7 ~ g2@4 d2@8 a1@2 d2@2", Y: "c2@2 g2 g2@2 g1", Z: "c2@4 g1 c2 g1@4 g1 a1", AA: "c2@4 g1 c2 g2@3 g1@2 a1",
  AB: "b1@3 b1 a1 b1 e2@3 b1 e2 d2", AC: "c2@3 g1@2 c2 g2@3 g2!2 g1", AD: "g2@4 g2 g1 d2@4 b1 d2",
  AE: "c2@4 g1 c2 g2@4 g2!2", AF: "a2@3 a2 g2 a2 d2@3 a1 d2 c#2", AG: "b1@3 b1!3 e2@3 b1 e2 d2",
  AH: "c2@4 g1 c2 g1@3 ~ g1 g#1", AI: "c2@4 g1 c2 g2@3 g2 g1 a1", AJ: "b1@4 a1 b1 e2@3 b1 e2 d2",
  AK: "c2@3 g1 c2 g1 g2@3 g2@2 g1", AL: "a1@3 a1 g1 a1 d2@3 a1 d2@2", AM: "e2@3 e2 d2 e2 b1@4 a1 b1",
  AN: "c2@3 g1 c2 d2 g2@4 g2@2", AO: "a2@4 g2 a2 d2@3 a1 d2@2", AP: "c2@4 g1 c2 g2@4 g1@2", AQ: "c2@4 g1 c2 g2@4 g1 a1",
  AR: "c2@4 g1 c2 g2@4 g2@2", AS: "c2@4 g1 c2 g2@3 g1!2 a1", AT: "[g1@3 ~]/2",
})).s("gm_fretless_bass").gain(0.4)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A B A C ~@8 A B A C D E@2 ~@5 A B A C F G H I@2 J K L A B A C ~@4 M N@2 O A B A C ~@4 P Q@2 R A B A C ~@8 A B A C A
  B A C S@2
>`.pickRestart({
  A: "[c4,g4]!2 [b3,g4]!2", B: "[b3,f#4]!2 [b3,g4]!2", C: "[c#4,a4]!2 [d4,a4]!2", D: "~@18 e4@5 ~",
  E: "[e4@10 ~@8 c4@15 ~@15]/2", F: "~@9 a5 f#5 d5", G: "d4@2 ~ c4", H: "c4@23 ~", I: "[~@16 e4 ~ e4@4 d4@14 d4@12]/2",
  J: "[b3,f#4]@12 ~@2 f#4@2 e4 ~ e4@6", K: "d4@23 ~", L: "d4 f#4", M: "d4",
  N: "[e4@12 ~@2 f#4@2 e4 ~ e4@4 d4@14 ~@11 [d4,e4]]/2", O: "c#4 ~", P: "g4@13 d4 e4@2 d4 ~ a3@2 g3@2 a3@2",
  Q: "[~@2 b3@11 ~ d4@4 ~ a3 g3@2 g3@10 ~@15 g#3, ~@9 b3 ~@14]/2", R: "a3 ~", S: "[[d4,f4]@3 ~]/2",
})).s("gm_overdriven_guitar").gain(0.26).pan(0.3)

// other · alto sax
const alto_sax = note("<~@48 A B C D E@2 F G H@2 ~@2 I J K L M N O ~ P Q R S T U V W X Y@2 Z AA AB ~>".pickRestart({
  A: "~@3 g5", B: "[f5,f#5] e5@5 e5@2 e5@2 d5@2 d5@6 b4@6", C: "~@2 b4@2 d5@2 b4@5 a4!2 g4@8 ~ g4@2",
  D: "b4@2 g4@2 b4@2 g4@2 b4@2 g4@2 b4@2 g4@2 b4@2 d5@2 e5 ~ d5@2, a#4 ~@3 a#4 ~@3 a#4 ~@3 a#4 ~@3 a#4 ~@7",
  E: "[g5@2 e5@2 g5@2 g5 a5 a#5 b5 g5 a5 e5 g5 d5 e5 a#4 b4 d5 ~ e5 d5 b4@4 ~@14 [a#4,b4] ~ d5 ~ e5 d5 b4 a4, f#5 ~@47]/2", // Bmaj7
  F: "g4 ~", G: "~@18 b4@2 d5 ~ e5 ~, ~@18 a#4 ~@5", H: "[~@3 c#5@3 ~ a4@2 e4@5 ~@10]/2", I: "~@22 g5 [d#5,f#5]",
  J: "e5@6 e5 ~ e5@2 d5 ~ d5@5 a#4 b4@2 d5@2 e5@2, d#5 ~@23", K: "a4@8 c5@2 b4@2 a4@4 g4@5 ~ e4@2, ~@8 b4 ~@15",
  L: "g4@3 ~ g4 a#4 b4@2 d5 ~ e5 ~@2 f#5 [e5,f5] ~@2 [f5,f#5] e5 ~ g5 ~ a5 ~, ~@12 g5@3 ~ g5@3 ~@5", // Fmaj7 F#maj7
  M: "b5@6 ~ a5 g5 a5@3 b5@3 g5 a5 d5 e5@2 b4@4, ~@12 a#5 ~@11", N: "~@14 d5 ~ [d#5,e5] ~ d5@2 b4@4",
  O: "~@16 c5 d5 [a#4,b4] g4@5", P: "~@12 e5 g5 ~ a5 ~ e5 g5 ~ a5 e5 g5 a5", Q: "e5@3 d5@5 ~@16, d#5 ~@23",
  R: "f#4@5 ~ f#4@2 g4@2 a4@2 b4@4 g4@6 a4@2, ~@12 a#4 ~@11", S: "g4@8 ~@10 b4@2 d5 ~ e5 d5",
  T: "c#5@6 c#5@2 d5@2 e5@2 a4@11 ~", U: "e5@6 e5@2 e5@2 d5@2 d5@5 ~ b4@2 d5@2 d4@2, d#5 ~@5 d#5 ~@11 a#4 ~@5",
  V: "a4@6 c5@2 b4@2 a4 ~ a4@4 g4@5 ~ g4@2, ~@8 a#4 ~@15",
  W: "b4@2 ~ a#4 b4@2 d5@2 e5@2 d5@2 g5 [f5,f#5,g5] [e5,a5] ~ a#5 b5@2 a#5 a5 ~ g5 e5, a#4 ~ g4@2 ~@20", // A5
  X: "~ f5 f#5 a5 f#5 f5 e5@2 b4@2 d5@2 e5 d5 b4 a4 g4@2 a4@3 ~ d5 g4",
  Y: "[e5@5 ~ e5@2 e5@2 d5 ~@2 f#5 e5@2 g5 e5 g5@2 e5 f5 [f#5,g5] b5@2 ~ b5@3 d6 b5@4 a5 ~ c6 ~ b5 ~ g5 a#5 b5 ~ a5 g5@3, ~@6 d#5 ~@5 g5@2 f5 ~@33]/2", // Gmaj7
  Z: "~@2 e5 g5 ~ a5 a5@4 g5 a5 e5 g5@8 e5 g5 a5", AA: "a5@5 ~ a5 f5 f#5@2 e5@2 a4@2 [a#4,b4] a4@5 g4 a4 a#4 [b4,e5]",
  AB: "f5@8 d5 ~ a#4 g4@2 g4 [d#4,e4,f4,f#4] ~@7 [c4,c#4,d4,d#4,e4] b3, ~@7 d4 ~@4",
})).s("gm_alto_sax").gain(0.56)

// chords · piano
const piano = note(`<
  ~ A B A C D E A F G H I J K L A M N E O P Q R S T U V W X N E Y Z AA B A AB A AC AD AE AF E AG AH A AI AJ AK AL AM A
  AB N E A AN AO AP AQ AR AS AT W AU AV AW AX AY AZ BA BB BC AZ BD K BE K BF K BE BG@2
>`.pickRestart({
  A: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // C G
  B: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // B Em
  C: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // A D
  D: "[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4]@2 [e4,g4]@2 [f#4,a4] ~", // G D Em F#m
  E: "[e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [d4,f#4,b4] ~ [d4,f#4,b4] ~ [d4,f#4,b4] ~ [d4,f#4,b4] ~ [d4,f#4,b4] ~ [d4,f#4,b4] ~", // Em Bm
  F: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4]@2 [e4,g4]@2 [f#4,a4] ~", // A D Em F#m
  G: "[e4,g4,c5]@3 ~@9 g4@2 ~@8 [g4,g5]@2, ~ [d4,b4], ~@7 [g4,g5]@2 [g4,g5]@2 ~, ~@4 [a4,a5]!2", // C G A
  H: "d#4@3 ~@2 f#4 ~@5 e4, b4@13 ~@11, f#4@5 ~ a4@6, ~@6 d#4@7 ~@7 d4@4, ~@8 e4@5 ~@5 g4@6",
  I: "g4@3 g4@2 g4 g4@3 ~@2 [b4,b5], [c4,e4], ~@3 [g4,g5], ~@5 [a4,a5]", // B C G A
  J: "[a4,a5]@6 ~@2 [b4,b5]@2 [c#5,c#6] ~@11 [a4,a5]@2, ~@6 [a4,a5]@5 ~ [d5,d6]@12, ~@3 [f#4,f#5], ~@5 [g4,g5]", // A B C# A D F# G
  K: "[e4,g4,c5]!6 [d4,g4,b4]!6", // C G
  L: "[d#4,f#4,b4]!3 ~@2 [f#4,f#5] ~ e4 [g4,b4]!2 [e4,g4,b4]!2, ~@3 [d#4,d#5]@3 [g4,b4]@2 e4@2 ~@2, ~@4 [e4,e5]@2 f#4@3 f#4@3", // B F# G Em D# G E
  M: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4]@2 [e4,g4]@2 [f#4,a4]@2", // A D Em F#m
  N: "[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // G D
  O: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [g4,a#4] ~ g4@2 d4@2, ~@9 b4 ~@2", // C G Gm
  P: "[c#4,e4,a4]!2 a4 ~@2 [c#5,c#6] [d5,d6]!2 [f#4,d5,d6] [d5,d6]!2 [f#4,a4,d5,d6], ~@2 [c#4,e4]@4 d4@3 d4@3, ~@3 [a4,a5]@3 f#4@2 a4@3 ~, ~@4 [b4,b5]@2 ~ [e4,g4]@3 [e4,g4]@2, ~@9 f#4@2 ~", // A C# D C#m A B Em
  Q: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] ~ [d4,g4,b4]@2 [d4,g4,b4]@2 ~@4 [g4,g5]@3 ~, ~@16 [d4,b4]@7 ~, ~@4 g4 ~, ~@18 [a4,a5]@5 ~", // C G A
  R: "f#4 ~@4 [f#4,f#5] ~@5 [e4,e5], b4 [a4,a5], d#4@3 [d#4,d#5]@3 ~@4 [f#4,f#5]@2, ~ [f#4,f#5]@4 ~@3 [g4,g5]@4, ~@4 [e4,e5]@2 ~@3 [e4,e5]@2 ~", // F# E A D# F# G E
  S: "[e4,g4,c5]!6 [d4,g4,b4]!2 ~@3 [d4,d5], ~@2 b4, ~@8 d4@3 ~, ~@4 g4 [g4,g5], ~@3 [a4,a5]", // C G D G A
  T: "[c#4,e4,a4]!2 a4 ~@2 [c#5,c#6] d6 [d5,d6] [f#4,d5,d6] [d5,d6]!2 [f#4,a4,d5,d6], ~@2 [c#4,e4]@4 d4@3 d4@3, ~@3 [a4,a5]@3 f#4@2 a4@3 ~, ~@8 [b4,b5]@4 d5 ~ [e4,g4]@6 [e4,g4]@4, ~@9 f#4@2 ~", // A C# D C#m A B Em
  U: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] ~ [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4]@2 [d4,g4]@2 [d4,g4,b4]@2, ~@9 b4@2 ~, ~@5 a4", // C G G5 G
  V: "[d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [f#4,b4]@2 [f#4,b4]@2 [d#4,f#4,b4]@2 [b3,e4,a#4] ~ [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4]@2 [b3,e4,f#4]@2 [b3,e4]@2, ~@3 d#4@2 ~@7, ~@8 e4@4 g4@2 ~@4 g4@5 ~", // B B5 B E Em E5 Bsus4 E5
  W: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] ~ [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2", // C G
  X: "[c#4,e4,a4]!6 [d4,a4] [d4,f#4,a4] [d4,f#4] ~@2 [f#4,a4], g#4 ~@11 f#4 ~@3 a4@6 ~@2, ~@3 d4, ~@9 f#4@2 ~, ~@5 [e4,g4]", // A D5 D F#m Em
  Y: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,a4] ~ [d4,g4] ~", // C G Dsus4 G5
  Z: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,b4] ~ [e4,c#5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // A Esus4 C#m D
  AA: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4] ~ [d4,g4,a4] ~ [d4,g4,b4] ~", // C G G5 Dsus4 G
  AB: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,d5] ~ [g4,d5] ~ [a4,d5] ~", // A D G5 D5
  AC: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [e4,f#4,b4] ~ [d#4,f#4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // B Esus2 B Esus4 Em
  AD: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,e4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // C Em7 G
  AE: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,d5] ~ [f#4,c5,d5] ~, ~@10 b4 ~", // A D D7
  AF: "[d4,g4,a#4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~@3 [d4,a4] ~ a4@2, ~@3 f#4, ~@22 d4 ~", // G D D5
  AG: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [g4,b4]@2 [d4,g4] ~ [g4,b4]@2, ~@18 d4 ~ a4@2 d4 ~", // C G G5 G
  AH: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [f#4,d5] ~ [g4,d5] ~ [a4,d5] ~ a4@2 [b4,d5] ~ [c5,d5] ~, ~@18 d5 ~@5", // A D G5 D5 Bm Csus2
  AI: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,b4] ~ [e4,b4] ~ [e4,f#4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // B G#m E5 Esus2 Esus4 Em
  AJ: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,a4,b4] ~ [d4,a4] ~ d4 ~, ~@10 g4 ~", // C G Bm7 D5
  AK: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4] ~ [d4,g4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,b4] ~ [d4,f#4,c5] ~", // A D G5 D Bm D7
  AL: "[e4,g4,c5] ~ [e4,g4,c5] ~ g4 ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // C G
  AM: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // B Esus4 Em
  AN: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ f#4@2 e4@2 [d4,f#4,a4] ~, ~@18 d4 ~ g4 ~@3", // A D
  AO: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,a4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // C G
  AP: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,b4] ~ [e4,b4] ~ [f#4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,a4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // B G#m E5 B5 Esus4 Em
  AQ: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ b4@2 [b4,b5]@2 [b4,b5]@2 ~@4 [g4,g5]@2, ~ d4, ~@3 g4@2 [a4,a5], ~@7 [a#4,a#5]@5, ~@7 a5@2 [b4,b5]@3", // C B G A A# B
  AR: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 a4@2 ~@4 [c#5,c#6]@2 [d4,f#4,a4] ~ [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2, ~ [c#4,e4]@2 ~@3, ~ [a4,a5] ~@2, ~@2 [b4,b5] ~@3", // A C# D C#m A B
  AS: "[e4,g4,c5] ~ [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [b4,d5]@2 [b4,d5]@2 d5@2 d5@2 [b4,d5]@2 [g4,b4,d5]@2, ~@12 a#4 ~@3 b4@4 ~@4, ~@9 g4@2 ~", // C Bm G
  AT: "[d#4,f#4,b4]!6 [e4,g4,b4]!6", // B Em
  AU: "[e4,a4,c#5]!6 [f#4,a4,d5]!2 [f#4,d5] d5!2 [a4,d5], ~@8 a4@3 ~, ~@3 f#4, ~@5 g4", // A D D5
  AV: "[e4,g4,c5]!6 [d4,g4,b4]!6, ~@12 a#4 ~@11", // C G
  AW: "[d#4,f#4,b4]!2 [d#4,b4] b4 [e4,b4] f#4 [e4,a4,b4]!2 [e4,b4] [e4,g4,b4]!3, ~@4 f#4@6 b4 ~@5 a4@8, ~@6 d#4@5 ~@13", // B G#m E5 Esus4 E5 Em
  AX: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5] ~ a#4 ~ g4@2 a#4 ~@5 g4@2, ~@3 [b4,d5]!2 [a#4,b4,d5], ~@9 g4@2 ~", // C Bm A#
  AY: "[e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [d4,f#4,d5] ~ [d4,f#4,d5]@2 [d4,f#4,d5]@2 [d4,d5]@2 [d4,g4,d5]@2 g#4 a4, ~@9 f#4@2 [d4,d5]", // A D G5 D
  AZ: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 a#4 ~@9 g4@2, ~@3 [b4,d5] [a#4,b4,d5]!2, ~@7 g4@2 g4@2 ~", // C Bm A#
  BA: "[d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [e4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4] ~, ~@12 g4 ~@11", // B E5 Em
  BB: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 [g4,c5]@2 a#4 ~@7 [a#4,b4,d5]@2 g4 ~, ~@10 e4 ~ [b4,d5]@4 [a#4,b4,d5]@4 ~@4, ~@7 g4@2 g4@2 ~", // C C5 A# Bm A#
  BC: "[e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5] ~@5 [a4,a5]@2 ~@4 [c5,c6]@2, ~ [f#4,f#5], ~@7 [g4,g5]@5, ~@3 [a4,a5], ~@5 [b4,b5]", // A C F# G A B
  BD: "[d#4,f#4,b4]!6 [e4,g4] [e4,g4,b4]!5, ~@12 b4 ~@11", BE: "[e4,a4,c#5]!6 [f#4,a4,d5]!6",
  BF: "[f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,b4]@2 b4@2 b4@2 [f#4,b4]@2 [e4,a4,b4]@2 [e4,a4,b4]@2 [e4,a4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,b4] ~, d#4 ~@3 f#4@6 ~@12 g4@2, ~ d#4 ~@2, ~@2 e4 ~@3", // B5 B G#m B5 Esus4 Em E5
  BG: "[[f4,b4,d5]@3 ~]/2", // Bdim
})).s("gm_piano").gain(0.23).pan(0.6)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@4 A B C D E F G H I ~@3 A J K L M N G O P ~@3 Q@2 R S T U V W X ~@3 A Y Z AA AB AC AD AA AE ~@3 A AF AG AH AI AJ AK
  AL AM ~@3 AN AO AP AQ AR O AP AS AT ~@10
>`.pickRestart({
  A: "~@23 b3", B: "~@5 b3 ~@5 a3, g3@13 ~ a3@8 ~@2, g4!2 f#4!2, d4!3 ~ d4!2, ~ b3@4 ~ d3@6",
  C: "~@5 g3 ~@5 b3, e3 b2, e4!2 f#4!2, ~ g3@4 ~@3 d4@2 d4@2, ~@2 b3@2 b3@2 ~ b3@4 ~",
  D: "~@11 b3 ~@10 b3@2, c3@6 ~ b3@4 ~, e4!2 g4!2, ~ g3@4 g3 g3@6, ~ c4!2 d4!3",
  E: "~@5 a3 ~@5 a3, a2 d3, e4!2 f#4!2, ~ a3@4 ~@2 a3@4 ~, ~ c#4!2 ~ d4!2",
  F: "~@11 b3 ~@10 b3@2, [c3,e4]@6 ~ b3@4 ~, ~ g3@3 g3@2 g3@6, ~@2 c4@3 c4 d4@2 d4@2 d4@2, ~ g4!3", // C
  G: "~@5 b3 ~@5 e4, b2 [e3,a4], f#4!2 ~ g4, d#4@2 d#4@2 d#4@2 ~@2 e4@3 ~, ~ b3@4 ~@2 b3@3 b3@2", // A5
  H: "~@5 g3 ~@5 b3, c3@6 ~@3 b3@2 ~, e4@3 e4@3 d4@2 d4@2 d4@2, ~ g3@4 ~ g3@6, ~@2 c4@2 c4@2 ~ b3@2 g4@3",
  I: "~@5 a3 ~@5 d4, a2 d3, e4!2 f#4!2, c#4@2 c#4@2 c#4@2 ~@2 d4@3 ~, ~ a3@4 ~@2 a3@3 a3@2",
  J: "~@10 b3@2 ~@11 g3, g3 d3, g4!2 f#4!2, d4!3 ~ d4!2, ~ b3@4 ~@2 a3@4 a3",
  K: "~@5 g3 ~@5 b3, e3 b2, [b3,e4]@2 b3@2 b3@2 f#4@3 f#4@3, ~ g3@4 ~ d4@2 d4@2 d4@2, ~@6 e4@7 ~ b3@8 ~@2", // E5
  L: "~@11 b3 ~@10 b3@2, c3@13 ~ b3@8 ~@2, e4!2 g4!2, ~ g3@4 g3 g3@6, ~ c4!2 d4!3",
  M: "~@5 a3 ~@5 a3, a2 d3, e4!2 f#4!2, c#4!3 ~ d4!2, ~ a3@4 ~@2 a3@4 ~",
  N: "~@5 c4 ~@5 b3, c3@6 ~ b3@4 ~, g4!4, e4!3 d4!3, ~ c4@4 ~ g3@6",
  O: "~@11 b3 ~@10 b3@2, c3@6 ~ b3@4 ~, g4!4, e4!3 d4!3, ~ c4@4 c4 g3@6",
  P: "~@5 a3 ~@5 a3, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@4 ~",
  Q: "[~@23 b3 ~@11 a3 ~@11 g3, ~@23 g3@13 d3@12, ~@23 d4@5 d4@4 d4@4 d4@4 d4@4 d4@4, ~@4 g4!2 f#4!2, ~@13 b3@4 b3 ~ a3@4 a3]/2",
  R: "~@8 b3@2 ~ b3 ~@8 d4@2 b3 g3, e3@12 b2@11 ~, e4@6 e4@6 f#4@6 f#4@5 ~, b3!2 ~ d4!2 ~, ~ g3@4 g3 ~ b3@4 ~",
  S: "~@11 b3 ~@8 d4@2 ~ a3, c3@6 ~ b3@4 b3, e4@6 e4@6 g4@6 g4@5 ~, c4!3 d4!2 ~, ~@2 g3@8 g3@2 g3@11 ~",
  T: "~@8 c#4@2 ~@10 d4@2 a3 g3, a2@11 ~ d3@12, e4@6 e4@5 ~ f#4@6 f#4@5 ~, c#4@4 c#4@4 ~@3 d4@5 d4@4 ~@4, ~ a3@4 a3 ~ a3@4 ~",
  U: "c4 ~@7 c4@2 ~ b3 ~@8 d4@2 b3@2, c3@11 ~@3 b3@8 ~@2, e4@6 e4@5 ~ g4@6 g4@5 ~, ~ c4@3 c4@4 ~@4 d4@4 d4@4 ~@4, ~@2 g3@8 g3@2 g3@11 ~",
  V: "~@11 g3 ~@10 g3@2, b2 e3, f#4@6 f#4@5 ~@3 g3@8 ~@2, d#4@4 d#4@4 d#4@4 e4@6 e4@5 ~, ~ b3@4 b3 b3@2 b3@2 b3@2",
  W: "~@11 b3 ~@8 d4@2 b3@2, c3@6 ~ b3@4 ~, e4@6 e4@6 g4@6 g4@5 ~, c4!3 d4!2 ~, ~@2 g3@8 g3@2 g3@11 ~",
  X: "a3 ~@9 a3!2 d4 ~@9 a3@2, a2 d3, e4!2 f#4!2, c#4!3 ~ d4!2, ~ a3@4 ~@2 a3@4 ~",
  Y: "~@11 a3 ~@11 g3, g3 d3, g4!2 f#4!2, d4!6, ~ b3@4 b3 ~ a3@4 a3",
  Z: "~@8 b3@2 ~ b3 ~@11 g3, e3 b2, e4!2 f#4!2, b3!2 ~ d4!3, ~ g3@4 g3 ~ b3@4 b3",
  AA: "~@11 b3 ~@11 a3, c3@6 ~ b3@4 b3, e4!2 g4!2, c4!3 d4!3, ~ g3@4 g3 g3@6",
  AB: "~@10 a3!2 ~@11 g3, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@4 a3",
  AC: "~@11 b3 ~@10 b3!2, c3@6 ~ b3@4 ~, e4!2 g4!2, c4!3 d4!3, ~ g3@4 g3 g3@6",
  AD: "~@4 d#4 b3 ~@5 e4, b2 [e3,a4], f#4@6 f#4@5 ~@7 g4@6, d#4@2 d#4@2 ~@2 e4@2 e4@3 ~, ~ b3@4 ~@2 b3@3 b3@2", // A5
  AE: "~@10 a3@2 [a3,d4] ~@3 d4@2 ~@2 a3@2 d4 ~, a2 d3, e4@6 e4@6 f#4@6 f#4@5 ~, c#4!3 ~@3, ~ a3@4 ~@2 a3@2 ~@3", // D5
  AF: "~@11 a3 ~@10 a3@2, g3 d3, g4!2 f#4!2, d4!6, ~ b3@4 b3 ~ a3@4 ~",
  AG: "b3 ~@9 b3!2 ~@10 b3@2, e3 b2, g4!2 f#4!2, e4!3 d4!3, ~ b3@4 ~@2 b3@4 ~",
  AH: "g3 ~@10 b3 ~@10 b3@2, c3@6 ~ b3@4 ~, e4!2 g4!2, c4!3 d4!3, ~ g3@4 g3 g3@6",
  AI: "a3 ~@9 a3!2 ~@6 a3@2 ~@3 g3, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@2 ~@2 a3",
  AJ: "~@11 b3 ~@10 b3@2, c3@6 ~ b3@4 ~, e4!2 g4!2, c4!3 d4!3, ~ g3@4 g3 g3@6",
  AK: "~@10 b3!2 ~@10 b3@2, b2 [e3,a4], f#4!2 ~ g4, d#4!3 e4!3, ~ b3@4 ~@2 b3@4 ~", // A5
  AL: "c4 ~@10 b3 ~@11 a3, c3@6 ~ b3@4 b3, g4!4, e4!3 d4!3, ~ c4@4 c4 g3@6",
  AM: "~@10 a3!2 ~@10 a3@2, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@4 ~", AN: "~@23 c4",
  AO: "~@8 e4@2 ~ e4 b3 ~@9 b3@2, c3@6 ~ b3@4 ~, g4!4, e4!2 ~ d4!3, ~ c4@4 c4 g3@6",
  AP: "~@5 b3 ~@5 e4, b2 [e3,a4], f#4!2 ~ g4, d#4@2 d#4@2 d#4@2 e4@2 e4@3 ~, ~ b3@4 ~@2 b3@3 b3@2", // A5
  AQ: "~@11 b3 ~@10 [b3,g4]@2, c3@6 ~ b3@3 d4@2, e4!2 g4 f4, ~ g3@3 g3@2 g3@6, ~@2 c4@3 c4 d4@2 d4 g4@2 ~", // Em
  AR: "~@10 a3 ~ a3 ~@9 a3@2, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@4 ~",
  AS: "~@10 g3@2 b3 ~@9 b3@2, c3@6 ~ b3@4 ~, e4 g4!3, ~ g3@3 e4@2 d4@2 d4@2 d4@2, ~ c4@2 g3@3",
  AT: "~@10 a3@2 a3 ~@9 a3@2, a2 d3, e4!2 f#4!2, c#4!3 d4!3, ~ a3@4 ~@2 a3@4 ~",
})).s("gm_electric_guitar_jazz").gain(0.1).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~ A B C D ~@8 A B C D ~@8 A B C D ~@8 A B C D ~@8 A B C D ~@8 A B C E F G H I J K L M A B C D A B C D N@2
>`.pickRestart({
  A: "e4@2 c5 g4@3 d4@2 b4 g4@3", B: "f#4@3 f#4@3 g4 e4 b4 g4@3",
  C: "e4@2 ~@6 c5@4 b4 ~ d5@2 g4@6 ~@2, ~ c5@2 ~@9, ~ e4@2 ~@3",
  D: "c#5@4 e5@2 c#5@5 ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] [g3,g#3,c4,c#4] [e3,f3,f#3,a3,a#3,b3] [d3,d#3,g3,g#3] [c3,c#3,d3,f3] ~", // D5 C#maj7 D#maj7 C#maj7
  E: "c#5@2 e5@2 e5@2 e5@5 ~ [d#4,e4]@2 a3@8 ~@2", F: "g4@17 f#4 g4@5 ~", G: "d#5@5 d#5 e5@4 e5@2",
  H: "c5@5 g4 b4@3 a4@2 g4", I: "g4@8 c#5@4 d5@11 ~", J: "g4@2 a4 g4", K: "d#5@5 ~ f#5@2 e5 f#5@2 e5",
  L: "d5@10 d5@7 ~ a4@6", M: "c#5@4 e5@8 e5@5 ~ e5@4 d5@2", N: "[g3@3 ~]/2",
})).s("gm_overdriven_guitar").gain(0.24).pan(0.6)

// chords · percussive organ
const percussive_organ = note(`<
  ~ A B A C ~@4 D@3 E A B A C ~@4 D@3 E A B A C ~@4 A F A C A B A C ~@4 D@3 E A B A C ~@4 D@3 E G B A C D@3 E D@3 E A B
  A C A B A C H@2
>`.pickRestart({
  A: "[e5,g5,c6] [d5,g5,b5]", B: "[d#5,f#5,b5]@11 ~ [e5,g5,b5]@12", C: "[c#5,e5,a5] [d5,f#5,a5]",
  D: "[[c5,e5,g5,c6]@2 [d5,g5]@2 [d#5,f#5]@2 a5 ~ [c5,c6]@2 [d5,g5,b5]@2, ~ b5@2 e5@2 ~, ~@3 b5 ~@2, ~@42 g5@17 ~@13]/3", // C G5 D#m C G
  E: "[c#5,e5] [d5,f#5], a5", F: "[d#5,f#5,b5] [e5,g5,b5]", G: "~ [d5,g5,b5]", H: "[[g5,b5,d6,f6]@3 ~]/2",
})).s("gm_percussive_organ").gain(0.11)
// … 63 more lines

More by Nomadi