Commit d7577ca3 by PLN (Algolia)

collabs: micka and free from desire

parent e7c0293b
-- url: "/home/pln/Downloads/PerfectSunriseLoop.gif"
-- Les Moulins de Mon Cœur — Hiba ∞ ParVagues
-- Montagnes → Ville, nostalgique, le train qui tourne
-- <3
-- ANALYSE ——————————————————————————————————————————
-- Source: Michel Legrand 1968, Hiba voix sur karaoke piano
-- Tonalité : C# mineur (conf. librosa 0.76)
-- Tempo original : ~60 BPM ballade 4/4
-- Ici on joue à 120 BPM → 2 cycles Tidal = 1 mesure vocale d'Hiba
-- → half-time feel sur la voix, broken-beat density côté batterie
-- PROGRESSION ——————————————————————————————————————
-- Couplet A : C#m(1m) ⇄ G#(1m) (i ⇄ V modal)
-- Couplet B : C#m C# F#m B E A F#m G# (descente, l'entrée vers le refrain)
-- Refrain : F#m → B → E → A spirale (iv VII III VI, le moulin qui tourne)
-- Sortie : Cm/C#m/C/C# modulation demi-ton (chanson classique)
-- STRUCTURE (RMS envelope des pistes Hiba) —————————
-- 0-60s Section A : intro/couplet 1 (adlib3 actif)
-- 60-124s Section B : couplet 2, voix seule (adlib2 continue)
-- 124-202s Section C: CLIMAX (peak 150s) (les 3 voix convergent)
-- 202-fin Section D : outro (-34s de fleurs adlib)
-- SAMPLES EXPLORÉS ————————————————————————————————
-- Accords C (+1 semitone pour C#m via |+ note 1 ou speed 1.059):
-- nujazz_keys120 : 120_NuPad_Chords_C_1..8 (pads chord)
-- 120_Rhodes_Chords_C_1 (Rhodes plein)
-- 120_Eli_rhodes_chords_C_1..3
-- 120_Wed_synth_licks_C_1..11 (licks mélodiques)
-- 120_Softlead_lick_C_1
-- 120_NuPad_riff_C1/2
-- Directement en tonalité (zéro transpose):
-- QStab_Db = C# stab (nujazz_stabs) ← tonique directe
-- QStab_B = B (VII)
-- QStab_Gb/A/E = F#/A/E (iv/VI/III)
-- 120_Rhodes_Bass_Gb = F# bass (iv)
-- 120_Rhodes_Bass_E = E bass (III)
-- 120_Th_Rhodes_E_1..3 / 120_Th_Pad_A_1..4 / EPianoB_120A_1..4
-- 120_Hera_riff_4bars1_Eminor (riff 4-mesures Emin = rel. majeur C#m)
-- Nostalgie :
-- blues_guitar_bluesky_60 / hoochie_60 / misc_60 (à 60 BPM, pulse vocal)
-- rhadamanthe_melo (toujours là, signature maison)
do
-- resetCycles
setcps (120/60/4)
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute1 = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute1
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
let modIndex = pF "modIndex"
d1 $ gF1 $ gM2 -- Kick, le pas du train qui démarre
$ midiOn "^42" (struct "t ~ ~ ~ ~ ~ t ~") -- half-time feel (60bpm sur 120 Tidal)
$ midiOff "^42" (struct "t ~ <~ t> ~ ~ ~ t <~ t>") -- broken-beat plus dense
$ stack [
"kick" # lpf 10000 # cut 1,
"jazz" # lpf 200 # cut 11 |* gain 0.9,
""
]
# "[kick:3,jazz]"
# gain 1.35
# cps ((range 60 180 "^29")/60/4)
d2 $ gF1 $ gM1 -- Clap/snare, contretemps liquide
$ midiOn "^43" (<| "~ ~ ~ ~ s ~ ~ <~ s*<1 2>>")
$ midiOff "^43" (<| "~ ~ ~ ~ s ~ ~ ~")
$ "[snare:24,cp]"
# gain 1.3
d3 $ gF1 $ gM1 -- Cymbales légères, la brume du matin
$ midiOn "^44" (<| "~ cy ~ cy ~ cy ~ <cy [~ cy]>")
$ midiOff "^44" (<| "~!6 <~ <cy ~> cy>")
$ "cy" # "<cy:1!6 cy:2!2>" # "h2ogmcy"
|* gain (range 1.0 0.7 perlin)
|* legato (range 0.5 2 (fast 2 perlin))
d4 $ gF2 $ gM3 -- Basse bassWarsaw, le cœur qui tourne (C#m ⇄ G# puis F#m-B-E-A)
$ midiOn "^89" (struct "t*16")
$ midiOn "^57" (struct "t(<3 5 5 7>,8)")
-- couplet (i⇄V) puis spirale du refrain
$ note ("<[cs2@7 gs2] [gs1@7 cs2] [cs2@7 gs2] [gs1@7 cs2] [fs1@7 b1] [b1@7 e2] [e2@7 a1] [a1@7 gs1]>")
# stack [
"bassWarsaw" # lpf 500,
"bassWarsaw" # cut 41 # crushbus 41 (range 16 3.5 "^53") # bandf 500 # gain 1.2,
""]
# "cpluck" |+ note 12
# octerbus 42 (range 0 0.8 "^33")
-- # octersubbus 43 (range 0 2.5 "^33")
# cut 41
# lpf 20000
# gain 1.35
d5 $ gF3 $ gM3 -- Rhodes/Keys, les moulins qui tournent doucement
-- sample 120_Rhodes_Chords_C ou _Eli_rhodes_chords_C shiftés +1 pour C#
$ midiOn "^90" (superimpose ((# cut 51) . (# delay 0.95) . (# delayt 0.125) . (# delayfb 0.7) . (# room 0) . (|* gain 0.8)))
$ stack [
midiOn "^58" (# silence) $ slow 2 "<begin ~ begin ~ begin ~ ~ ~>/2" # cut 51 # begin 0 # end 0.4 # pan 0.4,
midiOn "^58" (# silence) $ slow 2 "<~ mid ~ mid ~ ~ ~ ~>/2" # cut 52 # begin 0.4 # end 0.8 # pan 0.55,
"<~!24 end!8>" # begin 0.8 # end 1 # cut 53 # gain 0.8 # pan 0.7,
""
]
-- Rhodes en C : shift +1 semitone pour atterrir en C#
# "120_Rhodes_Chords_C:0" |+ note 1
-- alternatives : "120_NuPad_Chords_C:<0 1 2 3>" |+ note 1 ← pad 8-variations
-- "120_Eli_rhodes_chords_C:<0 1 2>" |+ note 1
# crushbus 51 (range 16 2.7 "^54")
# room 0.45
# gain 1.3
d7 $ gF3 $ gM3 -- Violoncelle / Guitare blues, la mémoire du voyage
-- blues_guitar_*_60 = 60 BPM donc loopAt 0.5 pour revenir à 120
$ midiOn "^59" (# silence)
$ loopAt 0.5
$ chop 8
$ "<blues_guitar_misc_60:0 blues_guitar_bluesky_60:0 blues_guitar_hoochie_60:0 blues_guitar_misc_60:1>"
# cut 7
# hpf 200
# room 0.5 # sz 0.6
# gain 1.0
d8 $ gF1 $ gM1 -- Break, le train qui cogne les rails
$ midiOn "^60" (mask "t(4,8,<1!3 0>)" . chop 8)
$ midiOn "^36" (id . (loopAt 0.5 . (# "jungle_breaks:130")))
$ midiOn "^92" (mask "t(16,32)" . ply "2 2 <4 8 16 16> 2")
$ midiOn "^56" (loopAt 2 . (# n 12))
$ chop 16
$ loopAt 2
$ "jungle_breaks:1" # cut 8
# gain 1.35
d9 $ gF3 $ gM3 -- Pad rhadamanthe, la brume de la vallée
-- notes suivent la progression couplet/refrain en C#m
$ note ("<cs4 gs3 cs4 gs3 fs3 b3 e4 a3>/2" - 12)
# "rhadamanthe_melo:4"
# legato 4
# rel 2
# sus 2
# room 0.6 # sz 0.7 # lpf 2000
# gain 1.1
d10 -- Risers, les moments de bascule (section B→C, C→D)
$ mask "<f!24 t!8>"
$ loopAt 8
$ "risers"
# cut 10
# room 0.4
# dry 1.4
# octersubsub 0.5
# gain 0.8
d11 $ gF3 $ gM3 -- Intro texture, le calme avant le départ
-- stab QStab_Db = C# direct, pas de transpose
-- alternative : "120_Th_Stabs_C1" # speed 1.059 pour C#
$ gF3
$ whenmod 8 6 (slice 2 "0*2")
$ chop 8
$ "QStab_Db"
# cut 11
# room 0.7 # sz 0.7 # dry 1
# delaybus 111 "^30"
# delayt ("<2!3 3>"/3)
# delayfb 0.5
# gain 1.2
d12 $ gF1 $ gM1 $ "hh(3,8) hh(3,8)" # "h2ogmhh"
-- BOUTONS (convention LaunchControl XL) ——————————————
-- ^41 = gMask (gate syncopé, fill fantôme)
-- ^42/43/44 = variations kick/snare/hat
-- ^57 = basse euclidienne
-- ^58 = mute Rhodes (silence piano)
-- ^59 = mute blues guitar
-- ^60 = break mask+chop
-- ^36/56/92 = variantes de breaks (jungle_breaks superposés)
-- ^73/74/75 = mute 1/2/3
-- ^89/90 = intensifs basse/piano (struct 16 / delay wall)
-- ^29 = kick speed CC
-- ^30 = delay intro
-- ^33 = octerbus basse
-- ^53/54 = crushbus basse/piano
......@@ -14,6 +14,7 @@ let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
let modIndex = pF "modIndex"
d1 $ gF1 $ gM2
-- $ mask "t t t f"
$ midiOn "^42" (struct "t t t*<1!6 2 1> t*<1!7 2>")
$ midiOff "^42" (struct "t . ~ t ~ <~!3 t*<2 [2 1] [4 2] [2 4]>>")
$ stack [
......
do
-- resetCycles
setcps (129/60/4)
d1 $ gF1 $ gMute2 -- KICK: Sub thud, 4otf with flourish (NTO: deepens over time)
$ midiOn "^42" (<| "k k k <k k*2 k [~ k]>") -- ON: 4otf + flourish variations
$ midiOff "^42" (<| "k ~ ~ <~!3 k>") -- OFF: sparse intro
$ sometimesBy "^29" ( -- ^29: ghost doubles (pre-drop energy)
superimpose (("0.07" <~) . (|* gain 0.7))
)
$ "[techno:0,jazz]"
# gain 1.5
d2 $ gF1 $ gM1 -- CLAP: Dry quiet snap, contretemps (enters late)
-- NTO: peak=0.13 (QUIET!), att=10ms, dom=1292Hz, 0% sub, beats 1&3
$ midiOn "^43" (<| "cp ~ cp ~") -- ON: contretemps (NTO climax)
$ midiOff "^43" (<| "~ cp ~ <~ cp*<1 2>>") -- OFF: backbeat (our touch)
$ sometimesBy "^30" ( -- ^30: flam probability
superimpose (("e" <~) . (|* gain 0.6))
)
$ "h2ogmcp"
# hpf 800 # lpf 4000 -- pure mid-snap, no sub
# room 0.1 # dry 1.5 -- very dry
# gain (slow 32 $ range 0.8 1.2 saw) -- 32-bar: clap grows into the mix
# pan 0.55
d3 $ gF1 $ gM1 -- OH/CY: Subtle offbeat hats, ^44 morphs to cymbal shimmer
-- NTO: OH on upbeats, centroid brightens 4000→8400Hz. Breakdown = quiet cymbal.
$ midiOn "^76" (stut 3 0.6 "s") -- push: rolls
$ midiOn "^44" ( -- ON: cymbal shimmer (quiet, bright, breakdown character)
(|* gain 0.94) . (# legato 0.2) . (# "h2ogmcy:1") . (# hpf 5000)
)
-- $ midiOff "^44" (mask "t(3,8)") -- OFF: sparse euclidean (subtle)
$ sometimesBy "^32" (ply "<2!3 [2 4]>") -- ^32: roll probability
$ "~ h ~ h ~ h ~ <h!3 h*2>" -- offbeat pattern with flourish
# "h2ogmhh"
# n "~ 3 ~ 2 ~ 4 ~ <3!3 [3 6]>" -- varying openness per hit
# 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
# room (slow 32 $ range 0.2 0.45 saw) -- 32-bar: space grows (NOT dry!)
# sz (slow 32 $ range 0.1 0.3 saw) -- 32-bar: tail lengthens
# dry 1
# pan 0.42
# gain (slow 32 $ range 1.3 1.6 saw * "0.7 0.8 0.65 [0.75|0.85] 0.69 0.8 ~ <0.9!3 [0.9 0.5]>")
-- 32-bar swell * per-hit velocity (the original subtle dynamics)
d5 $ gF3 $ gM3 --
$ midiOn "^90" (ply "<2 4 [<4!3 16> <8 16>]>")
$ slice 4 "<0 1 2 3>"
$ "desire" # n "<1!4 2!4 3!7 4 3!6 2 2 3!7 4>"
# cut 5 # lpf 4000
# room 0.24 # sz 0.8
# octersubbus 51 (range 0 1.5 "^54")
# delay "<0.2!3 0.8>"
# delayt 1 # delayfb 0.3
d9 $ gF2 $ gM3 -- Announcing SYNTH
$ superimpose ((|* gain "^19") . (# n 5) . (# cut 91))
$ "desire_synth/2" # "desire"
# n "<0>"
# cut 9 -- SYNTH
-- # end 0.1
# lpf 3000
d7 $ gF3 $ gM3 -- Voices
$ fix ((6/8) ~>) (n 6)
$ fix ((1/8) ~>) (n 9)
$ fix ((5/8) <~) (n "[11,12]")
$ slow 2
$ midiOn "^19" (>| n "<11 12>") -- NANANA
$ midiOn "^35" (>| n "<10 ~>") -- FREE FROM DESIRE
$ midiOn ("^59" - "^35") ( -- Refrain
(>| n "<10!4 11!4>")
) -- Refrain
$ midiOff "^59" ( -- Couplet
(>| n "<6 ~ 6 ~ 7 ~ 7 ~ 8 ~ 8 8 9 9 9 9>"))
$ "desire"
# cut 7
d8 $ gF1 $ gM1
$ loopAt 2
$ midiOn "^92" ( -- Bouton Nassim <3
loopAt 0.5 . (# "breaks165")
-- . (# octer 0.4) . ( octersubsub 4)
. (# lpf 2500)
. (# room 0)
. (|* gain 1.2)
)
$ midiOff "^60" (mask "f(8,16)" . chop 16)
$ midiOn "^56" (# "jungle_breaks:7")
$ midiOn "^36" (# "jungle_breaks:37")
$ chop 16 $ "jungle_breaks:101"
# cut 8
once $ "desire" # n "[6]" # cut 1
......@@ -139,7 +139,7 @@ d8 $ gF1 $ gM1
$ "breaks165"
# cut 8
# octersub 0.5
# gain 1.2
# gain 1.4
once $ "bogdan:3" # cut 9 # orbit 8 # gain 1.7 -- HEY BRO
......
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