Strudelify

Ik ga door

Ruth Jacott

KeyE♭ minorTempo129 bpm
0:00/0:00
// Ik ga door — Ruth Jacott
// 129.4 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 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129.4/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 · piano
const piano = note(`<
  A B A C A B A C ~ D E F G D E H I ~@2 J K J K J K L M J K J K N O P Q D E F G D E H I D E F G D E H I A B A C ~ J K J
  K J K L M J K J K N O P Q D E F G D E H I D E F G D E H I ~@6 R S T U Q V W X Y Z W X AA AB W X Y Z W X AA AB W X Y Z
  W X AA AB W X ~
>`.pickRestart({
  A: "[eb2,eb3,bb3,eb4,gb4]@15 ~", B: "[ab2,b3,eb4,gb4] [bb2,ab3,db4,f4]", C: "[ab2,gb3,b3,eb4]@8 [bb2,ab3,db4,f4]@7 ~",
  D: "[bb3,eb4,gb4]@2 ~ [bb3,eb4,gb4] ~@2 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@2 [bb3,eb4,gb4]@2 ~", // Ebm
  E: "[b3,eb4,gb4]@2 ~ [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@3 [b3,eb4,gb4] ~@2 [b3,eb4,gb4]@2 ~", // B
  F: "[ab3,eb4,f4]@2 ~ [ab3,eb4,f4] ~@2 [ab3,db4,f4] ~@3 [ab3,db4,f4] ~@2 [ab3,db4,f4]@2 ~", // Fm7 Db
  G: "[bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4] ~@3 [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@2 ~", // Gb
  H: "[a3,eb4,gb4]@2 ~ [a3,eb4,gb4] ~@2 [a3,eb4,gb4] ~@3 [a3,eb4,gb4] ~@2 [a3,eb4,gb4]@2 ~", // Ebdim
  I: "[ab3,d4,f4]@2 ~ [ab3,d4,f4] ~@2 [ab3,d4,f4] ~@3 [ab3,d4,f4] ~@2 [ab3,d4,f4]@2 ~", J: "[db3,gb3,bb3]",
  K: "[eb3,gb3,b3]", L: "[gb3,b3,eb4]", M: "[b3,eb4,gb4] [ab3,db4,f4]", N: "[eb2,bb3,db4,gb4]@15 ~",
  O: "[ab2,gb3,bb3,db4]@7 ~ [ab2,gb3,c4,eb4]@7 ~, eb2 ~@15", P: "[db3,gb3,b3,eb4]",
  Q: "~@2 [bb2,ab3,c4,eb4]@2 ~ [bb2,ab3,c4,eb4]@2 ~ [bb2,bb3,d4,f4]@2 ~@6", // Ab Bb
  R: "[ab3,b3,db4,e4]@2 ~ [ab3,b3,db4,e4] ~@2 [ab3,b3,db4,e4] ~@3 [ab3,b3,db4,e4] ~@2 [ab3,b3,db4,e4] ~@2", // Dbm7
  S: "[gb3,bb3,b3,eb4]@2 ~ [gb3,bb3,b3,eb4] ~@2 [gb3,bb3,b3,eb4] ~@3 [gb3,bb3,b3,eb4] ~@2 [gb3,bb3,b3,eb4] ~@2", // Bmaj7
  T: "[gb3,b3,eb4]@2 ~ [gb3,b3,eb4] ~@2 [gb3,b3,eb4] ~@3 [gb3,b3,eb4] ~@2 [gb3,b3,eb4] ~@2", U: "[gb3,b3,eb4]@3 ~",
  V: "~@2 [c3,bb3,d4,f4]@2 ~ [c3,bb3,d4,f4]@2 ~ [c3,c4,e4,g4]@2 ~@6", // Bb C
  W: "[c4,f4,ab4]@2 ~ [c4,f4,ab4] ~@2 [c4,f4,ab4] ~@3 [c4,f4,ab4] ~@2 [c4,f4,ab4]@2 ~", // Fm
  X: "[db4,f4,ab4]@2 ~ [db4,f4,ab4] ~@2 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@2 [db4,f4,ab4]@2 ~", // Db
  Y: "[bb3,f4,g4]@2 ~ [bb3,f4,g4] ~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@2 ~", // Gm7 Eb
  Z: "[c4,eb4,ab4]@2 ~ [c4,eb4,ab4] ~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@2 [c4,eb4,ab4]@2 ~", // Ab
  AA: "[b3,f4,ab4]@2 ~ [b3,f4,ab4] ~@2 [b3,f4,ab4] ~@3 [b3,f4,ab4] ~@2 [b3,f4,ab4]@2 ~", // Fdim
  AB: "[bb3,e4,g4]@2 ~ [bb3,e4,g4] ~@2 [bb3,e4,g4] ~@3 [bb3,e4,g4] ~@2 [bb3,e4,g4]@2 ~", // Edim
})).s("gm_piano").gain(0.31)

