Strudelify

You Can Do Magic

America

KeyA majorTempo59 bpm
0:00/0:00
// You Can Do Magic — America
// 59 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 46, 4/4 at bar 47) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 48 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(59/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(`<
  A B C D E F G H I J K L M D E F N H I J K L O D E F N H I J K L O P Q R S D E F N H I J K L T@2
>`.pickRestart({
  A: "~@18 a#2@5 ~", B: "a2@12 a#2@9 ~ a#2@2", C: "b2@10 ~@2 f2@7 ~ b1@2 e1@2", D: "a1@9 ~ g#1@2 f#1@7 ~ f#1@2 a1@2",
  E: "b1@4 f#2 f2 e2@3 a#1@3", F: "a1@7 ~ a1@2 g#1@2 f#1@9 ~ a1@2", G: "b1@4 f#2 f2 f2@4 b1 e2",
  H: "a1@7 ~ a1@2 g#1@2 f#1@9 ~ f#1@2", I: "b1@9 ~ b1@2 e2@7 ~ e2@2 b1@2", J: "a1@8 b1@2 c#2@2 d2@7 ~ e2@2 d2@2",
  K: "a1@7 ~ b1@2 c#2@2 d2@9 ~ e2@2", L: "a1@7 ~ b1@2 c#2@2 d2@7 ~ d2@2 a1@2", M: "d2@7 ~ d2@3 ~ e2@6 a#1@5 ~",
  N: "b1@4 f#2 f2 e2@4 b1 e2", O: "d2@7 ~ e2@2 d2@2 a1@7 ~ a1@2 e1 ~", P: "d2@9 ~ f#2@2 a2@8 f#2@2 d2 ~",
  Q: "a1@8 ~@2 e2@2 a2@7 ~ a1 ~ a1 ~", R: "b1@7 ~ d#2@2 f#2@2 b1@8 b2@2 b1@2", S: "e2@7 ~ b1@2 e2@2 e1@6 a#1@5 ~",
  T: "[d2@15 ~@2 a1@24 ~@7]/2",
})).s("gm_acoustic_bass").gain(0.64)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  A B ~@2 A B ~@3 C D E F B A B ~@3 C D E ~@2 G H ~@3 C D E ~@4 A B G H ~@3 C D E I@2
>`.pickRestart({
  A: "~@3 [c#4,g#4,c#5]", B: "[e3,c#4,e4]@11 ~@13", C: "~@9 [d4,f#4,a4] [a4,c#5] [b4,d5], ~@20 d4 ~ d4 ~",
  D: "[e4,a4,c#5]@3 ~@6 [d4,f#4,a4] [a4,c#5] [b4,d5], ~@20 d4 ~ d4 ~", E: "[e4,c#5] ~@3, a4 ~@5",
  F: "[d4,f#4,b4]@2 [e4,g#4,c#5] [c#4,g#4,c#5]", G: "~@3 [g#4,c#5]", H: "[c#4,e4]@11 ~@13",
  I: "[[d4,f#4,b4]@16 ~ [c#4,e4,a4]@23 ~@8]/2", // Bm A
})).s("gm_brass_section").gain(0.52)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  A B C D E F G H I J K L M D E F G H I J K N@2 D O F P H Q J K N@2 R S T U D E F G H I J K V@3
>`.pickRestart({
  A: "~@3 [a#3,d4,f4]", B: "~@10 e4@2 c#4@7 ~@3 e4@2, a2 ~, a4@3 e4 a4@2 a#4@6, e4@2 c#4@4 e4@5 ~, c#4 e3@5 ~@4 c#4@2",
  C: "~@8 [b3,d4,f#4]@4 [b3,d4,f4]@11 ~, [b3,d4,f#4] ~@2, ~ b2@2 ~@3", // Bm Bdim Bm
  D: "a3 ~@2 c#4@3 [a3,c#4,f#4]@4 [a3,c#4,f#4]@2, [a2,e4] f#2, c#4 ~@3, ~ e3@5 ~@6, ~ a3@2 ~@3", // F#m A5
  E: "d4@8 d4@2 b3 ~@13, [b2,b3,f#4]@11 ~@13", F: "~@5 a3 ~@5 c#4, [a2,c#4,e4] ~, a3@5 ~ c#4@5 ~, ~@7 e3@5 ~@8 a3@4",
  G: "~@6 f#4@5 ~@13, [b3,d4]@11 ~@13", H: "a3@4 ~ c#4 ~@4 f#4@2, a2 ~, c#4@5 ~@7, ~@2 a3 [f#3,c#4]@3",
  I: "[b3,d4,f#4]@11 ~@13", J: "[a3,c#4]@4 [a3,c#4]@2 [a3,f#4]@4 ~ d4, a2@6 d4@5 ~, ~@5 [a3,f#4]",
  K: "[a3,c#4,e4]@8 [a3,c#4,e4]@2 a3 ~ [a3,d4,f#4]@8 [a3,d4,f#4]@4, a2@11 ~ d3@12", // A D
  L: "[a3,c#4,e4]@8 [a3,c#4,e4]@2 a3 ~ [d3,a3,d4,f#4]@12, a2@11 ~@13", M: "[d3,a3,d4,f#4]@5 ~@7",
  N: "[a3@6 ~@4 a3@2 a3@8 ~@4 [d4,f#4]@8 [a3,d4,f#4]@4 c#4@7 ~ b3@2 c#4@2, [a2,e4]@12 ~@8 d3@16 [a2,a3,e4]@11 ~, c#4@8 c#4@4 [d4,f#4]@11 ~@25, ~@3 a3@2 ~@6 a3@5 ~@8]/2", // D A5 D
  O: "d4@8 d4@2 b3 ~ [b3,d4,f4]@6 ~@6, [b2,b3,f#4]@11 ~@13", // Bdim B5
  P: "~@6 f#4@5 ~ [b3,d4]@6 ~@4 [b3,d4,f4]@2, [b3,d4]@11 ~@13", Q: "[b3,d4,f#4]@11 ~ [b3,d4]@7 ~@5",
  R: "~@5 f#4 ~@4 [e4,a4]@2, [d3,d4] [d3,d4,f#4], f#4@5 ~@7, ~@5 a3@7 ~@4 a3@8, ~@2 a4 ~@3", // A5 D
  S: "e4@4 e4 [b3,e4] a3@3 ~@2 a3, [a3,c#4] e4, ~@3 c#4@2 c#4, ~@9 a3@2 ~", // E5 A
  T: "~@5 b3 ~@5 b3, [d#4,f#4]@2 f#4!2, b3@5 ~@2 d#4@3 d#4@2, ~@4 b2@2 ~@2 b3@3 ~", // D#m
  U: "[b3,e4,g#4]@4 [b3,e4,g#4]@2 [b3,e4,g#4]@3 ~@3", // E
  V: "[a3@6 ~@4 a3@2 a3@8 ~@4 [d4,f#4]@17 [a2,a3,e4]@11 ~@20, [a2,e4]@12 ~@8 d3@21 ~@31, c#4@8 c#4@4 [d4,f#4]@11 ~@18 c#4@7 ~@24, ~@6 a3@4 ~@12 a3@19 ~@31]/3", // D A5 D
})).s("gm_epiano2").gain(0.54)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  A B C D E D F D F G@2 H ~ D E D F D F G@2 H I J K L M L N@2 O P@2 Q R S T D E D F D F G@2 H U@2
>`.pickRestart({
  A: "~@3 [a#4,d5,f5]", B: "[a3,a4,a5] [a#3,a#4,a#5], [c#5,e5]@23 ~",
  C: "[b3,b4,f#5]@11 ~ [f5,g#5]@10 e4@2, [d5,b5]@23 ~, ~@12 [f3,f4]@8 ~@2 e3 ~", // B5 Fm G F
  D: "[a4,c#5,e5]@11 ~ [a4,c#5,f#5]@11 ~", E: "[b4,d5,f#5]@12 [b4,d5,f5]@5 ~ [a#4,d5,f5]@5 ~",
  F: "[b4,d5,f#5]@12 [d5,f5,g#5,b5]@11 ~", G: "[a4,c#5,e5]@11 ~ [a4,d5,f#5]@11 ~", H: "[a4,c#5,e5]@11 ~ [a4,d5,f#5]@12",
  I: "[a4,d5,f#5]@12 [a3,a4,c#5,e5]@11 ~", // D A
  J: "[a4,a5]@8 [b4,b5] ~ [c#5,c#6]@2 [b4,b5]@4 [a4,a5]@4 [f#4,f#5]@2 [a4,a5]@2", // A B C# B A F# A
  K: "[b4,b5]@9 ~ [a4,a5]@2 [g#4,g#5]@6 ~@6", // B A G#
  L: "[a4,a5]@8 [b4,b5] ~ [c#5,c#6]@2 [f#5,f#6]@4 [e5,e6]@4 [c#5,c#6]@2 [a4,a5]@2", // A B C# F# E C# A
  M: "[b4,b5]@5 [c#5,c#6] [e4,e5]@5 ~", // B C# E
  N: "[[b4,b5]@10 [c#5,c#6]@2 [e4,e5]@8 [f3,g3,a3,b3,c4,f4,g4,a4,b4,c5] [d4,f4,d5,f5] [g4,a4,b4,c5,g5,a5,b5,c6] [d5,e5,f5,g5,d6,e6,f6,g6] [e5,a5,c#6,e6,a6,c#7]@12 [f#5,a5,d6,f#6,a6,d7]@12, ~@7 e4@3 ~@6, ~@21 e5@2 ~ [f5,f6] ~@11 [a#5,a#6] ~@11]/2", // B C# E F Dm Cmaj7 Em7 A …
  O: "[e5,a5,c#6,e6,a6,c#7]@11 ~ [f#5,a5,d6,f#6,a6,d7]@11 ~, [g#5,g#6] ~@23", // A D G#
  P: "[[e5,a5,c#6,e6,a6,c#7]@11 ~ [f#5,a5,d6,f#6,a6,d7]@23 ~ [a5,a6]@5 ~ [g5,g6]@5 ~, [g#5,g#6] ~@11 [a#5,a#6] ~@23 [e5,c#6,e6,c#7]@11 ~]/2", // A D A G G# A# C#m
  Q: "[d5,f#5,a5]", R: "[c#5,e5,a5]@23 ~", S: "[b4,d#5,f#5]@23 ~", T: "[b4,e5,g#5]@17 ~@7",
  U: "[[a4,d5,f#5]@17 [a3,a4,c#5,e5]@11 ~@20]/2", // D A
})).s("gm_rock_organ").gain(0.48)

// drums · kick
const kick = s("bd").struct("<~ [x ~@4 x!2 ~@5]!45 [x ~@16 x ~@6] ~>").gain(0.75)

// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!45 ~@2>").gain(0.6)

// drums · hihat
const hihat = s("hh").struct("<~ [x!12]!45 ~@2>").gain(0.23)

// drums · ride
const ride = s("rd").struct("<~@46 [x ~@16 x ~@6] ~>").gain(0.75)

stack(bass, brass_section, epiano2, rock_organ, kick, rim, hihat, ride)

More by America