Strudelify

Anema e core

Sergio Franchi

KeyD minorTempo105 bpm
0:00/0:00
// Anema e core — Sergio Franchi
// 105 bpm, 4/4, key D minor. 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 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@3 A B C D E F G H I J K L M N O P@2 B Q R S T U V W X Y Z AA AB@2 AC AD AE C D AF AG AH AI AJ AK AL AM AN AO AP AQ
  AD AR AS@2 AT AU AV AW AX AY AZ BA BB@3 BC AD AR C D AF AG AH AI AJ AK AL AM BD AO AP BE AD AR AS@2 AT AU AV AW BF AY
  AZ BA BG@7
>`.pickRestart({
  A: "~@4 g1@5 ~ g1 ~ d2@4", B: "~@2 d2 ~ g1@5 ~ g1@2 d2@3 ~", C: "d2@3 ~ g1@5 ~ g1 ~ d2@4",
  D: "~@2 d2 ~ c2@5 ~ c2 ~ c2@3 ~", E: "bb1@4 a1@5 ~ a1 ~ ab1@4", F: "~@2 ab1 ~ g1@5 ~ g1 ~ c2@4",
  G: "~@2 c2@2 f1@3 ~@3 f1 ~ f1@4", H: "c2@2 db2 ~ d2@5 ~ d2 ~ d2@4", I: "~@2 d2 ~ c2@5 ~ c2 ~ c2@4",
  J: "~@2 c2 ~ db2@5 ~ db2 ~ db2@4", K: "db2@3 ~ d2@5 ~ d2 ~ d2@4", L: "~@2 d2@2 g1@5 ~ g1@2 g2@4",
  M: "d2@3 ~ g1@5 ~ g1@2 d2@4", N: "g2@3 ~ c2@5 ~ c2@2 g2@2 c2 ~", O: "c2@3 ~ f1@5 ~ f1 ~ g1@4",
  P: "[~@2 g1 ~ a1@4 ~@2 a1 ~ ab1@7 ~ g1@5 ~ g1@2 d2@4]/2", Q: "d2@4 g1@5 ~ g1 ~ d2@4", R: "~@2 d2 ~ c2@5 ~@3 c2@3 ~",
  S: "bb1@3 ~ a1@6 a1 ~ a1@4", T: "~@2 a1 ~ d2@5 ~ d2 ~ d2@2 a1 ~", U: "d2@4 c2@4 ~@2 c2 ~ c2@4",
  V: "~@2 c2 ~ d2@5 ~ d2 ~ d2@4", W: "a1@3 ~ g1@6 g1@2 d2@4", X: "g2@2 d2@2 bb1@5 ~ bb1 ~ bb1@4",
  Y: "~@2 bb1@2 f2@5 ~ f2 ~ d2@4", Z: "~@2 d2@2 g1@5 ~ g1 ~ c2@4", AA: "c2@4 f1@5 ~ f1 ~ f1@4",
  AB: "[f2@4 c2@7 ~ c3@7 ~ f1@7 ~ g1@4]/2", AC: "~@2 g1@2 a1@5 ~ a1 ~ ab1@4", AD: "~@2 ab1@2 g1@5 ~ g1@2 d2@4",
  AE: "~@2 d2@2 g1@5 ~ g1@2 d2@2 g2 ~", AF: "bb1@3 ~ a1@5 ~ a1 ~ ab1@4", AG: "~@2 ab1 ~ g1@5 ~ g1 ~ c2@3 ~",
  AH: "c2@3 ~ f1@5 ~ f1 ~ c2@4", AI: "~@2 db2 ~ d2@5 ~ d2@2 d2@4", AJ: "~@2 d2@2 c2@5 ~ c2@2 c2@4",
  AK: "~@2 c2@2 db2@5 ~ db2 ~ db2@4", AL: "~@2 db2@2 d2@5 ~ d2 ~ d2@4", AM: "d2@4 g1@5 ~ g1@2 d2@2 g2@2",
  AN: "d2@2 g1@2 ~ g1 g1@2", AO: "~@2 d2@2 c2@5 ~ c2 ~ c2@3 ~", AP: "c2@3 ~ f1@4 ~@2 f1@2 g1@4",
  AQ: "~@2 ab1@2 a1@5 ~ a1@2 ab1@4", AR: "~@2 d2@2 g1@5 ~ g1 ~ d2@2 g2 ~",
  AS: "[d2@3 ~ g1@5 ~ g1 ~ g1@6 d2 ~ c2@5 ~ c2 ~ c2@4]/2", AT: "bb1@4 a1@5 ~ a1@2 a1@4", AU: "~@2 db2@2 d2@7 ~ d2@3 ~",
  AV: "d2@4 c2@5 ~ c2@2 g2@3 ~", AW: "c2@4 d2@5 ~ d2 ~ d2@4", AX: "a1@3 ~ g1@5 ~ g1 ~ d2@4",
  AY: "g2@2 d2@2 bb1@5 ~ bb1@2 bb1@4", AZ: "~ bb1 f2@2 ~ f2 d2@2", BA: "~ d2 g1@2 ~ g1 c2@2",
  BB: "[c2@3 ~ f1@5 ~ f1@2 f1@6 ~@2 c2@7 ~ c3@7 ~ f1@7 ~ g1@4]/3", BC: "~@2 g1@2 a1@5 ~ a1@2 ab1@4",
  BD: "d2@4 g1@3 ~@3 g1@2 g1@4", BE: "~@2 ab1@2 a1@5 ~ a1@2 ab1@3 ~", BF: "a1@3 ~ g1@5 ~ g1@2 d2@4",
  BG: "[c2@4 f1@5 ~ f1@2 f1@6 ~@2 f1@5 ~ f1@2 f1@6 ~@2 f1@5 ~ f1@2 f1@6 ~@2 f1@5 ~ f1@2 f1@6 ~@2 f1@32 ~@12]/7",
})).s("gm_acoustic_bass").gain(0.56)

// chords · epiano1 · "E.PIANO"
const epiano1 = note("<A@8 B@7 C@4 D@6 E@5 F@6 G H@4 I@8 J@7 K@4 L@8 G H@4 M@8 J@7 N@8 O@6>".pickRestart({
  A: "[~@6 a4@4 [f3,c4,e4,a4]@4 [g3,d4,f4,bb4]@4 [a3,e4,a4,c5]@4 [bb3,d4]@4 bb3@7 ~@4 d4@3 ~ a4 ~@15 bb3 [a3,c4,d4]@4 [gb3,bb3,d4]@2, ~@2 c3@8 ~@16 f3@16 ~@5 f3@3 ~@4 g4@4 ~@6, ~@3 bb3@7 ~@12 gb3@16 ~@4 bb3@7 bb3@8 ~@7, ~@8 d4@12 ~@32 d4@18 f4@15 ~@15 e4@12 e4@4 ~@12, ~@10 f4@10 ~@24 f4@8 a3@11 ~@3 bb3@12 ~@2 d4@4 [d4,g4]@16 [d4,a4]@16 ~@12]/8", // Fmaj7 Gm7 Am Bb D7 Gbaug G5 D5
  B: "[~ [f3,a3,bb3,d4]@5 ~@2 db4@2 a3@4 ~@2 g4 ~@6 d4@3 ~@7 d4 bb3 ~@6 e4 [a3,c4]@6 [a3,c4,e4,g4]@2 f3@4 f3 d4, ~@12 [e3,ab3,bb3,eb4]@8 [g3,c4]@14 ~@2 d4@10 ~@12 d5@11 ~@7 a3@8 ~@16 [a3,b3,e4]@10 ~@2, ~@30 d4@4 f4@18 e4@10 b4@7 ~@5 e4@6 db4@4 [d4,f4]@16 ~@12, ~@42 ab3@10 [g3,b3]@17 ~ db4@8 bb3@6 ~@28, ~@60 g4@9 ~@3 eb4@12 ~@28]/7", // Bbmaj7 Am Am7 Emaj7 C5 Asus2 Dm G
  C: "[f3@2 [bb3,d4]@3 ~@2 g4@2 ~@7 bb3@2 c4@4 ~@7 g3 ~ bb3, ~@4 a3@14 bb3@14 ~@12 d4@6 e4@11 ~@3, ~@5 [bb3,d4,f4,a4]@4 [d4,a4]@9 f4@8 ~@2 c4@2 ~@2, ~@28 g4@9 ~@9 f3@6 ~@8 [gb3,d4]@4, ~@12 bb3 a3@2 ~]/4", // Bb Bbmaj7 D5 D
  D: "[gb3@2 d4@4 ~@10 f3@2 bb3@4 ~@2 a4 ~@8 g4 [eb4,g4]@5 [c4,eb4,g4]@3 [c4,eb4,ab4]@5 a4, ~@2 f3@11 bb3 a3@4 [a3,d4]@7 bb3@4 bb3@5 ~@14, ~@4 a3@18 f4@15 ~@7 bb3@6 d4@12 d4@6 ~@28, ~@4 bb3@14 a4@19 ~@9 f4@5 ~@3 e4@10 e4@4 ~@28, ~@12 d4@2 c5@23 ~@13 g4@16 ~@2 c5@16 ~@12]/6", // Eb Cm Ab D5
  E: "[~@2 c4@2 eb4@10 [g3,a3,c4,eb4]@6 gb3@6 gb3@2 gb3 ~@3 gb3@4 [a3,bb3,d4]@5 ~ [a3,bb3,d4,f4]@3 ~ [bb3,d4,f4,a4]@6 bb3@10 ~@2 db4@4 a3@4 [a3,f4]@2 b3@4 d4@2, eb4 [g4,a4,c5]@4 [a3,eb4]@2 [a3,d4]@2 ~@4 g4@4 ~@3, ~@52 db4@12 ~@4 [c4,g4]@7 ~@5, ~@31 bb3@2 ~@4 [ab3,f4]@3]/5", // Am7b5 Bbmaj7 Dm Am7 Adim D5 C5 Db
  F: "[~@2 f3@6 f3@4 e4@4 [ab3,db4]@3 ~ a3@6 ~@8 d4@2 ~@6 f4@2 ~@6 f4@2 [f3,a3,c4,e4]@8 [g3,bb3,d4,f4]@8 a3@4 a3@4 ~@4 bb3@2 f4 ~@7 g3@2 ~@2 [f3,bb3,d4] ~, ~@2 [a3,d4]@10 [e3,bb3]@8 g3@16 ~@40 [ab3,d4]@7 ~@13, ~ bb3@4 ~@5 c4@5 g4@3 ~@2 d4@2 f4@3 ~@9 [e4,g4]@4 ~@10, ~@13 a3@5 a3@4 ~@2 g4@2 ~@22, ~@28 d4@4 c4@4 ~@2 bb3@6 [bb3,d4,a4]@8 ~@26 gb3@5 ~ [f3,bb3,d4]@8 ~@4]/6", // Db5 Fmaj7 Gm7 Bb D5 Edim Abdim Em …
  G: "[c4,e4] ~@5 bb3 [bb3,d4,f4,a4], g3 ~ [f3,d4]@12 ~@2, ~@3 a3@4 ~, ~@2 bb3 ~, ~@5 f4@2 ~", // C Bbmaj7 Dm
  H: "[[d4,g4]@2 bb3 ~ [a3,bb3,d4]@10 [a3,bb3,d4,f4]@4 [bb3,d4,e4,a4]@8 e4 ~@5 bb3@3 ~ [g3,a3,c4,d4]@6 gb3@4 ~@2 bb3@2 [f3,a3,bb3]@4 a3@2 [f3,bb3,d4]@3 ~ [e3,ab3,bb3] ~ db4@2, bb3 ~@25 [d4,g4]@9 ~@7 d4@8 d4@6 ~@4 eb4@2 ~@2, ~@13 bb3@3 ~@5 bb3@3 ~@8, ~@30 e4@5 ~@11 gb3@4 ~@11 [e3,ab3,bb3]@3]/4", // G5 Bbmaj7 Gsus4 Bbmaj7 Bb Bbm7b5 G5 Bbm7b5
  I: "[[e3,bb3,eb4]@4 a3@4 ~@14 d4@2 ~@6 c4@6 e4@4 ~@6 a4@4 db4@2 ~@10 e4@4 a3 ~ [a3,c4,e4,g4]@6 [a3,c4,d4,f4]@8 f3@6 f3@2 f3@6 f3@3 ~@15 d4@10 g4@4, ~@4 g3@12 e4@2 g4@6 ~@18 d5@8 bb4@17 ~@37 f4@6 bb4@4 ~@14, ~@4 c4@8 g4@2 c4@6 ~@34 a4@13 ~@33 bb3@6 bb3@8 bb3@7 ~@7, ~@8 a3@12 ~@4 ab3@9 ~@3 [g3,b3]@14 ~@8 g4@9 ~@33 d4@8 d4@6 ~@14, ~@10 d4@10 f4@16 ~@4 e4@4 e4@4 ~@2 e4@12 ~@20 [a3,b3,e4]@8 [a3,b3,d4]@9 ~ a3@10 ~@2 a4@12 ~@4]/8", // Eb Am7 Dm7 G Asus2 Bm7
  J: "[db4@4 a3@5 ~ f3@2 [f3,a3,d4]@5 ~ a3@2 g3 ~@5 g3@2 ~@8 d4@10 ~@16 bb3@6 ~@13 g4@3 bb3@6 ~@6 d4@4 ~@10 g4@2, ~@2 c4@4 bb3@4 c4@4 ~@4 bb3@4 ~ d4@11 ~@5 a4@3 e4@8 ~ eb4@5, ~@17 f3@3 ~@2 g3@4 ~@2 [gb3,bb3,d4]@8 ~@22 a3@10 [bb3,d4,f4]@16 d4@8 d4@4 ~@10 [c4,c5]@6, ~@12 e4@2 ~@3 f4@9 f4@6 ~@5 bb4@5 ~@3 bb3@5 a3@6, ~@47 g4@3 ~@2 g4@3 ~]/7", // Dm Gbaug Bb C
  K: "[eb4@2 c4@4 ~@4 c4 ~@5 eb4@4 ~@10 bb4@4 gb4@8 gb4@2 gb4@4 ~@2 d4@2 [d4,f4]@6 [bb3,d4,g4]@6, ~ ab4@4 [gb4,a4]@5 ~@7 bb4@5 a4@4 ~@6, ~ eb4@3 eb4@4 ~@9 d4@3 ~@2 d4@3 ~@7, ~@3 c4@2 ~@2 c4@3 [c4,eb4,g4,a4]@7 ~@7 gb4@2 ~@6]/4", // Dm Gm Gbm Am7b5
  L: "[~@2 [bb3,db4,g4]@8 db4@4 ~@2 bb3@3 ~ a3@4 e4@2 ~@4 e4@4 g3@4 ~@2 bb3@2 [bb3,d4,a4]@4 [bb3,db4,e4,g4]@6 f3@8 ~@2 a3@2 ~ f4@3 ~@6 f4@2 ~@6 f4@2 [f3,a3,c4,e4]@8 [g3,bb3,d4,f4]@8 a3@4 a3@4 ~@4 bb3@2 f4 ~@7 g3@2 ~@2 [f3,bb3,d4] ~, ~@10 f4@9 ~@15 f4@8 ~@10 f4@13 ~@7 d4@4 f4@6 ~@18 [e4,g4]@8 ~@20, ~@14 db4@5 ~ [c4,f4]@6 [ab3,d4,f4]@8 bb3@6 ~@12 [c4,d4]@16 ~@2 bb3@6 [bb3,d4,a4]@8 ~@24 [ab3,d4]@7 ~@13, ~@19 g3@2 ~@5 a3@5 ~@3 a3@4 ~@2 g4@2 ~@22, ~@60 f3@4 f3@4 ~@42 gb3@5 ~ [f3,bb3,d4]@8 ~@4]/8", // Gdim Bbmaj7 Bbdim Fmaj7 Gm7 Bb Em F5 …
  M: "[[e3,bb3,eb4]@4 a3@4 ~@14 d4@2 ~@6 c4@6 e4@4 ~@6 a4@4 db4@2 ~@10 e4@4 a3 ~ [a3,c4,e4,g4]@6 [a3,c4,d4,f4]@8 f3@6 f3@2 f3@6 f3@3 ~@15 d4@10 g4@4, ~@4 g3@12 e4@2 g4@6 ~@18 d5@8 bb4@17 ~@41 d4@6 ~@14, ~@4 c4@8 g4@2 c4@6 ~@34 a4@13 ~@37 f4@6 bb4@4 ~@14, ~@8 a3@12 ~@4 ab3@9 ~@3 [g3,b3]@14 ~@8 g4@9 ~@33 bb3@6 bb3@8 bb3@7 ~@7, ~@10 d4@10 f4@16 ~@4 e4@4 e4@4 ~@2 e4@12 ~@20 [a3,b3,e4]@8 [a3,b3,d4]@9 ~ [a3,d4]@9 ~@3 a4@12 ~@4]/8", // Eb Am7 Dm7 G Asus2 Bm7 D5
  N: "[eb4@2 c4@4 ~@4 c4 ~@5 eb4@4 ~@10 bb4@4 gb4@8 gb4@2 gb4@4 ~@2 d4@2 [d4,f4]@6 [bb3,d4,g4]@8 [bb3,db4,g4]@8 db4@4 ~@2 bb3@3 ~ a3@4 e4@2 ~@4 e4@4 g3@4 ~@2 bb3@2 [bb3,d4,a4]@4 [bb3,db4,e4,g4]@6 ~@10 a3@2, ~ ab4@4 [gb4,a4]@5 ~@7 bb4@5 a4@4 ~@25 g3@2 ~@9 f3@2, ~@2 eb4@6 eb4@8 ~@18 d4@6 ~@4 d4@6 ~@28 db4@5 ~ [c4,f4]@6 [ab3,d4,f4]@8 bb3@6 ~@12 a3@10 ~@2, ~@6 c4@4 ~@4 c4@6 [c4,eb4,g4,a4]@14 ~@14 gb4@4 ~@22 f4@9 ~@15 f4@8 ~@10 f4@12]/8", // Dm Gm Gdim Bbmaj7 Bbdim Gbm F5 Ddim …
  O: "[~ f4@3 f4@12 f4@4 e4@13 e4@3 d4@8 d4@8 [f3,g3,a3,c4]@32 ~@12, f3 [f3,bb3,d4,a4]@4 [f3,a3,c4,g4]@4 [f3,g3,bb3,f4]@4 ~@11]/6", // F Bbmaj7 F Gm7
})).s("gm_epiano1").gain(0.3)

// chords · epiano1 · "E.PIANO" · soft notes
const epiano1_soft = note(`<
  ~@3 A@3 ~@3 B@2 ~ C ~ D@2 ~ E F ~ G@2 ~@2 H I ~ J ~ K L ~@3 M ~ N O ~ P Q ~@2 R S T ~ U V W X Y@2 Z ~@4 AA AB AC AD AE
  ~ AF ~ M ~ N O ~ P Q ~@2 R S T ~ U V W X Y@2 Z ~@4 AA AB AC AD AE ~ AF ~@5
