Strudelify

Un porto nel vento

Ron

KeyF majorTempo103 bpm
0:00/0:00
// Un porto nel vento — Ron
// 103 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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("<~@3 A@8 ~@35 B C D E@2 F@2 G ~@9 H@2 I ~@23 J K ~@2 L M N C D E@2 F@2 O P ~ Q ~@2>".pickRestart({
  A: "[~@16 [c5,eb5]@2 c5@2 eb5@2 [f4,bb4,d5]@4 ~@4 c3@2 ~@16 [db5,f5]@2 eb5@2 db5@2 c5@4 bb4@2 c5 db5 ~@2 f2@15 ~ [f4,ab4]@2 ~@2 c5@2 bb4@3 ~ ab4@2 ~ f3 ~@2 bb1@15 ~ [db4,f4]@2 ~@2 ab4@2 [eb3,g4]@3 ~ f4@2 [g3,eb4]@4, ~@15 ab2@7 bb2@6 f2@17 ~@2 db2@7 [eb2,bb3,eb4]@10 ~@15 db2@7 [eb2,bb3,eb4]@10 ~@15 db2@7 [eb2,bb3]@10, ~@8 f4@3 ~@2 bb4@3 ~@8 ab4@3 ~@4 c5@9 db4@3 ~@13 ab3@3 ~@5, ~@9 eb3@2 ~@14 db3@2 ~@14 bb4 ~@4 g4 f4@2 ~@8 g4 ~@6, ~@83 db3@4 ~@2 eb3@4 ~@22 db3@4 ~@2 eb3@4 ~@3]/8", // Cm Bb Db Fm Db Eb Cm Eb5
  B: "[c3,g3,e4]@5 ~@11", C: "eb5@2 c5@2 eb5 ~ d5@4 bb4@2 f4@4", D: "~@6 [c4,g4]@9 ~",
  E: "[[ab4,db5] ~ eb5@2 db5@2 c5@4 bb4@2 c5 db5 ~@4 c4@2 g4@2 [c4,g4]@9 ~, f5 ~@6 c5@4 ~@5, ~@2 f3 ~]/2", // Db5 C5
  F: "[ab4@2 bb4@2 c5@2 bb4@4 ab4@2 g4@2 ~@2 bb3@2 c4@2 f4@2 [c4,f4]@3 ~ c4@2 [c4,f4]@4, ~@14 f4@6 ~@6 f4 ~@5]/2", // F5
  G: "f4 ~ g4@2 ab4@2 [bb3,eb4,g4]@2 ~@8, [ab3,db4]@5 ~@11", H: "[~@8 eb5 ~ c5 ~ eb5 ~ d5@4 bb4@2 f4@3 ~@9]/2",
  I: "f5@2 eb5 ~ db5@2 c5@4 bb4@2 c5 db5 c5@2", J: "~@2 c5 ~ a4@2 g4@3 ~ f4@2 g4@3 ~",
  K: "g4 a4 f4 [c4,g4]@4 ~@9, c4@3 ~@13", L: "[c3,f3,g3] ~@6 [c3,f3,g3]", M: "[c3,f3,g3]@3 ~@11 [c3,f3,g3]@2",
  N: "~@2 [c2,g3]@3 ~ [e2,g3]@3 ~ [g2,c3,g3]@3 ~@3", // C5 Em C5
  O: "f4 ~ g4@2 ab4@2 g4@4 f4@2 eb4@3 ~, [ab3,db4]@5 ~ bb3@9 ~, ~@3 eb4@3 ~@2", P: "f4@5 ~@11", Q: "c5 ~@3 d5@4 ~@8",
})).s("gm_piano").gain(0.47).pan(0.7)

