Strudelify
Tieni il tempo cover art

La donna il sogno & il grande incubo

Tieni il tempo

883

KeyC majorTempo120 bpm
0:00/0:00
// Tieni il tempo — 883
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// bass · synth bass 1
const bass = note(`<
  ~@9 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B ~@12 A B A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "a1@3 ~ a1@3 f1@2 ~ f1@2 ~ f1@2 ~", B: "c2@3 ~ c2@3 g1@2 ~ g1@2 c2 b1 a1 g1",
})).s("gm_synth_bass_1").gain(0.42)

// chords · vibraphone
const vibraphone = note(`<
  ~@9 A B A B ~@8 A B A B ~@12 A B A B A B A B A B A B ~@8 A B A B ~@20 A B A B A B A B A B A B A B A B A B A B A B A B
  ~
>`.pickRestart({
  A: "[c4,a4,c5] ~ [a3,e4] [c4,e4,a4] ~ [e4,a4,c5] ~ [c4,f4,a4] ~ [a3,c4,f4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]", // F A5 Am F
  B: "[e4,g4,c5] ~ [g3,c4,e4] [c4,e4,g4] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [g3,b3,d4] ~ [b3,d4,g4] ~ [d4,g4,b4] ~@2", // C G
})).s("gm_vibraphone").gain(0.19).pan(0.3)

// other · clavinet · "SYNTH 1"
const clavinet = note(`<
  ~@14 A B C B A B C B ~@4 A B C B A B C B ~@16 A B C B A B C B ~@4 A B C B A B C B ~@36
>`.pickRestart({
  A: "~@12 c6 b5 a5 g5", B: "a5@3 ~@13", C: "~@12 c6 b5 ~@2",
})).s("gm_clavinet").gain(0.22).pan(0.4)

// other · clavinet · "SYNTH 2"
const clavinet_2 = note(`<
  ~@49 A B A B A B A B ~@4 A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "a4@3 ~ a4@3 f4@2 ~ f4@2 ~ f4@2 ~", B: "c5@3 ~ c5@3 g4@2 ~ g4@2 c5 b4 a4 g4",
})).s("gm_clavinet").gain(0.22).pan(0.6)

