Commit 346c6529 by PLN (Algolia)

feat(surface): column-align the whole OPAL set — 54 knobs move onto their own orbit's column

PLN gave the go and accepted the trade in his own words: "i agree for the trade and
change of knobs. i accept the fate! and truthful leds will help quick learn". The
faders were remapped this afternoon; doing the tracks now means his hands relearn
the surface ONCE, with four days to drill it, instead of learning an interim layout
this week and the real one after the gig.

    12 tracks, 54 substitutions, 5 gSel FIXMEs, 0 collisions

Each of d1-d8 now has its effect on its own B knob (and a second on its C knob for
d4-d8), directly above the fader that levels it. bombe_dj landed separately in
fdde0924 as the proof track.

== WHAT MADE THIS SAFE, AND IT IS NOT THE DIFF SIZE ==

The migrator computes each track's WHOLE permutation, prints it, then writes once.
That is not tidiness, it is correctness:

  * desire.tidal needs two genuine SWAPS — d7 ^55<->^35 and d8 ^56<->^36. Applied
    sequentially, the first move would overwrite the second's source and both
    controls would end up on one knob. Applied simultaneously they just exchange.
  * the same property dissolved the 34 "destination taken" clashes the naive
    costing reported: the corpus is uniformly off by one column, so every orbit
    wants the slot of the orbit below it, free only once that one moves too.
    Genuine collisions across all 13 tracks: zero.
  * the rewrite is scoped PER ORBIT. desire had ^19 driving both d7 and d9, which
    migrate to different destinations; a file-wide replace would have fused two
    gestures into one, silently.
  * commented-out ^NN refs are never touched — they are alternatives PLN
    re-enables mid-set, and rewiring them would break weeks from now with no trace.

