0:00/0:00
// Fatti mandare dalla mamma — Morandi
// 79 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 44 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(79/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 · electric bass finger
const bass = note("<~@5 A B C D E F C G H I J K L F C G M N O B C D E F C G H I J K L F C G M N M N P>".pickRestart({
A: "~@5 a1 b1 c#2 d2 ~@7", B: "d2@3 f#2@3 a2@2 g1@3 b1@3 d2@2", C: "a1@3 e2@2 a1 b1 c#2 d2@4 f#1@4",
D: "b1 f#1 e1 b1", E: "a1@3 e2@2 a1 b1 c#2 d2 ~@7", F: "d2@3 f#2@3 a2 f#2 g1@3 b1@3 d2@2", G: "b1 f#1 g1 a1",
H: "d2!6 c#2 b1 f#1@3 a#1@3 c#2@2", I: "b1@3 d2@3 f#2@2 f#1@3 a#1@3 c#2@2", J: "b1@3 d2@3 f#2@2 e1@3 g#1@3 b1@2",
K: "a1@3 e2@3 a1@2 e1@3 g#1@3 b1@2", L: "a2!2 g2!2 f#2!2 e2!2 d2 ~@7", M: "d2@3 d2 b1@2 ~ b1 e2@3 e2 a1@2 ~ a1",
N: "d2@2 ~ d2 b1@2 ~ b1 e2@2 ~ e2 a1@3 ~", O: "a1!9 ~@7", P: "~ d2!4 d1!4 ~@7",
})).s("gm_electric_bass_finger").gain(0.49)
// chords · piano
const piano = note("<~@5 A B C D E F G H I J K L M F G H N O P B C D E F G H I J K L M F G H N O N O Q>".pickRestart({
A: "~@5 [a2,a4] [b2,b4] [c#3,c#5] [d3,d5] ~@7", B: "[a4,d5,f#5] a4 [a4,d5,f#5]!6 [b4,d5,g5] [b4,d5] [b4,d5,g5]!6",
C: "[a4,c#5,e5] [a4,e5] [a4,c#5,e5] [a4,c#5,a5] [a4,c#5] [a4,c#5,e5]!3 [a4,d5,f#5]!4 [a#4,c#5,f#5]!3 [a#4,c#5]", // A A5 A D F# A#m
D: "[b4,d5,f#5] [b4,d5] [b4,d5,f#5]!2 [a4,c#5,f#5]!4 [g#4,b4,e5]!4 [g#4,b4] [b4,e5] [g#4,b4,e5] [g#4,b4]", // Bm F#m E G#m E5 E G#m
E: "[a4,c#5,e5]!4 ~ [a4,a5] [b4,b5] [c#5,c#6] [d5,d6] ~@7", // A B C# D
F: "[a4,d5,f#5] [a4,d5] [a4,d5,f#5]!6 [b4,d5,g5] [b4,d5] [b4,d5,g5]!6", // D D5 D G Bm G
G: "[a4,c#5,e5] [a4,e5] [a4,c#5,e5]!6 [a4,d5,f#5] [a4,d5] [a4,d5,f#5]!2 [a#4,c#5,f#5]!4", // A A5 A D D5 D F#
H: "[b4,d5,f#5]!4 [a4,c#5,f#5]!3 [c#5,f#5] [g4,b4,d5] [b4,d5] [g4,b4,d5]!2 [a4,c#5,e5]!4", // Bm F#m F#5 G Bm G A
I: "[a4,d5,f#5] [d5,f#5] [a4,d5,f#5]!6 a#3@2 ~ a#3@2 ~ [a#3,c#4]@2, ~ [f#2,e4,f#4], ~@4 c#4@3 ~, ~@10 f#3@2 ~ f#3@3", // D A#m F#7
J: "b3@2 ~ b3@2 ~ b2@2 a#3@2 ~ a#3@2 ~@2 b3, [d4,f#4]@5 [b3,d4,f#4]@3 [c#4,e4,f#4]@5 [a#3,c#4,e4,f#4]@3, b2 ~ b2@4 ~@2 f#2@8, ~@5 f#3@2 f#3", // D Bm F#7
K: "b3@2 ~@2 d4 ~ b2@2 ~@7 a3, [d4,f#4]@5 ~@5 e3@3 [b3,d4,g#4]@3, b2 ~ b2@4 ~@2 [g#2,b3]@4 g#2@4, ~@3 b3@2 [b3,d4,f#4]@3 [g#3,e4]@8, ~@7 e3", // D G#dim G#m Bm C#m
L: "[a3,c#4]@2 ~@5 g#2 g#3@2 ~@2 b3 ~ e3@2, e4@3 [a2,c#4] [g#2,d4]@4, a2@2 e3@2 ~ e3@2 ~, ~@2 e3 [a3,c#4]@2 a3@3 [b3,e4]@5 ~@3, ~@3 a4@5 ~@3 g#3@2 [g#3,b3,e4]@3", // A G#dim A E5 E
M: "[a5,a6]!2 [g5,g6]!2 [f#5,f#6]!2 [e5,e6]!2 [d3,a3,d4,d5,d6] ~@7, [a2,e3,g3]@7 ~@9", // A G F# E D5 A7
N: "[a4,d5,f#5] [a4,d5] [a4,d5,f#5]!2 [a4,b4,d5,f#5] [a4,b4,d5] [a4,b4,d5,f#5] [a4,b4,f#5] [b4,d5,g5]!4 [a4,c#5,e5] a4 [a4,c#5,e5] [a4,e5]", // D D5 D Bm7 B7 G A A5
O: "[a4,d5] [a4,d5,f#5]!3 [a4,b4,d5,f#5]!4 [b4,d5,g5]!3 [b4,d5] [a4,e5]!3 e5", P: "~ [a4,a5]!4 [a4,e5,a5]!4 ~@7",
Q: "~ [d4,a4]!4 [d4,a4,d5] [d4,a4] [d4,a4,d5]!2 ~@7, [d2,d3]@5 ~@11", // D5 D
})).s("gm_piano").gain(0.27).pan(0.4)
// chords · piano · soft notes
const piano_soft = note(`<
~@6 A B C D E F G H I J ~@2 E F G K L ~ A B C D E F G H I J ~@2 E F G K L K L M
>`.pickRestart({
A: "~ [d5,f#5] ~@14", B: "~ c#5 ~@13 f#5", C: "~ f#5 ~@10 e5 g#4 ~ e5", D: "~@4 [a4,c#5] ~@11", E: "~ f#5 ~@7 g5 ~@6",
F: "~ c#5 ~@7 f#5 ~@6", G: "~@7 a4 ~ g4 ~@6", H: "~ a4 ~@10 f#3 ~@3", I: "~@7 a#3 ~@4 c#4 ~@3",
J: "~@7 [g#2,g#3] ~@8", K: "~ f#5 ~@3 f#5 ~ d5 ~@5 [c#5,e5] ~ c#5", L: "f#5 ~@10 g5 ~@3 a4", M: "~@6 d5 ~@9",
})).s("gm_piano").gain(0.13).pan(0.4)
// other · vibraphone
const vibraphone = note("<~ A@3 B@2 C D E F G H I J K L M F G D I N O ~@8 P K L M F G H I N O ~@3>".pickRestart({
A: "[~@3 a4!2 g4 f#4 ~ f#4@2 f#4@9 a4 b4 f#4 ~ f#4 f#4@2 f#4@8 ~ f#4!2 e4 d4 ~ d4@2 d4@5 ~]/3",
B: "[~ d4!2 ~@2 e4 f#4 ~ f#4@2 e4@10 ~@5 a4!3 d5!2 a4!2, ~@4 d4@2 ~@2 e4 ~@23]/2",
C: "d5@3 d5@5 ~@2 b4 b4@2 c#5 d5@2", D: "c#5@2 b4 a4@4 ~@2 f#5 ~ f#5 e5 ~ e5@2",
E: "~ d5 ~ d5 c#5 ~ c#5@3 ~ b4!3 c#5 d5 ~", F: "f#5@3 e5@4 ~@2 a4!3 d5!2 a4!2", G: "d5@3 d5@4 ~@3 b4 b4@2 c#5 d5@2",
H: "c#5@2 b4 a4@4 ~@2 f#5 ~ f#5 e5@2 e5@2", I: "~ d5 ~ d5 c#5 ~ c#5@2 ~@2 b4!2 c#5 d5 e5 ~",
J: "f#5@2 e5 d5@4 ~@3 c#5 f#5@2 e5 f#5@2", K: "d5@3 d5@5 ~@2 c#5 f#5@2 e5 f#5@2", L: "d5@3 d5@4 ~@3 b4 e5@2 d5 e5@2",
M: "c#5@3 c#5@5 ~@2 b4 b4@2 c#5 d5@2", N: "f#5@2 e5 d5@5 ~ b4 ~ b4 c#5 d5 e5 ~", O: "f#5@2 e5 d5@4 ~@9",
P: "~@10 c#5 f#5@2 e5 f#5@2",
})).s("gm_vibraphone").gain(0.3)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A@6 ~@38>".pickRestart({
A: "[~@16 f#4@15 ~@17 [b3,f#4]@23 ~ [g3,b3,d4,e4]@16 ~@8, ~@15 d3@17 [d4,f#4]@17 ~@47, ~@15 [a3,d4]@16 [b2,a3]@18 ~@22 a2@17 ~@8, ~@31 b3@16 [e2,g#3]@26 ~@23]/6", // B5 Em7 D D5 B7 E
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.6)
// chords · synth strings 1
const synth_strings_1 = note("<~@13 A B C@2 D ~@13 A B C@2 D ~@8>".pickRestart({
A: "~ [e4,f#4,a#4,c#5]", B: "[f#4,b4,d5] [e4,a#4,c#5]",
C: "[[f#4,b4,d5]@7 ~ [g#4,b4,d5]@8 [a4,c#5]@8 [g#4,b4,d5]@8, ~ e5@2 ~]/2", D: "e5@7 ~ d5 ~@7",
})).s("gm_synth_strings_1").gain(0.25).pan(0.4)
// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note("<~@14 A ~@2 B ~@14 A ~@2 B ~@8>".pickRestart({
A: "~@10 f#4@5 ~", B: "[a4,c#5]@9 ~@7",
})).s("gm_synth_strings_1").gain(0.12).pan(0.4)
// drums · kick
const kick = s("bd").struct("<~@6 A B C D E F C G E@3 D E F C@3 H A B C D E F C G E@3 D E F C@5 H>".pickRestart({
A: "x ~@2 x ~ x ~ x!2 ~@2 x!2 ~@3", B: "x ~@2 x ~ x ~@2 x ~@3 x ~@3", C: "x!4", D: "x",
E: "x ~@3 x ~@3 x ~@2 x ~ x ~@2", F: "x ~ x!2", G: "x ~@7 x ~@2 x ~ x ~@2", H: "x ~@2 x!2 ~@11",
})).gain(0.54)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@10 A ~@7 A ~@2 B@2 C ~@4 A ~@7 A ~@2 B@4 C>".pickRestart({
A: "~@3 x ~@12", B: "~@3 x ~@7 x ~@4", C: "~ x!2 ~@13",
})).gain(0.34)
// drums · snare
const snare = s("sd").struct("<~@5 A B@3 C B@3 D B@3 E B@5 A B@3 C B@3 D B@3 E B@4 F B@2 A>".pickRestart({
A: "~@7 x!2 ~@7", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@4 x!2 ~@7", D: "~@2 x ~@3 x!2 ~@2 x ~@3 x ~", E: "~@4 x!5 ~@7",
F: "~@2 x ~@3 x ~@3 x ~@2 x!3",
})).gain(0.54)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@5 A ~@3 A ~@3 B ~@3 C ~@5 D ~@3 A ~@3 B ~@3 C ~@7 D>".pickRestart({
A: "~@5 x!2 ~@9", B: "~@3 x!3 ~@10", C: "~ x!3 ~@12", D: "~ x!6 ~@9",
})).gain(0.27)
// drums · low tom
const low_tom = s("lt").struct("<~@5 A ~@3 A ~@3 B ~@3 C ~@5 A ~@3 A ~@3 B ~@3 C ~@7 A>".pickRestart({
A: "~@5 x!4 ~@7", B: "~@3 x!5 ~@8", C: "~ x!8 ~@7",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct(`<
~@6 A B C D A E C F G@3 ~ A E C A C ~ A B C D A E C F G@3 ~ A E C A H A C ~
>`.pickRestart({
A: "~@2 x!14", B: "x!8 ~ x!7", C: "x!16", D: "x!2 ~@14", E: "x!7 ~ x!8", F: "x!2 ~@8 x ~@3 x ~", G: "~ x ~ x ~ x ~ x",
H: "x!13 ~@3",
})).gain(0.27)
// drums · open hat
const open_hat = s("oh").struct("<~@9 A ~ B ~@7 B ~@7 A ~ B ~@7 B ~@6>".pickRestart({
A: "~ x ~@6", B: "~@7 x ~@8",
})).gain(0.34)
// drums · crash
const crash = s("cr").struct(`<
~@6 A B ~@2 A ~@2 C ~@3 A@2 ~@2 A ~@2 A B ~@2 A ~@2 C ~@3 A@2 ~@2 A ~ A ~@2
>`.pickRestart({
A: "x", B: "~ x", C: "~ x ~@2 x ~@3",
})).gain(0.34)
// drums · ride bell
const ride_bell = s("rd").struct("<~@13 [~@5 x!3] [x!8]!3 ~@14 [~@5 x!3] [x!8]!3 ~@9>").gain(0.27)
// drums · tambourine
const tambourine = s("tb").struct("<~@13 [~@5 x ~ x] [~ x ~ x ~ x ~ x]!3 ~@14 [~@5 x ~ x] [~ x ~ x ~ x ~ x]!3 ~@9>")
.gain(0.48)
stack(
bass, piano, piano_soft, vibraphone, acoustic_guitar_steel, synth_strings_1, synth_strings_1_soft, kick, kick_soft,
snare, snare_soft, low_tom, hihat, open_hat, crash, ride_bell, tambourine
)
More by Morandi
Andavo a cento all'oraC minor · 170 bpmBanane e lamponiD minor · 93 bpmC'era un ragazzoF major · 124 bpmC'era un ragazzo che come me amava i Beatles e i Rolling StonesF major · 124 bpmDove va a finire il mio affettoF♯ minor · 122 bpmIn ginocchio da teE♭ major · 108 bpmOcchi di ragazzaE♭ major · 120 bpmBanane e lamponeD minor · 92 bpm
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.