>`.pickRestart({
  A: "[~@5 bb3 ~@2, ~@15 a3@22 ~@11]/3", B: "[~@6 a3@3 ~@7]/2", C: "e4@5 ~@11", D: "[~@7 b3@3 ~@6]/2",
  E: "~@2 a3@4 bb3 ~", F: "~@2 g3@3 ~@3", G: "[~@2 d4@3 ~@3]/2", H: "~@13 c4 ~@2", I: "~@2 c4@5 ~", J: "~@4 f3@5 ~@7",
  K: "~ bb3 ~@6", L: "~@5 bb3 ~@2", M: "~@5 d4 ~@2", N: "~ bb3@3 ~@4", O: "~@2 f3@5 ~", P: "~@2 g3 ~@13",
  Q: "~@6 [f3,bb3]@2 a3@2 [e3,ab3] ~@5", R: "~ ab3@3 ~@12", S: "e4 ~ db4@6", T: "db4@3 ~@13", U: "~@2 a3 ~@13",
  V: "~@9 bb3 bb3@2 ~@2 bb3@2", W: "~@9 a3@3 ~@4", X: "~ d4 d4@2 a3@8 ~@4", Y: "[~@6 bb3@9 ~]/2", Z: "f4 ~@3",
  AA: "~@2 d4 ~", AB: "~@2 [bb3,a4]@3 ~@3", AC: "~ bb3 ~@8 bb3@6", AD: "~@4 a3 ~@3", AE: "~@5 f4@2 ~",
  AF: "~ a3@3 ~@12",
})).s("gm_epiano1").gain(0.12)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@3 A B C D E F G H@2 I J K L M N@2 O P Q R S T U V@3 W X Y Z@3 AA AB AC AD AE AF@2 AG AH AI AJ AK AL@3 AM AN AO AP AQ
  AR AS AT AU AV AW AX AY@2 AZ@3 AA AB AC BA BB BC@2 BD BE AI AJ BF BG@3 AM AN AO AP AQ AR AS BH AU AV BI AX BJ@2 BK BL
  BM@4
>`.pickRestart({
  A: "~@5 d4@3 [f3,a3,d4] ~@5 [f3,a3,bb3] ~, ~ [f3,a3] ~@2, ~@5 bb3@5 ~@6", // Dm Bbmaj7 F
  B: "~@2 f3 ~ [f3,bb3,d4]@3 ~ [f3,a3,bb3,d4] ~@3 [f3,d4] ~ [f3,a3,bb3,d4] ~", // Bb Bbmaj7 Dm Bbmaj7
  C: "~@2 [f3,bb3,d4] ~@5 [a3,bb3,d4]@5 ~ [f3,a3,bb3,d4] ~", // Bb Bbmaj7
  D: "~@6 [bb3,e4,a4] ~@3 [bb3,g4]@4 e4@2, ~@10 [d4,e4]@3 ~@3", // A Eb Dsus2
  E: "d4@2 ~@2 [g3,a3,d4]@4 [g3,a3,d4] ~@3 [gb3,d4] ~ [gb3,bb3,d4] ~", // Gsus2 D Gbaug
  F: "~@2 [f3,bb3,d4] ~@3 [f3,a3,bb3,d4] ~@3 e3 ~ [e3,bb3] ~ bb3@2, ~@6 eb4 ~", // Bb Bbmaj7 Edim
  G: "[e3,db4] ~@3 [g3,a3,c4]@3 ~ [g3,c4] ~@5 [c4,e4,g4]@2, ~@14 a3 ~", // Dbm Am7 C5 C
  H: "[~@4 [ab3,c4,d4,f4]@4 ~@2 [ab3,c4,d4,f4] ~@5 c4@2 f4@2 [g3,b3,e4]@4 [g3,b3] ~@3 [g3,b3,e4] ~ [g3,b3] ~, ~@14 ab3@5 ~@13]/2", // Dm7b5 Em G Em G
  I: "[g3,b3,e4] ~@3 e4 ~ [g3,bb3,db4,e4]@3 ~ [g3,bb3,db4] ~@3 [bb3,db4,e4,g4]@2", // Em Gdim Bbdim
  J: "~@2 e4 ~ [a3,c4,d4,f4]@5 ~ [a3,d4,f4] ~@3 [a3,c4,d4,g4]@2", // Dm7 Dm Am7
  K: "~ f4 ~@2 [a3,b3,e4]@4 ~@2 [a3,e4]@2 d4 ~ [a3,b3,d4] ~, ~@5 b3@2 ~", // Asus2 A5 Bm7
  L: "[f3,a3,b3,d4] ~@3 [f3,bb3,d4]@3 ~ [f3,a3,bb3,d4] ~@3 [a3,d4,f4] ~@2 [bb3,d4,f4,a4]", // Bm7b5 Bb Bbmaj7 Dm Bbmaj7
  M: "~@2 [d4,e4,a4]@4 [bb3,d4,g4] ~@3 [bb3,d4,e4,a4]@4 g4 ~", // Dsus2 Gm Bbmaj7
  N: "[e4@2 db4@2 c4@4 a3@2 c4@2 d4@2 ~@4 d4@2 [a3,c4,e4]@4 ~@2 [a3,e4] ~ [bb3,d4]@4, ~@14 g3@5 ~@9 gb3@2 ~@2, ~@4 bb3 ~@3]/2", // Am A5 Bb
  O: "bb3@2 gb3 ~ [f3,d4]@3 ~ [f3,a3,d4] ~@5 [a3,bb3,d4]@2, ~@14 f3 ~", // Dm Bbmaj7
  P: "[f3,a3] ~@3 d4 ~ a3 ~ a3@2 [f3,d4] ~@3 [f3,bb3,d4] ~, ~@8 d4 ~@7", // F Dm Bb
  Q: "~@2 d4 ~@3 [a3,d4] ~@3 g3@2 [a3,d4,f4]@3 ~", // D5 Dm
  R: "[a3,bb3,d4,f4] ~@3 [bb3,d4,e4]@3 ~ [g3,bb3,d4,e4] ~@3 [bb3,d4,e4,a4]@2 ~ [d4,g4]", // Bbmaj7 Em7b5 Bbmaj7 G5
  S: "~@2 [a3,c4,eb4]@4 [c4,eb4] ~@5 [c4,eb4,g4] ~ [a3,c4,eb4] ~, ~@5 a3@2 ~", // Adim Cm Adim
  T: "[a3,c4,eb4,g4] ~@3 [c4,eb4,ab4]@2 ~@2 [c4,eb4,ab4]@2 [c4,eb4,gb4,a4] ~@3 [eb4,gb4,a4]@2, ~@14 c4 ~", // Am7b5 Ab Cdim Ebdim
  U: "~@2 c4 ~ [c4,eb4,a4]@3 ~ [c4,eb4,a4] ~@5 [c4,eb4,a4] ~", // Adim
  V: "[~@8 gb4@2 bb4 ~@5 gb4@2 a4 ~ [d4,bb4]@5 ~ [d4,a4] ~@5 d4@2 g4@2 ~@2 db4@2 ~@6 f4@2, ~ bb4@2 eb4@3 a4@2 ~@10 f4@2 ~@2 db4@2, ~@4 c4@7 ~@3 c4@4 ~@2 bb3@3 ~@7 bb3@8 ~@2 bb3@8]/3", // Gm D5
  W: "g4@2 ~@2 [a3,c4,g4]@3 f4 ~@2 [ab3,b3,f4]@3 ~ [ab3,d4]@2", // Am7 Fdim Abdim
  X: "~@2 [a3,bb3,d4]@4 f3@2 ~@2 [e3,e4]@3 ~ [ab3,db4]@2, ~@5 bb3@3", // Bbmaj7 E Db5
  Y: "~@2 g3 ~ [f3,a3,c4,d4]@3 ~ [f3,a3,c4,d4] ~@3 [f3,a3,c4,d4]@2 [f3,a3,c4,d4] ~", // Dm7
  Z: "[[f3,a3,c4,d4] ~@3 [f3,a3,d4] ~ [f3,a3,bb3,d4]@2 [f3,a3,bb3,d4] ~ [a3,bb3,d4,f4] ~@3 [bb3,d4,f4,a4]@4 g4 ~ [c4,e4,a4]@4 c4 ~ [c4,e4,a4] ~@3 [g3,bb3,g4]@2 ~@2 g3 ~ [c4,e4]@5 ~ g3 ~ [bb3,d4] ~ [gb3,bb3,d4] ~, ~@30 d4@4 ~@2 g3@3 ~@9]/3", // Dm7 Dm Bbmaj7 Am Gm C Bb Gbaug
  AA: "[gb3,bb3,d4] ~ f3 ~ [f3,a3,bb3,d4]@3 ~ [f3,a3,bb3,d4] ~@3 [a3,bb3,d4,f4] ~ [a3,bb3,d4,f4] ~", // Gbaug Bbmaj7
  AB: "~@2 [f3,a3,bb3,d4] ~@3 [a3,bb3,d4,f4] ~@3 [bb3,d4,f4,a4]@3 ~ [bb3,d4,e4,g4] ~", // Bbmaj7 Em7b5
  AC: "~@2 f3 ~ [f3,a3,bb3,d4]@3 ~ [f3,a3,bb3,d4] ~@5 [a3,bb3,d4,f4] ~", // Bbmaj7
  AD: "~@2 [bb3,d4,e4,a4] ~@3 [bb3,d4,e4,a4]@3 ~ [bb3,d4,e4,g4]@3 ~ e4 ~", // Bbmaj7 Em7b5
  AE: "d4@2 bb3 ~ [a3,d4]@3 ~ [g3,a3,d4] ~@3 [gb3,bb3,d4] ~ [gb3,bb3,d4]@2", // D5 Gsus2 Gbaug
  AF: "[[gb3,bb3,d4] ~@3 [f3,a3,bb3,d4]@2 [f3,a3,bb3,d4] ~ [f3,a3,bb3,d4] ~ [e3,bb3,eb4]@3 ~ [ab3,db4]@2 [bb3,db4]@2 ~@2 [f3,a3,c4,d4]@3 ~ [f3,a3,c4,d4] ~@5 [f3,a3,c4,d4] ~, ~@7 e3@2 ~@7]/2", // Gbaug Bbmaj7 Eb Db5 Bbm Dm7
  AG: "[f3,a3,c4,d4] ~ [ab3,c4,d4,f4] ~@3 [ab3,c4,d4,f4]@4 ~@2 [ab3,c4,d4,f4]@2 ~@2", // Dm7 Dm7b5
  AH: "[ab3,c4,d4]@2 ~@2 [g3,b3,e4]@3 ~ [b3,e4] ~@5 [g3,b3,e4] ~", // Dm7b5 Em E5 Em
  AI: "~@2 [g3,bb3,db4,e4] ~@3 [g3,bb3,db4,e4] ~@3 [bb3,db4,e4,g4] ~ [db4,e4,g4,bb4] ~@2 [db4,e4,g4]", // Gdim Bbdim Dbdim
  AJ: "~ [bb3,db4,e4] ~@2 [a3,c4,d4,g4]@3 ~ [a3,c4,d4,g4] ~@3 [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~", // Bbdim Am7
  AK: "[a3,c4,d4,f4] ~@5 [f3,a3,b3,e4]@3 ~ [f3,a3,b3,d4]@3 ~ a3 ~", // Dm7 Fmaj7 Bm7b5
  AL: "[a3@2 bb3@2 ~@4 d4@2 g4 ~@7 f4 ~@13 ab3@2 ~@2 [f3,a3,c4,e4]@3 ~ [f3,a3,c4,e4] ~@3 [g3,bb3,f4] ~ [bb3,f4]@2, ~@4 g3@6 ~@2 g3@6 ~@2 g3@6 e4@9 ~@13, ~@6 bb3@6 ~@2 bb3@5 ~@3 bb3@7 ~@17 [g3,d4] ~, ~@8 d4@2 ~@2 c4@3 c4@2 ~@7]/3", // Fmaj7 Gm7 Bb5 G5
  AM: "[g3,bb3,d4] ~ [a3,c4,e4,g4] ~@3 [c4,e4,g4]@4 a3 ~ [gb3,bb3,d4]@3 ~, ~@3 a3 ~@4", // Gm Am7 C Gbaug
  AN: "[gb3,bb3,d4] ~@3 [f3,a3,bb3,d4]@3 ~ [f3,a3,bb3,d4] ~@3 [a3,bb3,d4,f4] ~ [bb3,d4,f4,a4] ~", // Gbaug Bbmaj7
  AO: "~@2 [bb3,d4,e4,g4] ~@3 [bb3,d4,f4,a4] ~@3 [f3,a3,bb3,d4]@2 ~@2 [a3,bb3,d4,f4] ~", // Em7b5 Bbmaj7
  AP: "~ [f3,d4]@2 ~ [f3,a3,bb3,d4]@4 ~@2 [a3,bb3,d4,f4] ~ [bb3,d4,a4]@3 ~", // Dm Bbmaj7
  AQ: "[d4,g4] ~ [bb3,d4,e4,a4] ~@3 [d4,e4,a4]@4 ~@2 [bb3,d4,g4]@4, ~@3 bb3 ~@2 e4 ~", // G5 Bbmaj7 Dsus2 Gm
  AR: "e4@2 ~@2 [a3,c4,g4] ~@3 [a3,c4,eb4,g4]@5 ~ [c4,eb4,g4] ~", // Am7 Am7b5 Cm
  AS: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4]@3 ~@3 [c4,a4] ~ [c4,eb4,gb4,a4]@2", // Ab F Cdim
  AT: "[c4,eb4,gb4,a4] ~@3 [c4,eb4,a4]@2 ~@2 [c4,eb4,a4] ~@3 [eb4,g4,a4,d5] ~@2 [eb4,g4,c5]", // Cdim Adim Ebmaj7 Cm
  AU: "~@2 [c4,eb4,gb4,bb4] ~@3 [c4,eb4,gb4,a4]@3 ~ c4@3 ~ a4@2, ~@5 [eb4,gb4]@3", // Cm7b5 Cdim Ebm
  AV: "c4 ~@3 [bb3,d4,a4]@3 ~ d4 ~ [bb3,d4,g4] ~@3 [bb3,d4,g4] ~", // Bbmaj7 Gm
  AW: "~@2 g4@4 bb3 ~ [bb3,f4] ~@3 e4@2 f4@2, ~@2 db4@7 ~@7, ~@2 bb3@3 ~@7 bb3@4", // Bb5
  AX: "g4@2 a3 ~ [c4,f4]@4 ~@2 [ab3,b3,f4]@3 ~ e4 ~, ~@2 a3 ~@5", // F5 Fdim
  AY: "[~@2 [g3,bb3]@4 bb3@2 ~@2 [bb3,d4] ~@3 [bb3,db4,e4]@5 ~ [a3,c4,d4,f4]@3 ~ [a3,c4,d4,f4] ~@3 [c4,d4,f4] ~ [c4,d4,f4] ~, ~ d4@3 ~@12]/2", // Gm Bb Bbdim Dm7
  AZ: "[~@2 [f3,bb3,d4,f4]@2 [f3,a3,d4] ~ [f3,a3,bb3,d4] ~ [f3,a3,bb3,d4] ~ [a3,bb3,d4,f4] ~@3 [bb3,d4,f4,a4]@4 g4 ~ [c4,e4,a4]@4 c4 ~ [c4,e4,a4] ~@3 [g3,bb3,g4]@2 ~@2 g3 ~ [c4,e4]@5 ~ g3 ~ [bb3,d4] ~ [gb3,bb3,d4] ~, ~@30 d4@4 ~@2 g3@3 ~@9]/3", // Bb Dm Bbmaj7 Am Gm C Bb Gbaug
  BA: "~@2 [bb3,d4,e4,a4] ~@3 [bb3,d4,e4,a4]@3 ~ [bb3,d4,e4,g4]@3 ~ e4@2", // Bbmaj7 Em7b5
  BB: "d4@2 bb3 ~ [a3,d4]@3 ~ [g3,a3,d4] ~@3 [gb3,bb3,d4] ~ [gb3,bb3,d4] ~", // D5 Gsus2 Gbaug
  BC: "[[gb3,bb3,d4] ~@3 [f3,a3,bb3,d4] ~ [f3,a3,bb3,d4] ~ [f3,a3,bb3,d4] ~ [e3,bb3,eb4]@3 ~ [ab3,db4]@2 bb3@3 ~ [f3,a3,c4,d4]@3 ~ [f3,a3,c4,d4] ~@5 [f3,a3,c4,d4] ~, ~@7 e3@2 ~@7, ~@16 db4 ~@15]/2", // Gbaug Bbmaj7 Eb Db5 Dm7
  BD: "[f3,a3,c4,d4] ~ [ab3,c4,d4,f4] ~@3 [ab3,c4,d4,f4]@3 ~@3 [ab3,c4,d4,f4]@2 ~@2", // Dm7 Dm7b5
  BE: "[ab3,c4,d4]@2 ~@2 [g3,b3,e4]@3 ~ [b3,e4] ~@5 [b3,e4]@2, ~@14 g3 ~", // Dm7b5 Em E5
  BF: "[a3,c4,d4,f4] ~@5 [f3,a3,b3,e4]@3 ~ [f3,a3,b3]@3 ~ a3 ~, ~@5 d4@2 ~", // Dm7 Fmaj7 Bm7b5
  BG: "[a3@2 bb3@2 ~@4 d4@2 g4 ~@7 f4 ~@13 ab3@3 ~ [f3,a3,c4,e4]@3 ~ [f3,a3,c4,e4] ~@3 [g3,bb3,f4] ~ [bb3,f4]@2, ~@4 g3@6 ~@2 g3@6 ~@2 g3@6 e4@9 ~@13, ~@6 bb3@6 ~@2 bb3@5 ~@3 bb3@7 ~@17 [g3,d4] ~, ~@8 d4@2 ~@2 c4@3 c4@2 ~@7]/3", // Fmaj7 Gm7 Bb5 G5
  BH: "[c4,eb4,gb4,a4] ~@3 [c4,eb4,a4]@3 ~ [c4,eb4,a4] ~@3 [eb4,g4,a4,d5] ~@2 [eb4,g4,c5]", // Cdim Adim Ebmaj7 Cm
  BI: "~@2 bb3@3 ~ bb3 ~ [bb3,f4] ~@3 e4@2 f4@2, ~@2 [db4,g4]@7 ~@3 bb3@4", // Bb5 Dbdim
  BJ: "[~@2 g3@4 bb3@2 ~@2 [bb3,d4] ~@3 [bb3,db4,e4]@5 ~ [a3,c4,d4,f4]@3 ~ [a3,c4,d4,f4] ~@3 [c4,d4,f4] ~ [c4,d4,f4] ~, ~ d4@3 ~@12, ~ bb3 ~@14]/2", // Bb Bbdim Dm7
  BK: "~@2 [f3,bb3,d4,f4]@3 ~ [f3,bb3,d4,f4] ~@3 f3 ~ [f3,bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  BL: "[f3,bb3,d4,f4] ~@3 [c4,e4,g4]@3 ~ [a3,c4,e4,g4] ~@3 [c4,e4,g4] ~ [a3,c4,e4,g4] ~", // Bb C Am7 C Am7
  BM: "[~@2 [bb3,d4,f4] ~@3 [f3,bb3,d4,f4]@4 ~@6 f4@2 ~@3 [c4,e4]@32 ~@11, ~@5 f3@4 ~ [f3,a3]@16 ~@6, ~@6 bb3@3 ~@23, ~@7 d4@3 ~@22]/4", // Bb C F
})).s("gm_electric_guitar_jazz").gain(0.26)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@3 A B C D E F G H I J K L M N O ~ P Q R S T U V ~ W ~ X Y Z AA AB AC AD ~ AE ~ AF AG AH AI AJ AK ~ AL ~@2 AM ~ AN ~
  AO AP AQ AR ~@2 AS AT@2 AU AV AA AB AC AD ~ AE ~ AF AG AH AI AJ AK ~ AL ~@2 AM ~ AN ~ AO AP AQ AR ~@2 AS AT@2 AU AV AW
  AX AY ~@3
