Strudelify

Aquarium- Camille Saint-Saëns

Camille Saint-Saëns

KeyB♭ majorTempo240 bpm
0:00/0:00
// Aquarium- Camille Saint-Saëns — Camille Saint Saens
// 240 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flute" named as a pipe, played on flute (its trombone patch is not one)
// note: duplicate parts dropped: ch 7 "Baritone Saxophone" baritone sax (copy of ch 4 "Bass Clarinet" clarinet)
// note: Transcription provider: pdmx. https://musescore.com/score/5270247; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(240/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 · flute
const flute = note("<~@15 A B@3 C D@3 E F G F H I@3 J K@4>".pickRestart({
  A: "~@7 c6", B: "[d5@15 ~ db5@15 ~ d5@15 ~, g3]/3", C: "[gb3,eb5]", D: "[c5@15 ~ b4@15 ~ c5@15 ~, f3]/3",
  E: "[d3,d5]", F: "[d3,bb4]", G: "[c3,a4]", H: "[c3,c5]", I: "[d5@30 ~@2 [d5,eb5]!16, a2]/3", J: "[d5,eb5]!16, d3",
  K: "[g3, d5@61 ~@3]/4",
})).s("gm_flute").gain(0.5)

// chords · flute · soft notes
const flute_soft = note("<A B A B A C@2 D E@8 ~@20>".pickRestart({
  A: "~ bb4 d5 g5", B: "~ a4 db5 a5", C: "~ eb5 g5 eb5", D: "c5@2 ~@2 c5 eb5 g5 c6",
  E: "[~@2 bb4@2 d5@2 g5@2 ~@2 a4@2 db5@2 a5@2 ~@2 bb4@2 d5@2 g5@2 ~@2 a4@2 db5@2 a5@2 ~@2 bb4@2 d5@2 g5@2 ~@2 e5@2 g5@2 e5@2 ~@2 e5@2 g5@2 e5@2 c5@2 ~@2 c5 e5 g5 ~, g3]/8",
})).s("gm_flute").gain(0.2)

// other · tuba · "B♭ Clarinet"
const tuba = note("<~@15 A B C B D E@3 F G@3 H I@3 J K@4>".pickRestart({
  A: "~@7 e5", B: "d5", C: "db5", D: "[gb2,eb5]", E: "[c5 b4 c5, f2]/3", F: "[d2,d5]", G: "[bb4 a4 bb4, g2]/3",
  H: "[c2,c5]", I: "[d5@32 [d5,eb5]!16, d2]/3", J: "[d5,eb5]!16, d2", K: "[~ g1, [g2,d5]]/4",
})).s("gm_tuba").gain(0.5)

// other · tuba · "B♭ Clarinet" · soft notes
const tuba_soft = note("<A B A B A C@2 D A B A B A E@2 F ~@20>".pickRestart({
  A: "~ bb4 d5 g5", B: "~ a4 db5 a5", C: "~ eb4 g4 eb5", D: "c5@2 ~@2 c5 eb5 g5 eb5", E: "~ e4 g4 e5",
  F: "c5@2 ~@2 c5 e5 g5 ~",
})).s("gm_tuba").gain(0.2)

// bass · clarinet · "Bass Clarinet"
const bass = note("<A@5 B@2 C A@5 B@2 C D E D F G H G D@2 G D G I@3 J K@4>".pickRestart({
  A: "g2 d3 g2 d3", B: "c3 g2 c3 g2", C: "c3 ~ c3@2", D: "d3", E: "db3", F: "eb3", G: "c3", H: "b2", I: "a2/3", J: "a2",
  K: "bb2/4",
})).s("gm_electric_bass_finger").gain(0.15)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A B A B A C@2 D A B A B A E@2 D F G F H I F I J H J H J K L@2 M N@4>".pickRestart({
  A: "g4 bb4!3", B: "g4 a4!3", C: "~ eb4 g4 eb5", D: "c5 ~ g4@2", E: "~ e4 g4 e5", F: "d4", G: "eb4", H: "bb3", I: "c4",
  J: "a3", K: "gb3@12 [gb3,g3] [ab3,a3,bb3] [b3,c4,db4] [d4,eb4,e4]", L: "[gb4, f4 ~@31]/2", M: "g4", N: "g4/4",
})).s("gm_alto_sax").gain(0.17)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A B A B A C@2 D A B A B A E@2 D F G F H I J K I L@3 M N O@2 P Q@4>".pickRestart({
  A: "d3 g3!2 bb3", B: "d3 a3!2 db4", C: "~ eb3 g3 eb4", D: "g3 ~ eb3@2", E: "~ e3 g3 e4", F: "d3", G: "db3", H: "gb3",
  I: "f3", J: "g3", K: "a3", L: "g3/3", M: "eb3", N: "gb3@12 [gb3,g3] [ab3,a3,bb3] [b3,c4,db4] [d4,eb4,e4]",
  O: "[gb4, f4 ~@31]/2", P: "g4", Q: "g4/4",
})).s("gm_tenor_sax").gain(0.15)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<A B A B A C@3 A B A B A D@3 A B A E F G F A H I H F J@3 A K@4>".pickRestart({
  A: "d5", B: "db5", C: "g4/3", D: "[~ c5@2, g4]/3", E: "eb5", F: "c5", G: "b4", H: "bb4", I: "a4", J: "d5/3",
  K: "[d5,g5]/4", // G5
})).s("gm_trumpet").gain(0.4)

// chords · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<A@5 B@3 C D C D C E@3 F@3 G H@3 I J@3 K L@3 M N@4>".pickRestart({
  A: "[bb4 a4 bb4 a4 bb4, g4]/5", B: "eb4/3", C: "bb4", D: "a4", E: "e4/3", F: "[bb4 a4 bb4, g4]/3", G: "[gb4,bb4]",
  H: "[a4 g4 a4, f4]/3", I: "[d4,a4]", J: "[d4 c4 d4, g4]/3", K: "[eb4,a4]", L: "[gb4,a4]/3", M: "[g4,a4]",
  N: "[g4,bb4]/4", // Gm
})).s("gm_trumpet").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note("<~@12 A B@3 A C A D E A E F D F D F G H@2 I J@4>".pickRestart({
  A: "d4", B: "c4/3", C: "eb4", D: "bb3", E: "c4", F: "a3", G: "gb3@12 [gb3,g3] [ab3,a3,bb3] [b3,c4,db4] [d4,eb4,e4]",
  H: "[gb4, f4 ~@31]/2", I: "g4", J: "[~ bb4, g4]/4",
})).s("gm_french_horn").gain(0.45)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<A B A B A C@3 A B A B ~@24>".pickRestart({
  A: "d4", B: "eb4", C: "c4/3",
})).s("gm_french_horn").gain(0.25)

// other · trumpet · "Low Brass 2 TC"
const trumpet_3 = note("<~@8 A@8 B@3 C D@3 E@2 F E F G@3 E H@4>".pickRestart({
  A: "g4/8", B: "g4/3", C: "gb4", D: "f4/3", E: "d4", F: "c4", G: "g3/3", H: "g4/4",
})).s("gm_trumpet").gain(0.45)

// other · trombone
const trombone = note("<~@8 A@8 B@3 C D E F D B@3 G H@3 I J@4>".pickRestart({
  A: "g3/8", B: "g3/3", C: "gb3", D: "f3", E: "g3", F: "a3", G: "eb3", H: "d3/3", I: "d3", J: "d3/4",
})).s("gm_trombone").gain(0.5)

stack(
  flute, flute_soft, tuba, tuba_soft, bass, alto_sax, tenor_sax, trumpet, trumpet_2, french_horn, french_horn_soft,
  trumpet_3, trombone
)

More by Camille Saint-Saëns