// chords · piano · soft notes
const piano_soft = note("<~ A B ~@2 C ~ D ~ E ~@94 F G@2 ~>".pickRestart({
  A: "~@4 c6@3 ~ bb4@6 f5@2, ~@7 f5@2 ~@7", B: "~ c6@3 f5@4 ~@2 c6@2 f5@2 bb4@2", C: "f3 c3 f3 c3 f3 c3 f3 c3",
  D: "c4 f4 c4 ~ f3 c3 f3 c3, ~@3 g4@5", E: "c4@2 f4@2 ~ f3@3 f3@2 c3@2 f3@2 c3@2, ~@2 c4 ~@5",
  F: "~@13 [c5,eb5] c5 [c5,eb5]", G: "[eb5 [c5,eb5]!3 c5 ~@3 bb4@2 f4@11 ~@11]/2",
})).s("gm_piano").gain(0.24).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@4 A B C B D E F G H G H I E I E I J E I@2 E I E I J E I K@3 L@5 K@3 M@4 N O@2 P@2 Q@2 R I E I E I J E I@2 E@2 S I J
  E I K@3 L@5 K@3 L@5 K@3 T@5 ~@9 U@4 ~
>`.pickRestart({
  A: "eb4 c4 eb4 d4@2 bb3@3", B: "f3", C: "db3@3 eb3@5", D: "db4@3 eb4@5", E: "bb3", F: "[db5,f5]@3 [eb4,bb4,eb5]@5",
  G: "[a3,c4]", H: "[bb3,d4]", I: "c4", J: "a3", K: "[[d4,a4] [bb3,c4,f4] [c4,d4,g4], g3]/3",
  L: "[[bb3,c4,f4]@16 f4@16 g4@6 f4@10 bb3@16 ~@3 e4@4 ~ d4@4 e4@4, f3@4 g3, ~ [a3,c4]@2 c4@2, ~@48 f4@19 ~@13]/5", // Bbsus2 Am
  M: "[[bb3,c4,f4]@16 f4@16 g4@6 f4@10 [bb3,c4,f4]@5 ~ f3@10, f3@27 ~@5, ~@16 [a3,c4]@32 ~@5 [bb3,f4]@9 ~@2]/4", // Bbsus2 Am Bb5
  N: "[c3,c4,e4]@2 ~@3 f3@3, ~@9 [bb3,f4]@5 ~@2", O: "[eb5 c5 eb5 d5@2 bb4 f4@10]/2",
  P: "[f5@2 eb5@2 db5@2 c5@4 bb4@2 c5 db5 c5@18]/2", Q: "[ab4 bb4 c5 bb4@2 ab4 g4 f4@9]/2", R: "f5 g5 ab5 g5 ~@4",
  S: "ab3@3 bb3@5", T: "[[bb3,c4,f4]@8 f4@8 g4@3 f4@5 bb3@7 ~ g3 ~@7, f3@4 ~, ~@8 [a3,c4]@16 [c4,f4]@9 ~@7]/5",
  U: "[f5@53 ~@11]/4",
})).s("gm_string_ensemble_2").gain(0.34)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@11 A B A B C D C D C E C F C G C G C E H I ~@22 J C D C D C E C F K L M ~ C E C F ~@16 N@4 O ~@3 P@2 Q@2 R@2 S@2 T U
  ~@4
>`.pickRestart({
  A: "f2 ~ c3 ~ [f3,f6]@2 ~@4 [c3,c6] ~ [f2,f5] ~ d3@2, ~@14 d6 ~", // F C F
  B: "~@4 [f2,f3] ~@5 [d3,d6] ~ [f2,f5] ~ c3@2, ~@14 c6 ~", C: "~@2 f6 ~@5", D: "~@4 f3 ~@5 d6 ~ f5 ~ c6 ~",
  E: "~@4 c5 ~@5 c6 ~ f5 ~ c6 ~", F: "c5 ~@3 c5 ~@5 d6 ~ f5 ~ c6 ~", G: "~@10 d6 ~ f5 ~ c6 ~", H: "~@4 f6 ~@5 c6 ~@5",
  I: "c5 ~@3 g5 ~@11", J: "~@10 [d4,d6] ~ [f3,f5] ~ [c4,c6] ~", K: "~@4 f6@2 ~@4 c6 ~@3 d6 ~",
  L: "~@8 eb5 ~ c5 ~ eb5 ~ d5@2", M: "~@2 bb4 ~ f4@2 ~@10", N: "[d5@24 f5@2 d5@2 f5@2 e5@4 c5@4 g4@16 f4 g4@3 f4@6]/4",
  O: "c5", P: "[~@7 f4@2 f4@2 g4@2 f4@3]/2", Q: "[eb5 c5 eb5 d5@2 bb4 f4@10]/2",
  R: "[f5@2 eb5@2 db5@2 c5@4 bb4@2 c5 db5 c5@18]/2", S: "[ab4 bb4 c5 bb4@2 ab4 g4 f4@9]/2",
  T: "f5 g5 ab5 g5@2 f5 eb5@2", U: "f5 ~@3",
})).s("gm_string_ensemble_1").gain(0.45).pan(0.3)