>`.pickRestart({
  A: "~@14 d4 ~", B: "~@4 a3@3 ~@5 [a3,bb3] ~@3", C: "~@2 a3 ~@3 f3@7 ~@3", D: "~@2 bb3 ~@3 d4 ~@9",
  E: "~@2 bb3 ~@9 bb3 ~@3", F: "~@2 a3 ~@11 e3 ~", G: "ab3 ~@7 a3 ~@3 a3 ~@3", H: "a3 ~ a3 ~@13", I: "~@14 e4 ~",
  J: "~@4 g3 ~@5 e4 ~@5", K: "~@2 bb3 ~@7 c4 ~@5", L: "~@2 [a3,c4] ~ f3@4 ~@2 f3@2 [f3,a3] ~ f3 ~",
  M: "~@4 a3@3 ~@5 bb3 ~@3", N: "~ bb3@2 ~@5", O: "bb3@3 ~@3 f3@5 ~@5",
  P: "~@4 [a3,bb3]@3 ~ bb3 ~@3 [f3,a3,bb3,d4] ~@3", Q: "~@4 [f3,a3,bb3] ~ bb3@5 ~@3 a3 ~, ~@6 f3@3 ~@7, ~@6 d4 ~@9",
  R: "~@2 [f3,bb3] ~@3 [bb3,f4] ~@5 bb3@3 ~", S: "~@4 g3@3 ~@8 [bb3,e4]", T: "~@2 g4@4 a3 ~@9", U: "~@2 c4 ~@13",
  V: "c4 ~@11 c4 ~@3", W: "~@8 bb3 ~ bb3 ~@5", X: "~@2 a3 ~@5 a3 ~@7", Y: "~@14 e3 ~", Z: "e3@3 ~@13",
  AA: "~@4 bb3 ~@11", AB: "~@2 d4 ~@9 g4 ~@3", AC: "g3 ~ d4 ~@5 g3 ~@3 gb3 ~@3", AD: "~@9 a3 ~@6", AE: "~@12 a3 ~@3",
  AF: "~@4 g3@3 ~@9, ~@4 c4 ~@11", AG: "~@2 f3 ~@11 bb3 ~", AH: "~@2 db4 ~@9 a3 ~@3", AI: "~@10 ab3 ~@5",
  AJ: "~@8 g3 ~@3 g3 ~@3", AK: "g3 ~@15", AL: "~@4 f3 ~@9 f3 ~", AM: "~@12 d4 ~@3", AN: "~@10 a3 ~@5",
  AO: "~ [a3,bb3]@2 ~@5 f3@2 ~@4 f4 ~", AP: "bb3 ~@9 bb3 ~@5", AQ: "~@2 bb3 ~ eb4 ~@9 [a3,b3] ~",
  AR: "~@10 c4 ~ [eb4,gb4] ~@3", AS: "~@2 bb3 ~@5 [bb3,a4] ~@7", AT: "[~@13 db4@5 ~@6 [a3,f4] ~@5 ab3 ~]/2",
  AU: "~@8 g3 ~ [a3,f4] ~@5", AV: "~@12 a3 ~ a3 ~", AW: "~@14 f3 ~", AX: "~@2 f3 ~ a3@3 ~@5 a3 ~@3", AY: "~@2 f3 ~@13",
})).s("gm_electric_guitar_jazz").gain(0.13)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A@5 B A@8 C A@14 B A D@8 A@14 B A@3 E A@3 F A D@8 A@14 B A@3 E A@3 D@3 G ~@2
>`.pickRestart({
  A: "~@2 x ~@2 x!2 ~", B: "~@2 x ~@3 x!2", C: "x!3 ~@2 x!2 ~", D: "~ x!2 ~@2 x!2 ~", E: "~@2 x ~@2 x!3",
  F: "~ x!2 ~@3 x!2", G: "~ x!2 ~@5",
})).gain(0.6)

