Commit 7cc1f16d by PLN (Algolia)

feat: copycat NTO - La Clé des Champs algoraoke

Research + MIDI analysis of the original track:
- Key: Bb minor (harmonic minor dominant F)
- Arp from MIDI: 2-note 16th oscillation (Bf4/F4, order flips per chord)
- 16-bar cycle: Bbm(4) | F(4) | Bbm(4) | Ebm(4)
- Drums: 808bd+clubkick, h2o handclap, h2o hats (sparse offbeat)
- All melodic voices on MiOmi (bass, arp, pad, lead)
- Timbral faders for live "wider before drop" sweep (FM/detune/cutoff)
Co-Authored-By: 's avatarClaude Opus 4.6 (1M context) <noreply@anthropic.com>
parent 178d217d
-- ============================================================
-- COPYCAT: NTO - La Clé des Champs (2016)
-- Algoraoke by ParVagues
-- ============================================================
--
-- TRACK INFO
-- ==========
-- Artist: NTO (Anthony Favier), Hungry Music (HM17)
-- Release: Sept 30, 2016 | Duration: 6:56
-- BPM: 120 (Spotify/Tunebat) — Beatport says 113, adjust to taste
-- Key: Bb minor (harmonic minor dominant) | Camelot 3A
-- Genre: Deep house / melodic house
--
-- HARMONIC ANALYSIS
-- =================
-- Key: Bb natural minor (Bb C Db Eb F Gb Ab)
-- with harmonic minor dominant (F major, not Fm → raised 7th = A natural)
--
-- Main chords:
-- Bbm (i) = Bb Db F — tonic, home base
-- F (V) = F A C — dominant (harmonic minor), drives V→i cadences
-- Db (III) = Db F Ab — relative major, appears in extended sections
-- Ebm (iv) = Eb Gb Bb — subdominant minor, tension before resolution
-- Gb (VI) = brief appearances
--
-- Primary vamp: Bbm | F alternating (4 bars each, ~8 seconds)
-- Extended sections introduce Db and Ebm for variation/tension
-- The V→i cadence (F → Bbm) is the main harmonic engine
--
-- (source: chordu.com chord detection with timestamps)
--
-- ARRANGEMENT (approx for 6:56 track)
-- ====================================
-- 0:00-1:30 INTRO Filtered pad, atmosphere, gradual reveal
-- 1:30-2:30 BUILD Kick enters (4otf), bass creeps in, hat opens
-- 2:30-3:30 GROOVE Full drums, arpeggio enters, bass locked
-- 3:30-4:30 MAIN All elements, lead melody interplay
-- 4:30-5:30 BREAK Kick drops, pad swells, filter sweep tension
-- 5:30-6:30 CLIMAX Everything returns, peak energy
-- 6:30-6:56 OUTRO Elements strip away, reverb tails
--
-- ARPEGGIO (from MIDI: Nto- la cle des champs .mid)
-- ==================================================
-- Two-note 16th oscillation — dead simple, magic is in timbre:
-- Bbm: Bf4 ↔ F4 (root + 5th, Bb on downbeats)
-- F: F4 ↔ Bf4 (SAME notes, ORDER FLIPS — F on downbeats)
-- Ebm: Ef4 ↔ Gf4 (root + minor 3rd)
-- Before ~4:30 breakdown: synth widens/brightens (more harmonics,
-- phaser-like) then drops back → fm1/detune/cutoff on faders
--
-- SOUND DESIGN
-- ============
-- KICK: 808bd sub + clubkick body, 4otf
-- BASS: MiOmi sub (Moog-like FM), melodic through chord tones
-- ARPEGGIO: MiOmi 2-note 16th oscillation, FM/detune/cutoff on faders
-- PAD: MiOmi detuned, generous reverb, slow filter
-- HATS: h2o velocity-layered, sparse offbeat + flourish
-- CLAP: h2o natural handclap, reverbed
--
-- NTO'S KNOWN GEAR:
-- Moog Subsequent 37, Arturia MicroFreak, Akai APC40 MKII,
-- Novation Impulse 49, DJ Tech Tools MIDI Fighter Twister,
-- Akai MPD218
--
-- PRODUCTION STYLE (from interviews):
-- "I love the 'human side' of electronic music. When the
-- different elements sound autonomous and organic."
-- Process is "really random" — may start from a concept
-- (track, film, photo, emotion) or just experiment.
-- Influences: Stephan Bodzin, James Holden, Paul Kalkbrenner
-- "Deep basses and lysergic harmonies"
-- Often asks real musicians to replay his software melodies
-- for organic feel (e.g. Worakls on keys/guitar)
--
-- SOURCES:
-- chordu.com, tunebat.com, musicstax.com, songbpm.com
-- equipboard.com/pros/n-to
-- deephouseamsterdam.com/interview-nto
-- nexus.radio/news/10-questions-with-dj-and-producer-nto
-- ============================================================
do
setcps (120/60/4)
-- resetCycles
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
-- 16-bar chord cycle: Bbm(4) | F(4) | Bbm(4) | Ebm(4)
-- Faders for live timbral control (the "wider before drop" sweep):
-- ^34: arp FM1 depth ^54: arp FM2 ^18: arp detune/width
-- ^55: arp brightness ^53: bass cutoff ^56: pad openness
-- ^35: lead FM
d1 $ gF1 $ gMute2 -- KICK: 808 sub + clubkick body, 4otf
$ midiOn "^42" (<| "k k k <k k*2 k [~ k]>")
$ midiOff "^42" (<| "k")
$ "[808bd:2,clubkick:2]"
# lpf 5000
# gain 1.3
d2 $ gF1 $ gM -- CLAP: h2o natural handclap, reverbed
$ midiOn "^43" (<| "~ cp ~ [cp <~ cp>]")
$ midiOff "^43" (<| "~ cp ~ cp")
$ "h2ogmcp"
# room (slow 32 $ range 0.3 0.6 saw)
# sz (slow 32 $ range 0.1 0.45 cosine)
# dry 1
# gain 1.1
d3 $ gF1 $ gM -- HATS: h2o sparse offbeat + light flourish
$ midiOn "^76" (ply 2) -- double time on button
$ midiOff "^44" (mask "t(3,8)")
-- n: 0-4 closed Hard→Soft, 5-9 open, 15-19 semi-open
$ "~ h ~ h ~ h ~ <h!3 h*2>"
# "h2ogmhh"
# n "~ 3 ~ 2 ~ 4 ~ <3!3 [3 6]>" -- occasional open hat flourish
# gain "~ 0.7 ~ 0.8 ~ 0.65 ~ <0.7!3 [0.7 0.5]>"
# gain 0.85
d4 $ gF2 $ gM3 -- BASS: MiOmi sub, melodic through chord tones
$ midiOn "^57" (rev)
$ midiOn "^89" (ply 2)
$ note (
slow 4 $ cat [
"bf2 ~ df3 ~ bf2 ~ f2 ~", -- Bbm: root → m3rd, root → 5th
"f2 ~ a2 ~ f2 ~ c3 ~", -- F: root → maj3rd, root → 5th
"bf2 ~ df3 ~ bf2 ~ f2 ~", -- Bbm
"ef2 ~ gf2 ~ ef2 ~ bf2 ~" -- Ebm: root → m3rd, root → 5th
])
# "miomi"
# fm1 0.08 # fm2 0
# level1 0.6 # level2 0.2
# omicutoff (range 0.25 0.5 "^53") -- fader: bass brightness
# reson 0.15
# room 0.15
# cut 4
# gain 1.3
d5 $ gF3 $ gM3 -- ARPEGGIO: MiOmi 2-note 16th oscillation (from MIDI)
$ midiOn "^90" (stut 4 0.5 "e")
$ midiOn "^58" (|+ note 12) -- octave up
$ note (
slow 4 $ cat [
"[bf4 f4]*8", -- Bbm: Bb on downbeats
"[f4 bf4]*8", -- F: F on downbeats (order flips!)
"[bf4 f4]*8", -- Bbm
"[ef4 gf4]*8" -- Ebm: Eb/Gb oscillation
])
# "miomi"
# fm1 (range 0.05 0.6 "^34") -- fader: FM depth → wider/brighter
# fm2 (range 0 0.3 "^54") -- fader: FM2 → extra harmonics
# detune (range 0 0.4 "^18") -- fader: stereo width / phaser-like
# omicutoff (range 0.4 0.95 "^55") -- fader: brightness
# level1 0.5 # level2 0.3
# reson 0.1
# room 0.3 # sz 0.4 # dry 1.2
# legato 0.4
# pan 0.6
# gain 1.1
d9 $ gF2 $ gM3 -- PAD: MiOmi detuned warm bed
$ note (
slow 4 $ cat [
"[bf4,df5,f5]", -- Bbm
"[f4,a4,c5]", -- F
"[bf4,df5,f5]", -- Bbm
"[ef4,gf4,bf4]" -- Ebm
])
# "miomi"
# detune 0.35
# level1 0.5 # level2 0.5
# fm1 0.02 # fm2 0
# omicutoff (range 0.3 0.6 "^56") -- fader: pad openness
# reson 0.2
# room 0.6 # sz 0.8 # dry 0.9
# legato 4
# pan 0.4
# cut 7
# gain 0.6
d7 $ gF3 $ gMute3 -- LEAD: MiOmi counter-melody, high register
$ sometimesBy "^19" (superimpose (
(|+ note "[0,7]")
. (|+ pan 0.15)
. (# cut 91)
))
$ midiOff "^58" (mask "t(2,4)")
$ note (
slow 4 $ cat [
"bf5 ~ df6 ~ f5 ~ df6 bf5", -- Bbm
"c6 ~ a5 ~ f5 ~ a5 c6", -- F
"bf5 ~ df6 ~ f5 ~ df6 bf5", -- Bbm
"ef5 ~ gf5 ~ bf5 ~ gf5 ef5" -- Ebm
])
# "miomi"
# fm1 (range 0.1 0.4 "^35") -- fader: lead FM character
# fm2 0.1
# omicutoff 0.7
# level1 0.4 # level2 0.3
# room 0.5 # sz 0.7
# legato 1.5
# pan 0.7
# cut 9
# gain 0.85
d10 -- RISER: Transition sweeps
$ struct "<~!14 t ~>"
$ "risers:8" # speed 0.25
# room 0.5 # sz 0.9
# cut 10
# gain 0.6
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