Strudelify

Cantique de Jean Racine - Fauré

Gabriel Fauré

KeyD♭ majorTempo80 bpm
0:00/0:00
// Cantique de Jean Racine - Fauré — Gabriel Fauré
// 80 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5818082; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 · church organ · "Orgue à tuyaux"
const church_organ = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AJ AL AM AN AO AP AQ AR AS AT
  AU@2 AV@2 AW AX AY AZ BA BB BC@3 BD P Q R S BE BF BG BH BI BJ@2 BK BL BM BN BO BP BQ BR BS@2 BT BU BV BW BX BY@2
>`.pickRestart({
  A: "~ c4 db4 f4 c4 db4 ab3 c4 db4 ~ c4 db4, db2, ~@3 f4",
  B: "ab3 c4 db4 f4 db4 ab3 ~ b3 c4 eb4 c4 ab3, [f1,ab4] [ab1,gb4]", // Fm Ab7
  C: "~ ab3 c4 db4 ab3 f3 ab3 c4 db4 f4 db4 ab3, f4@3 ab4, db2 c2",
  D: "~ e4 f4 ~ f4 c4 ~ c4 db4 ~ db4 ab3, [bb1,db5] [ab1,c5] [gb1,bb4] [f1,ab4]", // Bbm Ab Gb Fm
  E: "~ b3 c4 eb4 c4 ab3 ~ g3 ab3 db4 ab3 f3, ab1@2 [db2,f4] [f1,f4], ab4 gb4 ~@2", // Db F
  F: "~ a3 bb3 db4 bb3 gb3 ~ b3 c4 eb4 c4 ab3, [gb1,eb4] [ab1,gb4]", // Ebm Ab7
  G: "~ g3 ab3 db4 ab3 f3 ~ c4 db4 ~ db4 ab3, f4@3 ~, db2 c2 bb1 [ab1,f4]", // Db
  H: "~ a3 bb3 db4 bb3 gb3 ~ b3 c4 eb4 db4 c4, gb1@3 gb2, eb4 bb4",
  I: "~ b3 c4 f4 c4 a3 ~ a3 eb4 ~ eb4 a3, a4@3 ~, f2 eb2 db2 [c2,f4]", // F5
  J: "~ e4 f4 ~ f4 c4 ~ c4 db4 f4 db4 ab3, [bb1,db5] [ab1,c5] [gb1,bb4] [f1,ab4]", // Bbm Ab Gb Fm
  K: "~ b3 c4 eb4 c4 ab3 ~ g3 ab3 db4 ab3 db4, ab1@2 [db1,f4] [f1,ab4], ab4 gb4 ~@2", // Db Fm
  L: "~ a3 bb3 db4 bb3 gb3 ~ gb3 ab3 c4 ab3 gb3, [gb1,f4] [ab1,eb4]", // Gbmaj7 Ab5
  M: "~ f3 ab3 ~ ab3 f3 ab3 c4 db4 f4 db4 ab3, db2, db4@3 db4@4 ~@5",
  N: "~ c4 db4 f4 db4 ab3 ~ b3 c4 eb4 c4 ab3, f1 ab1", O: "~ ab3 c4 db4 ab3 f3 ~ c4 db4 f4 db4 ab3, db2 c2",
  P: "~ e4 f4 ~ f4 c4 ~ c4 db4 ~ db4 ab3, bb1 ab1 gb1 f1", Q: "~ ab3 c4 eb4 c4 ab3 ~ ab3 c4 db4 ab3 f3, ab1@2 db1 f1",
  R: "~ bb3 db4 eb4 db4 bb3 ~ gb3 c4 eb4 c4 gb3, gb1 ab1", S: "~ f3 bb3 db4 bb3 f3 bb3 c4 db4 f4 db4 bb3, bb1",
  T: "~ c4 db4 f4 db4 ab3 ~ gb3 db4 eb4 db4 gb3, ab1", U: "~ f3 ab3 db4 ab3 f3 ab3 c4 db4 f4 db4 ab3, db2 c2",
  V: "~ e4 f4 ~ f4 c4 ~ bb3 f4 ~ e4 bb3, bb1 ab1 g1 c2", W: "~ g3 c4 e4 c4 g3 ab3 c4 f4 ab4 eb4 c4, f1@3 c2",
  X: "~ bb3 f4 ab4 f4 bb3 ~ bb3 db4 g4 db4 bb3, db2 eb2",
  Y: "~ c4 eb4 ~ [bb3,c4] e4 ~ [ab3,c4] f4 ~ [a3,c4] gb4, ab2 g2 f2 eb2", // Bbsus2 Ab Am
  Z: "~ bb3 db4 f4 db4 bb3 ~ bb3 db4 g4 db4 bb3, db2 eb2", AA: "~ c4 g4 bb4 g4 c4 ~ c4 ab4 gb4 c4 ab3, e2@2 f2 ab1",
  AB: "~ f4 db5 [a4,c5] f4 eb4 ~ db4 bb4 b4 f4 d4, db2 f2 bb1 ab1", // Am
  AC: "~ eb4 bb4 g4 db4 bb3 ~ c4 ab4 f4 c4 ab3, g1 e2 f2 d2", AD: "~ c4 g4 eb4 c4 g3 ~ db4 g4 eb4 db4 g3, eb2 eb1",
  AE: "~ c4 eb4 ab4 eb4 c4 eb4 g4 ab4 c5 g4 ab4, ab1@2 ~ c4",
  AF: "~ g4 ab4 c5 g4 ab4 ~ gb4 g4 bb4 gb4 g4, [c2,eb4] [eb2,db4]", // Cm Eb7
  AG: "~ eb4 g4 ab4 eb4 ~ eb4 g4 ab4 c5 ab4 eb4, ab2 g2, c4@5 c4@4 eb4@2 ~",
  AH: "~ b4 c5 ~ db5 c5 ~ g4 ab4 ~ bb4 ab4, [f2,ab4] [eb2,g4] [db2,f4] [c2,eb4]", // Fm Eb Db Cm
  AI: "~ f4 ab4 ~ eb4 g4 ~ eb4 g4 ab4 eb4 ab4, [bb1,eb4] [eb2,db4] [ab1,c4] [c2,c4]", // Eb5 Eb7 Ab C
  AJ: "~ f4 ab4 bb4 f4 ab4 ~ eb4 g4 bb4 eb4 g4, [db2,bb3] [eb2,db4]", // Gb Eb7
  AK: "~ g4 bb4 c5 g4 bb4 ~ f4 ab4 c5 eb4 ab4, [e2,c4]@2 [f2,c4] [c2,c4]", // C F5 C
  AL: "~ eb4 g4 ab4 eb4 ~ eb4 g4 ab4 c5 ab4 eb4, ab1, c4@5 c4@4 ~@3",
  AM: "~ eb4!2 c4 eb4!2 ~ db4!2 bb3 db4!2, [ab1,ab4,c5] [bb1,f4,bb4]", // Ab Bb5
  AN: "~ c4!2 g3 c4!2 ~ c4!2 bb3 c4!2, c2, [e4,g4] e4 [d4,f4] [e4,g4]", // Em Dm Em
  AO: "~ c4!2 ~ c4!2 ~ f4!2 eb4 f4!2, f2, [f4,ab4]!2 [g4,bb4] [a4,c5]", // Fm Gm Am
  AP: "~ f4!2 eb4 f4!2 ~ f4!2 bb4 f4!2, bb1, [a4,c5]@2 [bb4,db5] ~", // Am Bbm
  AQ: "~ f4!2 db4 f4!2 ~ eb4!2 c4 eb4!2, [bb2,bb4,db5] [eb2,gb4,c5]", // Bbm Cdim
  AR: "~ c4!2 ~ c4!2 ~ f4!2 eb4 f4!2, f2, a4@2 [g4,bb4] [a4,c5], f4!2 ~@2", // Gm Am
  AS: "~ f4!2 ~ f4!2 ~ bb4!2 ab4 bb4!2, bb2, db5@2 [c5,eb5] [d5,f5], bb4!2 ~@2", // Cm Dm
  AT: "~ bb4!2 ab4 bb4!2 [eb5,gb5] bb4 gb4 eb4 bb3 eb4, eb2, [d5,f5] ~", // Ebm Dm
  AU: "[~ a3 f4 ~ eb4 bb3 ~ c4 a4 ~ eb4 c4 ~ c4 eb4 f4 c4 eb4 bb4 db4 f4 bb4 f4 db4, f1@6 bb1 ~, ~ gb4 f4 bb4 a4@2 ~@2]/2",
  AV: "[~ e4 g4 f4 g4 bb4 e4 g4 bb4 ~ [db4,f4] g4 ~ [c4,e4] g4 [a3,a4] ~ bb4 f2 c4 f4 a4 f4 c4, c2@6 ~ f2, ~@3 db4@3 c4@3 bb3@6 ~ e4 ~@7, ~@11 g3 a3@2 ~@2]/2", // Db C A
  AW: "~ db4 f4 bb4 f4 db4 ~ c4 f4 c5 f4 c4, bb2 ab2", AX: "~ f4 bb4 eb4 bb3 eb4 ~ db4 f4 bb4 f4 bb3, gb2@2 f2 db2",
  AY: "~ c4 gb4 bb4 gb4 c4 ~ c4 eb4 a4 eb4 c4, eb2 f2", AZ: "~ eb4 a4 bb4 gb4 db4 ~ db4 f4 a4 f4 c4, gb2@2 f2 eb2",
  BA: "~ bb3 f4 ~ f4 bb3 ~ bb3 f4 bb4 f4 bb3, db2 c2, ~ bb4@2 ab4",
  BB: "~ bb3 f4 bb4 f4 bb3 ~ db4 f4 ~ f4 db4, [bb1,gb4] bb2, ~@6 f4@2 ~ bb4@3", // Ebm
  BC: "[~ c4 eb4!2 c4 eb4 ~ c4 eb4!2 c4 eb4 ~ c4 e4 f4 c4 a3 c4 e4 f4 a4 f4 c4 ~ c4 db4 f4 db4 ab3 ~ b3 c4 eb4 c4 ab3, c5@5 ~@7, [ab2,ab4] [gb2,bb4] f2 f1@2 ab1, ~@4 a4 ~@7]/3", // Ab Gb
  BD: "~ ab3 c4 db4 ab3 f3 ab3 c4 db4 f4 db4 ab3, db2 c2",
  BE: "~ ab3 c4 db4 ab3 db4 ~ ab3 db4 c4 ab3 c4, ab1, [f4,ab4] [eb4,gb4]", // Fm Ebm
  BF: "~ ab3 c4 ~ ab3 f3 ab3 db4 f4 ab4 f4 db4, f4 ~, [db1,db4] [ab1,db4] db2 c2", // Db Db5
  BG: "~ ab3 db4 f4 db4 ab3 f4 db4 f4 ab4 f4 db4, bb1, ~ ab4 db5 c5",
  BH: "ab4 bb3 eb4 ab4 eb4 bb3 gb4 bb3 eb4 gb4 eb4 bb3, bb4@3 ~, eb2 bb1 eb2 db2",
  BI: "~ bb3 eb4 gb4 eb4 bb3 gb4 eb4 gb4 bb4 gb4 eb4, c2, ~ bb4 eb5 db5",
  BJ: "[bb4 c4 f4 bb4 f4 c4 ab4 c4 f4 gb4 c4 ab3 f4 db4 f4 eb4 c4 eb4 db4 f4 db4 f4 d4 f4, c5@3 ab4@2 ~@3, f2 c2 f2 eb2 db2 [f2,a4] [bb2,bb4] [ab2,b4]]/2", // F Bb Abm
  BK: "eb4 bb3 eb4 db4 bb3 db4 c4 ab3 c4 f4 c4 f4, [g2,bb4] [e2,g4] [f2,ab4] [d2,ab4,c5]", // Gm Em Fm Dm7b5
  BL: "eb4 c4 eb4!2 c4 eb4 ~ bb3 eb4!2 bb3 eb4, [eb2,g4,c5] [db2,g4,bb4]", // Cm Gdim
  BM: "~ ab3 eb4!2 ab3 eb4 f4 db4 f4 ab4 f4 db4, [c2,ab4] [db2,b4]", // Fm Db7
  BN: "~ db4 gb4 f4 d4 f4 ~ bb3 eb4 e4 bb3 e4, [gb1,bb4] [bb1,ab4] [eb2,gb4] [db2,g4,bb4]", // Gb Bb7 Ebm Gdim
  BO: "~ ab3 eb4 a4 eb4 a4 [ab4,db5] db4 ab3 bb3 db4 bb3, [c2,ab4] [gb1,c5] f1 g1", // Db5 Fm Gbdim
  BP: "~ ab3 c4 f4 c4 ab3 ~ gb3 c4 eb4 c4 gb3, ab1", BQ: "~ f3 ab3 db4 ab3 f3 ab3 c4 db4 ~ db4 ab3, db2@2 ~ f4",
  BR: "~ c4 db4 f4 db4 ab3 ~ a3 bb3 db4 bb3 gb3, [f1,ab4] [gb1,gb4]", // Fm Gb
  BS: "[~ g3 ab3 db4 ab3 f3 ab3 c4 db4 f4 db4 ab3 ~ gb3 db4 eb4 db4 gb3 ~ gb3 c4 eb4 c4 gb3, ab1, f4@3 ~@5]/2",
  BT: "~ f3 ab3 db4 ab3 f3 ab3 c4 db4 ~ db4 ab3, db2, ~@3 f4",
  BU: "eb4 f4 eb4 f4 eb4 f4 db4 f4 db4 f4 c4 f4, a1@2 [bb1,bb4] [c2,ab4], db5 c5 ~@2", // Bb Fm
  BV: "c4 f4 c4 eb4 bb3 eb4 a3 c4 f4 db4 ab3 f3, [db2,ab4] [eb2,gb4] f2 f1, ~@3 f4 ~@2", // Db5 Ebm
  BW: "~@2 f3@2 bb3@2 db4@2 bb3@2 f3@2 bb3@2 db4@2 ~@2 [bb4,db5]@3 ~@3, gb1, ~@16 f4@5 ~@3", // Bbm
  BX: "~@2 gb3@2 ab3@2 c4@2 eb4@2 ~@2 [ab4,c5]@3 ~@9, ab1, ~@10 gb4@5 ~@9", // Ab
  BY: "[~ ab3 c4 db4 ab3 f3 ab3 c4 db4 ~@3 [db1,f3]@12, db2 ~, ~@3 f4@5, ~@5 db4@7, ~@11 ab3@13]/2", // Db
})).s("gm_church_organ").gain(0.3)

stack(church_organ)

More by Gabriel Fauré