0:00/0:00
// Ti Amo — Howard Carpendale
// 92 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/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 · fretless bass · "FRETLESS"
const bass = note(`<
A B C D B C E F ~@12 G@3 H@3 I@3 J@3 K@3 L@3 M N O P Q R M N O P S R M N O P S R M N O P S R M N O P S T M N O P S T M
N O P S T M N O P S T M N O P S T ~@8
>`.pickRestart({
A: "~@8 a1@2 ~@2 a1 ~ a1@2", B: "~@2 a1 ~ a1@2 ~@2 a1 ~ a1@2 ~@2 a1@2", C: "f#1@2 ~@2 f#1 ~ f#1@2 ~@2 f#1 ~ f#1 ~@3",
D: "f#1 ~ f#1 ~@3 f#1 ~ a1@2 ~@2 a1 ~ a1@2", E: "f#1 ~ f#1 ~@3 f#1 ~ a1 ~@3 a1 ~ a1 ~",
F: "~@2 a1 ~ a1 ~@3 a1 ~ a1 ~@3 a1 ~", G: "[a1 f#1]/3", H: "[b1@24 e2@13 ~ e2@2 e2@4 e2@2 e2@2]/3",
I: "[a1@11 ~ a1@2 a1@10 f#2@11 ~ f#2@2 f#2@10]/3", J: "[b1@11 ~ b1@2 b1@10 e2@11 ~ e2@2 e2@4 e2@6]/3",
K: "[a1@11 ~ a1@2 a1@10 f#1@11 ~ f#1@2 f#1@10]/3", L: "[b1@11 ~ b1@2 b1@10 e2@11 ~ e2@2 e2@2 b2@2 e3@2 b2@2 e3@2]/3",
M: "a1@2 ~@2 a1 ~ a1@2 ~@2 a1 ~ a1@2 ~@2", N: "a1 ~ a1@2 ~@2 a1@2 f#1@2 ~@2 f#1 ~ f#1@2",
O: "~@2 f#1 ~ f#1 ~@3 f#1 ~ f#1 ~@3 f#1 ~", P: "b1@2 ~@2 b1 ~ b1@2 ~@2 b1 ~ b1@2 ~@2",
Q: "b1 ~ b1@2 ~@2 b1@2 e2@2 ~@2 e2 ~ e2@2", R: "~@2 e2 ~ e2@2 e3@2 f#3@2 e3@2 b2@2 e2@2",
S: "b1 ~ b1@2 ~@2 f#2@2 e2@2 ~@2 e2 ~ e2@2", T: "~@2 e2 ~ e2@2 ~@2 e2 ~ e2@2 ~@2 e2 ~",
})).s("gm_fretless_bass").gain(0.43)
// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
A@2 B C@2 B D ~@14 E ~ F G H I E ~ J K L M N O P Q R S T@2 U V R S T@2 U W X S T@2 U W X S T@2 U W X S T@2 U W Y Z
AA@2 AB W Y Z AA@2 AB W Y Z AA@2 AB W Y Z AA@2 AB W Y AC@8
>`.pickRestart({
A: "[~@8 a5 ~@5 b5@6 a5 ~@5 c#6@2 d6@2 c#6@2]/2", B: "a5 ~@5 b5@6 a5 ~@3",
C: "[~@2 c#6@2 d6@2 c#6@2 a5 ~@5 b5@6 a5 ~@5 c#6@2 d6@2 c#6@2]/2", D: "~@2 c#6@2 d6@2 c#6@2 a5 ~@7",
E: "~@8 a3 [g#3,a3] ~@6", F: "b3 [a3,b3] ~@14", G: "~@8 b3 [a3,b3] ~@6", H: "~@6 b3 ~ b3 ~@3 b3 ~ b3 ~",
I: "a3 [g#3,a3] ~@14", J: "b3 [a#3,b3] ~@14", K: "~@8 e4 [d#4,e4] ~@6", L: "~@6 e4 [d#4,e4] ~@4 e4 [d#4,e4] ~@2",
M: "a4 [g#4,a4] ~@12 a4 [g#4,a4]", N: "~@4 a4 [g#4,a4] ~@2 a4 [g#4,a4] ~@6", O: "~@6 a4 [g#4,a4] ~@4 a4 [g#4,a4] ~@2",
P: "b4 [a#4,b4] ~@12 b4 [a#4,b4]", Q: "~@4 b4 [a#4,b4] ~@2 e5 [d#5,e5] ~@6", R: "~@6 e5 [d#5,e5] ~@4 e5 [d#5,e5] ~@2",
S: "a4 ~@5 b4@6 a4 ~@3", T: "[~@2 c#5@2 d5@2 c#5@2 a4 ~@5 b4@6 a4 ~@5 c#5@2 d5@2 c#5@2]/2", U: "b4 ~@5 c#5@6 b4 ~@3",
V: "~@2 c#5@2 d5@2 c#5@2 e5 [d#5,e5] ~@6", W: "~ c#5 d5 c#5 b4 a4 b4 c#5", X: "d5 c#5 b4 a4 b4 c#5 d5 c#5",
Y: "d5@2 c#5@2 b4@2 a4@2 b4@2 c#5@2 d5@2 ~ [e5,f#5], ~@7 c#5", Z: "[g#5,a5] ~@5 b5@6 a5 ~@3, a4 ~@7",
AA: "[~@2 c#5@2 d5@2 ~ [e5,f#5] [a4,g#5,a5] ~@5 b5@6 a5 ~@5 c#5@2 d5@2 ~ [f#5,g#5], ~@3 c#5 ~@11 c#5]/2", // Esus2 Amaj7 F#sus2
AB: "[b4,a5,b5] ~@5 c#6@6 b5@2 ~@2", AC: "[g#5@61 ~@3]/8",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A@2 B@3 C@3 ~@29 D E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 E@3 F@3 ~@8
>`.pickRestart({
A: "[~@8 [e3,a3,c#4]@5 ~ [e3,a3,b3]@5 ~ [e3,a3,c#4]@6 [e3,a3,b3]@5 ~, ~@8 [a1,a2]@23 ~]/2", // A Esus4 A Esus4 A
B: "[[f#3,a3,c#4] [f#3,a3,b3] [f#3,a3,c#4] [f#3,a3,b3] [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4] [e3,a3,b3], [f#1,f#2]@23 ~ [a1,a2]@23 ~]/3", // F#m B7 F#m B7 A Esus4 A Esus4 …
C: "[[f#3,a3,c#4]@3 [f#3,a3,b3]@3 [f#3,a3,c#4]@3 [f#3,a3,b3]@3 [e3,a3,c#4]@3 [e3,a3,b3]@3 [e3,a3,c#4]@3 [e3,a3,b3]@2 ~, [f#1,f#2]@23 ~ [a1,a2]@23 ~]/3", // F#m B7 F#m B7 A Esus4 A Esus4 …
D: "~@3 [e2,e3]!5", // E
E: "[[e3,a3,c#4]@5 ~ [e3,a3,b3]@5 ~ [e3,a3,c#4]@6 [e3,a3,b3]@5 ~ [f#3,a3,c#4]@6 [f#3,a3,b3]@6 [f#3,a3,c#4]@6 [f#3,a3,b3]@6, [a1,a2]@23 ~ [f#1,f#2]@23 ~]/3", // A Esus4 A Esus4 F#m B7 F#m B7 …
F: "[[f#3,b3,d4]@5 ~ [f#3,b3,e4]@5 ~ [f#3,b3,d4]@6 [f#3,b3,e4]@5 ~ [a3,b3,e4]@12 ~@2 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2, [b1,b2]@23 ~ [e2,e3]@14 ~@10, ~@36 [g#3,b3,e4]@11 ~]/3", // Bm Esus2 Bm Esus2 Asus2 E B E
})).s("gm_piano").gain(0.39).pan(0.4)
// chords · electric guitar jazz · "+HAWAI GTR"
const electric_guitar_jazz = note(`<
A@2 B@6 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3 D@3 C@3
E@3 ~@8
>`.pickRestart({
A: "[~@4 [e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,b3,e4]@3 [e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,c#4,e4]!3]/2", // A Esus4 A
B: "[[f#2,c#3,f#3,a3,c#4,f#4]@3 [f#2,c#3,f#3,b3,c#4,f#4]@3 [f#2,c#3,f#3,a3,c#4,f#4]@3 [f#2,c#3,f#3,a3,c#4,f#4]!3 [e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,b3,e4]@3 [e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,c#4,e4]!3]/3", // F#m F#sus4 F#m A Esus4 A
C: "[[e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,b3,e4]@3 [e2,a2,e3,a3,c#4,e4]@3 [e2,a2,e3,a3,c#4,e4]!3 [f#2,c#3,f#3,a3,c#4,f#4]@3 [f#2,c#3,f#3,b3,c#4,f#4]@3 [f#2,c#3,f#3,a3,c#4,f#4]@3 [f#2,c#3,f#3,b3,c#4,f#4]!3]/3", // A Esus4 A F#m F#sus4 F#m F#sus4
D: "[[f#2,b2,f#3,b3,d4,f#4]@3 [f#2,b2,f#3,c#4,f#4]@3 [f#2,b2,f#3,b3,d4,f#4]@3 [f#2,b2,f#3,c#4,f#4]!3 [e2,b2,e3,a3,d4,e4]@3 [e2,b2,e3,a3,d4,e4]@3 [e2,b2,e3,g#3,b3,e4]@3 [e2,b2,e3,g#3,b3,e4]!3]/3", // Bm F#sus4 Bm F#sus4 Esus4 E
E: "[[f#2,b2,f#3,b3,d4,f#4]@3 [f#2,b2,f#3,c#4,f#4]@3 [f#2,b2,f#3,b3,d4,f#4]@3 [f#2,b2,f#3,c#4,f#4]!3 [e2,b2,e3,a3,d4,e4]@3 [e2,b2,e3,a3,d4,e4]@3 [e2,b2,e3,g#3,b3,e4]@3 [e2,b2,e3,g#3,b3,e4] [e2,b2,e3,g#3,b3] ~]/3", // Bm F#sus4 Bm F#sus4 Esus4 E
})).s("gm_electric_guitar_jazz").gain(0.29).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
A B C A B C A ~@13 D A ~ D A E F A G F A G F A G F A G H I J H I J H I J H I J H I J H I J H I J H I J H I J H I J H I
J H I J H I J H I J H I J H I J H I J H I J ~@8
>`.pickRestart({
A: "~ x", B: "~ x ~@2", C: "x ~@2 x", D: "x", E: "~@3 x!2 ~ x!2", F: "x ~@5 x!2", G: "~@2 x!2 ~@4", H: "x ~@4 x!2 ~",
I: "~@3 x!2 ~@3", J: "~ x!2 ~@4 x",
})).gain(0.69)
// drums · snare
const snare = s("sd").struct(`<
A B C D B C D ~@19 C D B C D B C D B C D B C D B C D B C D B C D E C D B C D E C D B C D B C D B C D F C D B C D G C D
B C D H C D B C D E C D B C D E ~@8
>`.pickRestart({
A: "~@7 x", B: "~@5 x ~@2", C: "~@3 x ~@4", D: "~ x ~@5 x", E: "~@8 x!2 ~@6", F: "~@8 x!4 ~@4",
G: "~@8 x!2 ~ x!2 ~@3", H: "~@10 x!2 ~@4",
})).gain(0.69)
// drums · hihat
const hihat = s("hh").struct(`<
~@32 A@6 B A@5 B C A B C D B C A B C D B C A B C E B C A B C D B C A B C D B C A B C D B C A B C D B C A B C D ~@8
>`.pickRestart({
A: "x!16", B: "~ x!15", C: "x!8 ~ x!7", D: "x!4 ~ x ~@10", E: "x!4 ~ x!11",
})).gain(0.38)
// drums · low tom
const low_tom = s("lt").struct("<~@49 A ~@5 A ~@11 A ~@5 B ~@5 A ~@5 A ~@5 A ~@8>".pickRestart({
A: "~@14 x!2", B: "~@13 x!3",
})).gain(0.46)
// drums · mid tom
const mid_tom = s("mt").struct("<~@49 A ~@5 A ~@11 A ~@11 A ~@5 A ~@5 A ~@8>".pickRestart({
A: "~@12 x!2 ~@2",
})).gain(0.61)
// drums · open hat
const open_hat = s("oh").struct("<~@49 A ~@5 A ~@11 A ~@5 A ~@5 B ~@5 A ~@5 A ~@8>".pickRestart({
A: "~@3 x ~@4", B: "~@3 x!2 ~@3",
})).gain(0.38)
// drums · high tom
const high_tom = s("ht").struct("<~@49 A ~@5 A ~@17 B ~@11 A ~@5 A ~@8>".pickRestart({
A: "~@10 x!2 ~@4", B: "~@5 x ~@2",
})).gain(0.53)
// drums · crash
const crash = s("cr").struct(`<
A ~@37 B ~@5 B A ~ B A C B A ~ B A C B A ~ B A C B A ~ B A C B A ~ B A C B A ~ B A C B A ~ B A C B A ~ B A C ~@8
>`.pickRestart({
A: "~ x", B: "x", C: "~ x ~@2",
})).gain(0.31)
stack(
bass, string_ensemble_2, piano, electric_guitar_jazz, kick, snare, hihat, low_tom, mid_tom, open_hat, high_tom, crash
)
More by Howard Carpendale
Hello AgainC major · 110 bpmDu bist die Antwort fur michC major · 120 bpmMit viel viel HerzD♭ major · 134 bpmDeine Spuren im SandG major · 110 bpmKein Typ fur eine NachtB major · 108 bpmNachts wenn alles schlaftF major · 100 bpmOne More Dance in BlueC major · 116 bpmWillkommen auf der TitanicC major · 72 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.