// bass · electric bass finger
const bass = note(`<
  ~@9 A B C D E F E G H ~ I@2 J I@3 K L I@2 J I M K N O A B C D E F E G A B C D E F E G ~@5 I@2 J I@3 K L I@2 J I M K N
  O A B C D E F E G A B C D E F E G H ~ P Q R S ~@4 O T U V W X Y Z Y AA U V W X Y Z Y AA U V W X Y Z Y AA U V ~
>`.pickRestart({
  A: "eb2@2 ~@2 eb2@2 ~ bb1 eb2 db2 bb1@2 db2@2 eb2@2", B: "ab1@2 ~@2 ab1@2 ~ ab1!3 ab1@2 b1@2 ab1@2",
  C: "db2@2 ~@2 db2@2 ~ db2!3 bb1@2 ab1@2 f1@2", D: "gb1@2 ~@2 gb1@2 ~ gb1!3 gb1@2 eb1@2 db1@2",
  E: "b1@2 ~@2 b1@2 ~ b1!3 ab1 ~ gb1@2 eb1@2", F: "ab1@2 ~@2 ab1@2 ~ ab1!3 gb1 ~ eb1@2 gb1@2",
  G: "bb1@3 ~ bb1@2 ~ bb1 db2 bb1 ~ db2 ~ db2 eb2 ~", H: "gb1@2 ~@2 gb1@2 ~ gb1 ~ gb1 eb1 ~ db1 ~ eb1@2",
  I: "gb1@2 ~@2 gb1@2 ~ gb1 ~ gb1 eb1@2 db1@2 eb1@2", J: "gb1@3 ~ gb1@2 ~ gb1 ~ gb1 eb1@2 db1@2 eb1@2",
  K: "ab1@2 ~@2 ab1@2 ~ ab1 ~ ab1 gb1@2 eb1@2 gb1@2", L: "db2@2 ~@2 db2@2 ~ db2 ~ db2 bb1@2 ab1@2 bb1@2",
  M: "eb2@3 ~ eb2@2 ~ eb2 ~ eb2 db2@2 bb1@2 db2@2", N: "db2@3 ~ db2@2 ~ db2 ~ db2 bb1@2 ab1@2 bb1@2",
  O: "~@2 bb1 ~@2 bb1@2 ~ bb1@2 ~@6",
  P: "[eb0,eb1]@4 ~@2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1] [bb-1,bb0]", // Eb Db Eb Db Eb Db Bb
  Q: "[eb0,eb1]@4 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1] [bb-1,bb0]", // Eb Db Eb Db Eb Db Bb
  R: "[eb0,eb1]@2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2", // Eb Db Eb Db Eb Db Eb Db
  S: "[eb0,eb1]@4 ~ [eb0,eb1] [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2 [eb0,eb1]!2 [db0,db1]!2", // Eb Db Eb Db Eb Db
  T: "~@2 c2 ~@2 c2@2 ~ c2@2 ~@6", U: "f2@2 ~@2 f2@2 ~ c2 f2 eb2 c2@2 eb2@2 f2@2",
  V: "bb1@2 ~@2 bb1@2 ~ bb1!3 bb1@2 db2@2 bb1@2", W: "eb2@2 ~@2 eb2@2 ~ eb2!3 c2@2 bb1@2 g1@2",
  X: "ab1@2 ~@2 ab1@2 ~ ab1!3 ab1@2 f1@2 eb1@2", Y: "db2@2 ~@2 db2@2 ~ db2!3 bb1 ~ ab1@2 f1@2",
  Z: "bb1@2 ~@2 bb1@2 ~ bb1!3 ab1 ~ f1@2 ab1@2", AA: "c2@3 ~ c2@2 ~ c2 eb2 c2 ~ eb2 ~ eb2 f2 ~",
})).s("gm_electric_bass_finger").gain(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@19 A B C D C E F G A B C D H I J ~@22 A B C D C E F G A B C D H I J ~@56
>`.pickRestart({
  A: "~@4 [gb3,bb3,db4,gb4,bb4]!11 ~", B: "[gb3,b3,eb4,gb4,b4]!15 ~", C: "[gb3,bb3,db4,gb4,bb4]!15 ~",
  D: "~@3 [gb3,b3,eb4,gb4,b4]!12 ~", E: "~@4 [gb3,b3,eb4,gb4,b4]!11 ~", F: "[b3,eb4,gb4,b4] [gb3,b3,eb4,gb4,b4]!14 ~",
  G: "~ [gb3,b3,eb4,gb4,b4]!7 [ab3,db4,f4,ab4,b4]!7 ~", H: "~@4 [eb3,a3,db4,gb4,bb4]!11 ~",
  I: "[bb3,db4,gb4,bb4,db5]!8 [ab3,c4,eb4,ab4,c5]!7 ~", J: "[db3,b3,eb4,gb4,b4]!15 ~",
})).s("gm_electric_guitar_clean").gain(0.08).pan(0.3)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@19 A B C D C E F G A B C D H I J ~@22 A B C D C E F G A B C D H I J ~@56
>`.pickRestart({
  A: "[gb3,bb3,db4,gb4,bb4]!4 ~@11 [gb3,bb3,db4,gb4,bb4]", B: "~@15 [gb3,b3,eb4,gb4,b4]",
  C: "~@15 [gb3,bb3,db4,gb4,bb4]", D: "[gb3,b3,eb4,gb4,b4]!3 ~@12 [gb3,b3,eb4,gb4,b4]",
  E: "[gb3,b3,eb4,gb4,b4]!4 ~@11 [gb3,b3,eb4,gb4,b4]", F: "gb3 ~@14 [gb3,b3,eb4,gb4,b4]",
  G: "[gb3,b3,eb4,gb4,b4] ~@14 [ab3,db4,f4,ab4,b4]", H: "[eb3,a3,db4,gb4,bb4]!4 ~@11 [eb3,a3,db4,gb4,bb4]",
  I: "~@15 [ab3,c4,eb4,ab4,c5]", J: "~@15 [db3,b3,eb4,gb4,b4]",
})).s("gm_electric_guitar_clean").gain(0.04).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B A C A B A C ~ D E F G H E I J ~@2 K L K L M@2 N O P Q P Q P R Q S D E F G H E I J D E F G H E I J A B A C ~ K L K
  L M@2 N O P Q P Q P R Q S D E F G H E I J D E F G H E I J ~@6 T U V W X Y Z AA AB AC AD AA AE AF Z AA AB AC AD AA AE
  AF Z AA AB AC AD AA AE AF Z AA ~
>`.pickRestart({
  A: "[eb2,eb3,eb4,gb4,bb4]", B: "[ab2,ab3,eb4,gb4,b4] [bb2,bb3,db4,f4,ab4]",
  C: "[ab2,ab3,b3,eb4,gb4] [bb2,bb3,db4,f4,ab4]", D: "[eb2,bb3,db4,gb4]", E: "[ab2,b3,eb4,gb4]",
  F: "[db2,ab3,db4,eb4,f4]", G: "[gb2,bb3,db4,gb4]@15 ~", H: "[b2,bb3,eb4,gb4]", I: "[b2,a3,eb4,gb4]@15 ~",
  J: "[bb2,ab3,d4,f4]@15 ~", K: "[db3,gb3,bb3]", L: "[eb3,gb3,b3]",
  M: "[[db3,gb3,bb3]@15 ~ [eb3,b3]@16, ~@15 gb3@15 ~@2]/2", N: "[gb3,b3,eb4]", O: "[gb3,b3,eb4] [f3,ab3,db4]",
  P: "[bb3,db4,gb4]", Q: "[b3,eb4,gb4]", R: "[gb3,bb3,db4] [ab3,c4,eb4]",
  S: "~@2 [ab3,c4,eb4]@2 ~ [ab3,c4,eb4]@2 ~ [bb3,d4,f4]@4 ~@4", T: "[gb2,e3,ab3,b3,e4]", U: "[b2,eb3,gb3,bb3,eb4]",
  V: "[ab2,gb3,b3,eb4]", W: "[gb3,b3,eb4]@7 ~ [ab3,db4,f4]@8, [db2,db3]@15 ~",
  X: "~@2 [ab3,c4,eb4]@2 ~ [ab3,c4,eb4]@2 ~ [bb3,d4,f4]@4 ~@4, ~@2 bb1 ~@2 bb1 ~@2 bb1@8", // Ab Bb
  Y: "~@2 [bb3,d4,f4]@2 ~ [bb3,d4,f4]@2 ~ [c2,c4,e4,g4]@4 ~@4, ~@2 c2 ~@2 c2 ~@10", Z: "[f2,c4,eb4,ab4]",
  AA: "[bb2,db4,f4,ab4]", AB: "[eb2,bb3,eb4,f4,g4]", AC: "[ab2,c4,eb4,ab4]@15 ~", AD: "[db3,c4,f4,ab4]",
  AE: "[db3,b3,f4,ab4]@15 ~", AF: "[c3,bb3,e4,g4]@15 ~",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.8)

// other · brass section
const brass_section = note(`<
  ~@16 A ~ B ~@7 C@2 ~@14 D ~@16 E ~@3 F ~@3 G ~ H@2 ~@8 D ~@9 I ~ J ~@11 K@4 L ~@3 K@4 M@2 ~@2 K@4 L ~@3
>`.pickRestart({
  A: "~@8 [db4,db5] [bb3,bb4] ~ [db4,db5] ~ [db4,db5] [eb4,eb5] ~", B: "~@8 [db3,db5]@3 [eb3,eb5]@3 [gb3,gb5]@2",
  C: "[~@6 eb4 ~ gb4@2 f4 eb4 ~ f4 ~ db4@14 ~@3]/2",
  D: "~@2 [bb3,bb4] ~@2 [bb3,bb4]@3 [bb3,bb4] ~@2 [bb3,bb4] [db4,db5]@2 [eb4,eb5] ~", E: "~@6 eb4@6 gb4 ~@3",
  F: "~@6 eb4 ~ gb4@2 f4 eb4 ~ f4 ~ db4", G: "~@7 eb5 db5 ~ eb5 ~ [b4,f5,ab5]@2 ~ [bb4,eb5,gb5]",
  H: "[~@11 [eb4,eb5] ~ [f4,f5] ~ [db4,gb4,b4,gb5]@14 ~@3]/2", // Eb F Gbsus4
  I: "~@7 [ab3,ab4] [bb3,bb4]!2 ~ [ab3,ab4] ~ [db4,db5] ~ [eb4,eb5]", // Ab Bb Ab Db Eb
  J: "~@4 [ab2,a2,ab3,a3] [gb2,gb3] [eb2,eb3] ~ [a3,a4] [gb3,ab3,gb4,ab4] [eb3,eb4] ~ [a4,ab5,a5] [gb4,ab4,gb5] [eb4,eb5] ~", // Amaj7 Gb Eb A Gbsus2 Eb Amaj7 Gbsus2 …
  K: "[~@8 [bb3,bb4]@3 ~ [c4,c5] ~ [ab3,ab4]@12 ~@2 [bb3,bb4] ~ [ab3,ab4]@12 ~@2 [bb3,bb4] ~ [b3,b4]@18]/4", // Bb C Ab Bb Ab Bb B
  L: "~@2 [c4,c5] ~@2 [c4,c5]@3 [c4,c5] ~@2 [c4,c5] [eb4,eb5]@2 [f4,f5] ~", M: "[[c4,c5]@9 ~@7]/2",
})).s("gm_brass_section").gain(0.24).pan(0.4)

// chords · pad sweep
const pad_sweep = note(`<
  A B A C A B A C ~ D E F G H E I J ~@9 K ~@8 D E F G H E I J D E F G H E I J A B A C ~@8 K ~@8 D E F G H E I J D E F G
  H E I J ~@9 L ~@2 M N O P Q N R S M N O P Q N R S M N O P Q N R S M N ~
>`.pickRestart({
  A: "[eb4,gb4,bb4]", B: "[eb4,gb4,b4] [db4,f4,ab4]", C: "[b3,eb4,gb4] [db4,f4,ab4]", D: "[eb2,bb3,db4,gb4]",
  E: "[ab2,b3,eb4,gb4]", F: "[db2,ab3,db4,eb4,f4]", G: "[gb2,bb3,db4,gb4]@15 ~", H: "[b2,bb3,eb4,gb4]",
  I: "[b2,a3,eb4,gb4]@15 ~", J: "[bb2,ab3,d4,f4]@15 ~", K: "[b4,eb5,gb5]", L: "[db2,ab2,db3]", M: "[f2,c4,eb4,ab4]",
  N: "[bb2,db4,f4,ab4]", O: "[eb2,bb3,eb4,f4,g4]", P: "[ab2,c4,eb4,ab4]@15 ~", Q: "[db3,c4,f4,ab4]",
  R: "[db3,b3,f4,ab4]@15 ~", S: "[c3,bb3,e4,g4]@15 ~",
})).s("gm_pad_sweep").gain(0.09).pan(0)

// other · orchestra hit
const orchestra_hit = note("<A B C ~ A B C ~@11 D ~@15 E ~@16 A B C ~ D ~@15 E ~@26 E F ~@27>".pickRestart({
  A: "eb4@15 ~, eb3@3 ~@13", B: "~@14 [eb3,eb4] ~", C: "eb3 ~ eb3 ~@5, eb4@3 ~",
  D: "~@8 [db3,db4] ~@2 [eb3,eb4] ~@2 [gb3,gb4] ~", E: "~@2 ab3 ~@2 ab3 ~@2 bb3 ~@7", F: "~@2 bb3 ~@2 bb3 ~@2 c4 ~@7",
})).s("gm_orchestra_hit").gain(0.16)

// other · orchestra hit · soft notes
const orchestra_hit_soft = note("<A ~ B ~ A ~ B ~@44 A ~ B ~ C ~@71>".pickRestart({
  A: "~@4 eb3@2 ~@2 eb3@3 ~ eb3@2 ~@2", B: "~@8 eb3@2 ~@2 eb3 ~@3", C: "~@8 eb3 ~@7",
})).s("gm_orchestra_hit").gain(0.07)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@4 A B A B C D E F G H@2 I J ~@17 C K L M N O@2 P Q K L R N H@2 S T A B A B ~@9 U@5 V W C K L M N O@2 P Q K L R N X@2
  S T ~@6 Y Z AA@2 ~ AB AC AD AE AF AG AH AI AJ AC AD AE AF AG AK AL AM AC AD AE AF AG AH AI AJ AC AD ~
>`.pickRestart({
  A: "~@4 [eb6,eb7] ~@3 [db6,db7] ~@3 [eb6,eb7] ~ [bb5,bb6] ~", B: "~@4 [eb6,eb7] ~@3 [db6,db7] ~@3 [eb6,eb7] ~@3",
  C: "~@8 [db3,db4] [eb3,gb3,eb4,gb4] [ab3,ab4] [bb3,db4,bb4,db5] [eb4,eb5] [gb4,ab4,gb5,ab5] [bb4,bb5] [db5,eb5,db6,eb6]", // Db Ebm Ab Bbm Eb Gbsus2 Bb Dbsus2
  D: "[gb5,gb6]@12 [bb4,bb5]@3 ~", E: "[b4,b5]@11 ~ [gb5,gb6]@3 ~", F: "[ab5,ab6]@11 ~ [f5,f6] [eb5,eb6] [db5,db6]@2",
  G: "[b5,b6]@4 [bb5,bb6]@3 ~ [ab5,ab6]@3 ~ [bb5,bb6]@3 ~", // B Bb Ab Bb
  H: "[[gb5,gb6]@9 ~ [bb5,bb6] ~ [ab5,ab6] ~ [bb5,bb6] [eb5,eb6]@12 ~ [eb5,eb6] [f5,f6] [gb5,gb6] [eb5,eb6]]/2", // Gb Bb Ab Bb Eb F Gb Eb
  I: "[a5,a6]@7 ~ [gb5,gb6]@8", J: "[f5,f6]@7 ~@9", K: "[gb5,gb6]@3 [bb4,bb5]", L: "[b4,b5]@3 [gb5,gb6]",
  M: "[ab5,ab6]@3 [db6,db7]", N: "[b5,b6] [bb5,bb6] [ab5,ab6] [bb5,bb6]",
  O: "[[gb5,gb6]@9 ~ [bb5,bb6] ~ [ab5,ab6] ~ [bb5,bb6] [eb5,eb6]@16 ~]/2", P: "[gb5,gb6] [f5,f6]",
  Q: "[eb5,eb6] [f5,f6]", R: "[ab5,ab6]@11 ~ [db6,db7]@4", S: "[a5,a6]", T: "[ab5,ab6]@15 ~", U: "[gb5@18 f5 gb5]/5",
  V: "bb5 c6", W: "db6@7 ~",
  X: "[[gb5,gb6]@9 ~ [bb5,bb6] ~ [ab5,ab6] ~ [bb5,bb6] [eb5,eb6]@12 ~ [eb5,eb6] [f5,gb5,f6] gb6 [eb5,eb6]]/2", // Gb Bb Ab Bb Eb Gbmaj7 Eb
  Y: "[gb3,e4,ab4,b4,e5]", Z: "~@4 [db5,db6]@3 ~ [eb5,eb6]@3 ~ [bb5,bb6]@3 ~, [b3,eb4,gb4,bb4], eb5@7 ~@9",
  AA: "[[ab3,gb4,b4,eb5]@16 [gb4,b4,eb5]@7 ~ [ab4,db5,f5]@8, [gb5,gb6]@19 ~@13, ~@16 [db3,db4]@15 ~]/2", // Abm7 B Db Gb Db
  AB: "~@8 [eb3,eb4] [f3,ab3,f4,ab4] [bb3,bb4] [c4,eb4,c5,eb5] [f4,f5] [ab4,bb4,ab5,bb5] [c5,c6] [eb5,f5,eb6,f6]", // Eb Fm Bb Cm F Absus2 C Ebsus2
  AC: "[ab5,ab6]@3 [c5,c6]", AD: "[eb5,eb6] [db5,db6] [c5,c6] [db5,db6]", AE: "[g5,g6]@3 [bb5,bb6]",
  AF: "[db6,db7]@2 [c6,c7]@2 [bb5,bb6]@2 [c6,c7] [ab5,ab6]", AG: "[f5,f6]@7 ~ [c5,c6]@3 ~ [bb4,bb5]@2 [ab4,ab5]@2",
  AH: "[f5,f6]@7 ~ [g5,g6] ~ [ab5,ab6]@2 [bb5,bb6]@3 ~", AI: "[b5,b6]", AJ: "[c6,c7]@7 ~", AK: "[f5,f6]@13 ~ [g5,g6]@2",
  AL: "[ab5,ab6] [g5,g6]", AM: "[c6,c7] [bb5,bb6]",
})).s("gm_string_ensemble_1").gain(0.21).pan(0.2)

