Strudelify

amazing grace

Misc Praise Songs

KeyB♭ majorTempo60 bpm
0:00/0:00
// amazing grace — Misc Praise Songs
// 60 bpm, 3/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 1) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5383876; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 104 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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@8 B@8 ~ C@8 D@7 E@2 ~ F G H I J K L M F N O P Q R S T ~ F U V W X Y Z AA F AB AC AD X R AE AF@2 AG@4 AH AI AJ AK
  AL@4 AM AN@2 AO@2 AP@7 AQ@6 AR@5
>`.pickRestart({
  A: "[~@19 [bb2,bb3,d4,f4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [eb2,g3,c4,eb4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [f2,a3,c4,f4]@23 ~ [f2,a3,c4,f4]@5]/8", // Bb Cm Bb F
  B: "[~@19 [bb2,bb3,d4,f4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [eb2,g3,c4,eb4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [bb2,bb3,d4,f4]@23 ~ [f2,a3,c4,f4]@23 ~ [bb2,bb3,d4,f4]@29]/8", // Bb Cm Bb F Bb
  C: "[~@29 [bb2,bb3,c4,d4,f4]@46 ~@2 [bb2,bb3,c4,d4,f4]@46 ~@2 [eb2,f4,g4,bb4,eb5]@46 ~@2 [bb2,bb3,c4,d4,f4]@46 ~@2 [bb2,bb3,c4,d4,f4]@46 ~@2 [d2,bb3,c4,d4,f4]@46 ~@2 [f2,g4,bb4,eb5]@46 ~@2 [a2,a4,c5,g5]@19]/8", // Bb Eb Bb Eb Am7
  D: "[~@29 [bb2,bb3,c4,d4,f4]@46 ~@2 [d2,bb3,c4,d4,f4]@46 ~@2 [eb2,f4,g4,bb4,eb5]@46 ~@2 [bb3,f4,bb4,c5,d5]@46 ~@2 [g2,g4,bb4,d5]@46 ~@2 [f2,g4,bb4,eb5]@46 ~@2 [bb3,g4,bb4,eb5]@19]/7", // Bb Eb Bb Gm Eb
  E: "[~@29 [bb2,f4,bb4,d5]@64 ~@3]/2", F: "[bb2,bb3,c4,d4,f4]@23 ~", G: "[bb2,ab3,c4,d4,f4]@23 ~",
  H: "[eb2,eb4,f4,g4,bb4]@23 ~", I: "[bb2,bb3,c4,d4,f4]@30 ~@2 [c3,bb3,c4,eb4,f4]@15 ~", J: "[d3,bb3,c4,d4,f4]@23 ~",
  K: "[c3,g3,bb3,d4,e4]@23 ~", L: "[f2,g3,bb3,c4,eb4,f4]@23 ~", M: "[a2,a3,c4,eb4,f4]@23 ~",
  N: "[ab2,bb3,c4,d4,f4]@23 ~", O: "[g2,f3,g3,bb3,eb4]@23 ~", P: "[f2,f3,bb3,c4,d4]@23 ~", Q: "[eb2,g3,bb3,d4]@23 ~",
  R: "[f2,eb3,g3,bb3,d4]@23 ~", S: "[eb3,g3,bb3,eb4]@15 ~ [d3,f3,bb3,d4]@15 ~ [c3,eb3,g3,bb3,c4]@15 ~",
  T: "[bb2,d3,f3,bb3]@23 ~", U: "[d2,gb3,a3,c4,d4]@23 ~", V: "[eb2,f3,g3,bb3,eb4]@23 ~",
  W: "[bb2,f3,bb3,eb4]@15 ~ [bb2,f3,bb3,d4]@15 ~ [gb2,a3,c4,d4]@15 ~", X: "[g2,g3,bb3,d4]@23 ~",
  Y: "[c3,g3,bb3,d4,eb4]@23 ~", Z: "[f2,gb3,bb3,c4,eb4]@23 ~", AA: "[f2,g3,a3,c4,eb4]@23 ~",
  AB: "[d2,gb3,bb3,c4,f4]@23 ~", AC: "[eb2,g3,bb3,d4,f4]@30 ~@2 [e2,g3,bb3,db4,e4]@15 ~",
  AD: "[f2,f3,bb3,c4,d4]@30 ~@2 [gb2,a3,c4,d4]@15 ~", // Bb D7
  AE: "[eb3,g3,bb3,eb4]@15 ~ [d3,f3,bb3,d4]@15 ~ [f2,c3,eb3,g3,bb3,c4]@15 ~", AF: "[[bb2,d3,f3,bb3]@2 ~]/2",
  AG: "[~@19 [bb2,bb3,c4,d4,f4]@46 ~@2 [d3,gb3,bb3,c4,f4]@46 ~@2 [eb2,g3,bb3,d4,f4]@46 ~@2 [bb2,f3,bb3,d4]@29]/4", // Bb Ebmaj7 Bb
  AH: "~@3 [f2,d3,gb3,bb3,c4,f4]@15 ~ [g2,g3,bb3,d4,g4]@29", AI: "~@3 [g2,g3,bb3,d4,gb4]@15 ~ [g2,g3,bb3,d4,f4]@29",
  AJ: "~@3 [c3,bb3,d4,eb4]@15 ~ [c3,g3,bb3,eb4]@29", AK: "~@3 [d3,a3,c4,f4]@15 ~ [eb3,gb3,bb3,b3,f4]@29",
  AL: "[~@3 [a2,eb3,gb3,a3,d4,f4]@15 ~ [bb2,bb3,c4,d4,f4]@46 ~@2 [eb2,gb3,bb3,d4]@46 ~@2 [eb2,g3,bb3,d4]@46 ~@2 [ab2,f3,ab3,bb3,c4,f4]@29]/4", // D Bb Ebm Ebmaj7 Fm
  AM: "~@3 [d2,gb3,c4,f4]@15 ~ [g2,bb3,d4,g4]@15 ~ [g2,bb3,d4,gb4]@13", // D7 Gm
  AN: "[~@3 [g2,bb3,d4,f4]@15 ~ [f2,eb3,gb3,bb3,c4]@46 ~@2 [gb2,ab3,bb3,db4,f4]@29]/2", // Gm7 Cm7b5 Gbmaj7
  AO: "[~@3 [ab2,ab3,bb3,c4,eb4]@15 ~ [bb2,f3,bb3,c4,d4]@64 ~@13]/2", // Ab Bb
  AP: "[~@38 [bb2,bb3,c4,d4,f4]@46 ~@2 [a2,g3,c4,d4]@30 ~@2 [d3,gb3,bb3,c4,f4]@15 ~ [eb2,g3,bb3,d4,f4]@30 ~@2 [a2,g3,c4,db4,f4]@15 ~ [d3,f3,a3,c4,d4]@30 ~@2 [ab1,gb2,gb3,bb3,db4,f4]@15 ~ [g2,a3,bb3,d4,g4]@30 ~@2 [g2,a3,bb3,d4,gb4]@15 ~ [g2,a3,bb3,d4,f4]@30 ~@2 [c3,bb3,d4,eb4]@15 ~ [gb2,bb3,db4,f4]@10]/7", // Bb Am7 Bb Ebmaj7 F Dm7 Gbmaj7 Gm …
  AQ: "[~@22 [db3,ab3,c4,f4]@15 ~ [ab2,bb3,c4,eb4,f4]@30 ~@2 [f2,eb3,g3,bb3,d4,f4]@15 ~ [g2,a3,bb3,d4,f4]@30 ~@2 [gb2,e3,bb3,d4]@15 ~ [f2,eb3,ab3,d4]@30 ~@2 [bb2,gb3,ab3,c4,d4]@15 ~ [eb2,g3,bb3,d4]@30 ~@2 [a2,g3,c4,db4,f4]@15 ~ [bb2,a3,c4,d4,f4]@30 ~@2 [g2,a3,c4,f4]@15 ~ [c3,g3,bb3,eb4]@10]/6", // Dbmaj7 Fm7 Ebmaj7 Gm7 Gbaug Ddim Bbaug Ebmaj7 …
  AR: "[~@22 [d3,a3,c4,f4]@15 ~ [eb3,g3,bb3,d4,f4]@30 ~@2 [f2,bb3,c4,eb4,gb4]@15 ~ [gb2,ab3,bb3,db4,f4]@30 ~@2 [ab2,ab3,bb3,c4,eb4]@45 ~@3 [bb2,f3,bb3,c4,d4]@61 ~@13]/5", // Dm7 Ebmaj7 Cm7b5 Gbmaj7 Ab Bb
})).s("gm_piano").gain(0.3)

stack(piano)

More by Misc Praise Songs