// bass · fretless bass
const bass = note(`<
  ~@15 A B A B A C D E A B A B A C D F G H I J K L M N G H I O P L Q R S T U V W X Y Z AA Z AA Z AB AC AD AE AF AG AH Z
  AB AC AI G AJ I AK K L M AL G AJ I AK K L M AL G AJ I AK K L M AM AN@2 S T U V W X AO AP@2 AQ@3
>`.pickRestart({
  A: "f2 ~ f2@4 f1@2 f1@8", B: "f1@5 ~ f1@2 f1@8", C: "d1@5 ~ d1@2 d1@8", D: "g2 ~ g2@4 g1@2 g1@8",
  E: "c2@5 ~ c1@2 c1@8", F: "c2@5 ~ c1@2 c1@4 g1@2 a1@2", G: "b1@5 ~ b1 ~ b1@8", H: "bb1@5 ~ bb1@2 bb1@4 bb1@2 c2@2",
  I: "e1@5 ~ e1 ~ e1@4 e1@2 e1@2", J: "d2@5 ~ d1@2 d1@2 bb1@2 d2@2 bb1@2", K: "c2@5 ~ c2 ~ c2@8",
  L: "d2@5 ~ d1@2 d1@2 f1@2 f1@2 gb1@2", M: "g1@5 ~ g1 ~ g1@5 ~ g1 ~", N: "c2@5 ~ c1@2 c1@2 g1@2 c2@2 d2@2",
  O: "d2@5 ~ d2@2 d2@8", P: "f1@5 ~ f1 ~ f1@8", Q: "g1@5 ~ g1 ~ g1@5 ~@3", R: "c1@5 ~@5 g2@6", S: "ab1@3 bb1 bb1@4",
  T: "f1@3 f1 f1@4", U: "db1@3 eb1 eb1@4", V: "f2@2 c3@2 f3 ~ f3@2 f3@4 c3@4", W: "db2@2 db2 eb2 eb2@4",
  X: "bb1@3 bb1!5", Y: "db1@2 db1@2 db1@2 eb1@3 ~@7", Z: "f1@2 f1@6 f1 ~ f1@6", AA: "f1@5 ~ d1@4 eb1@4 e1@2",
  AB: "d2@5 ~ d1@2 d1@2 e1@4 f1@2", AC: "g1@2 g1@6 g1 ~ g1@6", AD: "c2@5 ~ c1@2 g1@2 d2@2 c2@4",
  AE: "f1@2 f1@6 f1 ~ f1@4 c2@2", AF: "eb2@5 ~ bb2@2 bb2@2 bb2@2 eb2@4", AG: "d2@4 d2@4 d2 ~ d2@6",
  AH: "db2 db1@2 eb1@2 eb1@2 eb1", AI: "c2@2 c2@4 c1@2 c2@3 ~ c1@4", AJ: "bb1@7 ~ bb1@2 bb1@4 g1@2",
  AK: "d2@5 ~ d2@2 d1@2 d1@2 bb1@2 d2@2", AL: "c2@5 ~ d2@2 c2@4 g1@2 c1@2", AM: "c1@5 ~@9 c1@2",
  AN: "[c1@5 ~@9 c2@4 c1@4 e1@4 g1@6]/2", AO: "db1!3 eb1@2 eb1!2 c3", AP: "[c3,a3]/2", AQ: "f1/3",
})).s("gm_fretless_bass").gain(0.57)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@15 A B A B A@2 B C A B A B A@2 B C D E F B A G H C D E F B A G H I J K L M L M N A B A B A@2 B C A O@2 L A@2 B C D E
  F B A G H C D E F B A G H C D E F B A G H P@2 Q J K L M L M N ~@5