// drums · rim
const rim = s("rim").struct(`<
  ~@2 A B@14 C B@15 D E F E F E F E B@19 G B@2 H I D E F E F E F E B@19 G B@2 H E F E J ~@2
>`.pickRestart({
  A: "~@7 x", B: "x!2", C: "~ x ~@6 x ~@7", D: "~@4 x ~@2 x", E: "~@2 x ~@2 x ~@2", F: "x ~@3 x ~@2 x",
  G: "x ~@7 x ~@4 x ~@2", H: "x ~@2 x ~@4 x ~@5 x ~", I: "~ x", J: "x",
})).gain(0.6)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~ A B ~@29 C D E@7 F ~@20 G D H D E@7 F ~@20 G D E@3 F ~@2>".pickRestart({
  A: "~ x", B: "x!2", C: "~@2 x ~ x ~ x!2", D: "~@3 x ~ x ~ x", E: "~ x ~ x ~ x ~ x", F: "~ x ~@6", G: "~@6 x!2",
  H: "~ x!2 ~ x ~ x!2",
})).gain(0.06)

// drums · ride
const ride = s("rd").struct("<~@33 A B@6 C D ~@21 A E A B@6 C D ~@21 A B@3 D ~@2>".pickRestart({
  A: "~@3 x!5", B: "x!8", C: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", D: "x!3 ~@5", E: "x!2 ~@6",
})).gain(0.18)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@3 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A@2 C ~@2
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@5 x ~ x", C: "x!2 ~@2 x ~@11",
// … 35 more lines

More by Sergio Franchi