Strudelify

id like to teach the world to sing

Arrangiamento di Ruggero Dambra

KeyE majorTempo132 bpm
0:00/0:00
// id like to teach the world to sing — Arrangiamento di Ruggero Dambra
// 132 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/135956; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 43 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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.

// other · flute
const flute = note("<~@16 A@2 ~@3 B@2 C D E F G H@2 I@2 ~@2 A@2 J@2 ~ B@2 K D>".pickRestart({
  A: "[~ e5 g#5 e5 a5 g#5@2 e5@9]/2", B: "[d#5@2 e5 f#5@3 e5 d#5@3 e5 f#5@3 ~ g#5]/2", C: "e5 c#5", D: "e5 ~",
  E: "b5 c#6", F: "b5 a5 g#5 f#5", G: "e5", H: "[~@4 g#5 f#5 e5 f#5@7 ~ g#5]/2", I: "[a#5@2 g#5@2 f#5@2 e5 d#5@9]/2",
  J: "[~@4 g#5 f#5 e5 f#5@7 ~@2]/2", K: "e5 f#5 e5 c#5",
})).s("gm_flute").gain(0.3)

// chords · acoustic guitar steel · "Steel string Guitar"
const acoustic_guitar_steel = note(`<
  ~@7 A B C@2 D@2 E@2 F C@3 D@2 E@2 F G ~@2 C@2 D@2 E@2 F C@3 D@2 E@2 H I
>`.pickRestart({
  A: "b3 c#4", B: "b3 a3 g#3 f#3", C: "[e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~",
  D: "[f#3,a#3,e4,f#4] ~ [f#3,a#3,e4,f#4] ~ [f#3,a#3,e4,f#4] ~ [f#3,a#3,e4,f#4] ~", // F#7
  E: "[b2,f#3,a3,d#4,f#4] ~ [b2,f#3,a3,d#4,f#4] ~ [b2,f#3,a3,d#4,f#4] ~ [b2,f#3,a3,d#4,f#4] ~", // B7
  F: "[a2,e3,a3,c#4,e4,a4] ~ [a2,e3,a3,c#4,e4,a4] ~ [a2,e3,a3,c#4,e4,a4] ~ [a2,e3,a3,c#4,e4,a4] ~", G: "[e3,b3,e4,g#4]",
  H: "~@3 a4@13, a2, ~ [e3,a3]@15, ~ [c#4,e4]@7", I: "~ g#4@7, e3, ~ [b3,e4]@15",
})).s("gm_acoustic_guitar_steel").gain(0.03)

// other · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note("<~@40 [~@7 g#4] [e4 c#4] e4>").s("gm_electric_guitar_clean").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note("<~@7 A B C D E F G H I D C D E F G H I D ~@2 C D E F G H I D C D E F G H I D>".pickRestart({
  A: "b2 c#3", B: "b2 a2 g#2 f#2", C: "e2@7 e2", D: "e2", E: "f#2@7 f#2", F: "f#2", G: "b1@3 c#2", H: "d#2 b1",
  I: "a1 c#2",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@27 x!14 ~@2>").gain(0.3)

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

// drums · snare
const snare = s("sd").struct("<~@26 [~@3 x] ~@16>").gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@27 [x!4]!14 ~@2>").gain(0.3)

// drums · china
const china = s("cr").struct("<~@41 x!2>").gain(0.3)

// drums · tambourine
const tambourine = s("tb").struct("<~@9 [~ x]!16 [x!2] [x!4] ~@16>").gain(0.3)

stack(flute, acoustic_guitar_steel, electric_guitar_clean, bass, kick, rim, snare, ride, china, tambourine)