Strudelify

Grandpa's Spells

Morton Jelly Roll

KeyC majorTempo210 bpm
0:00/0:00
// Grandpa's Spells — Morton Jelly Roll
// 210 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(210/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 C D E F G H I@2 J K L M N O P@2 Q R E F S T I@2 J K L U N O V@2 Q W X Y Z@2 AA AB@2 AC AD AE AF AG AH AI AJ AK AL
  AE AM AN@2 AB@2 AC X Y AM Z AO AI AJ AP AQ AR AS AT AU@3 AV AW AX N O AY@3 AZ BA BB BC BD BE BF BG@2 BH BI BC BI BE
  BJ@2 BK BL BM BN BO BP BQ BR BS BT BU BV BW BE BX@2 BY A B C BZ CA CB CC CD CE CF CG CH CI CJ@2 CK CL@2 CM CN CO CP CQ
  CR
>`.pickRestart({
  A: "[b3,g4,b4,e5,g5]@3 ~ [c4,a4,c5,f5,a5]@3 ~ [d4,b4,d5,g5,b5]@3 ~ [g3,e4,c5,e5,a5,c6]@3 ~", // Em F G Am7
  B: "[a3,f4,d5,f5,b5,d6]@3 ~ [b3,g4,e5,g5,c6,e6]@3 ~ [c4,a4,f5,a5,d6,f6]@3 ~ [c#4,a#4,f#5,a#5,c#6,f#6]@3 ~", // Bm7b5 Cmaj7 Dm7 F#
  C: "[d4,g4,b4,g5,b5,d6,g6]@3 ~@3 [c6,d6] e6 [c4,a4,f6]@3 ~ [c#4,a#4,g5,e6]@2 ~@2", // G Csus2 F C#dim
  D: "[d4,b4,g5,f6]@3 ~@5 [g5,g6]@3 ~@3 e5@2", // G7 G
  E: "[g4,c5,g5]@2 e5@2 a4@2 g5@2 [b4,b5] ~ [c5,e5,c6]@3 ~ g5@2, ~@4 a5 ~@11", // C5 B C
  F: "[b4,e5]@2 g5@2 [c5,e5,g5,c6] ~ [b4,e5,b5]@3 ~ [b4,b5] ~ [c5,g5,c6]@3 ~, b5 ~@15", // E5 C E5 B C5
  G: "[c#5,a5,c#6]@3 ~ [d5,a5,d6]@3 ~ [c#5,f#5,c#6] ~ [d5,f#5,d6]@3 ~ a5@2", // F#m D5 F#5 D
  H: "[c#5,f#5,c#6] ~ a5 ~ [d5,d6] ~ [e5,c6,e6]@3 ~ [d5,c6,d6]@3 ~ a5 ~, ~@2 c6 ~@5", // F#5 D C D7
  I: "[[c5,c6] ~ g5@2 [b4,b5] ~ g5 ~ [a#4,g5,a#5] ~ [b4,g5,b5]@3 ~ [b4,e5]@10 ~@2 [g4,b4,d5]@3 ~ [g4,e5] ~]/2", // C B D# Em E5 G C
  J: "d5 ~ c5 ~ b4 ~ c5 ~ d5 ~ e5 ~ b5 ~ a5 ~", K: "g#5 ~ a5 ~ f5 ~ b4 ~ e5 ~ d5 ~ b4 ~ a4 ~",
  L: "g4@2 [g4,g5] ~ [a4,a5]@2 ~@2 [b4,b5]@3 ~ [c5,e5,c6]@3 ~", M: "~@2 g5 [a5,b5] c6 ~ g5 ~ [c5,a5] ~ g5 ~ e5 ~ c5 ~",
  N: "~@2 [c#5,c6,c#6] ~ [d5,c6,d6]@3 ~ [c#5,f#5,c6,c#6]@3 ~ [d5,f#5,c6,d6]@2 ~@2", // C#maj7 D7 F# D7
  O: "[c#5,f#5,c6,c#6] ~ [d5,f#5,c6,d6]@3 ~ [e5,a5,d6,e6]@3 ~ [d5,c6,d6] ~ a5 ~ f5 ~", // F# D7 Dsus2 D7
  P: "[[c5,a5,c6]@3 ~ [b4,g5,b5]@3 ~ [a#4,a#5] ~ [b4,f5,b5]@3 ~ [b4,e5]@10 ~@2 [g4,b4,d5]@3 ~ [g4,e5] ~]/2", // F Em A# Bdim E5 G C
  Q: "c5 ~ d5 ~ e5 ~ [f4,b4,f5] ~@3 [g4,g5] ~ [a4,a5] ~ [b4,b5] ~", // Fdim G A B
  R: "[c5,e5,c6]@3 ~ [g4,a#4,e5]@3 ~ [g4,b4,f5]@4 ~@2 e5@2", // C Edim G7
  S: "[c#5,a5,c#6]@3 ~ [d5,a5,d6]@3 ~ [c#5,f#5,c6,c#6] ~ [d5,f#5,c6,d6]@3 ~ g#5 [a5,b5]", // F#m D5 F# D7 Asus2
  T: "[c#5,f#5,c6,c#6]@3 ~ [d5,d6] ~ [e5,c6,e6]@3 ~ [d5,c6,d6]@3 ~ a5 ~, ~@2 c6 ~@5", // F# D C D7
  U: "a5 ~ g5 [a5,b5] c6 ~ g5 ~ [c5,a5] ~ g5 ~ e5 ~ c5 ~, ~ a5@2 ~@13", // Asus2 F
  V: "[[c5,a5,c6]@2 g5 ~ [b4,g5,b5]@3 ~ [a#4,g5,a#5] ~ [b4,f5,b5]@3 ~ [b4,e5]@10 ~@2 [g4,b4,d5]@3 ~ g4@2, ~@30 e5 ~]/2", // F Em D# Bdim E5 G
  W: "[c5,e5,c6]@11 ~@5", X: "~@4 [e5,c6,e6] ~ [e5,c6,e6]@3 ~ [e5,c6,e6] ~ [d5,c6,d6]@3 ~",
  Y: "~@4 [e5,b5,e6] ~ [e5,b5,e6]@3 ~ [e5,b5,e6] ~ [d5,b5,d6]@3 ~", // E5 G
  Z: "~@4 [d5,b5,d6] ~ [d5,b5,d6]@3 ~ [d5,b5,d6] ~ [c5,a5,c6]@3 ~", AA: "[c5,a5,c6] ~ [b4,b5]@3 ~ [g4,b4,f5]@8 ~@2",
  AB: "[~@6 [b4,g5]@3 ~ [b4,g5]@3 ~@3 [c5,g5]@3 ~ [e4,c5,e5]@2 [f4,d5,f5] ~ [g4,e5,g5]@2 [a4,f5,a5] ~ [b4,g5,b5]@2 [c5,a5,c6] ~, ~@4 g4@5 ~@5 g4@5 ~@13]/2", // Em C5 C Dm C Dm Em F
  AC: "[d5,b5,d6]@2 [e5,c6,e6] ~ [f5,d6,f6]@2 [g5,e6,g6] ~ [a5,f6,a6]@2 [b5,g6,b6] ~ [c6,a6,c7]@2 [d6,b6,d7] ~", // G C Dm C Dm Em F G
  AD: "[e6,c7,e7]@3 ~ [e5,c6,e6]@2 ~@2 [e5,c6,e6]@3 ~ [d5,a5,d6]@3 ~", // C D5
  AE: "~@4 [e5,b5,e6] ~ [d#5,b5,d#6] ~ [e5,b5,e6]@2 [d5,b5,d6]@3 ~@3", // E5 G#m E5 G
  AF: "~@4 [d5,a5,d6] ~ [c#5,a5,c#6] ~ [d5,a5,d6]@2 [c5,a5,c6]@3 ~@3", // D5 F#m D5 F
  AG: "~@4 [b4,g5,b5] ~ [a#4,a#5] ~ [b4,b5]@2 [a4,e5,a5]@3 ~ e5 ~", AH: "[a4,g5]@3 ~ [a4,f5]@3 ~ [e5,c6,e6]@5 ~@3",
  AI: "~@2 d6 ~ c6 ~ b5 ~ d6 ~ c6 ~ a5 ~ e5 ~, ~ e5@2 ~ e5@2 ~@2",
  AJ: "~@2 [c5,e5] ~ [c5,d5]@3 ~ [b4,a5]@3 ~ c6 ~ g5 [a5,b5]", AK: "c6@2 g5 ~ a5@2 e5 ~ g5@2 [c5,a5]@3 ~@3, ~ c5 ~@2",
  AL: "~@4 [e5,c6,e6] ~ [d#5,c6,d#6] ~ [e5,c6,e6]@2 [d5,f#5,c6,d6]@3 ~@3", // C Cm C D7
  AM: "~@4 [d5,a5,d6] ~ [d5,a5,d6]@3 ~ [d5,a5,d6] ~ [c5,a5,c6]@3 ~", // D5 F
  AN: "[~@4 [d5,b5,d6] ~ [d5,b5,d6] ~ [d5,b5,d6]@2 [c5,a5,c6]@3 ~@3 [c5,c6] ~ [b4,f5,b5]@3 ~ [g4,b4,f5]@8 ~@2, ~@7 a5@2 ~@7]/2", // G F C Bdim G7
  AO: "[a4,c5,e5,g5]@3 ~ [a4,f5]@3 ~ [e5,c6,e6]@5 ~@3", AP: "[c5,e5,c6]@3 ~ g4@2 e5 [f5,g5] a5 ~ [c5,e5,c6]@3 ~ g5 ~",
  AQ: "[e5,a5]@2 ~@2 [g4,g5] ~ [a4,a5] ~ [b4,b5]@3 ~ [c5,e5,c6]@2 ~@2", // A5 G A B C
  AR: "[b4,e5,b5]@2 [c5,e5,c6]@3 ~ [c5,c6] ~ [b4,e5,b5]@3 ~ [c5,g5,c6]@3 ~", // E5 C E5 C5
  AS: "[c#5,a5,c#6]@3 ~ [d5,f#5,d6]@3 ~ [c#5,f#5,c#6] ~ [d5,f#5,d6]@3 ~ g#5 [a5,b5]", // F#m D F#5 D Asus2
  AT: "[c#5,f#5,c#6]@2 a5 ~ [d5,d6] ~ [e5,c6,e6]@3 ~ [d5,c6,d6]@3 ~ a5 ~, ~@2 a5 ~@5", // F#5 D C D7
  AU: "[[c5,a5,c6]@3 ~ [b4,g5,b5]@2 ~@2 [a#4,g5,a#5] ~ [b4,g5,b5]@3 ~ [b4,e5]@10 ~@2 [g4,b4,d5]@3 ~ e5 ~ d5 ~ c5 ~ b4 ~ c5 ~ d5 ~ e5 ~ b5 ~ a5 ~, ~@30 g4@5 ~@13]/3", // F Em D# Em E5 G
  AV: "g#5 ~ a5 ~ [b4,f5] ~ b4 ~ g4@2 d5 ~ b4 ~ a4 ~, ~@8 e5 ~@7", // Bdim
  AW: "~@2 [g4,g5] ~ [a4,a5]@2 ~@2 [b4,e5,b5]@3 ~ [c5,e5,c6]@3 ~", AX: "c6@2 g5 [a5,b5] c6 ~ g5 ~ a5 ~ g5 ~ e5 ~ c5 ~",
  AY: "[[c5,a5,c6]@3 ~ [b4,g5,b5]@2 ~@2 [a#4,a#5] ~ [b4,f5,b5]@3 ~ [b4,e5]@10 ~@2 [g4,b4,d5]@3 ~ [b4,e5] ~ c5 ~ d5 ~ e5 ~ [f4,b4]@3 ~ [g4,g5] ~ [a4,a5] ~ [b4,b5] ~, ~@30 g4@5 ~@13]/3", // F Em A# Bdim E5 G E5 Fdim …
  AZ: "[c5,e5,c6]@7 ~ [c5,e5,c6]@4 ~@2 f5 [g5,g#5]", BA: "a5 ~ [d5,a5,d6]@2 ~@12",
  BB: "[d5,a#5,d6]@3 ~@3 g5 ~ [c5,a5] ~ g5 ~ f5 ~ e5 ~", BC: "f5 ~ [f5,d6]@2 ~@12",
  BD: "[d5,a#5,d6]@3 ~@3 e5 ~ [c5,a5] ~ g5 ~ f5 ~ e5 ~", BE: "g5 ~ f5 ~ d#5 ~ b4 ~ d5 ~ c5 ~ a4 ~ f4 ~",
  BF: "a#4 ~ [f4,c5] ~ c5@2 a4 ~ a#4 ~ c5 ~ [a#4,d5] ~ [a#4,b4,g5] ~, ~@4 g4 ~@11", // F5 A# D#
  BG: "[~@2 [b4,d5] ~ [a#4,e5] ~ [b4,d5] ~ b4@2 d5 ~ b4 ~@3 d5 ~ c5 ~ a#4 ~ f4 ~ a4 ~ g4 ~ e4@3 ~, ~@8 e5 ~@5 g4@5 ~@13]/2", // Bm A#dim Bm
  BH: "[d5,a5] ~ [d5,a5,d6]@2 ~@12", BI: "[d5,a#5,d6]@3 ~@3 e5 ~ [c5,a5] ~ g5 ~ e5@3 ~",
  BJ: "[a#4 ~ [f4,c5] ~ c5@2 a4 ~ a#4 ~ c5 ~ [a#4,d5] ~ [f4,b4,f5]@8 ~@2 [g4,a#4,g5]@6 ~@2, ~@4 g4 ~@27]/2", // F5 A# Fdim Gm
  BK: "[f4,a4,f5] ~ [f4,b4,e5]@2 ~@2 c5 ~ [e4,a#4,d5]@3 ~ [e4,a#4,c5]@2 ~@2", BL: "a5 ~ [a5,d6]@2 ~@12, d5@5 ~@11",
  BM: "[d5,a#5,d6]@3 ~@3 g5 ~ [c5,a5] ~ g5 ~ [a#4,e5]@2 ~@2", BN: "[f5,a5] ~ [f5,a5,d6]@2 ~@12",
  BO: "[d5,a#5,d6]@3 ~@3 g5 ~ [c5,a5] ~ g5 ~ [a#4,f5] ~ e5 ~", BP: "g5 ~ f5 ~ d#5 ~ b4 ~ d5 ~ c5 ~ a4 ~ [f4,d5] ~",
  BQ: "[f4,a#4] ~ [g4,c5] ~ c5@2 a#4 ~ c5 ~ [b4,f5]@3 ~ [b4,f5]@2, ~@4 a4 ~@11", // A#5 C5 Bdim
  BR: "~@2 d5 ~ e5 ~ c#5 ~ e5 ~ d5 ~ b4 ~ g4 ~", BS: "d5 ~ c5 ~ a#4 ~ f4 ~ a4 ~ g4 ~ e4@3 ~", BT: "[d5,a5,d6] ~@3",
  BU: "[d5,a#5,d6]@3 ~@3 e5 ~ a5 ~ g5@3 ~@3, ~@8 c5@5 ~@3", BV: "f5 [c6,d6,e6] [f5,f6]@2 ~@12",
  BW: "[d5,a#5,d6]@3 ~@3 e5 ~ [c5,a5] ~ g5 ~ e5 ~ c5 ~", // Gm F
  BX: "[a#4 ~ f4 ~ g4 ~ a4 ~ a4 ~ a#4 ~ c5 ~ [f4,b4,f5]@8 ~@2 [g4,a#4,g5]@5 ~ [f4,a4,f5]@2]/2", // Fdim Gm F
  BY: "~@2 [f4,b4,e5]@3 ~ c5 ~ [f4,a4,f5]@3 ~@5", BZ: "[d4,b4,g5,f6]@3 ~@7 [a5,e6,a6]@3 ~ [g#5,e6,g#6] ~",
  CA: "[a5,e6,a6]@3 ~ [g#5,e6,g#6]@2 ~@2 [a5,e6,a6]@3 ~@3 [g#5,g#6] ~", // A5 C#m A5 G#
  CB: "[a5,a6] ~ [a5,e6,a6] ~ [g#5,e6,g#6] ~ [a5,e6,a6]@3 ~ [a5,e6,g6,a6]@3 ~ [c6,f#6] ~", // A A5 C#m A5 A7 Cdim
  CC: "[c6,f#6]@3 ~ [f5,c6,f6]@2 ~@2 [f#5,c6,f#6]@3 ~ [f5,c6,f6] ~ [f#5,c6,f#6]@2", // Cdim F5 F#dim F5 F#dim
  CD: "~@2 [c#5,c#6] ~ [d5,d6]@3 ~ [e5,e6]@3 ~ [d5,f#5,d6]@2 ~@2", // C# D E D
  CE: "~@2 [c5,a5,c6]@3 ~ [b4,b5] ~ [a#4,g5,a#5] ~ [a#4,g5,a#5] ~ [b4,g5,b5]@3 ~", // F B D# Em
  CF: "[b4,e5]@8 ~@2 [e5,e6]@3 ~ [d#5,d#6] ~", CG: "[e5,e6]@3 ~ [d#5,d#6] d6 [e5,e6]@3 ~ [c5,e5,c6] ~ [b4,b5]@3 ~",
  CH: "[a#4,f#5,a#5] ~ [b4,g5,b5]@3 ~ [g4,g5] ~ [a4,a5]@3 ~ [d#5,d#6] ~ [e5,e6]@2", // D#m Em G A D# E
  CI: "~@2 [g4,g5] ~ [a4,a5]@2 ~@2 [d#5,d#6]@3 ~ [e5,e6]@2 ~@2", // G A D# E
  CJ: "[[d#5,d#6] ~ [e5,e6]@3 ~ [a4,b5] ~ [b4,c6]@3 ~ [c5,c6] ~ [c5,f#5,c6]@4 [c5,f#5,c6]@3 ~ [a4,a5] ~ [c5,g5,c6]@3 ~ [c5,f#5,c6]@2 ~@2]/2", // D# E Asus2 Cmaj7 C Cdim A C5 …
  CK: "[a4,a5] ~ [c5,f#5,c6]@3 ~ [a4,a5] ~ [c5,c6]@3 ~ c6 ~ g5 [a5,b5]", // A Cdim A C Asus2
  CL: "[c6 ~ b4@2 ~@2 g5 [a5,b5] c6 ~ b4@2 ~@2 [b4,a5]@10 ~@2 g5 [a5,b5] c6 ~ g5 ~]/2", // Asus2 B7 Asus2
  CM: "[c5,e5,c6]@3 ~ [e5,a5] ~ e5 ~ g5 ~ [a4,e5,a5]@3 ~ g5 ~, ~@2 a4 ~@5", // C A5
  CN: "[a4,e5]@2 a5 ~ g5@2 ~@2 [c5,e5,c6]@3 ~ a5@2 c5 [d#5,f#5], a5 ~@15", // A5 C D#m
  CO: "a5 ~@3 d#5 ~ f#5 ~ [c5,a5] ~@3 d#5 ~ f#5 ~, ~ c5@2 ~@2 c5@2 ~", CP: "[c5,a5]@3 ~ [c5,a5]@6 ~@2 [c5,a5]@2 ~@2",
  CQ: "[c5,a5]@9 ~@3 [b4,g5]@2 ~@2", CR: "[c5,g5,c6]@9 ~@7",
})).s("gm_piano").gain(0.36).pan(0.7)

// chords · piano
const piano_2 = note(`<
  A ~@2 B@2 C D E F G H I J K L M N G O P Q R S E F G H T J K L M N G O U V W X Y Z N AA AB AC AD AE AF AG AH AI AJ AC
  AD AK AL AM N AA AB V W AN AO AG AH AI AP AQ K S E F G H AR J K L M N G O AS AT AU AV AW AX AY AZ BA AV AU AV AW AX AY
  BB BC AT BD BE BF AX AY AZ BA AV BD BE AW AX AY BB BG A ~@2 BH AQ BI D E BJ G BK T BL K BM M BN BO K BP BQ@2 BR BS
