0:00/0:00
// No Limit — 2 Unlimited
// 141 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 7 "#SYNBASS 3" Syn Bass 3 -> synth bass 1
// note: duplicate parts dropped: ch 1 "CALLIOPE" lead 3 calliope (copy of ch 3 "OVERDRIVE" overdriven guitar); ch 7 "#SYNBASS 3" synth bass 1 (copy of ch 6 "DISTORTION" distortion guitar)
// note: Full arrangement: all 123 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(141/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 2 · "SYN BASS 2"
const bass = note(`<
~@9 A@3 B A@3 B A@3 C A@3 C A@3 B A@3 B A@3 C A@3 C A@2 D E A@2 D E A@3 B A@3 B ~ F@3 G F@3 H A@3 B A@3 B F@3 I F@3 H
A@3 C A@3 C ~@4 A@3 J ~@16 A@3 B A@3 B K
>`.pickRestart({
A: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~", B: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ f1 ~ eb1 ~ ab1 ~ ab1 ~",
C: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ f1 ~ f1 ~ f1 ~ f1 ~", D: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~",
E: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~",
F: "bb1 ~ [bb1,bb2] ~ bb1 ~ [bb1,bb2] ~ bb1 ~ [bb1,bb2] ~ bb1 ~ [bb1,bb2] ~", // Bb
G: "eb1 ~ [eb1,eb3] ~ eb1 ~ [eb1,eb3] ~ f1 ~ [eb1,eb3] ~ [f1,f3] ~ [ab1,ab3] ~", // Eb F Ab
H: "eb1 ~ [eb1,eb3] ~ eb1 ~ [eb1,eb3] ~ f1 ~ [eb1,eb3] ~ ab1 ~ [ab1,ab3] ~", // Eb Ab
I: "eb1 ~ [eb1,eb3] ~ eb1 ~ [eb1,eb3] ~ f1 ~ [eb1,eb3] ~ f1 ~ [ab1,ab3] ~", // Eb Ab
J: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ f2 ~ f2 ~ f2 ~ f2 ~", K: "bb1 ~@15",
})).s("gm_synth_bass_2").gain(0.45)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@17 A@2 B C A@2 B C ~@57 A@2 B C A@2 B C ~@33>".pickRestart({
A: "bb3@2 ~@2 bb3@2 bb3 ~@3 db4@2 ~@2 db4@2", B: "bb3@2 ~@2 bb3@2 bb3 ~@3 db4@2 ~@2 bb3@2",
C: "eb4@2 ~@2 eb4@2 eb4 ~ f4@2 ~@2 f4@2 ~@2",
})).s("gm_overdriven_guitar").gain(0.36)
// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@33 A B C D A B C D E F G H E F G H ~@41 A B C D A B C D E F G H E F G H E F G H E F G H ~@9
>`.pickRestart({
A: "f4 ~@3 f4@2 ~@4 ab4 ~@3 ab4 ~", B: "f4@2 ~@2 f4@2 ~@4 ab4@2 ~@2 ab4 ~", C: "f4@2 ~@2 f4@2 ~@4 ab4 ~@3 f4 ~",
D: "[gb4,bb4] ~ [gb4,bb4] ~ [ab4,c5] ~ [ab4,c5] ~", // Gb Ab
E: "~@2 [f4,bb4] ~@3 [f4,bb4]@2 [eb4,ab4]@2 [f4,bb4] ~@3 [eb4,ab4]@2", // Bb5 Ab5 Bb5 Ab5
F: "[f4,bb4] ~ [eb4,ab4] ~ [f4,bb4] ~ [f4,ab4,db5]@7 ~ f4@2", G: "ab4 ~ ab4 ~ f4@2 ab4 ~@7 f4@2",
H: "ab4@2 g4@2 f4 ~ bb3@4 db4@5 ~",
})).s("gm_electric_guitar_jazz").gain(0.4)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@41 A@2 B C A@2 B C ~@49 A@2 B C A@2 B C A@2 B C A@2 B C ~@9>".pickRestart({
A: "[db4,f4,bb4]/2", B: "[c4,eb4,ab4]", C: "[bb3,eb4,g4]",
})).s("gm_string_ensemble_1").gain(0.3)
// drums · kick
const kick = s("bd").struct("<~@9 A@48 ~ A@35 ~ A@12 B C D E A@12 B>".pickRestart({
A: "x!4", B: "x", C: "~@5 x ~@2", D: "x ~@2 x", E: "x ~@4 x ~@2",
})).gain(0.5)
// drums · snare
const snare = s("sd").struct("<~@4 A@4 ~ A@48 ~ A@35 ~ A@4 ~@4 A@4 ~@4 A@12 ~>".pickRestart({
A: "~ x ~ x ~ x ~ x",
})).gain(0.45)
// drums · clap
const clap = s("cp").struct("<~@4 A@4 ~ A@48 ~ B@8 A@8 B@7 A@12 ~ A@12 ~@4 A@12 C>".pickRestart({
A: "x ~@3 x ~@3 x ~@3 x ~@2 x", B: "~ x ~ x", C: "x",
})).gain(0.35)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 A@4 ~ A@48 ~ A@35 ~ A@12 ~@4 A@12 B>".pickRestart({
A: "x!4", B: "x",
})).gain(0.15)
// drums · open hat
const open_hat = s("oh").struct("<~@4 A@4 ~ A@48 ~ A@35 ~ A@12 ~@4 A@12 ~>".pickRestart({
A: "~ x ~ x ~ x ~ x",
})).gain(0.3)
// drums · splash
const splash = s("cr").struct(`<
~@29 A B@2 C ~@16 A B@2 C D E F E ~@9 A D A G A B@2 ~@9 A H A I A D A J ~@8 A ~@3 K L M N A ~@3 A ~@11 A
>`.pickRestart({
A: "x", B: "x ~@4 x ~ x", C: "x ~ x!2", D: "~@3 x", E: "~ x!3", F: "x ~@2 x", G: "x ~@8 x ~@4 x ~", H: "~@5 x ~@2",
I: "~@2 x!2", J: "~ x ~ x ~ x ~ x", K: "~@3 x ~@2 x ~", L: "x!2 ~@2", M: "x ~@2 x ~ x ~@2", N: "x!4",
})).gain(0.4)
// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@17 A@8 ~@8 A@8 ~@41 A@11 ~ A@4 ~@25>".pickRestart({
A: "x ~ x ~ x!2 ~ x",
})).gain(2.22)
// drums · shaker
const shaker = s("sh").struct("<~@9 A@48 ~ A@35 ~ A@12 ~@4 A@12 B>".pickRestart({
A: "x!16", B: "x",
})).gain(0.15)
stack(
bass, overdriven_guitar, electric_guitar_jazz, string_ensemble_1, kick, snare, clap, pedal_hat, open_hat, splash,
agogo_bells, shaker
)
More by 2 Unlimited
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.