0:00/0:00
// Alte Kameraden — Carl Teike
// 118 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// bass · tuba
const bass = note(`<
A B C@2 D E F@2 G H C@2 D I J K L M C@2 D E F@2 G H C@2 D I J K L N O P Q R S T U V W X Y Z AA AB AC AD O P Q R S T U
V W X Y Z AA AB AC AE AF@2 AG AH AI AJ AI W AG AK AL AM AN W AH W AO AF AG AH AI AJ AI W AG AK AL AM AN W AH W AO W AI
AH AP W@2 AH AQ W AI AH AP AR AS AT AU W AI AH AP W@2 AH AQ W AI AH AP AR AS AT AU
>`.pickRestart({
A: "db2 ~@7 db2 ~@7", B: "ab2 ~@3 eb2 ~@3 ab1 ~ gb2 ~ f2 ~ eb2 ~", C: "db2 ~@3 ab1 ~@3 db2 ~@3 ab1 ~@3",
D: "db2 ~@3 ab1 ~@3 db2 ~@3 f2 ~@3", E: "eb2 ~@2 ab1 g1 ~@2 ab1 c2 ~@3 c2 ~@2 eb2",
F: "ab2 ~@3 ab1 ~@3 ab2 ~@3 ab1 ~@3", G: "ab2 ~@3 eb2 ~@3 c2 ~@3 ab1 ~@3",
H: "db2 ~@2 ab2 g2 ~@2 ab2 bb2 ~@2 ab2 f2 ~@2 eb2", I: "eb2 ~@3 d2 ~@2 eb2 f2 ~@2 eb2 c2 ~@2 ab1",
J: "bb2 ~@3 eb2 ~@3 bb2 ~@3 eb2 ~@3", K: "ab2 ~@3 c3 ~@3 eb3 ~@3 ab3 ~@3", L: "eb2 ~@3 eb2 ~@3 eb2 ~@3 eb2 ~@3",
M: "ab2@3 ~ eb3 db3 c3 bb2 ab2 ~ gb2 ~ f2 ~ eb2 ~", N: "ab2@3 ~ eb3 db3 c3 bb2 ab2@3 ~ ab2 ~@2 ab2",
O: "ab2 ~ gb2 ~ f2 ~ eb2 ~", P: "d2@2 ~ eb2 f2@2 ~ eb2 ab1@2 ~@2 ab2@2 ~ ab2", Q: "ab2 ~ f2 ~ eb2 ~ db2 ~",
R: "c2@2 ~ db2 eb2@2 ~ db2 ab1@2 ~@2 ab1 ~@2 ab1", S: "eb2 ~@3 ab1@5 ~@3 ab1 ~@2 ab1",
T: "f2 ~@3 ab1@5 ~@3 ab1 ~@2 ab1", U: "ab2 ~@2 g2 gb2 ~@2 f2 eb2 ~@2 db2 c2 ~@2 bb1",
V: "ab1 ~ ab1 bb1 c2 ~ bb1 ~ ab1 ~ gb1 ~ f1 ~ eb1 ~", W: "db2 ~@3 db2 ~@3 db2 ~@3 db2 ~@3",
X: "ab1 ~@3 ab1 ~@3 ab1@4 ~@4", Y: "gb1 ~@3 gb1 ~@3 gb1 ~@3 bb1 ~@3", Z: "db2 ~@3 db2 ~@3 db2 ~@3 ab1@2 ~@2",
AA: "db2 ~@3 db2 ~@3 f2 ~@3 db2 ~@3", AB: "gb2 ~@3 gb2 ~@3 gb2@2 ~@6", AC: "gb2 ~@3 gb2 ~@3 db2 ~@7",
AD: "ab1 ~@3 ab1 ~@3 db2 ~@3 ab2 ~@2 ab2", AE: "ab1 ~@3 ab1 ~@3 db2 ~@3 db2@4", AF: "gb2 ~@3 db2 ~@3 gb2 ~@3 db2 ~@3",
AG: "gb2 ~@3 db2 ~@3 bb1 ~@3 ab1 ~@3", AH: "gb2 ~@3 gb2 ~@3 gb2 ~@3 gb2 ~@3", AI: "db2 ~@3 f2 ~@3 ab2 ~@3 db3 ~@3",
AJ: "f2 ~@3 db2 ~@3 f2 ~@3 db2 ~@3", AK: "gb2 ~@3 gb2 ~@3 gb2 ~@3 bb2 ~@3", AL: "gb2 ~@3 gb2 ~@3 gb2 ~@3 db2 ~@3",
AM: "gb2 ~@3 db3 ~@3 bb2 ~@3 gb2 ~@3", AN: "b2 ~@3 b2 ~@3 b2 ~@3 b2 ~@3",
AO: "gb2 ~ gb2!2 [gb2,db3] ~ [gb2,bb2] ~ gb2 ~@7", AP: "gb2 ~@3 bb2 ~@3 db3 ~@3 gb2 ~@3",
AQ: "gb2 ~@3 gb2 ~@3 gb2@3 ~@5", AR: "b2 ~@3 b2 ~@3 b2 ~@3 gb2 ~@3", AS: "db2 ~@3 db2 ~@3 db2@2 ~@6",
AT: "db3 ~@3 b2 ~@3 bb2 ~@3 ab2 ~@3", AU: "gb2 ~ gb2 ~ db2 ~ bb1 ~ gb1@3 ~@5",
})).s("gm_tuba").gain(0.41).pan(0.3)
// chords · french horn · "FR.HORN"
const french_horn = note(`<
A B C D E F G H I J C D K L M N O P Q R S T U V W X Q R S Y Z AA O AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ AU AV AW AX AY AZ
BA BB BC BD BE BF BG BH BI BK BL BM BN BO BP BQ BR BS BL BM BN BO BT BU BV BW BL BM BN BO BP BQ BR BS BL BM BN BO BT
BU BV BW
>`.pickRestart({
A: "[db3,f3,ab3,db4] ~@7 [db3,f3,ab3,db4] ~@7", // Db
B: "[eb3,ab3,c4] ~ [eb3,ab3,c4]!3 ~ [eb3,ab3,c4] ~ [ab2,eb3,ab3,c4] ~ gb3 ~ f3 ~ eb3 ~", // Ab
C: "[db3,f4] ~ [db4,f4,ab4] ~ [ab2,f4] ~ [db4,f4,ab4] ~ [db3,f4] ~ [db4,f4,ab4]!2 [ab2,db4,f4,ab4] e4 [db4,f4,ab4] gb4", // Db
D: "[db3,ab4] ~ [db4,f4,ab4] ~ [ab2,ab4] ~ [db4,f4,ab4] ~ [db3,ab4] ~ [db4,f4,ab4]!2 [ab2,db4,f4,ab4] g4 [db4,f4,ab4] c5", // Db5 Db Ab Db Db5 Db
E: "[db3,db5] ~ [db4,f4,ab4] ~ [ab2,c5] ~ [db4,f4,ab4] ~ [db3,bb4] ~ [db4,f4,ab4]!2 [f3,db4,f4,g4,ab4] ~ [db4,f4,ab4] ab4", // Db Ab Db Gb Db
F: "eb3 ~ [c4,eb4,gb4] ab2 g2 ~ [c4,eb4,gb4] ab2 c3 ~ [c4,eb4,gb4]!2 [c3,c4,eb4,gb4] ~ [c4,eb4,gb4] eb3, c5@5 ~@3", // Cdim
G: "[ab3,eb4] ~ [eb4,gb4] ~ [ab2,eb4] ~ [c4,eb4,gb4] ~ [ab3,eb4] ~ [c4,eb4,gb4]!2 [ab2,c4,eb4,gb4] d4 [c4,eb4,gb4] f4", // Ab5 Ebm Ab5 Cdim Ab5 Cdim Ab7 Cdim
H: "[ab3,gb4] ~ [c4,eb4,gb4] ~ [ab2,gb4] ~ [c4,eb4,gb4] ~ [ab3,gb4] ~ [c4,eb4,gb4]!2 [ab2,c4,eb4,gb4] f4 [c4,eb4,gb4] ab4", // Ab7 Cdim Ab7 Cdim Ab7 Cdim Ab7 Cdim
I: "[ab3,c5] ~ [c4,eb4,gb4] ~ [eb3,bb4] ~ [c4,eb4,gb4] ~ [c3,ab4] ~ [c4,eb4,gb4]!2 [ab2,c4,d4,eb4,gb4] ~ [c4,eb4,gb4] eb4", // Ab Cdim Eb5 Cdim Fm Cdim Ab7 Cdim
J: "f4@2 [db4,f4,ab4] ab3 g3 ~ [db4,f4,ab4] ab3 bb3 ~ [db4,f4,ab4] [ab3,db4,f4,ab4] [f3,db4,f4,ab4] ~ [db4,f4,ab4] eb3, db3 ~@15", // Db
K: "[db3,db5] ~ [db4,f4,ab4] ~ [ab2,c5] ~ [db4,f4,ab4] ~ [db3,bb4] ~ [db4,f4,ab4]!2 [f3,db4,f4,ab4] ~ [db4,f4,ab4] db4", // Db Ab Db Gb Db
L: "eb4@2 [c4,eb4,gb4] ~ d3 ~ [c4,gb4] eb3 f3 ~ [c4,eb4,gb4] [eb3,c4,eb4,gb4] [c3,c4,eb4,gb4] ~ [c4,eb4,gb4] [ab2,bb4,c5,db5], eb3 ~@15", // Cdim Dbmaj7
M: "[bb3,d5,eb5] ~ [bb3,eb4,g4] ~ [eb3,eb4] d4 [bb3,eb4,g4] g4 [bb3,bb4] ~ [bb3,eb4,g4]!2 [eb3,bb3,eb4,g4] ~ [bb3,eb4,g4] [bb4,c5,db5]", // Ebmaj7 Eb Bb Eb Bbm
N: "[ab3,d5,eb5] ~ [c4,eb4,ab4] ~ [c4,eb4] d4 [c4,eb4,ab4] ab4 [eb4,c5] ~ [c4,eb4,ab4]!3 ~ [c4,eb4,ab4] ~", // Ab Cm Ab Cm Ab
O: "[eb3,eb4] d4 [bb3,eb4,g4] e4 [eb3,f4] e4 [bb3,eb4,f4,g4] gb4 [eb3,g4] ~ [bb3,eb4,g4]!2 [eb3,bb3,eb4,g4] ~ [bb3,eb4,g4] ~", // Eb Ebsus2 Eb
P: "[ab3,ab4]@2 [c4,eb4,ab4]!3 db4 [c4,eb4,ab4] bb3 [ab3,c4,eb4,ab4] ~ gb3 ~ f3 ~ eb3 ~", // Ab
Q: "f4@2 [db4,f4,ab4] ~ ab2 ~ [db4,f4,ab4] ~ db4@2 [db4,f4,ab4]!2 [ab2,db4,f4,ab4] ~ [db4,f4,ab4] ~, db3 ~@5 eb4@2 db3 ~ bb3@2 ab3@2 f3@2", // Db
R: "db3 ~ [db4,f4,ab4] ~ ab2 ~ [db4,f4,ab4] ~ db3 ~ [db4,f4,ab4]!2 [ab2,db4,f4,ab4] ~ [db4,f4,ab4] ~, ~@3 ab2 ~ f3 ab3 ~", // Db
S: "f4@2 [db4,f4,ab4] ~ ab2 ~ [db4,f4,ab4] ~ c4@2 [db4,f4,ab4]!2 [f3,db4,f4,ab4] ~ [db4,f4,ab4] ~, db3 ~@7 db3 ~@3 eb4@2 ~@2", // Db
T: "gb4@2 [c4,eb4,gb4] ab2 g2 ~ [c4,eb4,gb4] ab2 c3 ~ [c4,eb4,gb4]!2 [c3,c4,eb4,gb4] ~ [c4,eb4,gb4] eb3, eb3 ~@15", // Cdim
U: "gb4@2 [eb4,gb4] ~ ab2 ~ [c4,eb4,gb4] ~ c4@2 [c4,eb4,gb4]!2 [ab2,c4,eb4,gb4] ~ [c4,eb4,gb4] ~, ab3 ~@7 ab3 ~ ab3@2 gb3@2 eb3@2", // Ebm Cdim Ab7 Cdim
V: "ab3 ~ [c4,eb4,gb4] ~ ab2 ~ [c4,eb4,gb4] ~ c3@2 [c4,eb4,gb4]!2 [ab2,c4,eb4,gb4] ~ [c4,eb4,gb4] ~, c3@4 ~@2 ab2@2 ab3 ~ eb3@2 ab3@2 ~@2", // Cdim Ab7 Cdim
W: "eb4@2 [c4,eb4,gb4] ~ eb3 ~ [c4,eb4,gb4] ~ g3@2 [c4,eb4,gb4]!2 [ab2,c4,eb4,gb4] ~ [c4,eb4,gb4] ~, ab3 ~@5 ab3@2 c3 ~ ab3@2 bb3@2 ~@2", // Cdim Ab7 Cdim
X: "db4@2 [db4,f4,ab4] ab3 g3 ~ [db4,f4,ab4] ab3 bb3 ~ [db4,f4,ab4] [ab3,db4,f4,ab4] [f3,db4,f4,ab4] ~ [db4,f4,ab4] eb3, db3 ~@15", // Db
Y: "eb4@2 [c4,eb4,gb4] ~ d3 ~ [c4,gb4] eb3 f3 ~ [c4,eb4,gb4] [eb3,c4,eb4,gb4] [c3,c4,eb4,gb4] ~ [c4,eb4,gb4] ab2, eb3 ~@15", // Cdim
Z: "bb3 ~ [bb3,eb4,g4] a3 bb3@2 [bb3,eb4,g4] ~ bb3 ~ [bb3,eb4,g4]!2 [eb3,bb3,eb4,g4] ~ [bb3,eb4,g4] ~, ~@4 eb3 ~ c4@2 db4@7 ~", // Eb
AA: "ab3 ~ [c4,eb4,ab4] g3 ab3@2 [c4,eb4,ab4] ~ c4@2 [c4,eb4,ab4]!3 ~ [c4,eb4,ab4] ~, ~@4 c4 ~ bb3@2 eb4 ~@7", // Ab
AB: "[ab3,ab4]@2 [c4,eb4,ab4]!3 db4 [c4,eb4,ab4] bb3 [c4,eb4,ab4] ~@3 [ab2,ab4]@2 ~ [ab2,ab4], ~@4 ab3 ~@3", // Ab
AC: "[ab2,ab4]@2 [c4,eb4,gb4,ab4] ~ [gb3,gb4]@2 [c4,eb4,gb4,ab4] ~ [f3,f4]@2 [c4,eb4,gb4,ab4] ~ [eb3,eb4]@2 [c4,eb4,gb4,ab4] ~", // Ab Ab7 Gb Ab7 F Ab7 Eb Ab7
AD: "[d3,d4]@2 [c4,eb4,gb4,ab4] [eb3,c4,eb4,gb4,ab4] [c4,eb4,gb4,ab4] ~ [c4,eb4,gb4,ab4] [eb3,eb4] [c4,eb4,gb4,ab4] ~ [c4,eb4,gb4,ab4] ~ [c4,eb4,gb4,ab4] ~ [c4,eb4,gb4,ab4] [ab2,ab4], ~@2 [f3,f4] ~ [ab2,ab3] ~ ab2 ~", // D Ab7 Eb Ab7 Ab F Ab
AE: "[ab2,ab4]@2 [db4,f4,ab4] ~ [f3,f4]@2 [db4,f4,ab4] ~ [eb3,eb4]@2 [db4,f4,ab4] ~ [db3,db4]@2 [db4,f4,ab4] ~", // Ab Db F Db Eb Db
AF: "[c3,c4]@2 [db4,f4,ab4] [db3,db4,f4,ab4] [db4,f4,ab4] ~ [db4,f4,ab4] [db3,db4] [db4,f4,ab4] ~ [db4,f4,ab4] ~ [ab2,ab3,db4,f4,ab4] ~ [db4,f4,ab4] [ab2,ab3], ~@2 [eb3,eb4] ~ [ab2,ab3] ~@3", // C Db Ab Eb Ab
AG: "[eb3,eb4] ~ [c4,eb4,gb4,ab4]!3 ~ [c4,eb4,gb4,ab4] ~@5 [ab2,ab3] ~@2 [ab2,ab3], ~@4 [ab2,ab3]@5 ~@7", // Eb Ab7 Ab
AH: "[f3,f4] ~ [db4,f4,ab4]!3 ~ [db4,f4,ab4] ~@5 [ab2,ab3] ~@2 [ab2,ab3], ~@4 [ab2,ab3]@5 ~@7", // F Db Ab
AI: "[ab3,ab4] ~@2 [g3,g4] [gb3,gb4] ~@2 [f3,f4] [eb3,eb4] ~@2 [db3,db4] [c3,c4] ~ [c4,eb4,gb4,ab4] [bb2,bb3,c4,eb4,gb4,ab4]", // Ab G Gb F Eb Db C Ab7
AJ: "[ab2,ab3,c4,eb4,gb4,ab4] ~ [ab2,ab3] [bb2,bb3] [c3,c4] ~ [bb2,bb3] ~ [ab2,ab3] ~ [gb2,gb3] ~ [f2,f3] ~ [eb2,eb3] ~, ~@8 [c4,eb4,gb4]@5 ~@3", // Ab7 Ab Bb C Bb Ab Gb F …
AK: "db3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] ~", // Db
AL: "ab2 ~ [ab3,c4,eb4,gb4]!2 [ab2,ab3,c4,eb4,gb4] ~ [ab3,c4,eb4,gb4] ~ ab3@2 ab3 bb3 c4 db4 eb4 f4, ~@2 [ab2,c4,eb4,gb4] ~", // Ab7
AM: "gb4@2 [gb3,bb3,eb4] ~ gb2 ~ [gb3,bb3,eb4] ~ gb2 ~ [gb3,bb3,eb4] ~ bb2 ~ [gb3,bb3,eb4] ~, gb2 ~@15", // Ebm
AN: "db3 ~ [f3,ab3,db4]!2 [db3,f3,ab3,db4] ~ [f3,ab3,db4] ~ [f3,ab3,db4]@2 ~@2 [ab3,c4,eb4,gb4]@4, ~@8 db3 ~@3 ab2@2 ~@2", // Db Ab7
AO: "db3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] ~ f3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] ~", // Db
AP: "gb3 ~ [gb3,bb3,eb4]!3 ~ [gb3,bb3,eb4] ~ gb3@2 gb3 ab3 bb3 c4 db4 d4, ~@2 [bb3,eb4] ~", // Ebm Eb5
AQ: "[gb3,bb3,eb4] ~ [gb3,bb3,eb4]!3 ~ [gb3,bb3,eb4] ~ [db3,f3,ab3,db4] ~@3 [f3,ab3,db4] ~@3", // Ebm Db
AR: "[ab2,ab3,c4,eb4,gb4] ~@3 [ab2,ab3,c4,eb4,gb4] ~@3 [ab3,db4,f4]@3 ~ [ab2,ab4]@2 ~ [ab2,ab4], ~@8 db3 ~@7", // Ab7 Db Ab
AS: "[ab2,ab3,c4,eb4,gb4] ~@3 [ab2,ab3,c4,eb4,gb4] ~@3 [ab3,db4,f4]@3 ~ db3@4, ~@8 db3 ~@7", // Ab7 Db
AT: "gb3 ~ [db3,gb3,bb3] ~ db3 ~ [db3,gb3,bb3] ~ gb3 ~ [db3,gb3,bb3] ~ db4@2 [db3,gb3,bb3] db4, ~@12 db3 ~@3", // Gb
AU: "db4@2 [db3,gb3,bb3] ~ eb4@2 [db3,gb3,bb3] ~ f4@2 [db3,gb3,bb3] ~ gb4@2 [db3,gb3,bb3] ~, gb3 ~@3 db3 ~@3 gb3 ~@3 db3 ~@3", // Gb
AV: "gb3 ~ [db3,gb3,bb3] ~ db3 ~ [db3,gb3,bb3] ~ bb2 ~ [db3,gb3,bb3] ~ ab4@2 [db3,gb3,bb3] gb4, bb4@10 ~@2 ab2 ~@3", // Gb
AW: "gb4@2 [db3,gb3,bb3] ~ a3@2 [db3,gb3,bb3] ~ gb3 ~ [db3,gb3,bb3] ~ gb3 ~ [db3,gb3,bb3] ~, gb3 ~@3 gb3 ~@3 eb4@4 db4@4", // Gb
AX: "f3@2 [db3,f3,ab3,b3] ~ f3 ~ [db3,f3,ab3,b3] ~ ab3 ~ [db3,f3,ab3,b3] ~ db4 ~ [db3,f3,ab3,b3] db4, db3 ~@15", // Db7
AY: "db4@2 [db3,f3,ab3,b3] ~ eb4@2 [db3,f3,ab3,b3] ~ f4@2 [db3,f3,ab3,b3] ~ gb4@2 [db3,f3,ab3,b3] ~, f3 ~@3 db3 ~@3 f3 ~@3 db3 ~@3", // Db7
AZ: "db3 ~ [db3,f3,ab3,b3] ~ f3 ~ [db3,f3,ab3,b3] ~ ab3 ~ [db3,f3,ab3,b3] ~ gb4@2 [db3,f3,ab3,b3] gb4, ab4@10 ~@2 db4 ~@3", // Db7
BA: "f4@2 [db3,f3,ab3,b3] ~ g3@2 [db3,f3,ab3,b3] ~ db3 ~ [db3,f3,ab3,b3] ~ db3 ~ [db3,f3,ab3,b3] ~, db3 ~@3 db3 ~@3 eb4@4 db4@4", // Db7
BB: "bb3@2 [bb3,db4,gb4]!2 [db3,bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb2,bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [ab2,bb3,db4,gb4] ~ [bb3,db4,gb4] db4, gb3 ~@15", // Gb
BC: "db4@2 [bb3,db4,gb4] ~ b3@2 [bb3,db4,gb4] ~ bb3@2 [bb3,db4,gb4] ~ ab3@2 [bb3,db4,gb4] ~, gb3 ~@3 gb3 ~@3 gb3 ~@3 bb3 ~@3", // Gb
BD: "gb3@2 [bb3,db4,gb4] db3 [eb3,gb3] ~ [bb3,db4,gb4] f3 gb3 ~ [bb3,db4,gb4] ~ db3 ~ [bb3,db4,gb4] ~", // Gb Ebm Gb
BE: "gb3 ~ [bb3,db4,gb4] ~ db4 ~ [bb3,db4,gb4] ~ bb3 ~ [bb3,db4,gb4] ~ gb3 ~ [bb3,db4,gb4] ~", // Gb
BF: "[eb3,b3] ~ [ab3,b3,eb4] g3 [ab3,b3] ~ [ab3,b3,eb4] b3 eb4@2 [ab3,b3,eb4] ~ b3 ~ [ab3,b3,eb4] ~, ~@8 b3 ~@7", // Abm
BG: "db3 ~ [f3,ab3,db4] ~ [db3,ab3] ~ [f3,ab3,db4] ~ db4@2 [f3,ab3,db4] ~ db3 ~ [f3,ab3,db4] ~, ~@6 eb4@2 db3 ~@7", // Db Db5 Db
BH: "gb3 ~ [gb3,bb3,db4] ~ gb3 ~ [eb3,gb3,bb3,db4] ~ gb3 ~ [gb3,bb3,db4] ~ gb3 ~ [gb3,bb3,db4] ~, ~@8 db3@7 ~", // Gb Ebm7 Gb
BI: "db3 ~ [c3,f3,ab3,db4] ~ db3 ~ [f3,ab3,db4] ~ bb3@2 [f3,ab3,db4] ~ ab3@2 [f3,ab3,db4] ~, ~@8 db3 ~@3 db3 ~@3", // Dbmaj7 Db
BJ: "gb3 ~ [gb3,bb3,db4]!2 [db3,gb3,bb3,db4] ~ [bb2,gb3,bb3,db4] ~ [gb3,bb3,db4] ~@3 db4@2 ~ db4", // Gb
BK: "gb3 ~ [gb3,bb3,db4]!2 [db3,gb3,bb3,db4] ~ [bb2,gb3,bb3,db4] ~ [gb3,bb3,db4] ~@7", // Gb
BL: "db3 ~ [ab3,db4,f4] ~ db3 ~ [ab3,db4,f4] eb3 f3@2 [ab3,db4,f4] gb3 ab3@2 [ab3,db4,f4] bb3, ~@8 db3 ~@3 db3 ~@3", // Db
BM: "db3 ~ [ab3,db4,f4] ~ f3 ~ [ab3,db4,f4] ~ ab3 ~ [ab3,db4,f4]!3 ~ [ab3,db4,f4] ~, b3 ~", // Db
BN: "gb3 ~ [bb3,db4,gb4] ~ db3@2 [bb3,db4,gb4] eb3 f3@2 [bb3,db4,gb4] gb3 ab3@2 [bb3,db4,gb4] a3, ~@4 gb3 ~@3 gb3 ~@3 gb3 ~@3", // Gb
BO: "bb3@2 [bb3,db4,gb4] ~ bb3 ~ [bb3,db4,gb4] ~ db4 ~ [bb3,db4,gb4]!2 [gb3,bb3,db4,gb4] ~ [bb3,db4,gb4] ~, gb3 ~@15", // Gb
BP: "db3 ~ [ab3,db4,f4] eb3 f3@2 [ab3,db4,f4] gb3 ab3@2 [ab3,db4,f4] bb3 b3@2 [ab3,db4,f4] gb4, ~@4 db3 ~@3 db3 ~@3 db3 ~@3", // Db
BQ: "f4@2 [ab3,db4,f4] ~ db3 ~ [ab3,db4,eb4,f4] ~ [db3,b3] ~ [ab3,db4,f4]!2 [db3,f3,ab3,db4,f4] ~ [eb3,ab3,db4,f4] ~, db3 ~@15", // Db Db7 Db
BR: "db3@2 [bb3,db4,gb4] eb3 f3@2 [bb3,db4,gb4] gb3 ab3@2 [bb3,db4,gb4] f3 gb3 ~ [bb3,db4,eb4,gb4] ~, gb3 ~@3 gb3 ~@3 gb3 ~@7", // Gb Ebm7
BS: "db4@2 [bb3,db4,gb4] ~ gb3 ~ [bb3,c4,db4,gb4] ~ gb3@2 [bb3,db4,gb4]!3 ~ [gb3,bb3,db4,gb4] ~, gb3 ~@7 eb4 ~@7", // Gb
BT: "eb3@2 [b3,eb4,ab4] g3 ab3@2 [b3,eb4,ab4] bb3 b3 ~ [b3,eb4,ab4] g3 ab3@2 [b3,eb4,ab4] eb4, b3 ~@3 b3 ~@7 gb3 ~@3", // Abm
BU: "db4@2 [bb3,db4,gb4] ~ db3 ~ [bb3,db4,gb4,bb4] ~ [db3,gb4]@2 [bb3,db4,gb4]!3 ~ [gb3,bb3,db4,gb4] ~, db3 ~@15", // Gb Gb5 Gb
BV: "db4 ~ [ab3,db4,f4] ~ b3 ~ [ab3,db4,f4] ~ bb3 ~ [ab3,db4,f4] ~ ab3 ~ [ab3,db4,f4] ~", // Db
BW: "gb3 ~ [gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4] ~ [bb2,gb3,bb3,db4,gb4] ~ [gb2,gb3,bb3,db4,gb4]@3 ~@5", // Gb
})).s("gm_french_horn").gain(0.52)
// other · trumpet
const trumpet = note("<A B ~@38 C D ~@14 C D ~@7 E F ~@11 G ~@15 G ~@36>".pickRestart({
A: "[ab4,db5] ~@7 [ab4,db5] ~@7", B: "[ab4,c5] ~ [ab4,c5]!3 ~ [ab4,c5] ~ [ab4,c5] ~@7",
C: "ab4 ~@2 g4 gb4 ~@2 f4 eb4 ~@2 db4 c4 ~@2 bb3", D: "ab3 ~ ab3 bb3 c4 ~ bb3 ~ ab3 ~ gb3 ~ f3 ~ eb3 ~",
E: "~@12 db4 eb4 e4 f4", F: "gb4 ~@15", G: "eb3 ~@2 g3 ab3 ~@2 b3 eb4@5 ~@3",
})).s("gm_trumpet").gain(0.54).pan(0.8)
// other · piccolo
const piccolo = note(`<
A B ~@8 C D E F G H I J ~@8 C D E F G H K L M N O P Q R S T U V W X U V Y Z M N O P Q R S T U V W X U V Y AA AB ~ AC ~
AD ~ AE ~ AF AG AH AI AJ AK AL AM AN ~ AC ~ AD ~ AE ~ AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AO AP AQ AR
AW AX AY AZ AO AP AQ AR AS AT AU AV AO AP AQ AR AW AX AY AZ
>`.pickRestart({
A: "db7 ~@3 ab6 g6 ab6 db7 f7 ~@3 db7 c7 db7 f7", B: "ab7 ~ ab7!3 ~ ab7 ~ ab7 ~@7",
C: "f7 ~@3 f7 ~@3 f7 ~@3 f7 e7 f7 gb7", D: "ab7 ~@3 ab7 ~@3 ab7 ~@3 ab7 g7 ab7 c8",
E: "db8 ~@3 c8 ~@3 bb7 ~@2 ab7 f7 ~@2 db7", F: "eb7 ~@14 [bb5,c6,db6]",
G: "[d6,eb6] ~@3 eb5 d5 eb5 g5 bb5 ~@3 g5 ~@2 [bb5,c6,db6]", H: "[d6,eb6] ~@3 eb5 d5 eb5 ab5 c6 ~@3 ab5 ~@3",
I: "eb5 d5 eb5 e5 f5 e5 f5 gb5 g5 ~@3 eb5 ~@3", J: "ab5@9 ~@7", K: "eb7 d7 eb7 e7 f7 e7 f7 gb7 g7 ~@3 eb7 ~@3",
L: "ab7@9 ~@7", M: "~@2 [ab6,c7] ~@3 [ab6,c7] ~@3 [ab6,c7] ~@3 [ab6,c7] ~",
N: "~@2 [ab6,c7]!3 ~ [ab6,c7] ~ [ab6,c7] ~ [ab6,c7] ~ [ab6,c7] ~ [ab6,c7] ~", // Ab
O: "~@2 [ab6,db7] ~@3 [ab6,db7] ~@3 [ab6,db7] ~@3 [ab6,db7] ~", // Db5
P: "~@2 [ab6,db7]!3 ~ [ab6,db7] ~ [ab6,db7] ~ [ab6,db7] ~ [ab6,db7] ~ [ab6,db7] ~", // Db5
Q: "~@3 g6 ab6 c7 eb7 bb7 ab7 ~@7", R: "~@3 g6 ab6 db7 f7 bb7 ab7 ~@7",
S: "[ab5,ab6] [g5,g6] [ab5,ab6] [bb5,bb6] [c6,c7] [b5,b6] [c6,c7] [db6,db7] [eb6,eb7] [d6,d7] [eb6,eb7] [f6,f7] [gb6,gb7] [f6,f7] [gb6,gb7] [g6,g7]", // Ab G Ab Bb C B C Db …
T: "[ab6,ab7] ~@7 [c6,c7] [c6,db6,c7,db7]!6 ~", U: "[db5,f5]!3 ~ [db5,f5]!3 ~ [db5,f5]!3 ~ [db5,f5]!4",
V: "[eb5,gb5] ~ [eb5,gb5]!3 ~ [eb5,gb5] ~ [eb5,gb5] ~@7", W: "[bb4,db5]!3 ~ [bb4,db5]!3 ~ [bb4,db5]!3 ~ [bb4,db5]!4",
X: "[db5,f5] ~ [db5,f5]!3 ~ [db5,f5] ~ [db5,f5] ~ g6 ab6 a6 bb6 b6 c7", Y: "~@4 bb6 f6 gb6 g6 ab6 ~ db7 f7 ab7 ~@3",
Z: "gb7 f7 gb7 ~ gb7 bb6 c7 ~ db7 ~@7", AA: "gb7 f7 gb7 ~ gb7 bb6 c7 ~ db7 ~@3 db7 eb7 e7 f7", AB: "gb7 ~@15",
AC: "[db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [gb6,gb7]@2 ~ [db6,db7] [db6,db7]@2 ~@2", // Db Gb Db
AD: "[db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [f6,f7]@2 ~ [db6,db7] [db6,db7]@2 ~@2", // Db F Db
AE: "[db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [db6,db7] ~ [ab6,ab7]@2 ~ [db6,db7] [db6,db7]@2 ~@2", // Db Ab Db
AF: "[db6,db7] ~ [db6,db7]!3 ~ [db6,db7] ~ [gb6,gb7]@2 ~@2 [db6,db7]@2 ~ db7", AG: "db7 ~@3 eb7 ~@3 f7 ~@3 gb7 ~@3",
AH: "bb7@10 ~@2 bb7 ~@2 bb7", AI: "bb7 ~ gb7 ~ f7 ~ gb7 ~ ab7@4 gb7@4", AJ: "eb7@9 ~@3 [eb6,eb7] ~@2 [d6,d7]",
AK: "[db6,db7] ~@9 [f6,f7] ~ [ab6,ab7] ~ [eb7,eb8] ~", AL: "[db7,db8] ~@9 [bb6,bb7] ~ [gb6,gb7] ~ [eb6,eb7] ~",
AM: "[db6,db7] ~ [c6,c7] ~ [db6,db7] ~ [f6,f7] ~ [bb6,bb7] ~@3 [ab6,ab7] ~@3", AN: "[gb6,gb7] ~@15",
AO: "b6 ~@3 b6 ~@3 b6 ~@3 b6 ~@3", AP: "b6@2 ~ f6 ab6@3 ~", AQ: "bb6 ~@3 bb6 ~@3 bb6 ~@3 bb6 ~@3",
AR: "bb6@4 ~@2 db6@2 gb6@5 ~@3", AS: "f6@3 ~ ab6@2 ~@2 b6@2 ~@2 gb7@3 ~", AT: "f7@2 ~ f7!2 ~@2 f7 f7@4 ~@4",
AU: "db6 ~@3 gb6 ~@3 bb6 ~@3 eb7 ~@3", AV: "db7@2 ~ db7!2 ~@2 db7 db7@3 ~@5", AW: "eb6 ~@3 ab6 ~@3 b6 ~@3 eb7 ~@3",
AX: "db7@2 ~ bb7!2 ~@2 gb7!2 ~ gb7 [gb7,ab7] f7 ~ eb7 ~", AY: "db7 ~@3 d7 ~@3 eb7 ~@3 f7@2 ~@2",
AZ: "gb7 ~ gb7!3 ~ gb7 ~ gb7 ~@7",
})).s("gm_piccolo").gain(0.21).pan(0.7)
// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note(`<
~@2 A B C D E F G H I B J K L M N O A B C D E F G H I B J K L M N O P Q R S T U V D W X Y Z AA AB AC AD P Q R S T U V
D W X Y Z AA AB AC AD ~@2 AE ~@5 AF AG AH AI AJ AK@2 AL AM ~ AE ~@5 AF AG AH AI AJ AK@2 AL AM AN AO AP AQ AR AS AT AU
AN AO AP AQ AV AW AX AY AN AO AP AQ AR AS AT AU AN AO AP AQ AV AW AX AY
>`.pickRestart({
A: "f7 ~@3 f7 ~@3 f7 ~@7", B: "ab7 ~@3 ab7 ~@3 ab7 ~@7", C: "db8 ~@3 c8 ~@3 bb7 ~@2 ab7 g7 ~@2 ab7", D: "c8 ~@15",
E: "eb7 ~@3 eb7 ~@3 eb7 ~@3 eb7 ~ eb7 f7", F: "gb7 ~@3 gb7 ~@3 gb7 ~@7", G: "~@4 bb7 ~@3 ab7 ~@2 eb7 ~@3 eb7",
H: "f7 ~@15", I: "f7 ~@3 f7 ~@3 f7 ~@3 f7 e7 f7 gb7", J: "~@4 c8 ~@3 bb7 ~@2 ab7 f7 ~@3", K: "eb7 ~@14 [c8,db8]",
L: "[d8,eb8] ~@3 eb7 d7 eb7 g7 bb7 ~@3 g7 ~@2 [c8,db8]", M: "[d8,eb8] ~@3 eb7 d7 eb7 ab7 c8 ~@3 ab7 ~@3",
N: "eb7 d7 eb7 e7 f7 e7 f7 gb7 g7 ~@3 eb7 ~@3", O: "ab7 ~@15", P: "~@2 c8 ~@3 c8 ~@3 c8 ~@3 c8 ~",
Q: "~@2 c8!3 ~ c8 ~ c8 ~ c8 ~ c8 ~ c8 ~", R: "~@2 db8 ~@3 db8 ~@3 db8 ~@3 db8 ~",
S: "~@2 db8!3 ~ db8 ~ db8 ~ db8 ~ db8 ~ db8 ~", T: "~@2 c8!3 ~ c8 ~ c8 ~@7", U: "~@2 db8!3 ~ db8 ~ db8 ~@7",
V: "c8 ~@5 c8!3 ~@5 c8!2", W: "db8 c8 db8 ~ db8 c8 db8 ~ db8 c8 db8 ~ db8 c8 db8 eb8", X: "db8 ~ c8!3 ~ c8 ~ c8 ~@7",
Y: "bb7 a7 bb7 ~ bb7 a7 bb7 ~ bb7 a7 bb7 ~ bb7 a7 bb7 c8", Z: "bb7 ~ ab7!3 ~ ab7 ~ ab7 ~@7",
AA: "db8 c8 db8 ~ db8 c8 db8 ~ db8 c8 db8 ~ db8 c8 db8 d8", AB: "eb8 ~ bb7!3 ~ bb7 ~ bb7 ~@7",
AC: "bb7 ~@3 bb7 ~@3 ab7 ~@3 ab7 ~@3", AD: "c8 ~@3 c8 ~@3 db8 ~@7", AE: "~@8 gb7 ~@7",
AF: "~@8 gb7 ~@2 db7!2 ~@2 db7", AG: "db7 ~@3 eb7 ~@3 f7 ~@3 gb7 ~@3", AH: "bb7 ~@11 bb7 ~@2 bb7",
AI: "bb7 ~ gb7 ~ f7 ~ gb7 ~ ab7 ~@3 gb7 ~@3", AJ: "eb7 ~@11 eb7 ~@2 d7", AK: "db7 ~ db7 ~ db7 ~ db7 ~ db7 ~@7",
AL: "db7 ~ c7 ~ db7 ~ f7 ~ bb7 ~@3 ab7 ~@3", AM: "gb7 ~@15", AN: "b7 ~@3 b7 ~@3 b7 ~@3 b7 ~@3",
AO: "b7 ~@5 f7 ~ ab7 ~@7", AP: "bb7 ~@3 bb7 ~@3 bb7 ~@3 bb7 ~@3", AQ: "bb7 ~@5 db7 ~ gb7 ~@7",
AR: "f7 ~@3 ab7 ~@3 b7 ~@3 gb8 ~@3", AS: "f8 ~@2 f8!2 ~@2 f8!2 ~@7", AT: "db7 ~@3 gb7 ~@3 bb7 ~@3 eb8 ~@3",
AU: "db8 ~@2 db8!2 ~@2 db8!2 ~@7", AV: "eb7 ~@3 ab7 ~@3 b7 ~@3 eb8 ~@3",
AW: "db8 ~@2 bb7!2 ~@2 gb7!2 ~ gb7 ~ f7 ~ eb7 ~", AX: "db7 ~@3 d7 ~@3 eb7 ~@3 f7 ~@3",
AY: "gb7 ~ gb7!3 ~ gb7 ~ gb7 ~@7",
})).s("gm_glockenspiel").gain(0.21).pan(0.2)
// other · glockenspiel · "GLOCKENSPL" · soft notes
const glockenspiel_soft = note(`<
~@6 A ~ B ~@3 C D@2 ~@7 A ~ B ~@3 C D@2 ~@37 E ~ F ~ F ~ G ~@9 E ~ F ~ F ~ G ~@40
>`.pickRestart({
A: "~@13 d7 ~@2", B: "~@12 d7 ~@3", C: "~@15 db7", D: "~@15 bb7", E: "db7 ~ db7!3 ~ db7 ~@4 db7!2 ~@3",
F: "db7 ~ db7!3 ~ db7 ~ f7 ~@2 db7!2 ~@3", G: "db7 ~ db7!3 ~ db7 ~@9",
})).s("gm_glockenspiel").gain(0.12).pan(0.2)
// chords · french horn · "FR.HORN"
const french_horn_2 = note(`<
// … 69 more lines
More by
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.