== THE 5 OVERFLOWS, LEFT IN PLACE ON PURPOSE ==
perfect d4 ^17, perfect d5 ^18, mafia_sans_serif d7 ^19,
the_revolution_will_be_sampled d7 ^55, desire d3 ^52.
These orbits have three or more effect knobs; the grid honestly offers two (one for
d1-d3, whose C knob is a family DJ filter). Rather than spill them into a
neighbouring column and call the board aligned, each carries a FIXME(#54) pointing
at gSel. PLN: "if we have two effects, we consolidate via gSel indeed."

== VERIFICATION, AND ONE HONEST GAP ==
  pvlint                     13 tracks, 0 errors, 9 warnings (all pre-existing:
                             duplicate d5 declarations, one out-of-range sample
                             index — none introduced here)
  silent-eval --seeded       every BUILDABLE track's every declared orbit still
                             emits events, cold, against the seeded control map.
                             This is the check that would catch a renumber having
                             quietly emptied an orbit, and it is clean.
  surface-columns --knobs    77 knob renumbers -> 5 (exactly the gSel overflows)

THE GAP: the silent-eval harness cannot BUILD 3 of the 13 tracks — overlapping
IsString instances on chord literals, and an ambiguous `cutoff` between
Tidal.Context and Tidal.Params. I re-ran two of them from HEAD and they fail
identically there, so this migration did not cause it. But it means three tracks'
orbits are UNVERIFIED, and a harness that cannot build a track must never be read
as a pass. Filed separately.

Also fixed one stale comment of my own in desire.tidal: after the d7 swap the
NANANA knob is B7, not C7. A comment that lies about the layout is worse than none
when you are relearning the board.

Not committed here, deliberately: backlog.md and tools/at/fixtures/claude.tidal
carry PLN's own uncommitted edits.
parent fdde0924
...@@ -28,10 +28,11 @@ d3 $ gF1 $ gM1 -- OH/CY: Subtle offbeat hats, ^44 morphs to cymbal shimmer ...@@ -28,10 +28,11 @@ d3 $ gF1 $ gM1 -- OH/CY: Subtle offbeat hats, ^44 morphs to cymbal shimmer
(|* gain 0.94) . (# legato 0.2) . (# "h2ogmcy:1") . (# hpf 5000) (|* gain 0.94) . (# legato 0.2) . (# "h2ogmcy:1") . (# hpf 5000)
) )
-- $ midiOff "^44" (mask "t(3,8)") -- OFF: sparse euclidean (subtle) -- $ midiOff "^44" (mask "t(3,8)") -- OFF: sparse euclidean (subtle)
$ sometimesBy "^32" (ply "<2!3 [2 4]>") -- ^32: roll probability $ sometimesBy "^31" (ply "<2!3 [2 4]>") -- ^32: roll probability
$ "~ h ~ h ~ h ~ <h!3 h*2>" -- offbeat pattern with flourish $ "~ h ~ h ~ h ~ <h!3 h*2>" -- offbeat pattern with flourish
# "h2ogmhh" # "h2ogmhh"
# n "~ 3 ~ 2 ~ 4 ~ <3!3 [3 6]>" -- varying openness per hit # n "~ 3 ~ 2 ~ 4 ~ <3!3 [3 6]>" -- varying openness per hit
-- FIXME(#54) d3 3rd+ effect: the grid gives d3 B3 only (C is a gF filter). Fold ^52 in via gSel rather than borrowing a column.
# legato (range 0.2 0.9 "^52") -- ^52: tightness # legato (range 0.2 0.9 "^52") -- ^52: tightness
# cut "~ 3 ~ 3 ~ 3 ~ <3!3 [3 0]>" -- last hit: cut 0 = rings over bar boundary # cut "~ 3 ~ 3 ~ 3 ~ <3!3 [3 0]>" -- last hit: cut 0 = rings over bar boundary
# room (slow 32 $ range 0.2 0.45 saw) -- 32-bar: space grows (NOT dry!) # room (slow 32 $ range 0.2 0.45 saw) -- 32-bar: space grows (NOT dry!)
...@@ -45,7 +46,7 @@ d4 $ gF2 $ gM3 -- BASS (the FIXME): D minor, grounded in measured key (corr=0.90 ...@@ -45,7 +46,7 @@ d4 $ gF2 $ gM3 -- BASS (the FIXME): D minor, grounded in measured key (corr=0.90
$ midiOn "^45" (# crush 6) $ midiOn "^45" (# crush 6)
$ note (scale "aeolian" "0 . 0*<1 2> . <0 3> . 0*<1 1 4>" + 2 - 12) -- +2 = D root $ note (scale "aeolian" "0 . 0*<1 2> . <0 3> . 0*<1 1 4>" + 2 - 12) -- +2 = D root
# s "supersaw" # voice 0.05 # s "supersaw" # voice 0.05
# lpf (range 300 1800 "^53") # resonance 0.2 # lpf (range 300 1800 "^32") # resonance 0.2
# gain 1.15 # gain 1.15
d6 $ gF1 $ gM2 -- ACID ARP: D minor, 4/16 square rises, ^59-driven d6 $ gF1 $ gM2 -- ACID ARP: D minor, 4/16 square rises, ^59-driven
$ midiOn "^59" (arp "<up updown pinkyup speedupdown>") $ midiOn "^59" (arp "<up updown pinkyup speedupdown>")
...@@ -60,7 +61,7 @@ d5 $ gF3 $ gM3 -- ...@@ -60,7 +61,7 @@ d5 $ gF3 $ gM3 --
$ "desire" # n "<1!4 2!4 3!7 4 3!6 2 2 3!7 4>" $ "desire" # n "<1!4 2!4 3!7 4 3!6 2 2 3!7 4>"
# cut 5 # lpf 4000 # cut 5 # lpf 4000
# room 0.24 # sz 0.8 # room 0.24 # sz 0.8
# octersubbus 51 (range 0 1.5 "^54") # octersubbus 51 (range 0 1.5 "^33")
# delay "<0.2!3 0.8>" # delay "<0.2!3 0.8>"
# delayt 1 # delayfb 0.3 # delayt 1 # delayfb 0.3
# gain 1.3 # gain 1.3
...@@ -85,9 +86,9 @@ d7 $ gF3 $ gM3 -- Voices ...@@ -85,9 +86,9 @@ d7 $ gF3 $ gM3 -- Voices
-- and d9's gain swell above. d9 moved to ^17 (its own A5 knob), so the two are no -- and d9's gain swell above. d9 moved to ^17 (its own A5 knob), so the two are no
-- longer one gesture. If that link was deliberate, say so and we restore it. -- longer one gesture. If that link was deliberate, say so and we restore it.
-- d7 also stacks ^91/^35/^59 — consolidate this lot into B7 (^35) via gSel. -- d7 also stacks ^91/^35/^59 — consolidate this lot into B7 (^35) via gSel.
$ midiOn "^55" (>| n "<11 12>") -- NANANA | C7 = d7's 2nd effect $ midiOn "^35" (>| n "<11 12>") -- NANANA | B7 = d7's primary effect
$ midiOn "^35" (>| n "<10 ~>") -- FREE FROM DESIRE $ midiOn "^55" (>| n "<10 ~>") -- FREE FROM DESIRE
$ midiOn ("^59" - "^35") ( -- Refrain $ midiOn ("^59" - "^55") ( -- Refrain
(>| n "<10!4 11!4>") (>| n "<10!4 11!4>")
) -- Refrain ) -- Refrain
$ midiOff "^59" ( -- Couplet $ midiOff "^59" ( -- Couplet
...@@ -104,8 +105,8 @@ d8 $ gF1 $ gM1 ...@@ -104,8 +105,8 @@ d8 $ gF1 $ gM1
. (|* gain 1.2) . (|* gain 1.2)
) )
$ midiOff "^60" (mask "f(8,16)" . chop 16) $ midiOff "^60" (mask "f(8,16)" . chop 16)
$ midiOn "^56" (# "jungle_breaks:7") $ midiOn "^36" (# "jungle_breaks:7")
$ midiOn "^36" (# "jungle_breaks:37") $ midiOn "^56" (# "jungle_breaks:37")
$ chop 16 $ "jungle_breaks:101" $ chop 16 $ "jungle_breaks:101"
# cut 8 # cut 8
-- FIXME Acid sth? <3 -- FIXME Acid sth? <3
......
...@@ -37,8 +37,8 @@ d4 $ gF2 $ gM3 ...@@ -37,8 +37,8 @@ d4 $ gF2 $ gM3
$ slow 2 $ note ("<[e3@7 f3]!4 [b2@7 c2]!4>") $ slow 2 $ note ("<[e3@7 f3]!4 [b2@7 c2]!4>")
# "moog:2" # "moog:2"
# cut 4 # cut 4
# crushbus 41 (range 16 2.5 "^53") # crushbus 41 (range 16 2.5 "^32")
# octerbus 42 (range 0 2.5 "^33") # octerbus 42 (range 0 2.5 "^52")
# gain 1.1 # gain 1.1
d5 $ gF2 $ gM3 -- d5 $ gF2 $ gM3 --
$ midiOn "^90" ((# n ("<0>" + "<0 0 0 [0 0 1 0] 3 5 4 5>")) $ midiOn "^90" ((# n ("<0>" + "<0 0 0 [0 0 1 0] 3 5 4 5>"))
...@@ -56,7 +56,7 @@ d5 $ gF2 $ gM3 -- ...@@ -56,7 +56,7 @@ d5 $ gF2 $ gM3 --
# room 0.4 # sz 0.6 #dry 1.3 # room 0.4 # sz 0.6 #dry 1.3
# cut 5 # cut 5
# gain 1.4 # gain 1.4
# squizbus 51 (range 0 2.5 "^54") # squizbus 51 (range 0 2.5 "^33")
d7 $ gF3 $ gM3 -- FIXME ACID WEIRD NOT GOOD d7 $ gF3 $ gM3 -- FIXME ACID WEIRD NOT GOOD
$ midiOn "^91" (ply 4) $ midiOn "^91" (ply 4)
-- $ slow 2 -- $ slow 2
...@@ -66,9 +66,10 @@ d7 $ gF3 $ gM3 -- FIXME ACID WEIRD NOT GOOD ...@@ -66,9 +66,10 @@ d7 $ gF3 $ gM3 -- FIXME ACID WEIRD NOT GOOD
) )
# "acidOto3091" # "acidOto3091"
# cut 4 # cut 4
# crushbus 41 (range 16 2.5 "^53") # crushbus 41 (range 16 2.5 "^35")
# octerbus 42 (range 0 2.5 "^33") # octerbus 42 (range 0 2.5 "^55")
# gain 1.1 # gain 1.1
-- FIXME(#54) d7 3rd+ effect: the grid gives d7 B7 + C7. Fold ^19 in via gSel rather than borrowing a column.
# width (range 0 5 "^19") # width (range 0 5 "^19")
d8 $ gF1 $ gM1 d8 $ gF1 $ gM1
$ midiOn ("^60" - "^92") (mask "f(4,8)") $ midiOn ("^60" - "^92") (mask "f(4,8)")
......
...@@ -28,7 +28,7 @@ d3 $ gF1 $ gM1 ...@@ -28,7 +28,7 @@ d3 $ gF1 $ gM1
# gain 1.4 # gain 1.4
# room 0.3 # room 0.3
# dry (slow 16 $ range 0.2 1.8 perlin) # dry (slow 16 $ range 0.2 1.8 perlin)
# legato (range 0.05 2 "^52") # legato (range 0.05 2 "^31")
# sz 0.4 # sz 0.4
d4 $ gF2 $ gM3 d4 $ gF2 $ gM3
$ midiOn "^89" (struct "t . t(<1 3 5>,8)") $ midiOn "^89" (struct "t . t(<1 3 5>,8)")
...@@ -42,8 +42,8 @@ d4 $ gF2 $ gM3 ...@@ -42,8 +42,8 @@ d4 $ gF2 $ gM3
# "bassWarsaw" # "bassWarsaw"
-- |+ note 12. -- |+ note 12.
# room 0.3 # room 0.3
# crushbus 41 (range 16 3.5 "^53") # crushbus 41 (range 16 3.5 "^32")
# octerbus 42 (range 0 1.85 "^33") # octerbus 42 (range 0 1.85 "^52")
# room 0.2 # dry 1.2 # sz 0.7 # room 0.2 # dry 1.2 # sz 0.7
# gain 1.4 # gain 1.4
d5 $ gF3 $ gM3 -- LE PIMENT BRESILIEN d5 $ gF3 $ gM3 -- LE PIMENT BRESILIEN
...@@ -55,8 +55,8 @@ d5 $ gF3 $ gM3 -- LE PIMENT BRESILIEN ...@@ -55,8 +55,8 @@ d5 $ gF3 $ gM3 -- LE PIMENT BRESILIEN
$ "gfunk_lead:2" # cut 5 $ "gfunk_lead:2" # cut 5
# gain 1.7 # gain 1.7
# room 0.3 # room 0.3
# octerbus 51 (range 0 1.4 "^54") # octerbus 51 (range 0 1.4 "^33")
# octersubbus 52 (range 0 4 "^34") # octersubbus 52 (range 0 4 "^53")
d7 $ gF3 $ gM3 d7 $ gF3 $ gM3
$ midiOn "^91" (ply 2) $ midiOn "^91" (ply 2)
$ note ("[f3 cs3 c3 cs3 f3 cs3 <c3 f3> <cs3 fs3>]" $ note ("[f3 cs3 c3 cs3 f3 cs3 <c3 f3> <cs3 fs3>]"
...@@ -65,7 +65,7 @@ d7 $ gF3 $ gM3 ...@@ -65,7 +65,7 @@ d7 $ gF3 $ gM3
) )
# "FMRhodes2" # "FMRhodes2"
# gain 1.8 # gain 1.8
# modIndex (range 0 16 "^55") # modIndex (range 0 16 "^35")
-- # cut 9 -- # cut 9
d10 $ gF3 $ gM3 -- Menace d10 $ gF3 $ gM3 -- Menace
$ note "<bf3 ~ ~ <~ <[~!7 b3] [f4 cs4 c4 cs4 f4 cs4 c4 cs4]>>>" $ note "<bf3 ~ ~ <~ <[~!7 b3] [f4 cs4 c4 cs4 f4 cs4 c4 cs4]>>>"
......
...@@ -45,8 +45,8 @@ d4 $ gF2 $ gM3 ...@@ -45,8 +45,8 @@ d4 $ gF2 $ gM3
$ note "[cf4 [f4 cf4 f4] <[<cs4 fs4> cs4]!3 fs4> bf3@2]" $ note "[cf4 [f4 cf4 f4] <[<cs4 fs4> cs4]!3 fs4> bf3@2]"
# "giorgio_syn:43" # n (slow 16 $ "<47 48 47 46>") # "giorgio_syn:43" # n (slow 16 $ "<47 48 47 46>")
# cut 40 # cut 40
# crushbus 41 (range 16 2.5 "^53") # crushbus 41 (range 16 2.5 "^32")
# octerbus 42 (range 0 1.5 "^33") # octerbus 42 (range 0 1.5 "^52")
# pan 0.2 # pan 0.2
# legato 1.5 # legato 1.5
# room 0.5 # room 0.5
...@@ -72,16 +72,19 @@ d5 $ gF3 $ gM3 ...@@ -72,16 +72,19 @@ d5 $ gF3 $ gM3
# "acidOto3092" # "acidOto3092"
-- lagTime = 0.12, filterRange = 6, width = 0.51, rq = 0.3; -- lagTime = 0.12, filterRange = 6, width = 0.51, rq = 0.3;
-- 18 │ -- 18 │
# width (range 0.2 0.8 "^54") -- /!\ FIXME EXPLOSIF /!\ # width (range 0.2 0.8 "^33") -- /!\ FIXME EXPLOSIF /!\
# filterRange (range 0 8 "^34") # filterRange (range 0 8 "^53")
# filterRange (range 0 8 "^34") # filterRange (range 0 8 "^53")
# room 0.4 # dry 0.8 # room 0.4 # dry 0.8
# gain 1.3 # gain 1.3
# octer 0.4 # octer 0.4
# att 0.01 # rel 10 # att 0.01 # rel 10
-- # pan "[0.4|0.6]*8" -- # pan "[0.4|0.6]*8"
d8 $ gF1 $ gM1 d8 $ gF1 $ gM1
$ midiOn "^36" (# "jungle_breaks:75")
$ midiOn "^92" (ply 4)
-- $ midiOff "^60" (mask "f(8,16)" . chop 8) -- $ midiOff "^60" (mask "f(8,16)" . chop 8)
$ midiOff "^60" (slice 8 "<~!3 0> <1!3 ~> 2 <3!3 ~> 4 <5!3 ~> 6? 7*<1 2>" )
$ slice 8 "<~!3 0> <1!3 ~> 2 <3!3 ~> 4 <5!3 ~> 6? 7*<1 2>" $ slice 8 "<~!3 0> <1!3 ~> 2 <3!3 ~> 4 <5!3 ~> 6? 7*<1 2>"
$ chop 16 $ chop 16
$ loopAt 2 $ loopAt 2
......
...@@ -10,9 +10,10 @@ let gMute3 = (midiOn "^75" (mask "f*16")) ...@@ -10,9 +10,10 @@ let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute let gM1 = gMask . gMute
let gM2 = gMask . gMute2 let gM2 = gMask . gMute2
let gM3 = gMask . gMute3 let gM3 = gMask . gMute3
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49")) -- gF1/gF2/gF3 deliberately NOT redefined here: use BootTidal's safe-at-centre
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50")) -- gDJF. The old local form (# djfbus N (range 0.05 0.95 "^NN")) is the #21/#48
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51")) -- footgun -- djf 0.05 is a ~26 Hz low-pass, i.e. total silence, and that is
-- where an untouched/low knob sits. Bypass is djf 0.5, the CENTRE.
d1 $ gF1 $ gMute2 d1 $ gF1 $ gMute2
$ fix ((# lpf 150) . (|* gain 0.93)) "kick:5" $ fix ((# lpf 150) . (|* gain 0.93)) "kick:5"
$ midiOn "^42" (<| "k k k <k <k*2 [k k k ~]>>") $ midiOn "^42" (<| "k k k <k <k*2 [k k k ~]>>")
...@@ -31,7 +32,7 @@ d3 $ gF1 $ gM1 -- Highest hats ...@@ -31,7 +32,7 @@ d3 $ gF1 $ gM1 -- Highest hats
$ sometimesBy "0!3 <0 0.5>" (# n 12) $ sometimesBy "0!3 <0 0.5>" (# n 12)
$ sometimesBy "0!3 <0.1 0>" (# n 13) $ sometimesBy "0!3 <0.1 0>" (# n 13)
$ "~ d ~ d d d d*<1 1 2 1> d" $ "~ d ~ d d d d*<1 1 2 1> d"
# "[rampleS34:6,clap]" # "rampleS34:6"
# cut 3 # cut 3
# legato (range 0.28 1 sine) # legato (range 0.28 1 sine)
# gain (1.1 * (range 0.85 1.05 (fast 4 perlin))) # gain (1.1 * (range 0.85 1.05 (fast 4 perlin)))
...@@ -43,20 +44,21 @@ d4 $ gF2 $ gM3 ...@@ -43,20 +44,21 @@ d4 $ gF2 $ gM3
$ midiOff "^57" (slow 2) $ midiOff "^57" (slow 2)
$ note "~ [a3 c4] ~ [e3 g3] ~ [a3 e3] ~ g3" $ note "~ [a3 c4] ~ [e3 g3] ~ [a3 e3] ~ g3"
# "bassWarsaw" |- note 12 # "bassWarsaw" |- note 12
# cut 41 # gain (range 0.5 2 "^33") # cut 41 # gain (range 0.5 2 "^32")
# crushbus 43 (range 16 2.5 "^53") # crushbus 43 (range 16 2.5 "^52")
) )
$ whenmod 4 3 (ply "1 2") $ whenmod 4 3 (ply "1 2")
$ chop 8 $ chop 8
$ loopAt 4 $ loopAt 4
$ "no_sunshine:5" $ "no_sunshine:5"
# gain (1.8- 0.6 * "^33") # gain (1.8- 0.6 * "^32")
# lpf 4000 # lpf 4000
# room 0.4 # sz 0.8 # room 0.4 # sz 0.8
# delay 0.3 # delayt 0.25 # delayfb 0.5 # delay 0.3 # delayt 0.25 # delayfb 0.5
-- # octersubbus 41 (range 0 2 "^53") -- # octersubbus 41 (range 0 2 "^53")
# crushbus 42 (range 16 2.5 "^53") # crushbus 42 (range 16 2.5 "^52")
d5 $ gF3 $ gM3 d5 -- The Voice of Love
-- $ gF3 $ gM3
$ midiOn "^58" ( -- I KNOW $ midiOn "^58" ( -- I KNOW
(# n "<16 ~!3>") (# n "<16 ~!3>")
. (# cut 5)) -- FIXME VOICE OFF . (# cut 5)) -- FIXME VOICE OFF
......
...@@ -22,7 +22,7 @@ d3 $ gF1 $ gM1 ...@@ -22,7 +22,7 @@ d3 $ gF1 $ gM1
$ midiOn "^44" (<| "h(4,8,1)") $ midiOn "^44" (<| "h(4,8,1)")
$ midiOff "^44" (<| "hh(3,8) hh(<3 [3 5] 8>,8,1)") $ midiOff "^44" (<| "hh(3,8) hh(<3 [3 5] 8>,8,1)")
$ "vec1_snare:11" $ "vec1_snare:11"
# legato (range 0.25 2 "^52") # legato (range 0.25 2 "^31")
d4 $ gF2 $ gM3 -- WAP BASS d4 $ gF2 $ gM3 -- WAP BASS
$ midiOn "^89" ( $ midiOn "^89" (
slice 8 ("~ 0 ~ 5 ~ 3 <~!4 5!4> <3!4 [3 0]!4>") slice 8 ("~ 0 ~ 5 ~ 3 <~!4 5!4> <3!4 [3 0]!4>")
...@@ -32,7 +32,7 @@ d4 $ gF2 $ gM3 -- WAP BASS ...@@ -32,7 +32,7 @@ d4 $ gF2 $ gM3 -- WAP BASS
slice 8 ("~ 0 <~ ~ 5 5> 3 <~ 0!3> <~!4 0!10 ~ 0*4> 5 <~ 5>") slice 8 ("~ 0 <~ ~ 5 5> 3 <~ 0!3> <~!4 0!10 ~ 0*4> 5 <~ 5>")
-- $ (0.125 ~>) : -- $ (0.125 ~>) :
. (# gain 1.3 ) . (# gain 1.3 )
. (# crushbus 43 (range 16 3.4 "^53") ) . (# crushbus 43 (range 16 3.4 "^32") )
. (# lpf 3000) . (# lpf 3000)
-- . (# note "-12") -- . (# note "-12")
-- . ( #octersub 1.2) -- . ( #octersub 1.2)
...@@ -44,11 +44,11 @@ d4 $ gF2 $ gM3 -- WAP BASS ...@@ -44,11 +44,11 @@ d4 $ gF2 $ gM3 -- WAP BASS
# cut 4 # cut 4
# gain 1.9 # gain 1.9
-- # room 0.4 -- # room 0.4
# octersubsubbus 42 (range 0 1.4 "^53") # octersubsubbus 42 (range 0 1.4 "^32")
# octerbus 41 (range 0 1.4 "^53") # octerbus 41 (range 0 1.4 "^32")
d5 $ gF3 $ gMute3 -- WAP HOES v1 magic repeat d5 $ gF3 $ gMute3 -- WAP HOES v1 magic repeat
$ midiOn "^34" (# 7) -- FORCE INTRO $ midiOn "^33" (# 7) -- FORCE INTRO
$ midiOff ("^34"+"^90") (slow 4) $ midiOff ("^33"+"^90") (slow 4)
$ stut 4 1 1 -- Four repeats each $ stut 4 1 1 -- Four repeats each
$ slow 4 $ slow 4
$ midiOn "^58" (stut "4" 0.9 (fast 4 "e")) $ midiOn "^58" (stut "4" 0.9 (fast 4 "e"))
...@@ -65,8 +65,8 @@ d5 $ gF3 $ gMute3 -- WAP HOES v1 magic repeat ...@@ -65,8 +65,8 @@ d5 $ gF3 $ gMute3 -- WAP HOES v1 magic repeat
# gain 1.4 # gain 1.4
d5 $ gF3 $ gMute3 -- WAP HOES v1 science of repeat d5 $ gF3 $ gMute3 -- WAP HOES v1 science of repeat
$ midiOn "^90" ((slice 4 "0*4")) $ midiOn "^90" ((slice 4 "0*4"))
$ midiOn "^34" (# 7) -- FORCE INTRO $ midiOn "^33" (# 7) -- FORCE INTRO
$ midiOff ("^34" + "^90") (slow 4) -- 4 bars $ midiOff ("^33" + "^90") (slow 4) -- 4 bars
$ stut 4 1 1 -- Four repeats each $ stut 4 1 1 -- Four repeats each
$ slow 4 -- times Four bits $ slow 4 -- times Four bits
$ midiOn "^58" (stut "4" 0.9 (fast 4 "e")) $ midiOn "^58" (stut "4" 0.9 (fast 4 "e"))
......
...@@ -2,7 +2,7 @@ do ...@@ -2,7 +2,7 @@ do
-- resetCycles -- resetCycles
setcps (114/60/4) setcps (114/60/4)
d1 $ gF1 $ gM2 d1 $ gF1 $ gM2
$ sometimesBy "^30" (fast 2) $ sometimesBy "^29" (fast 2)
$ midiOn "^42" (<| "k k k k*2") $ midiOn "^42" (<| "k k k k*2")
$ midiOff "^42" (<| "k . k(3,8)") $ midiOff "^42" (<| "k . k(3,8)")
$ stack [ $ stack [
...@@ -42,8 +42,8 @@ d4 $ gF2 $ gM3 ...@@ -42,8 +42,8 @@ d4 $ gF2 $ gM3
# gain 1.4 # gain 1.4
-- # room 0.3 # sz 0.3 -- # room 0.3 # sz 0.3
-- # delay 0.6 # delayt 0.01 # delayfb 0.2 -- # delay 0.6 # delayt 0.01 # delayfb 0.2
# crushbus 41 (range 16 3.5 "^53") # crushbus 41 (range 16 3.5 "^32")
# bandf (range 50 1200 "^33") # bandf (range 50 1200 "^52")
d5 $ gF3 $ gM3 d5 $ gF3 $ gM3
$ slow 2 -- Adjusted to Sugar rhytm <3 $ slow 2 -- Adjusted to Sugar rhytm <3
$ midiOn "^90" (ply "<4!3 8>" . (# begin "0 <0 0.25> 0.5 0.5")) $ midiOn "^90" (ply "<4!3 8>" . (# begin "0 <0 0.25> 0.5 0.5"))
...@@ -79,12 +79,13 @@ d5 $ gF3 $ gM3 ...@@ -79,12 +79,13 @@ d5 $ gF3 $ gM3
d7 $ gF2 $ gM3 -- LEAD: Rhodes arp in D Dorian (i7 → IV7 → bIII → v) d7 $ gF2 $ gM3 -- LEAD: Rhodes arp in D Dorian (i7 → IV7 → bIII → v)
$ midiOn "^59" (jux rev) $ midiOn "^59" (jux rev)
$ midiOff "^59" (degradeBy 0.15) $ midiOff "^59" (degradeBy 0.15)
$ sometimesBy "^31" (# squiz "<1 2 3 1>") $ sometimesBy "^35" (# squiz "<1 2 3 1>")
$ fast 2 $ fast 2
$ arp "<up updown down converge up updown thumbup converge>" $ arp "<up updown down converge up updown thumbup converge>"
$ note "<d3'min7 g3'7 f3'maj7 a3'min7>" $ note "<d3'min7 g3'7 f3'maj7 a3'min7>"
# s "FMRhodes1" # s "FMRhodes1"
# cutoff (range 1200 4500 "^54") # cutoff (range 1200 4500 "^55")
-- FIXME(#54) d7 3rd+ effect: the grid gives d7 B7 + C7. Fold ^55 in via gSel rather than borrowing a column.
# resonance (range 0.1 0.3 "^55") # resonance (range 0.1 0.3 "^55")
# room 0.6 # sz 0.5 # room 0.6 # sz 0.5
# delay 0.5 # delayt "q" # delayfb 0.35 # delay 0.5 # delayt "q" # delayfb 0.35
......
...@@ -32,17 +32,17 @@ d3 $ gF1 $ gM1 ...@@ -32,17 +32,17 @@ d3 $ gF1 $ gM1
# room 0.5 # room 0.5
# dry (slow 16 $ range 0.2 1.8 perlin) # dry (slow 16 $ range 0.2 1.8 perlin)
# sz 0.4 # sz 0.4
# legato (range 0.3 2 "^52") # legato (range 0.3 2 "^31")
d5 $ gF3 $ gM3 d5 $ gF3 $ gM3
$ midiOn "^18" (# n "15") $ midiOn "^33" (# n "15")
$ midiOn "^90" (ply "<2 2 1 2 2 4 [4 2 8 4] 8>") $ midiOn "^90" (ply "<2 2 1 2 2 4 [4 2 8 4] 8>")
$ slice 4 "<0 1 2 3*<1!3 <2 4 [4 1]>>>" $ slice 4 "<0 1 2 3*<1!3 <2 4 [4 1]>>>"
$ midiOn "^34" ( $ midiOn "^53" (
mask "<t <f!4 t!4> <f t t t> <f!8 t!6 f t>>" . mask "<t <f!4 t!4> <f t t t> <f!8 t!6 f t>>" .
(>| n (slow 8 $ "<18 19 20 21 22 23 24 26>")) (>| n (slow 8 $ "<18 19 20 21 22 23 24 26>"))
) )
$ midiOn ("^58" - "^34") (>| n (slow 4 $ "<10 11 12 13 13 13 14 13 14 15 15 13 15 16 15 13>")) $ midiOn ("^58" - "^53") (>| n (slow 4 $ "<10 11 12 13 13 13 14 13 14 15 15 13 15 16 15 13>"))
$ midiOff ("^58" + "^34") (>| n (slow 4 $ "<9 9 10 9>")) $ midiOff ("^58" + "^53") (>| n (slow 4 $ "<9 9 10 9>"))
$ fix (|* gain 1.2) "take5:9" $ fix (|* gain 1.2) "take5:9"
$ "take5" $ "take5"
# cut 5 # cut 5
...@@ -59,7 +59,7 @@ d4 -- BASSLINE GENERATIVE ...@@ -59,7 +59,7 @@ d4 -- BASSLINE GENERATIVE
. (|+ note 12) . (|+ note 12)
. (|* gain (slow 32 $ range 0.6 1.1 saw)) . (|* gain (slow 32 $ range 0.6 1.1 saw))
. ( . (
# octersubbus 42 (range 0 3.5 "^33") # octersubbus 42 (range 0 3.5 "^32")
) )
)) ))
$ struct "[t,[~ . t(<1 3 5>,8)]]" $ struct "[t,[~ . t(<1 3 5>,8)]]"
...@@ -68,7 +68,7 @@ d4 -- BASSLINE GENERATIVE ...@@ -68,7 +68,7 @@ d4 -- BASSLINE GENERATIVE
# pan 0.4 # pan 0.4
# gain 1.4 # gain 1.4
# room 0.3 # room 0.3
# crushbus 41 (range 16 3.5 "^53") # crushbus 41 (range 16 3.5 "^52")
# room 0.2 # dry 1.2 # sz 0.7 # room 0.2 # dry 1.2 # sz 0.7
# gain 1.8 # gain 1.8
d7 -- CHOEUR GENERATIF ALONG THE BASS d7 -- CHOEUR GENERATIF ALONG THE BASS
...@@ -77,7 +77,7 @@ d7 -- CHOEUR GENERATIF ALONG THE BASS ...@@ -77,7 +77,7 @@ d7 -- CHOEUR GENERATIF ALONG THE BASS
arp "up <up <converge pinkyup>>" arp "up <up <converge pinkyup>>"
. (ply 2) . (ply 2)
. (# pan "0.85 0.15") . (# pan "0.85 0.15")
. (|* gain (range 0.2 1.5 "^55")) . (|* gain (range 0.2 1.5 "^35"))
. (|+ note 12) . (|+ note 12)
) )
) )
...@@ -86,7 +86,7 @@ d7 -- CHOEUR GENERATIF ALONG THE BASS ...@@ -86,7 +86,7 @@ d7 -- CHOEUR GENERATIF ALONG THE BASS
-- # pan 0.4 -- # pan 0.4
# gain 1.4 # gain 1.4
# room 0.3 # room 0.3
# crushbus 41 (range 16 3.5 "^53") # crushbus 41 (range 16 3.5 "^55")
# room 0.2 # dry 1.2 # sz 0.7 # room 0.2 # dry 1.2 # sz 0.7
# gain 1.4 # gain 1.4
# pan 0.4 # pan 0.4
......
...@@ -47,19 +47,22 @@ d4 $ gF2 $ gM3 ...@@ -47,19 +47,22 @@ d4 $ gF2 $ gM3
# room 0.4 # room 0.4
# sz 0.4 # sz 0.4
# octersub 0.4 # octersub 0.4
# crushbus 41 (range 16 4.5 "^53") # crushbus 41 (range 16 4.5 "^32")
# octersubbus 42 (range 0 2.5 "^33") # octersubbus 42 (range 0 2.5 "^52")
-- FIXME(#54) d4 3rd+ effect: the grid gives d4 B4 + C4. Fold ^17 in via gSel rather than borrowing a column.
# octersubbus 43 (range 0 5 "^17") # octersubbus 43 (range 0 5 "^17")
# cut 4 # cut 4
# gain 1.5 # gain 1.5
d5 $ gF3 $ gM3 -- COUNT TO SUPERSTARDOM d5
-- $ gF3 $ gMute3 -- COUNT TO SUPERSTARDOM
-- $ slow 2 -- $ slow 2
$ midiOn "^29" ( $ midiOn "^33" (
slice 16 "<<[0 1 2 3] [<0 10> <1 11> 10 11]> <[8 9 10 11] [<12!3 15> <13!3 15> <14 12> <15 13>]>>" slice 16 "<<[0 1 2 3] [<0 10> <1 11> 10 11]> <[8 9 10 11] [<12!3 15> <13!3 15> <14 12> <15 13>]>>"
. (>| "perfect") . (>| "perfect")
) )
$ midiOn "^90" (ply "<2 4>") $ midiOn "^90" (ply "<2 4>")
$ midiOn ("^34" - "^18") ( -- THE HIPS THE FACE THE LIPS THE MICROPHONE -- FIXME(#54) d5 3rd+ effect: the grid gives d5 B5 + C5. Fold ^18 in via gSel rather than borrowing a column.
$ midiOn ("^53" - "^18") ( -- THE HIPS THE FACE THE LIPS THE MICROPHONE
slice 4 "<0 1 0 1 2 2 [2 2] 3>" slice 4 "<0 1 0 1 2 2 [2 2] 3>"
. (# n 14) . (|* gain 0.8) . (# n 14) . (|* gain 0.8)
) )
...@@ -76,7 +79,7 @@ d5 $ gF3 $ gM3 -- COUNT TO SUPERSTARDOM ...@@ -76,7 +79,7 @@ d5 $ gF3 $ gM3 -- COUNT TO SUPERSTARDOM
) )
$ midiOn ("^58") ( -- Slice 1 2 3 4! $ midiOn ("^58") ( -- Slice 1 2 3 4!
slice 8 "<[0 1] [0 1] [0 0 <0 1> <1 0>] [2 3]>" ) slice 8 "<[0 1] [0 1] [0 0 <0 1> <1 0>] [2 3]>" )
$ midiOff ("^58"+"^29" + "^34") ( -- WATCH ME WORK IT $ midiOff ("^58"+"^33" + "^53") ( -- WATCH ME WORK IT
slice 8 "<[0 1] [2 3] [4 5] [6 <7 <6 6*2>>]>" slice 8 "<[0 1] [2 3] [4 5] [6 <7 <6 6*2>>]>"
) )
$ "perfect" $ "perfect"
...@@ -119,9 +122,9 @@ d12 $ gF3 $ gM3 -- Acid techno arp with structured rhythms ...@@ -119,9 +122,9 @@ d12 $ gF3 $ gM3 -- Acid techno arp with structured rhythms
# room 0.2 # sz 0.3 # room 0.2 # sz 0.3
d8 $ gF1 $ gM1 d8 $ gF1 $ gM1
$ midiOff "^60" (mask "t(<4 [<2 4> 8]>,8,1)" . chop 8) $ midiOff "^60" (mask "t(<4 [<2 4> 8]>,8,1)" . chop 8)
$ midiOff "^56" ( $ midiOff "^36" (
slice 8 "0 1 <2!3 ~> <3!3 0> <4!3 1> 5 <6!12 ~!3 6*4> 7*<1 2 0 8>") slice 8 "0 1 <2!3 ~> <3!3 0> <4!3 1> 5 <6!12 ~!3 6*4> 7*<1 2 0 8>")
$ midiOn "^56" (loopAt 2 . (# "jungle_breaks:19")) $ midiOn "^36" (loopAt 2 . (# "jungle_breaks:19"))
$ chop 8 $ chop 8
$ loopAt 1 $ loopAt 1
$ "breaks165" $ "breaks165"
...@@ -138,7 +141,7 @@ d9 $ gF2 $ gM3-- slow arpeggiated synth, high register ...@@ -138,7 +141,7 @@ d9 $ gF2 $ gM3-- slow arpeggiated synth, high register
# delay 0.5 # delaytime (1/3) # delayfb 0.4 # delay 0.5 # delaytime (1/3) # delayfb 0.4
# lpf 1400 # lpf 1400
# cut 9 # cut 9
d10 -- Euclidian mid arpss d10 $ gF2 $ gM3-- Euclidian mid arpss
$ struct "t(5,8,2)" $ struct "t(5,8,2)"
$ note (slow 2 $ "<bf3 cs4 ef3 bf3>" + "<0 7 12>") $ note (slow 2 $ "<bf3 cs4 ef3 bf3>" + "<0 7 12>")
# s "moogBass" # s "moogBass"
......
...@@ -26,8 +26,8 @@ d4 $ gF2 $ gM3 ...@@ -26,8 +26,8 @@ d4 $ gF2 $ gM3
$ "superfreak:1" $ "superfreak:1"
# cut 4 # cut 4
# gain 1.3 # gain 1.3
# crushbus 41 (range 16 2.5 "^53") # crushbus 41 (range 16 2.5 "^32")
# octerbus 42 (range 0 1.13 "^33") # octerbus 42 (range 0 1.13 "^52")
# room 0.4 # room 0.4
d5 $ gF3 $ gM3 d5 $ gF3 $ gM3
$ midiOn "^90" (ply 8) $ midiOn "^90" (ply 8)
......
...@@ -4,7 +4,7 @@ setcps (89/60/4) ...@@ -4,7 +4,7 @@ setcps (89/60/4)
d1 $ fast 2 d1 $ fast 2
$ gF1 $ gMute2 $ gF1 $ gMute2
-- $ midiOff "^42" (<| "<k [~!7 k*<1 2>]>")# -- $ midiOff "^42" (<| "<k [~!7 k*<1 2>]>")#
$ midiOn "^30" (# "jazz:0") $ midiOn "^29" (# "jazz:0")
$ midiOff "^42" (<| "k . ~ k ~ ~") $ midiOff "^42" (<| "k . ~ k ~ ~")
$ midiOn "^42" (<| "k k . k <k [~ k] k k*2>") $ midiOn "^42" (<| "k k . k <k [~ k] k k*2>")
$ "[popkick:2,kick:5]" $ "[popkick:2,kick:5]"
...@@ -31,8 +31,8 @@ d4 $ gF2 $ gM3 ...@@ -31,8 +31,8 @@ d4 $ gF2 $ gM3
$ note "[<as2 cs3 f3 cs3> <b2 ef3 fs3 b2>@7]" $ note "[<as2 cs3 f3 cs3> <b2 ef3 fs3 b2>@7]"
# "bassWarsaw" # cut 4 # "bassWarsaw" # cut 4
# room 0.4 # sz 0.8 # dry 0.9 # room 0.4 # sz 0.8 # dry 0.9
# octersubbus 42 (range 0 1.8 "^33") # octersubbus 42 (range 0 1.8 "^32")
# crushbus 41 (range 16 4.5 "^53") # crushbus 41 (range 16 4.5 "^52")
# gain 1.5 # gain 1.5
d5 $ gF3 $ gM3 d5 $ gF3 $ gM3
$ midiOn "^90" ((# begin "0 0.5") . ply "<4!7 [8 16]>") $ midiOn "^90" ((# begin "0 0.5") . ply "<4!7 [8 16]>")
...@@ -42,9 +42,9 @@ d5 $ gF3 $ gM3 ...@@ -42,9 +42,9 @@ d5 $ gF3 $ gM3
# gain 1.3 # gain 1.3
# dry 1.3 # sz 0.8 # room 0.4 # dry 1.3 # sz 0.8 # room 0.4
# pan "0.3!3 0.7" # pan "0.3!3 0.7"
# octersubbus 51 (range 0 0.8 "^34") # octersubbus 51 (range 0 0.8 "^33")
# octerbus 52 (range 0 0.4 "^34") # octerbus 52 (range 0 0.4 "^33")
# crushbus 53 (range 16 5 "^54") # crushbus 53 (range 16 5 "^53")
d7 $ gF3 $ gM3 d7 $ gF3 $ gM3
$ midiOn "^35" (# n 3) $ midiOn "^35" (# n 3)
$ midiOn "^91" (ply "<4!3 [8 16]>") $ midiOn "^91" (ply "<4!3 [8 16]>")
......
...@@ -8,7 +8,7 @@ d1 $ gMute2 $ gF1 -- Kick solide ...@@ -8,7 +8,7 @@ d1 $ gMute2 $ gF1 -- Kick solide
$ midiOn "^42" (struct "t t t t*<1!6 2 2>") $ midiOn "^42" (struct "t t t t*<1!6 2 2>")
$ midiOff "^42" (<| "k . ~ <~!3 k> ~ ~") $ midiOff "^42" (<| "k . ~ <~!3 k> ~ ~")
$ "[kick:4,jazz]" $ "[kick:4,jazz]"
# gain 1.3 # gain 1
d2 $ gF1 $ gM1 $ "~ c . <[~ c ~ c] [<c ~ ~ c> <~ c ~ c> . ~]>" d2 $ gF1 $ gM1 $ "~ c . <[~ c ~ c] [<c ~ ~ c> <~ c ~ c> . ~]>"
# "cp" # gain 1.1 # "cp" # gain 1.1
# lpf 2000 # lpf 2000
...@@ -29,8 +29,8 @@ d4 ...@@ -29,8 +29,8 @@ d4
# n "<5!4 6!4>" # cut 4 # n "<5!4 6!4>" # cut 4
# lpf 2000 # octersub 0.8 # lpf 2000 # octersub 0.8
# gain 1.4 # gain 1.4
# crushbus 41 (range 11 3.13 "^53") # crushbus 41 (range 11 3.13 "^32")
# octersubbus 42 (range 0 2.13 "^33") # octersubbus 42 (range 0 2.13 "^52")
# room 0.3 # sz 0.3 # dry 1.13 # room 0.3 # sz 0.3 # dry 1.13
d5 $ gM3 $ gF3 -- THIS SYNTH IS A CRIME <3 d5 $ gM3 $ gF3 -- THIS SYNTH IS A CRIME <3
$ slice 16 (slow 4 $ run 16) $ slice 16 (slow 4 $ run 16)
...@@ -64,7 +64,7 @@ d7 $ gM3 $ gF3 -- DARK LIPS <3 ...@@ -64,7 +64,7 @@ d7 $ gM3 $ gF3 -- DARK LIPS <3
d8 $ gF1 $ gM1 $ chop 8 $ loopAt 2 -- FIXME IMPORT RICHER STACK OF BREAKS d8 $ gF1 $ gM1 $ chop 8 $ loopAt 2 -- FIXME IMPORT RICHER STACK OF BREAKS
$ "jungle_breaks:74" $ "jungle_breaks:74"
# cut 8 # cut 8
d10 $ gF1 $ gM1 $ mask "<t f!7>" $ "risers:8" d10 $ gF1 $ gM1 $ mask "<t f!7>" $ "risers:8" -- safe riser
d6 $ gF3 $ gM3 $ slice 4 "<0 1 2 <3 3*2>>" d6 $ gF3 $ gM3 $ slice 4 "<0 1 2 <3 3*2>>"
$ "crimewave:15" $ "crimewave:15"
# cut 9 # cut 9
...@@ -73,10 +73,3 @@ d6 $ gF3 $ gM3 $ slice 4 "<0 1 2 <3 3*2>>" ...@@ -73,10 +73,3 @@ d6 $ gF3 $ gM3 $ slice 4 "<0 1 2 <3 3*2>>"
# octersub 0.6 # octersub 0.6
# gain 1.5 # gain 1.5
# lpf 4000 # lpf 4000
d6 $ "crimewave" # cut 6
once $ "crimewave:23" # cut 6
# gain 1.3
# octersub 0.6 # room 0.3 # sz 0.3 # dry 0.8
# pan 0.4
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment