Strudelify
No Time No Space cover art

Mondi Lontanissimi

No Time No Space

Battiato

KeyD♭ majorTempo85 bpm
0:00/0:00
// No Time No Space — Battiato
// 84.7 bpm, 2/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 12 "tk12" shamisen (copy of ch 8 "tk8" synth brass 1)
// note: Full arrangement: all 143 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84.7/2)

// 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 · brass section · "tk3"
const brass_section = note(`<
  ~@12 A ~@7 A ~@28 B C@2 ~@4 D@2 ~@7 A ~@7 A ~@28 B C@2 ~@4 D@2 ~@4 E F ~@3 G H@2 ~@4 D@2 ~@4 E F ~@3 G H@2 ~@2
>`.pickRestart({
  A: "eb3@3 ~", B: "~@4 [a3,a5]@3 ~ [a3,a5]@3 ~ [a3,a5]@4 [bb3,bb5]@4 [a3,a5]@4", C: "[[eb3,eb5]@17 ~@7]/2",
  D: "[~@4 [g3,b3,d4]@11 ~]/2", E: "~@5 [d3,d5]", F: "[eb3,eb5]@11 ~",
  G: "~@4 [a3,a4]@3 ~ [a3,a4]@3 ~ [a3,a4]@4 [bb3,bb4]@4 [a3,a4]@4", H: "[[eb3,eb4]@17 ~@7]/2",
})).s("gm_brass_section").gain(0.79).pan(0.4)

// other · synth brass 2 · "tk6"
const synth_brass_2 = note(`<
  ~ A@28 ~@11 B C D E@4 F@2 G H I J@3 K L@2 A@24 ~@11 B C D E@4 F@2 G H I M@3 K L@2 B C D E@4 F@2 G H I J@3 K L@2 B C D
  E@4 F@2 G H I N@2
>`.pickRestart({
  A: "[gb2,gb3] [bb2,bb3] [c3,c4] [ab2,ab3] [db3,db4] [eb3,eb4]", B: "g2@4 bb2@4 d3@4 g3@4 d3@4 bb2@3 ~",
  C: "eb2@4 g2@3 ~ bb2@4 eb3@4 bb2@4 g2@3 ~", D: "bb2@4 d3@4 f3@4 bb3@3 f3@4 d3@3 ~@2",
  E: "[f2@3 a2@4 c3@4 ~ f3@3 c3@4 a2@3 ~ g2@4 bb2@4 d3@4 ~ g3@3 d3@4 bb2@3 ~ eb2@4 ~ g2@3 bb2@4 ~ eb3@3 bb2@4 g2@3 ~ bb2@4 ~ d3@4 f3@4 bb3@4 f3@4 d3@4]/4",
  F: "[f2@3 a2@4 c3@4 f3@4 c3@4 a2@3 ~ g2@4 bb2@4 d3@4 g3@4 d3@4 ~ bb2@3 ~]/2",
  G: "f2@4 a2@4 c3@4 f3@3 c3@4 ~ a2@2 ~@2", H: "eb2@4 g2@3 ~ bb2@4 eb3@3 bb2@4 g2@4 ~",
  I: "eb2@3 g2@4 ~ bb2@4 eb3@3 bb2@4 g2@2 ~@3",
  J: "[bb2@3 d3@4 ~ f3@4 bb3@3 f3@4 d3@3 ~ f2@4 a2@4 c3@4 ~ f3@3 c3@4 a2@2 ~@2 g2@4 bb2@4 d3@4 g3@4 d3@4 ~ bb2@3 ~]/3",
  K: "f2@4 a2@3 ~ c3@4 f3@3 c3@4 a2@3 ~@2", L: "[g2@23 ~]/2",
  M: "[bb2@3 d3@4 ~ f3@4 bb3@3 f3@4 d3@3 ~ f2@4 a2@4 c3@4 ~ f3@3 c3@4 a2@3 ~ g2@4 bb2@4 d3@4 g3@4 d3@4 ~ bb2@3 ~]/3",
  N: "bb1/2",
})).s("gm_synth_brass_2").gain(0.48).pan(0.9)

// other · string ensemble 1 · "tk7"
const string_ensemble_1 = note(`<
  ~@14 A B C D E F ~@2 A B C D E F ~@2 G@3 H I J K L ~@29 A B C D E F ~@2 A B C D E F ~@2 G@3 H I J K L ~@19 M N@3 O P@2
  Q R S ~@8 T U V W@2 X Y@3 S ~@5
>`.pickRestart({
  A: "[gb3,gb4]@11 ~ ab4@12, ~@11 ab3@13", B: "[bb3,bb4]",
  C: "~ db5@8 [c4,c5] [bb3,bb4]@5 ~@5 eb5@4, db4@9 ~@6 db4@4 eb4@4 ~, ~@16 db5@5 ~@3", // C Bb
  D: "[c4,c5]@16 [db4,db5]@4 [eb4,eb5]@3 ~", E: "[eb4,eb5]@7 ~ [f4,f5]@4 [bb3,bb4]@8 [db4,db5]@4",
  F: "~@6 [eb4,eb5]@5 ~", G: "[bb4@18 c5@2 bb4 a4@2 bb4@2 c5@22 db5@25]/3", H: "c5", I: "bb4", J: "~ a4@23", K: "gb4",
  L: "f4@23 ~", M: "~@19 a4@5", N: "[bb4@19 a4@4 bb4@20 a4@4 bb4@24 ~]/3", O: "a4@19 bb4@5", P: "[a4@3 g4@38 ~@7]/2",
  Q: "[f4,f5]@4 [eb4,eb5] [d4,d5]", R: "[c4,c5]@5 [d4,d5]", S: "[c4,c5] [bb3,bb4]@5", T: "~@5 [a4,c6]",
  U: "[bb4,d6]@19 ~ a4@4, ~@19 c6@5", V: "[bb4,d6]@19 [c5,eb6]@5",
  W: "[[d5,f6]@18 ~ bb4@4 ~ c6@19 [bb4,d6]@5, ~@18 d6@5 a4@20 ~@5]/2", X: "[a4,c6] [g4,bb5]@5",
  Y: "[~@23 [f4,f5]@16 [eb4,eb5]@4 [d4,d5]@4 [c4,c5]@21 [d4,d5]@4]/3", // F Eb D C D
})).s("gm_string_ensemble_1").gain(0.48).pan(0.3)

// other · synth brass 1 · "tk8"
const synth_brass_1 = note(`<
  ~@5 A@24 ~@15 B C ~@10 D@2 A@24 ~@15 B C ~@10 D@2 ~@4 B C ~@10 D@2 ~@4 B C ~@8
>`.pickRestart({
  A: "gb4 ~ gb4 ~ bb4 ~ bb4 ~ c5 ~ c5 ~ ab4 ~ ab4 ~ db5 ~ db5 ~ eb5 ~ eb5 ~", B: "~@19 [d3,d5]@5", C: "[eb3,eb5]@23 ~",
  D: "[~@4 [g3,b3]@11 ~]/2", // G
})).s("gm_synth_brass_1").gain(0.48)

// other · lead 3 calliope · "tk9"
const lead_3_calliope = note(`<
  ~@5 A B@2 C A B@2 C ~@8 A B@2 C A B@2 C ~@29 A B@2 C A B@2 C ~@8 A B@2 C A B@2 C ~@61
>`.pickRestart({
  A: "eb6 c6", B: "[db6@3 c6]/2", C: "bb5",
})).s("gm_lead_3_calliope").gain(0.48).pan(0.6)

// other · harpsichord · "tk11"
const harpsichord = note("<~ [gb4 bb4 c5 ab4 db5 eb5]!28 ~@29 [gb4 bb4 c5 ab4 db5 eb5]!24 ~@61>")
  .s("gm_harpsichord").gain(0.48).pan(0.1)

// other · trombone · "tk13"
const trombone = note("<~@12 A ~@7 A ~@44 A ~@7 A ~@69>".pickRestart({
  A: "eb3@3 ~",
})).s("gm_trombone").gain(0.8)

// chords · synth strings 1 · "tk14"
const synth_strings_1 = note(`<
  ~@38 A@2 B@4 C@2 D@3 E@6 F@3 ~@33 A@2 B@4 C@2 D@3 E@6 F@3 B@4 C@2 D@3 E@6 F@3 B@4 C@2 G@8
>`.pickRestart({
  A: "[[eb2,eb4,g4,bb4,eb5]@47 ~]/2", // Eb
  B: "[[d4,d5]@23 ~ eb4@23 ~ d4@23 [a3,c4,a4,c5]@25, [bb3,bb4]@3 ~, [g3,g4]@47 ~ [f3,f4]@48, ~@23 eb5@24 d5@24 ~@25]/4", // D Am Bb G F
  C: "[[d4,d5]@24 [eb4,eb5]@23 ~, [g3,bb3,g4,bb4]]/2", // D Eb Gm
  D: "[[d4,d5]@23 ~ c4@22 ~@2 [bb3,d4,g4]@23 [a4,c5], [f3,f4]@47 [g3,bb4,d5]@25, ~@23 [a3,a4,c5]@25 ~@24]/3", // D Gm Am F Gm Am
  E: "[[f3,a3,c4,f4]@23 ~ [eb3,g3,bb3,eb4]@47 [bb3,d4,bb4,d5]@23 [a3,c4,a4,c5]@25 ~ [g4,bb4]@24, ~@23 [g4,bb4]@48 [f3,f4]@48 [g3,bb3,d4,d5]@25]/6", // F Eb Bb Am Gm F Gm
  F: "[[f3,a3,c4,f4,a4,c5]@23 ~ [d4,g4,d5]@48, ~@23 [g3,b3,b4]@48 ~]/3", // F G5 G
  G: "[[d4,d5]@23 ~ c4@22 ~@2 [bb3,d4,g4]@23 ~ [f3,a3,c4,f4]@23 ~ [eb3,g3,bb3,eb4]@47 [f3,bb3,d4,f4,bb4,d5]@49, [f3,f4]@47 [g3,bb4,d5]@25 ~@23 [g4,bb4]@49 ~@48, ~@23 [a3,a4,c5]@25 ~@23 [a4,c5]@25 ~@96]/8", // D Gm F Eb Bb F Gm Am
})).s("gm_synth_strings_1").gain(0.48)

// chords · synth strings 1 · "tk14" · soft notes
const synth_strings_1_soft = note("<~@29 A@8 B ~@44 A@8 B ~@52>".pickRestart({
  A: "[[f3,a3] [eb3,gb3,bb3] [f3,a3] [eb3,gb3,bb3] [f3,a3] [eb3,gb3,bb3] [f3,a3] [eb3,gb3,bb3], c4]/8", // F Ebm F Ebm F Ebm F Ebm
  B: "[f3,a3]@23 ~", // F
})).s("gm_synth_strings_1").gain(0.24)

// other · timpani · "tk15"
const timpani = note("<~@12 A ~@7 A ~@7 B C@8 D ~@18 E F ~@7 A ~@7 A ~@7 B C@8 D ~@18 E F ~@16 E F ~@14>".pickRestart({
  A: "g2 ~@5 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", B: "~@10 f2 ~", C: "gb2 ~@9 f2 ~", D: "gb2 ~@11",
  E: "~ g2@5 ~@18", F: "~ g2 ~ bb2 g2 ~ bb2 g2 bb2 g2 bb2 ~ g2 bb2 g2 ~ bb2 g2 bb2 g2 bb2 g2 bb2 ~",
})).s("gm_timpani").gain(0.72)

// other · timpani · "tk15" · soft notes
const timpani_soft = note("<~@12 A ~@7 A ~@44 A ~@7 A ~@69>".pickRestart({
  A: "~@2 g2 ~ g2 ~@19",
})).s("gm_timpani").gain(0.4)

