Strudelify
Mare Mare cover art

Fisico & Politico

Mare Mare

Carboni

KeyF majorTempo88 bpm
0:00/0:00
// Mare Mare — Carboni
// 88 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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 · epiano2 · "PIANO"
const epiano2 = note(`<
  A B C D E F C G H@2 I@2 A B C D E F C G H@2 I@2 A B C D E F C G H@2 I@2 ~@2 J K L M J N L O P N Q M H@2 I@2 ~ B C D A
  B C D E F C G H@2 I@2 ~@2 J K L M J N L O P N Q M J K L M J N L O P N Q M J K L M J N L O P N Q M R
>`.pickRestart({
  A: "[d2,d3,a3,d4,f4]@15 ~", B: "[bb2,f3,a3,d4]", C: "[a3,c4,e4]@7 ~, [a2,g3]", D: "[f3,g3,bb3,d4]@7 ~, g2",
  E: "[d3,a3,d4,f4]@15 ~", F: "[bb2,f3,a3,d4]@15 ~", G: "[g2,f3,g3,bb3,d4]@3 ~",
  H: "[[a3,d4]@2 ~@3 [d4,f4] ~ [d4,f4] [c4,e4] e4 g3 ~ [e3,a3] ~ f4 a3@2 ~@4 [d4,f4] ~ [d4,f4] [c4,e4] [e4,g4]@4 ~ [d4,f4]@2, ~@9 c4@2 ~@3 d4@3 ~@15]/2", // D5 Dm C A5 Dm C Em Dm
  I: "[[a3,d4]@2 ~@3 [d4,f4] ~ [d4,f4] [c4,e4]!2 [a3,c4] ~ [e3,a3] ~ f4 a3@3 ~@3 [d4,f4] ~ [d4,f4] [c4,e4] [e4,g4]@7, ~@7 d4@2 ~@7]/2", // D5 Dm C Am A5 Dm C Em
  J: "[f2,f3,c4]@15 ~", K: "[bb2,f3,c4,d4]", L: "[c3,g3,d4,e4]@15 ~", M: "[a2,a3,c4,e4]@15 ~", N: "[bb2,f3,c4,d4]@15 ~",
  O: "[a2,a3,c4,e4]", P: "[f2,f3,c4]", Q: "[c3,g3,e4]@15 ~",
  R: "[c4,f4,c5] ~ [d4,c5] ~ [f4,c5]@2 d4 [c4,f4,c5] ~@8, ~@4 c4 ~@11", // F5 D7 F5
})).s("gm_epiano2").gain(0.28)

// bass · synth bass 2 · "BASSO"
const bass = note(`<
  A B C D E F C G H I H J A B C D E F C G H I H J A B C D E F C G H I H J K L M N O P Q N R S T N O U H I H J V B C D A
  B C D E F C G H I H J K L M N O P Q N R S T N O U M N O P Q N R S T N O U M N O P Q N R S T N O U W
>`.pickRestart({
  A: "d2@3 ~@4 d2 ~@2 d2@2 ~@4", B: "bb1@4 ~@3 bb1 ~@2 bb1@2 ~@2 bb1@2", C: "a1@4 ~@3 a1 ~@2 a1@2 ~@2 a1@2",
  D: "g1@3 ~@4 g1 ~@2 g1@2 ~@2 c2@2", E: "d2@2 ~@5 d2 ~@2 d2@2 ~@2 d2@2", F: "bb1@3 ~@4 bb1 ~@2 bb1@2 ~@2 bb1@2",
  G: "g1@4 ~@3 g1 ~@2 g1@2 c2@3 ~", H: "d2@2 ~@5 c2 ~@2 c2@2 ~@4", I: "d2@2 ~@5 e2 ~@2 e2@2 ~@4",
  J: "d2@2 ~@5 e2@2 ~ e2@2 ~@2 e2@2", K: "e2@2 ~ e2@2 ~ e2 ~ e2@2 ~ e2@2 ~ e2 ~",
  L: "e2@2 ~ e2@2 ~ e2@2 ~ f1 g1 a1 c2 a1 g1 gb1", M: "f1@6 c2 f1 c2 f1!2 ~@2 c2 f1!2",
  N: "bb1@6 ~ bb1 ~ bb1!2 ~@3 bb1!2", O: "c2@6 ~ c2 ~ c2!2 ~@3 c2!2", P: "a1@6 ~ a1 ~ a1!2 ~ a1!3 ~",
  Q: "f1@6 c2 f1 c2 f1!2 ~@3 c2 f1", R: "c2@5 ~@2 c2 ~ c2!2 ~@3 a1 c2", S: "a1@6 ~ a1 ~ a1 a1@2 ~@2 a1 c2",
  T: "f1@6 ~ f1 ~ f1!2 ~@3 f1!2", U: "a1@6 ~ a1 ~ a1!2 ~ a1 ~ a1 c2", V: "d1@13 ~@3", W: "f1 ~ d1 ~ f1@2 d1 f1 ~@8",
})).s("gm_synth_bass_2").gain(0.56)

