After I made this, I remembered the propellorheads had done something similar. The James Bond theme also was composed in phrygian/spanish mode.
You can listen to the 8bit version here on strudel.
//////////////////////////////////////////////////////////////////////////////////////////
//
// On Her Majesty's — John Barry
// @license CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/
// @by Bitcoin Graffiti
// @date Oct 11, 2025
//
//////////////////////////////////////////////////////////////////////////////////////////
samples('github:tidalcycles/dirt-samples')
setcpm(80/4)
//chord("<Fm9@3 Cb7@3 Am9@3 Bbm7@3 F7@4>").voicing()
//
const strings_intro = note("[f2, ab, eb, g] [cb, bb, eb, gb] [a2, b, c, g] [bb2, db, f, a] [f, f4, c, eb, a]").beat("1, 2, 4, 7, 10, 13", 16).s("[[gm_trumpet, gm_string_ensemble_1:3]!4 gm_string_ensemble_1:5 ]").room(3).color('teal').gain(.3).legato(.7)
const c1 = note("[f1, c, f, ab] [eb2, c, f, ab] [db2, c, f, ab] [c2, c, f, ab] [bb2, bb, d, f] [d2, a, d, f][db2, db, f, a][c2, c, f, a]").s("gm_string_ensemble_1:3").room(3).color('teal').gain(.3).legato(.7).slow(2)
const c2 = note("[bb2, bb, d, f] [ab2, bb, db, f] [g2, bb, d, f] [gb2, bb, d, f] [f2, c, eb, ab][ab2, bb, db, f][g2, bb, db, f][gb2, bb, db, f] [eb2, bb, eb, gb][db2, bb, eb, gb][c2, bb, eb, gb][cb2, bb, cb, gb] [bb2, bb, d, f] [ab2, bb, db, f] [g2, bb, d, f] [gb2, bb, d, f]").s("gm_string_ensemble_1:3").room(3).color('teal').gain(.3).legato(.7).slow(4)
const mel1 = note("[f@3 f ab@8 g@1.5 ab@1.5 g f@3 f a@12]").s("sawtooth").color('magenta').slow(2).swingBy(.07, 4).gain(.5)
const mel2 = note("[bb@3 bb db4@8 c4@1.5 db4@1.5 c4] [ab@3.5 c4 bb@11.5 ~!2 bb@2] [[bb c4 bb]@4 [db4 bb c4]@4 [bb c4 bb]@4 [gb4 eb ab]@4] [bb@16]").s("sawtooth").color('magenta').slow(4).swingBy(.07, 4).gain(.5)
const harp = n("~ ~ ~ [1 2 3 4 5 6 7 8 9 10 11 12 13 14] ~!4").scale("F:<phrygian>").s("pulse").gain(.7).color('blue').slow(2)
//percussion
const drum_intro = s("bd, oh").beat("1, 2, 4, 7, 10", 16).gain(.4)
const breaks = s("breaks165").slice(8, "0 1 <2 2*2> 3 [4 0] 5 6 7".every(3, rev)).fast(2).color('gold').gain(.4)
const bd = s("bd!4").bank("TR909").gain(.3)
const sd = s("[~ sd]!8").bank("TR909").gain(.3)
const tb = s("tb!16").gain(.3)
const drums = stack(breaks, bd, sd, tb)
arrange(
//intro
[2, stack(strings_intro, drum_intro, harp)],
//chorus
[4, stack(c1, mel1)],
[4, stack(c2, mel2)],
[4, stack(c1, mel1, drums)],
[4, stack(c2, mel2, drums, harp)],
[4, stack(c1, tb)],
[4, stack(c2, bd, tb, harp)],
[4, stack(c1, mel1, drums)],
[4, stack(c2, mel2, harp)],
).pianoroll({labels: 1})