>`.pickRestart({
  A: "[d3,b3,d4]@3 ~ [e3,c4,e4]@3 ~ [f3,d4,f4]@3 ~ [g3,e4,g4]@3 ~", // G C Dm C
  B: "[~@8 [g2,d3,f3,b3]@3 ~@5 [g2,c3,e3]@3 ~ [g3,c4,e4]@2 ~@2 [g1,g2,g3]@3 ~ [g3,c4,e4]@2 ~@2, ~@14 c2@5 ~@13]/2", // G7 C G C
  C: "[c2,c3]@3 ~ [g3,c4,e4]@2 ~@2 [a2,a3]@3 ~ [g2,g3]@2 ~@2", // C A G
  D: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [d2,d3]@3 ~ [d3,f#3,a3,c4]@2 ~@2", // F# D7 D D7
  E: "[a2,a3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [c3,e3,a3]@3 ~ [c#3,f#3,a#3]@2 ~@2", // A D7 Am F#
  F: "[d3,b3]@3 ~ [f3,g3,b3,d4]@2 ~@2 [g2,g3]@3 ~ [g3,b3,d4,f4]@3 ~", // G G7 G G7
  G: "[f#3,f#4]@3 ~ [a3,d4,f#4]@2 ~@2 [f3,f4]@3 ~ [g3,b3,d4,f4]@2 ~@2", // F# D F G7
  H: "[e3,e4]@3 ~ [g3,c4,e4]@2 ~@2 [d#3,d#4]@3 ~ [f#3,a3,c4,d#4]@2 ~@2", // E C D# F#dim
  I: "[d3,d4]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g2,d3,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // D G7 G5 G7
  J: "[c3,g3,c4]@3 ~ [g3,c4,e4]@2 ~@2 [g2,g3]@3 ~ [g3,c4,e4]@2 ~@2", // C5 C G C
  K: "[c3,e3,g3,c4]@3 ~ [b2,d3,f3,b3]@2 ~@2 [a2,c3,e3,a3]@3 ~ [g2,b2,d3,g3]@2 ~@2", // C Bdim Am G
  L: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [d2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2", // F# D7 D D7
  M: "[a2,a3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [c3,a3]@3 ~ [c#3,a#3]@2 ~@2", // A D7 F F#
  N: "[d3,b3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g2,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // G G7 G G7
  O: "[e3,e4]@3 ~ [g3,c4,e4]@2 ~@2 [d3,d4]@3 ~ [g3,b3,d4,f4]@2 ~@2", // E C D G7
  P: "[c3,c4]@3 ~ [c#3,c#4]@2 ~@2 [d3,d4]@3 ~ [d#3,d#4]@2 ~@2", // C C# D D#
  Q: "[c3,e3,c4]@3 ~ [g3,c4,e4]@2 ~@2 [g2,g3]@3 ~ [g3,c4,e4]@2 ~@2", // C G C
  R: "[c3,e3,g3,c4]@3 ~ [b2,d3,f3,g3,b3]@2 ~@2 [a2,c3,e3,a3]@3 ~ [g2,b2,d3,g3]@2 ~@2", // C G7 Am G
  S: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [d2,d3,f#3]@4 [d3,f#3,a3,c4]@2 ~@2", // F# D7 D D7
  T: "[d3,a3,d4]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g2,d3,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // D5 G7 G5 G7
  U: "[c3,c4]@3 ~ [b2,b3] ~ [a2,a3]@3 ~ [a2,a3] ~ [g2,g3]@3 ~", // C B A G
  V: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [d3,f#3,a3,c4]@3 ~ [g2,g3] ~ [f#2,f#3] ~", // F# D7 G F#
  W: "[f2,f3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g3,b3,d4,f4]@3 ~ [g2,g3]@2 [g2,f3] ~", // F G7 G G7
  X: "[g2,c3,e3]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [f2,f3]@2 [e2,e3] ~", // C F E
  Y: "[d#2,d#3]@3 ~ [c4,d#4,f#4]@2 ~@2 [c4,d#4,f#4]@3 ~ [d#2,d#3]@3 ~", // D# Cdim D#
  Z: "[d2,d3]@3 ~ [g3,b3,d4,f4]@2 ~@2 g2@3 ~ [g3,b3,d4,f4]@2 ~@2", AA: "[e3,e4]@3 ~@13", AB: "~@12 [g2,g3]@3 ~",
  AC: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [d3,f#3,a3,c4]@3 ~ [f#2,f#3]@2 ~@2", // F# D7 F#
  AD: "[f2,f3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g3,b3,d4,f4]@3 ~ [f2,f3]@2 ~@2", // F G7 F
  AE: "[e2,e3]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [d2,d3]@2 ~@2", // E C D
  AF: "[c#2,c#3]@3 ~ [a3,c#4,e4,g4]@2 ~@2 a2@3 ~ [a3,c#4,e4,g4]@2 ~@2", // C# A7
  AG: "d2@3 ~ [f3,a3,d4]@2 ~@2 [g#2,g#3]@3 ~ [e3,g#3,b3,d4]@2 ~@2", // Dm G# E7
  AH: "[a2,a3]@3 ~ [a3,c4,e4]@2 ~@2 [a2,a3]@3 ~ [g2,g3]@2 ~@2", // A Am A G
  AI: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@2 ~@2 [g2,g3]@3 ~ [e3,g3,b3,d4]@2 ~@2", // F# D7 G Em7
  AJ: "[g3,e4]@3 ~ [g3,c4,e4]@2 ~@2 [a2,a3]@3 ~ [g2,g3]@3 ~", // C A G
  AK: "[e2,e3]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [g2,e3]@2 ~@2", // E C
  AL: "[f#2,d#3]@3 ~ [d#4,f#4,a4]@2 ~@2 [d#4,f#4,a4]@3 ~ [f#2,d#3]@3 ~", // D#m D#dim D#m
  AM: "[f2,d3]@3 ~ [g3,b3,d4,f4]@2 ~@2 g2@3 ~ [g3,b3,d4,f4]@2 ~@2", // Dm G7
  AN: "[g2,c3,e3]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~ [g2,e3]@2 ~@2", // C
  AO: "[d#2,d#3]@3 ~ [c4,d#4,f#4]@2 ~@2 [c4,d#4,f#4]@3 ~ d#3@2 ~@2", // D# Cdim
  AP: "[c3,c4]@3 ~ [g3,c4,e4]@3 ~ [g2,g3]@3 ~ [g3,c4,e4]@3 ~", // C G C
  AQ: "[c3,c4]@3 ~ [g3,c4,e4]@2 ~@2 [g2,g3]@3 ~ [g3,c4,e4]@2 ~@2", // C G C
  AR: "[d3,a3,d4]@3 ~ [g3,b3,d4]@2 ~@2 [g2,d3,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", AS: "[c3,c4]@3 ~ g3@4 [c3,e4]@3 ~@5",
  AT: "[f2,c3]@3 ~@5 [c2,d2,e2,f2,g2]@4 ~@4", AU: "[g3,a#3,c4,e4]@3 ~ [c3,g3]@2 ~@2 [g3,a#3,c4,e4]@3 ~ [c3,a#3]@2 ~@2",
  AV: "[c3,a3]@3 ~@5 [c2,d2,e2,f2,g2]@4 ~@4", AW: "[g3,a#3,c4,e4]@3 ~ [g2,g3]@2 ~@2 [g3,a#3,c4,e4]@3 ~ [a#2,a#3]@2 ~@2",
  AX: "[a2,a3]@3 ~ [f3,a3,c4,d#4]@2 ~@2 [d#3,d#4]@3 ~ [f3,a3,c4,d#4]@2 ~@2", // A F7 D# F7
  AY: "[d3,d4]@3 ~ [f3,a#3,d4]@3 ~ [c3,c4]@3 ~ [a#2,a#3]@2 ~@2", // D A# C A#
  AZ: "[b2,b3]@3 ~ [g3,b3,d4,f4]@2 ~@2 g2@3 ~ [g3,b3,d4,f4]@2 ~@2", // B G7
  BA: "[c3,c4]@3 ~ [a#2,a#3]@2 ~@2 [c3,g3]@3 ~ [c3,g#3]@2 ~@2", // C A# C5 Fm
  BB: "[b2,b3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [a#2,a#3]@3 ~ [g3,a#3,c4,e4]@2 ~@2", // B G7 A# C7
  BC: "[a2,a3]@3 ~ [g#2,g#3]@2 ~@2 [g2,g3]@3 ~ [a#2,a#3]@2 ~@2", // A G# G A#
  BD: "[g3,a#3,c4,e4]@3 ~ [c3,g3]@2 ~@2 [g3,a#3,c4,e4]@3 ~ [a#2,a#3]@2 ~@2", BE: "[a2,a3]@3 ~@5 [c2,d2,e2,f2,g2]@4 ~@4",
  BF: "[g3,a#3,c4,e4]@3 ~ [g2,d3,g3]@2 ~@2 [g3,a#3,c4,e4]@3 ~ [a#2,a#3]@2 ~@2", // C7 G5 C7 A#
  BG: "[a2,a3]@3 ~ [g2,g3]@2 ~@2 [f2,f3]@3 ~@5", BH: "~@2 [g2,d3,g3]@3 ~ [g2,g3] ~",
  BI: "[e3,c4]@3 ~ [g3,c4,e4]@2 ~@2 [a2,a3]@3 ~ [g2,g3]@2 ~@2", // C A G
  BJ: "[d3,b3]@3 ~ [f3,g3,b3,d4]@2 ~@2 [g2,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // G G7 G G7
  BK: "[e3,c4]@3 ~ [g3,c4,e4]@2 ~@2 [d#3,d#4]@3 ~ [f#3,a3,c4,d#4]@2 ~@2", // C D# F#dim
  BL: "[c3,e3,g3,c4]@3 ~ [b2,d3,f3,b3]@2 ~@2 [a2,c3,e3,a3]@3 ~ [g2,g3]@2 ~@2", // C Bdim Am G
  BM: "[f#2,f#3]@3 ~ [d3,f#3,a3,c4]@3 ~ d2@3 ~ [d3,f#3,a3,c4]@2 ~@2", // F# D7
  BN: "[d3,b3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g2,d3,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // G G7 G5 G7
  BO: "[a2,e3,a3]@3 ~ [g3,b3,d4,f4]@2 ~@2 [g2,d3,g3]@3 ~ [g3,b3,d4,f4]@2 ~@2", // A5 G7 G5 G7
  BP: "c3@3 ~ g3@2 ~@2 [c3,g3,e4]@3 ~@5, c4@3 ~@5", BQ: "[[a3,d#4,f#4]@19 ~ [a3,d#4,f#4]@6 ~@2 [a3,d#4,f#4]@2 ~@2]/2",
  BR: "e4@9 ~@3 d4@2 ~@2", BS: "[c3,g3,e4]@9 ~@7",
})).s("gm_piano").gain(0.36).pan(0.3)

stack(piano, piano_2)

More by Morton Jelly Roll