// chords · trumpet · "TROMBA"
const trumpet = note(`<
  A B C@2 A D@3 E F G@2 ~@7 H E F G@2 ~@3 I J ~@2 H E F G@2 ~@14 E F G@2 ~@9 K@2 H E F G@2 ~@10 L@3 ~@5 M@2 N ~ M@2 N ~
  M@2 N ~ M@2 N ~ M@2 N ~ O
>`.pickRestart({
  A: "~@4 d4 e4 ~ f4 ~ g4 ~ a4 ~ d5@2 ~", B: "a4@3 g4@9 ~@4, g4 ~@15",
  C: "[~@4 a4!2 ~ d5@3 c5 a4 ~ ab4 ~ g4@3 f4@8 ~ d4@4 ~]/2",
  D: "[a4@3 g4@6 ~@4 d5 a4 c5@5 a4!2 ~ d5@3 c5 a4 ~ ab4 ~ g4@3 f4@6 ~@4 [d4,f4]@3 [a3,d4], g4 ~@47]/3", // Dm D5
  E: "~@5 [d4,f4] ~ [d4,f4] [c4,e4]!2 [a3,c4] ~ [e3,a3] ~ [d4,f4] [a3,d4]", // Dm C Am A5 Dm D5
  F: "~@5 [d4,f4] ~ [d4,f4] [c4,e4] [e4,g4]@5 [d4,f4]@2", // Dm C Em Dm
  G: "[a3@2 ~@3 [d4,f4] ~ [d4,f4] [c4,e4]!2 [a3,c4] ~ [e3,a3] ~ [c4,e4] [a3,d4]@2 ~@4 [d4,f4] ~ [d4,f4] [c4,e4] [e4,g4]@6 ~, d4 ~@31]/2", // Dm C Am A5 C D5 Dm C …
  H: "~@12 [d4,f4]@3 [a3,d4]", I: "~@4 ab4@4 g4 f4 ~ a3 c4 f4 ~@2", J: "d4 ~",
  K: "[~@5 d5 ~ d5 ~ d5 ~ d5 ~ a4 ~ c5@3 a4 ~@13]/2",
  L: "[~@11 a4 ~ c5 ~ d5@3 c5 d5 ~ c5 ~ d5@3 c5 d5 ~ c5 ~ g4@4 ~@13]/3",
  M: "f4 ~ d4 ~ f4 ~@2 f4 ~ c4 d4 f4 ab4 a4 ab4 a4", N: "e4 ~ c4 ~ e4 ~@2 e4 ~@8",
  O: "[f4,f5] ~ [d4,d5] ~ [f4,f5] [g4,g5] [ab4,ab5] [a4,a5] ~@8", // F D F G Ab A
})).s("gm_trumpet").gain(0.48)

// chords · lead 3 calliope · "SYN.CALLIO"
const lead_3_calliope = note(`<
  A@2 B C D@2 B E ~@4 F@2 G H I@2 G J ~@4 F@2 G H I@2 G J ~@4 K@2 ~@16 F@2 G H F@2 G H L@2 G J M@4 K@2 ~@37
>`.pickRestart({
  A: "[[d4,f4]@31 ~]/2", B: "[c4,e4]", C: "[bb3,d4]@13 ~@3", D: "[d4,f4]/2", E: "[bb3,d4]@3 [c4,e4]",
  F: "[a3@15 ~ bb3@15 ~, [d4,f4]@31 ~]/2", G: "[g3,c4,e4]", H: "[g3,bb3,d4]@13 ~@3", I: "[a3@15 ~ bb3@16, [d4,f4]]/2",
  J: "[g3,bb3,d4]@3 [g3,c4,e4]", K: "[b3,e4]/2", L: "[~ bb3, f4@31 ~]/2", M: "[d4,f4] [c4,e4]",
})).s("gm_lead_3_calliope").gain(0.18)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  A B C D A B E F G H@2 I A B C D A B E F G H@2 I A B C D A B E F G H@2 I ~@14 G H@2 I J B E D A B C D A B E F G H@2 I
  ~@39