// other · glockenspiel
const glockenspiel = note(`<
  ~@4 A B A B ~ C D E F G@2 H I ~@18 J K L M N@2 O P J K Q M G@2 R S A B A B ~@17 J K L M N@2 O P J K Q M T@2 R S ~@7 U
  V ~@3 W X Y Z AA AB AC AD W X Y Z AA AE AF AG W X Y Z AA AB AC AD W X ~
>`.pickRestart({
  A: "~@4 [eb6,eb7] ~@3 [db6,db7] ~@3 [eb6,eb7] ~ [bb5,bb6] ~", B: "~@4 [eb6,eb7] ~@3 [db6,db7] ~@3 [eb6,eb7] ~@3",
  C: "[gb6,gb7]@12 [bb5,bb6]@3 ~", D: "[b5,b6]@11 ~ [gb6,gb7]@3 ~", E: "[ab6,ab7]@11 ~ [f6,f7] [eb6,eb7] [db6,db7]@2",
  F: "[b6,b7]@4 [bb6,bb7]@3 ~ [ab6,ab7]@3 ~ [bb6,bb7]@3 ~", // B Bb Ab Bb
  G: "[[gb6,gb7]@9 ~ [bb6,bb7] ~ [ab6,ab7] ~ [bb6,bb7] [eb6,eb7]@12 ~ [eb6,eb7] [f6,f7] [gb6,gb7] [eb6,eb7]]/2", // Gb Bb Ab Bb Eb F Gb Eb
  H: "[a6,a7]@7 ~ [gb6,gb7]@8", I: "[f6,f7]@7 ~@9", J: "[gb6,gb7]@3 [bb5,bb6]", K: "[b5,b6]@3 [gb6,gb7]",
  L: "[ab6,ab7]@3 [db7,db8]", M: "[b6,b7] [bb6,bb7] [ab6,ab7] [bb6,bb7]",
  N: "[[gb6,gb7]@9 ~ [bb6,bb7] ~ [ab6,ab7] ~ [bb6,bb7] [eb6,eb7]@16 ~]/2", O: "[gb6,gb7] [f6,f7]",
  P: "[eb6,eb7] [f6,f7]", Q: "[ab6,ab7]@11 ~ [db7,db8]@4", R: "[a6,a7]", S: "[ab6,ab7]@15 ~",
  T: "[[gb6,gb7]@9 ~ [bb6,bb7] ~ [ab6,ab7] ~ [bb6,bb7] [eb6,eb7]@12 ~ [eb6,eb7] [f6,gb6,f7] gb7 [eb6,eb7]]/2", // Gb Bb Ab Bb Eb Gbmaj7 Eb
  U: "~@4 [db6,db7]@3 ~ [eb6,eb7]@3 ~ [bb6,bb7]@3 ~", V: "[gb6,gb7]@15 ~", W: "[ab6,ab7]@3 [c6,c7]",
  X: "[eb6,eb7] [db6,db7] [c6,c7] [db6,db7]", Y: "[g6,g7]@3 [bb6,bb7]",
  Z: "[db7,db8]@2 [c7,c8]@2 [bb6,bb7]@2 [c7,c8] [ab6,ab7]", AA: "[f6,f7]@7 ~ [c6,c7]@3 ~ [bb5,bb6]@2 [ab5,ab6]@2",
  AB: "[f6,f7]@7 ~ [g6,g7] ~ [ab6,ab7]@2 [bb6,bb7]@3 ~", AC: "[b6,b7]", AD: "[c7,c8]@7 ~", AE: "[f6,f7]@13 ~ [g6,g7]@2",
  AF: "[ab6,ab7] [g6,g7]", AG: "[c7,c8] [bb6,bb7]",
})).s("gm_glockenspiel").gain(0.15).pan(0.6)