>`.pickRestart({
  A: "[a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  B: "[bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Bb
  C: "[g3,c4,f4]@2 [g3,c4,f4] ~ [g3,c4,f4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~", // Csus4 C
  D: "[b3,d4,g4]@2 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]@2 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]@2 [b3,d4,g4] ~", // G
  E: "[bb3,f4,g4]@2 [bb3,f4,g4] ~ [bb3,f4,g4] ~ [bb3,f4,g4]@2 [bb3,f4,g4] ~ [bb3,f4,g4] ~ [bb3,f4,g4]@2 [bb3,f4,g4] ~", // Gm7
  F: "[c4,e4,g4]@2 [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@2 [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@2 [c4,e4,g4] ~", // C
  G: "[a3,c4,g4]@2 [a3,c4,g4] ~ [a3,c4,g4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // Am7 F
  H: "[bb3,d4,a4]@2 [bb3,d4,a4] ~ [bb3,d4,a4] ~ [bb3,d4,a4]@2 [bb3,d4,a4] ~ [bb3,d4,a4] ~ [bb3,d4,a4]@2 [bb3,d4,a4] ~", // Bbmaj7
  I: "[g3,c4,e4] ~@7", // C
  J: "[ab3,c4,eb4]@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~", // Ab Bb
  K: "[c4,eb4,f4]@2 [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4]@2 [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4]@2 [c4,eb4,f4] ~", // F7
  L: "[ab3,db4,f4]@2 [ab3,db4,f4] ~ [ab3,db4,f4] ~ [bb3,eb4,g4]@2 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]@2 [bb3,eb4,g4] ~", // Db Eb
  M: "[f3,c4,f4]@2 [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4]@2 [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4]@2 [f3,c4,f4] ~", // F5
  N: "[ab3,db4,f4]@2 [ab3,db4,f4] ~ [ab3,db4,f4] ~ [bb3,eb4,g4]@2 ~@6 [f3,c4,f4] ~", // Db Eb F5
  O: "[bb3,c4,f4]@2 [bb3,c4,f4] ~ [bb3,c4,f4] ~ [bb3,c4,f4]@2 [bb3,c4,f4] ~ [bb3,c4,f4] ~ [bb3,c4,f4]@2 [bb3,c4,f4] ~", // Bbsus2
  P: "[g3,c4,f4]@2 ~@12 [g3,c4,f4] ~", Q: "~@2 [g3,c4,f4] ~@3 [g3,c4,f4] ~@3 [g3,c4,f4] ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.3)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A B@3 C D E D F ~ G@2 H@2 G@2 H@2 I@2 J@2 G@2 H@2 I@2 J@2 ~@8 K@4 L M N ~ O P ~@2 O Q ~ G@2 R@2 I@2 J@2 S@2 T@2 I@2
  J@2 K@4 L M N ~ K@4 L M N ~@5 L M N ~@3 O P ~@2 O Q U V@3 ~@2
>`.pickRestart({
  A: "~@3 c4@4 ~@9", B: "[~@5 eb4@2 d4@4 ~@4 c4@4 eb4@16 ~@13]/3", C: "~@2 eb4 ~@3 c4@2 ~@8", D: "db4@2 ~@4 eb4 ~@9",
  E: "f4 ~@7", F: "c4!2 ~@6", G: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] f3@4 ~@5, ~@7 d4@2 ~@7]/2",
  H: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] [f3,bb3]@2 ~@7]/2", // F5 Bb5
  I: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] [f3,a3]@2 ~@7]/2", // F5 F
  J: "[[g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] [g3,c4]@2 ~@7]/2", // G5 C5
  K: "[d5@24 f5@2 d5@2 f5@2 e5@4 c5@4 g4@16 f4 g4@3 f4@6]/4", L: "c5", M: "~@4 f4 c5@2 f4 c5 f4!2 c5 f4@2 c5 f4",
  N: "f4 c5 f4!2 c5 ~@11", O: "~@12 eb4 ~@2 eb4", P: "~@2 eb4 ~ eb4 ~@2 eb4 ~@2 c4 eb4 ~@2 f4 ~",
  Q: "~@2 eb4 ~ eb4 ~@2 eb4 ~@2 f4@5 ~",
  R: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] [f3,bb3]@2 ~@2 [c4,a4] [d4,bb4]@3 ~]/2", // F5 Bb5 F Gm
  S: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] eb3@4 a4 bb4@2 a4@2, ~@7 eb4@2 ~@7]/2", // F5
  T: "[[f3,d4] ~ [f3,d4] ~ [f3,d4] ~ [f3,d4] [f3,db4]@2 ~@7]/2", U: "f4 g4 ab4 g4@2 f4 eb4@2",
  V: "[~@7 eb4@4 d4@4 eb4@3 ~@6, f4@31 ~@17]/3",
})).s("gm_overdriven_guitar").gain(0.33).pan(0.6)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note(`<
  A@3 ~@2 B C D C E ~@35 F ~ G H ~@2 G H ~@23 F ~@7 F ~@7 F ~@3 G H ~@2 G H ~@3 I@2 ~
>`.pickRestart({
  A: "[~@3 f3@2 c4@2 eb4@2 d4@4 bb3@6 ~@4 eb4@4 c4@4 eb4@4 c4@2 ~@6 bb3@4 ~]/3", B: "~@4 eb4@2 ~@2 c4@2 c4 ~ c4 ~ c4 ~",
  C: "~@2 db4@2 db4 ~@3 eb4@2 eb4 ~ eb4 ~ eb4 ~", D: "~@2 f4@2 f4 ~ f4 ~ f4 ~ f4@5 ~", E: "~@4 c4 ~ c4 ~ c4 ~ c4@5 ~",
  F: "~@5 e4 ~@10", G: "~@13 f3 ~@2", H: "~ f3 ~@4 f3 ~@9", I: "[~@2 d4@2 c4@7 ~@5]/2",
})).s("gm_overdriven_guitar").gain(0.17).pan(0.6)