>`.pickRestart({
  A: "d3 ~ [d4,f4] d3 ~ [d4,f4] d3 ~@2 d3 ~ [d4,f4] ~@2 [d4,f4] ~", // Dm
  B: "bb2@2 [d4,f4] bb2 ~ [d4,f4] bb2 ~@2 bb2 ~ [d4,f4] ~@2 [d4,f4] ~", // Dm
  C: "a2@2 [c4,d4,e4] a2 ~ [c4,e4] a2 ~@2 a2 ~ [c4,e4] ~@2 [c4,e4] ~", // C
  D: "g2@2 [bb3,d4] g2 ~ [bb3,d4] g2 ~@4 [c4,e4] ~@2 [c4,e4] ~", // Bb C
  E: "a2@2 [c4,e4] a2 ~ [c4,e4] a2 ~@2 a2 ~ [c4,e4] ~@2 [c4,e4] ~", // C
  F: "g2 ~ [bb3,d4] g2 ~ [bb3,d4] g2 ~@4 [c4,e4] ~@2 [c4,e4] ~", G: "~@3 [d4,e4,f4] ~@3 [c4,e4] ~@3 [c4,e4] ~@4",
  H: "d3 ~ [d4,f4] d3 ~ [d4,f4] ~@5 [c4,e4] ~@2 [c4,e4] ~", I: "d3 ~ [d4,f4] d3 ~ [d4,f4] ~@4 c3 [c4,e4] ~@2 [c4,e4] ~",
  J: "[d2,d3] ~@3", // D
})).s("gm_pizzicato_strings").gain(0.29)

// other · glockenspiel · "CAMPANELLI"
const glockenspiel = note(`<
  ~@25 A@2 ~@2 B@2 ~@13 C D ~@2 E F ~@5 G H ~@2 I@2 ~ J ~@15 C D ~@2 E F ~@2 K L ~@2 C D ~@2 E F ~@2 K L ~@2 C D ~@2 E F
  ~
>`.pickRestart({
  A: "[~@2 g5 ~, ~@3 a5@3 ~@2, ~@13 f5@11 ~@8]/2", B: "[~@7 f5@2 ~ f5@2 a5 ~@2 g5@10 ~@7, ~@13 f5@7 ~@12]/2",
  C: "~@5 g4 g5 g4 f5 g4 e5 g4 d5 g4 c5 g4", D: "a4 ~@7", E: "~@4 c5 ~ a5 ~ g5 ~ f5 ~ e5 ~ d5 ~", F: "c5 ~@15",
  G: "~@12 a5 f5@3", H: "[a4,e5,g5]@9 ~@7", I: "[~@7 f5@2 ~ f5@2 a5 f5@2 [a4,e5,g5]@12 ~@5]/2", J: "[a4,d5,f5] ~@3",
  K: "~@5 a4 a5 a4 g5 a4 f5 a4 e5 ~ d5@2", L: "a4 ~@3",
})).s("gm_glockenspiel").gain(0.13)

// chords · distortion guitar · "HEAVY"
const distortion_guitar = note(`<
  ~@36 A@2 B C D E B C F E G C F E ~@20 A@2 B C D E B C F E G C F E B C D E B C F E G C F E B C D E B C F E G C F E H
>`.pickRestart({
  A: "[e3,b3]", B: "[f2,c3]@15 ~", C: "[bb2,f3]@15 ~", D: "[c3,g3]", E: "[a2,e3]@15 ~", F: "[c3,g3]@15 ~", G: "[f2,c3]",
  H: "f4 ~ d4 ~ f4 ~@2 f4 ~@8",
})).s("gm_distortion_guitar").gain(0.48).pan(0.4)

// chords · string ensemble 1 · "ARCHI"
const string_ensemble_1 = note(`<
  ~@36 A@2 B@2 C D E@2 F@2 B@2 G@2 ~@20 A@2 B@2 C D E@2 F@2 B@2 G@2 B@2 C D E@2 F@2 B@2 G@2 B@2 C D E@2 F@2 B@2 G@2 ~