// chords · acoustic guitar steel · "AC.GUITAR"
const acoustic_guitar_steel = note(`<
  ~@9 A B A B ~@8 A B A B ~@8 A B A B A B A B A B A B A B A B ~@8 A B A B ~@20 A B A B A B A B A B A B A B A B A B A B A
  B A B ~
>`.pickRestart({
  A: "~@4 a3 ~@7 f3@4, a2 f2, ~ e3@3 ~ c3@3, ~@3 a3@2 ~@3", B: "~@4 c4 ~@7 g3@4, c3 g2, ~ g3@3 ~ d3@3, ~@3 c4@2 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.7)

// other · brass section · "BRASS"
const brass_section = note(`<
  ~ A B A C A B A C ~@16 D E F E F E F ~@5 A B A C A B A C ~@16 D E F E F E F ~@9 D E F G A B A C A B A C A B A C A B A
  C ~@9
>`.pickRestart({
  A: "[c4,c5] ~ [c4,c5]!4 ~ [c4,c5] ~ [c4,c5] ~ [c4,c5] [b3,b4] ~ [a3,a4] ~", // C B A
  B: "[g3,g4] ~ [c4,c5]!4 ~ [b3,b4] ~ [b3,b4] ~ [b3,b4] [c4,c5] ~ [b3,b4] ~", // G C B C B
  C: "[c4,c5]@3 [d4,d5]@3 [e4,e5]@2 [d4,d5]@3 [c4,c5]@3 [b3,b4]@2", D: "[a3,a4]@2 ~@10 [a3,a4]!3 [g3,g4]",
  E: "~@12 [g3,g4]!3 [a3,a4]", F: "~@12 [a3,a4]!3 [g3,g4]", G: "~@12 [g3,g4]!3 ~",
})).s("gm_brass_section").gain(0.28).pan(0.4)

// other · alto sax · "SAX"
const alto_sax = note("<~@69 A B@2 C ~@33>".pickRestart({
  A: "c5@3 a4 ~@4 c5@3 a4 ~@4", B: "[g4 ~ g4 ~ g4!2 a4 ~ c5@3 a4 ~ a4 ~ a4@3 c5 ~@3 a4 ~ c5@3 a4 ~@4]/2",
  C: "g4 ~ g4 ~ g4@2 c5 ~ e5@8",
})).s("gm_alto_sax").gain(0.25).pan(0.6)

// other · accordion
const accordion = note("<~@21 A B A B ~@20 A B A B ~@8 A B A B ~@36 A B A B A B A B ~>".pickRestart({
  A: "[a3,a4]@2 [a3,a4] ~ [a3,a4] [b3,b4] [a3,a4] [b3,b4] [c4,c5]@2 [c4,c5] ~ [c4,c5] [d4,d5] [c4,c5] [d4,d5]", // A B A B C D C D
  B: "[e4,e5]@2 [e4,e5] ~ [e4,e5] [d4,d5] [c4,c5]@2 [d4,d5] [e4,e5] [d4,d5] [c4,c5] [b3,b4]@2 [g3,g4]@2", // E D C D E D C B …
})).s("gm_accordion").gain(0.24)

// other · piccolo · "FLUTE"
const piccolo = note("<A B@3 A B@3 A ~@64 B@3 A B@3 A ~@25>".pickRestart({
  A: "a5@2 c6@2 e6@2 a6@2 ~ a6@7", B: "a5!2 ~ a5 ~ a5 ~ a5 c6@2 a5 ~@5",
})).s("gm_piccolo").gain(0.22)

// chords · synth strings 2 · "PAD"
const synth_strings_2 = note("<~@13 A@48 ~@12 A@32 ~>".pickRestart({
  A: "[e4 f3 e3 [b3,d4], c4@3 ~, a3 g3]/2", // Bm
})).s("gm_synth_strings_2").gain(0.15)

// drums · kick
const kick = s("bd").struct(`<
  A ~@3 B C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C
  D C D C D C D C D ~@3 B C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D ~
>`.pickRestart({
  A: "x!2 ~ x!4 ~ x ~@7", B: "~@7 x", C: "x!4", D: "x ~ x ~ x ~ x!2",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  A ~@7 B ~@3 B ~@7 B ~@3 B ~@7 B ~@3 B ~@7 B ~@3 B ~@7 B ~@3 B ~@7 B ~@11 B ~@7 B ~@3 B ~@3 B ~@3 B ~@3 B ~
>`.pickRestart({
  A: "x!3 ~ x!3 ~ x ~@2 x!2 ~@3", B: "~@4 x!12",
})).gain(0.25)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  A B ~@6 C ~@3 C ~@7 C ~@3 C ~@7 C ~@3 C ~@7 C ~@3 C ~@7 C ~@3 C ~@7 C ~@11 C ~@7 C ~@3 C ~@3 C ~@3 C ~@3 C ~
>`.pickRestart({
  A: "~@12 x!4", B: "x", C: "x!4 ~@12",
})).gain(0.1)

// drums · clap
const clap = s("cp").struct("<~@9 [~ x ~ x]!60 ~@4 [~ x ~ x]!32 ~>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~ [x!2 ~@5 x!3 ~@6]!104 ~>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A B A B A B A B ~@60 A B A B ~@33>".pickRestart({
  A: "~@8 x ~@2 x ~ x ~@2", B: "~@8 x ~@2 x ~@2 x ~",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct("<~ [~ x ~@3 x ~@2]!104 ~>").gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~ [x ~@2 x ~@12]!8 ~@60 [x ~@2 x ~@12]!4 ~@33>").gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@13 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@3 A ~@11 A ~@7 A ~@7 A ~@3 A ~@3 A ~@3 A ~@4
>`.pickRestart({
  A: "x",
})).gain(0.45)

stack(
  bass, vibraphone, clavinet, clavinet_2, acoustic_guitar_steel, brass_section, alto_sax, accordion, piccolo,
  synth_strings_2, kick, snare, snare_soft, clap, hihat, mid_tom, open_hat, high_tom, crash
)

More by 883