// other · lead 5 charang
const lead_5_charang = note("<~@47 A ~ B@2 C@2 D ~@9 E@2 F ~@30 A ~ B@2 C@2 G H ~@4>".pickRestart({
  A: "eb5@2 c5@2 eb5 ~ d5@4 bb4@2 f4@4", B: "[f5@2 eb5@2 db5@2 c5@4 bb4@2 c5 db5 c5@8 ~@10]/2",
  C: "[ab4@2 bb4@2 c5@2 bb4@4 ab4@2 g4@2 f4@13 ~@5]/2", D: "f4 g4 ab4 g4 ~@4",
  E: "[~@8 eb5 ~ c5 ~ eb5 ~ d5@4 bb4@2 f4@3 ~@9]/2", F: "f5@2 eb5 ~ db5@2 c5@4 bb4@2 c5 db5 c5@2",
  G: "f4 g4 ab4 g4@2 f4 eb4@2", H: "f4@13 ~@3",
})).s("gm_lead_5_charang").gain(0.45).pan(0.6)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@11 A@19 B A@7 B A@7 C A@6 ~ D@11 B D@4 B@7 E B@7 E B@9 E D@2 B@4 F A@2 ~@3
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "~@2 x ~@2 x!2 ~", C: "~ x ~@2", D: "~ x ~ x", E: "~@4 x ~@5 x!3 ~ x ~", F: "~@2 x ~@2 x!3",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@11 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 C A B A B A B D E@15 F 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 ~@5
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "x!3 ~@5", D: "x!4 ~@3 x", E: "~ x ~ x ~ x ~ x", F: "~ x ~ x ~@4",
})).gain(0.25)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@12 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ B@16 ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@6
>`.pickRestart({
  A: "~@7 x", B: "x!4",
})).gain(0.25)

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@70 [x!4]!26 ~@12>").gain(0.32)

stack(
  piano, piano_soft, string_ensemble_2, string_ensemble_1, bass, acoustic_guitar_steel, overdriven_guitar,
  overdriven_guitar_soft, lead_5_charang, kick, snare, hihat, open_hat, crash, ride_bell
)

More by Ron