>`.pickRestart({
  A: "[[a4,b4,e5]@31 ~]/2", B: "[[a4,c5] [bb4,d5], f5]/2", C: "[c5,e5,g5]@15 ~", D: "[a4,c5,e5]",
  E: "[[a4,c5]@16 d5@9 d5@7, f5, ~@16 bb4@15 ~]/2", F: "[g5@16 a4@15 ~, [c5,e5]]/2", G: "[g5 a4, [c5,e5]]/2",
})).s("gm_string_ensemble_1").gain(0.36)

// other · tenor sax
const tenor_sax = note("<~@88 A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ C>".pickRestart({
  A: "f3 ~ d3 ~ f3 ~@2 f3 ~ c3 d3 f3 ab3 a3 ab3 a3", B: "e3 ~ c3 ~ e3 ~@2 e3 ~@8",
  C: "f3 ~ d3 ~ [a3,f4] [bb3,g4] [b3,ab4] c4@2 ~@7, ~@7 a4 ~@8", // Dm Eb E
})).s("gm_tenor_sax").gain(0.24).pan(0.2)

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

// drums · rim
const rim = s("rim").struct("<[~@3 x ~ x ~@2 x ~@2 x ~ x ~@2]!108 [~@3 x ~ x ~@10]>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<A@37 B C@12 A@4 ~ A@16 B C@36 D>".pickRestart({
  A: "~@4 x ~@7 x ~@2 x", B: "~@4 x ~@2 x!2 ~@3 x ~@2 x", C: "~@3 x!2 ~@6 x!2 ~@2 x", D: "~@3 x!2 ~@11",
})).gain(0.56)

// drums · clap
const clap = s("cp").struct("<~@38 [~@3 x ~@7 x ~@4]!12 ~@22 [~@3 x ~@7 x ~@4]!36 [~@3 x ~@12]>").gain(0.56)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@37 A ~@3 B ~@3 C ~@3 D ~@21 A ~@3 B ~@3 C ~@3 D ~@3 B ~@3 C ~@3 D ~@3 B ~@3 C ~@3 D ~
>`.pickRestart({
  A: "~@5 x!2 ~@2 x ~ x!5", B: "~@10 x!6", C: "~@8 x ~@2 x!5", D: "~@3 x ~@2 x ~@2 x ~ x!5",
})).gain(0.4)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@41 A ~@33 A ~@11 A ~@11 A ~@9>".pickRestart({
  A: "~@7 x ~ x ~@6",
})).gain(0.24)

// drums · hihat
const hihat = s("hh").struct("<[x!2 ~ x!13]!108 [x!2 ~ x!5 ~@8]>").gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@41 A ~@3 B ~@3 C ~@25 A ~@3 B ~@3 C ~@3 A ~@3 B ~@3 C ~@3 A ~@3 B ~@3 C ~
>`.pickRestart({
  A: "~@10 x!6", B: "~@7 x ~ x ~@3 x!3", C: "~ x!2 ~@3 x ~@2 x ~ x!5",
})).gain(0.48)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@41 A ~@33 A ~@11 A ~@11 A ~@9>".pickRestart({
  A: "~@7 x ~ x ~@6",
})).gain(0.24)

// drums · open hat
const open_hat = s("oh").struct("~ x ~@6").gain(0.32)

// drums · ride
const ride = s("rd").struct(`<
  ~@36 A@2 B C@3 B C@3 B C@3 ~@20 A@2 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 ~
>`.pickRestart({
  A: "x!4", B: "~ x!7", C: "x!8",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  ~@38 A ~@3 A ~@3 A ~@25 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 B
>`.pickRestart({
  A: "x", B: "~@7 x ~@8",
})).gain(0.56)

// drums · shaker
const shaker = s("sh").struct(`<
  A B C D E A F G H@2 I J A B C D E A F G H@2 I J A B C D E A F G H@2 I J ~@2 A B C D E A F G H@2 I J H@2 I J A B C D A
  B C D E A F G H@2 I J ~@2 A B C D E A F G H@2 I J A B C D E A F G H@2 I J A B C D E A F G H@2 I J K
>`.pickRestart({
  A: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", B: "x!3 ~ x ~ x ~ x ~ x ~ x!4", C: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~",
  D: "x!3 ~ x!3 ~ x ~ x ~ x ~ x ~", E: "x!3 ~ x ~ x ~ x ~ x ~ x!3 ~", F: "x ~ x ~ x!12", G: "x!7 ~ x!8", H: "x!16",
  I: "x!13 ~ x!2", J: "x!3 ~ x!3 ~ x!8", K: "x!4 ~@4",
})).gain(0.24)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct(`<
  A B C D E A F G ~@2 H I A B C D E A F G ~@2 H I A B C D E A F G ~@2 H I ~@2 A B C D E A F G ~@2 H I ~@2 H I A B C D A
  B C D E A F G ~@2 H I ~@2 A B C D E A F G ~@2 H I A B C D E A F G ~@2 H I A B C D E A F G ~@2 H I J
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", B: "~@3 x ~ x ~ x ~ x ~ x ~@4", C: "~ x ~ x ~@3 x ~ x ~ x ~@3 x",
  D: "~@3 x ~@3 x ~ x ~ x ~ x ~ x", E: "~@3 x ~ x ~ x ~ x ~ x ~@3 x", F: "~ x ~ x ~@12", G: "~@7 x ~@8",
  H: "~@13 x ~@2", I: "~@3 x ~@3 x ~@8", J: "~ x ~ x ~ x ~ x ~@8",
})).gain(0.16)

stack(
  epiano2, bass, trumpet, lead_3_calliope, pizzicato_strings, glockenspiel, distortion_guitar, string_ensemble_1,
  tenor_sax, kick, rim, snare, clap, low_tom, low_tom_soft, hihat, mid_tom, mid_tom_soft, open_hat, ride, crash, shaker,
  shaker_soft
)

More by Carboni