// chords · percussive organ
const percussive_organ = note(`<
  ~@19 A B A B A B C D A B A B A E F G ~@21 A B A B A B C D A B A B A E F G ~@26 G H ~@27
>`.pickRestart({
  A: "~@2 [bb4,db5,gb5] ~@2 [bb4,db5,gb5] ~@2 [bb4,db5,gb5] ~@2 [bb4,db5,gb5] ~@2 [bb4,db5,gb5] ~", // Gb
  B: "~@2 [b4,db5,gb5] ~@2 [b4,db5,gb5] ~@2 [b4,db5,gb5] ~@2 [b4,db5,gb5] ~@2 [b4,db5,gb5] ~", // Bsus2
  C: "~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~", // B
  D: "~@2 [gb4,b4,eb5] ~@2 [gb4,b4,eb5] ~@2 [ab4,db5,f5] ~@2 [ab4,db5,f5] ~@2 [ab4,db5,f5] ~", // B Db
  E: "~@2 [gb4,bb4,db5] ~@2 [gb4,bb4,db5] ~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~", // Gb Ab
  F: "~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~", // Ab
  G: "~@2 [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@2 [f4,bb4,d5] ~@7", H: "~@2 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~@2 [g4,c5,e5] ~@7",
})).s("gm_percussive_organ").gain(0.16).pan(0.3)

// … 108 more lines

More by Ruth Jacott