// other · orchestral harp · "tk16"
const orchestral_harp = note("<~@29 A B C B D E D F G ~@44 H I J I J K L K M ~@52>".pickRestart({
  A: "~ c5@2 ~ a4@2 ~ f4@2 ~ c4@2 ~ f4 ~@2 a3@2 ~ c5@2 ~ f4@2, a4@2 ~ f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~ f3@2 ~ a4@2 ~",
  B: "~ ab3@2 ~ c4@2 db4 eb4@2 ~ gb4@2 ~ bb4@2 ~ db5@2 ~ f5@2 ~ eb5 ~, gb3@2 ~ bb3@2 ~@4 f4@2 ~ ab4@2 ~ c5@2 ~ eb5@2 ~ gb5@2 ~",
  C: "a4 c5@2 ~ a4@2 ~ f4@2 ~ c4@2 ~ f4 ~@2 a3@2 ~ c5@2 ~ f4@2, ~@3 f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~ f3@2 ~ a4@2 ~",
  D: "~ c5@2 ~ a4@2 ~ f4@2 ~ c4@2 ~ f4@2 c4 a3@2 ~ c5@2 ~ f4@2, a4@2 ~ f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~@4 f3@2 ~ a4@2 ~",
  E: "~ ab3@2 ~ c4@2 ~ eb4 ~@2 gb4@2 ~ bb4@2 ~ db5@2 ~ f5@2 ~ eb5 ~, gb3@2 ~ bb3@2 ~ db4@2 ~ f4@2 ~ ab4@2 ~ c5@2 ~ eb5@2 ~ gb5@2 ~",
  F: "~ ab3@2 ~ c4@2 ~ eb4 ~@2 gb4@2 ~ bb4@2 ~ db5@2 ~ f5@2 ~ eb5@2, gb3@2 ~ bb3@2 ~ db4@2 ~ f4@2 ~ ab4@2 ~ c5@2 ~ eb5@2 ~ gb5@2 ~",
  G: "a4 c5@2 ~ a4@2 ~ f4@2 ~ c4@2 ~ f4@2 c4 a3@2 ~ c5@2 ~ f4@2, ~@3 f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~@4 f3@2 ~ a4@2 ~",
  H: "~ c5 ~@2 a4@2 ~ f4@2 ~ c4@2 ~ f4@2 ~ a3 ~@2 c5@2 ~ f4@2, a4@2 ~ f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~ f3@2 ~ a4@2 ~",
  I: "~ ab3@2 ~ c4@2 ~ eb4@2 f4 gb4@2 ~ bb4@2 ~ db5@2 ~ f5@2 ~ eb5@2, gb3@2 ~ bb3@2 ~ db4@2 ~@4 ab4@2 ~ c5@2 ~ eb5@2 ~ gb5@2 ~",
  J: "~ c5 ~@2 a4@2 ~ f4@2 ~ c4@2 ~ f4@2 ~ a3@2 f3 c5@2 ~ f4@2, a4@2 ~ f4@2 ~ c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~@4 a4@2 ~",
  K: "~ ab3@2 ~ c4@2 ~ eb4@2 ~ gb4 ~@2 bb4@2 ~ db5@2 ~ f5@2 ~ eb5@2, gb3@2 ~ bb3@2 ~ db4@2 ~ f4@2 ~ ab4@2 ~ c5@2 ~ eb5@2 ~ gb5@2 ~",
  L: "~ c5@2 f4 a4@2 ~ f4@2 ~ c4@2 ~ f4@2 ~ a3@2 f3 c5@2 ~ f4@2, a4@2 ~@4 c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~@4 a4@2 ~",
  M: "~ c5@2 f4 a4@2 ~ f4@2 ~ c4@2 ~ f4@2 ~ a3@2 ~ c5 ~@2 f4@2, a4@2 ~@4 c5@2 ~ a4@2 ~ a3@2 ~ c4@2 ~ f3@2 ~ a4@2 ~",
})).s("gm_orchestral_harp").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@40 x!18 ~@35 x!49 ~>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@40 [~ x]!18 ~@35 [~ x]!47 [~@3 x!3] ~@2>").gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~@40 [x!6]!18 ~@35 [x!6]!48 ~@2>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@141 x ~>").gain(0.48)

// drums · bongos
const bongos = s("bongo:4").struct("<~ [x!12]!28 ~@29 [x!12]!24 ~@61>").gain(0.63)

// drums · congas
const congas = s("conga:18").struct("<~ [x!12]!28 ~@29 [x!12]!24 ~@61>").gain(0.77)

// drums · congas
const congas_2 = s("conga:33").struct("<~ [x!12]!28 ~@29 [x!12]!24 ~@61>").gain(0.77)

// drums · shaker
const shaker = s("sh").struct("<~ [x!12]!39 ~@18 [x!12]!35 ~@50>").gain(0.4)

stack(
  brass_section, synth_brass_2, string_ensemble_1, synth_brass_1, lead_3_calliope, harpsichord, trombone,
  synth_strings_1, synth_strings_1_soft, timpani, timpani_soft, orchestral_harp, kick, snare, hihat, crash, bongos,
  congas, congas_2, shaker
)

More by Battiato