0:00/0:00
// Luv 4 Luv (Stone's Radio Edit) — Robin S
// 118 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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.
// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
A B A B C D C E F ~@3 F ~ F G F ~@3 F ~ F ~ F ~@3 F H F ~ F ~@3 F H F ~ C D C E F ~@3 F ~ F ~ F ~@3 F H F ~ F ~@3 F ~
F ~ F ~@3 F H F ~ C D C E C D C E A B A B A B A B F ~@3 F H F ~ F ~@3 F H F ~ F ~@3 F H F ~ C D C E C D C I
>`.pickRestart({
A: "g2 ~@4 g2 bb2 c3", B: "f2 ~@7", C: "g2@2 ~@4 g2@2 g2@2 g2 c3@2 ~ c3@2", D: "~ f2@2 ~ f2@2 ~@2 f2@2 ~ d2@3 d2@2",
E: "~ f2@2 ~ f2@2 ~@2 f2 ~ c3 d2@3 d2@2", F: "g2 ~@7", G: "g2 ~ g2!3 ~ g2 ~", H: "~@13 f2@2 ~",
I: "~ f2@2 ~ f2@2 ~@10",
})).s("gm_lead_2_sawtooth").gain(0.4)
// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
~@8 A B A B A B A ~ A B A C A B A D A B A C A B A D A B A C A B A D ~@4 A B A C A B A D A B A C A B A D A B A C A B A
D A B A C A B A D ~@16 A B A C A B A D A B A C A B A D A B A C A B A D ~@8
>`.pickRestart({
A: "g1@2 ~@2 g1@2 g1 bb1@2 ~ bb1@2 ~ g1 bb1 c2", B: "f1@2 ~@2 f1@2 f1 c2@2 ~ c2@2 ~ bb1 c2 f1",
C: "f1@2 ~@2 f1@2 f1 c2@2 ~ c2@2 ~ g1 c2 d2", D: "f1@2 ~@2 f1@2 f1 d1@2 ~ d1@2 ~ d1 f1 d1",
})).s("gm_synth_bass_2").gain(0.64)
// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@9 A@2 B ~@4 C D E F G H I J K L M N O P Q R S T U@3 V W X ~@4 Y@2 Z F AA AB AC AD AE@2 AF AG O P AH AI AJ ~ U@3 AK W
AL AM ~ U@3 AK W X ~@8 AN AO AP AQ AR AS AT@2 AJ ~ U@3 AK W AL AM ~ U@3 AK W AU AM ~ U@3 AK W X ~@8
>`.pickRestart({
A: "[~@14 f4@5 ~ f4@2 d4@2 f4@2 f4@2 d4@2 f4@2]/2", B: "f4@2 g4@2 a4 g4 f4 d4 c4 d4 c4@3 bb3@2 ~",
C: "~@2 d4 ~ d4 ~ d4@2 ~@2 bb3 ~ g3!2 ~ c4", D: "~ d4@3 c4@4 ~@8", E: "~@6 d4 ~ d4@2 c4@2 bb3@2 c4@2",
F: "d4@2 ~ f4@3 g4@6 ~@4", G: "~@2 d4 ~ d4 ~ c4@3 ~ bb3 ~ bb3 ~ bb3@2, ~@6 db4 ~@9", H: "d4@2 f4 ~ d4@2 g4@4 f4@6",
I: "~@2 d4 ~ d4 ~ db4 c4@3 bb3 ~ bb3@2 bb3@2", J: "bb4@3 g4@2 ~ f4 g4 [g4,ab4] ~ f4@5 ~",
K: "~@2 d4 ~ d4!2 ~ d4@3 c4 ~ bb3@2 bb3@2", L: "d4@2 ~ c4@9 ~@4", M: "~@2 d4 ~ d4 ~ d4 g4@3 d4@2 bb3 ~ bb3@2",
N: "d4@2 [d4,eb4] c4@9 ~@4", O: "~@2 d4 ~ d4 ~ d4 d4@3 c4@2 bb3@2 bb3@2", P: "~@2 bb4 ~ g4 ~ g4@3 [g4,ab4] f4@5 ~",
Q: "~@2 bb3@2 d4 ~ d4 bb3@3 bb3@3 ~ bb3@2", R: "d4@2 ~ f4@3 g4@2 ~@2 g3@2 g4!3 ~", S: "f4 g4 ~@6",
T: "g4@4 d4@3 c4@2 bb3@6 ~",
U: "[~@2 d4 ~ d4!2 d4@2 d4@4 f4@3 c4@2 bb3@7 ~@4 bb3 ~ bb3 d4@3 f4 ~ f4@2 d4 g4@4 ~ bb3 ~ bb3@2]/3",
V: "bb4@2 g4 ~ g4@2 bb4 g4@2 f4@5 ~@2", W: "~@2 d4 ~ d4!2 d4@2 d4@4 f4@4", X: "c4 bb3@3 ~@4",
Y: "[~ g4@3 f4 ~ d4 g4@3 d4 ~ bb3 ~ bb3 c4@2 d4@7 ~@8]/2", Z: "~@2 d4 ~ d4 ~ d4 d4@3 c4@2 bb3@2 c4@2",
AA: "~@2 d4 ~ d4 ~ d4 d4@3 bb3 ~ bb3@3 ~", AB: "a4@2 ~ f4@2 ~ f4@2 [g4,ab4] f4@3 ~@4",
AC: "~@2 d4 ~ d4 ~ d4 c4@3 bb3@2 bb3@2 bb3@2", AD: "d4@3 f4@2 ~ g4@6 ~@4",
AE: "[~@2 d4 ~ d4!2 ~ d4@3 c4 ~ bb3@2 bb3 d4@2 c4@6 ~@9]/2", AF: "g4@3 ~ f4@2 ~ d4 f4@2 d4@2 f4@2 d4@2",
AG: "f4 d4 c4@4 ~@2", AH: "g4@3 ~ bb4@2 g4@2 bb4@4 ~@2 f4@2", AI: "g4@2 ~ bb4@2 ~ c5@3 ~ d5@2 c5 bb4!2 ~",
AJ: "c5@4 bb4@3 g4 f4@2 g4@6", AK: "bb4@2 g4 ~ g4 bb4 ~ g4@2 f4@6 ~", AL: "c4@2 bb3@4 g4@2 d5@2 ~ eb5@3 d5@2",
AM: "c5 bb4 g4@2 f4@8 ~@4", AN: "~@4 d4@3 ~ c4@4 c4@3 bb3", AO: "c4 bb3 c4!3 d4 c4@2", AP: "~@4 d4@7 ~ d4@3 c4",
AQ: "d4 eb4 d4@4 d4@2 d4@2 c4@2 bb3@4", AR: "~@4 d4 ~ d4 c4 d4 ~ d4@3 ~ d4 ~", AS: "d4 c4 d4@2 d4@5 c4@3 c4@2 bb3@2",
AT: "[~@8 d5@4 c5@8 c5@7 d5 c5 bb4 g4@2]/2", AU: "c4@2 bb3@4 d4@2 d5@2 ~ eb5@3 d5@2",
})).s("gm_electric_guitar_jazz").gain(0.56)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~@32 A B A B A B A B ~@20 A B A B A B A B A B A B A B A B ~@16 A B A B A B A B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
A: "[g3,a3,bb3,d4,f4]", B: "[g3,a3,c4,e4,g4]",
})).s("gm_synth_strings_1").gain(0.16)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@84 A@4 B@4 ~@32>".pickRestart({
A: "[~@7 [f4,f5], [g4,g5], ~ [g3,d5]]/4", B: "[g3,g4,d5,g5]/4",
})).s("gm_string_ensemble_2").gain(0.32)
// other · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@31 A ~@19 A ~@15 A ~@23 A ~@15 A ~@16>".pickRestart({
A: "~@10 g3 d4 g4 a4 g4 d4",
})).s("gm_epiano1").gain(0.56)
// drums · kick
const kick = s("bd").struct("<~@4 [x!4]!80 ~@8 [x!4]!32>").gain(0.72)
// drums · snare
const snare = s("sd").struct(`<
~@3 A B C B D B C B C B E B ~ B C B D B E B F B C B D B E B A B C B D B E B A B C B D B C B D B E B F B C B D B E ~ G
B C B D B E B F B C B D B E B F B C B D B E B A ~@7 A B C B D B E B F B C B D B E B F B C B D B E B F B C B D B E B F
>`.pickRestart({
A: "~ x!2 ~ x ~ x!2 ~ x!6 ~", B: "~ x ~ x", C: "~@4 x ~@2 x ~@4 x ~@3", D: "~@4 x ~@2 x ~@3 x!2 ~ x ~",
E: "~@4 x ~@2 x ~@3 x!2 ~@3", F: "~@4 x ~@2 x ~@3 x!4 ~", G: "~@11 x!4 ~",
})).gain(0.64)
// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!15 ~ [~ x ~ x]!42 ~ [~@3 x] [~ x ~ x]!64>").gain(0.56)
// drums · hihat
const hihat = s("hh").struct("<[~ x ~ x ~ x ~ x]!4 [x!4]!11 [x!2 ~ x] [x!4]!42 [x!2 ~@2] ~ [x!4]!64>").gain(0.16)
// drums · open hat
const open_hat = s("oh").struct(`<
~@4
[~ x ~ x ~ x ~ x]!11
[~ x ~@3 x ~@2]
[~ x ~ x ~ x ~ x]!42
[~ x ~@6]
[~@7 x]
[~ x ~ x ~ x ~ x]!64
>`).gain(0.56)
// drums · tambourine
const tambourine = s("tb").struct("<~@4 [x!16]!54 ~@2 [x!16]!63 [x!15 ~]>").gain(0.4)
// drums · crash
const crash = s("cr").struct(`<
A ~@2 B A@5 ~@2 C A ~@2 D A ~@2 E A ~@2 E A ~ A F A ~@2 G A@3 H A@3 G A@5 ~@2 I A ~ A J A ~ A F A K A L A@3 M A B A G
A@3 M A@3 G A@5 N A G A ~@2 C A ~ A@3 B A M A M A G A O A P A M A G A@3 B A@3 G A@3 B A B A G
>`.pickRestart({
A: "x", B: "x ~@6 x", C: "~@7 x", D: "x ~@3 x ~@3 x ~@2 x!2 ~ x ~", E: "~@11 x ~@2 x ~", F: "~@11 x ~@4",
G: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", H: "x ~@2 x", I: "~@3 x", J: "~@4 x ~@3 x ~@2 x ~@2 x ~", K: "~@13 x ~@2",
L: "~ x ~@2 x ~@3 x ~@2 x ~@2 x ~", M: "x ~@10 x ~@2 x ~", N: "x ~@12 x ~@2", O: "x ~@12 x!2 ~", P: "x ~@10 x ~@4",
})).gain(0.4)
// drums · bongos
const bongos = s("bongo:4").struct(`<
~@8 A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B ~@4 A B A B A B A B A B A B A B ~@2 A B A B A B A
B A B A B A B A B ~@16 A B A B A B A B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
A: "~@11 x ~@4", B: "~@8 x ~@2 x ~@4",
})).gain(0.63)
// drums · shaker
const shaker = s("sh").struct(`<
A B A B A B A B A B A B A B A ~ 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
~@2 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 A B A B
>`.pickRestart({
A: "~@11 x ~@4", B: "~@9 x ~@6",
})).gain(0.48)
stack(
lead_2_sawtooth, bass, electric_guitar_jazz, synth_strings_1, string_ensemble_2, epiano1, kick, snare, clap, hihat,
open_hat, tambourine, crash, bongos, shaker
)
More by Robin S
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.