Commit 423d0e9f by PLN (Algolia)

feat(lives): OPAL Festival 2026 — "Sunset Forest", Scène Cabane

Third Opal in a row and the first on the main stage. Saturday 8 Aug 2026,
sunset slot, 1h20, 15 tracks of live-coded TidalCycles.

tracks.json is GENERATED, not typed — Sound/Tidal/tools/gig-metadata.py reads
membership/order/name/bpm/section from backlog.md via the setlist parser, the
sample packs from each .tidal via setlist_samples, and the timecodes from the
Ardour take. Nothing here was copied by hand, which is the point: the last time
gig strings were hand-carried between files they were wrong.

The per-track timecodes are new for a lives entry and deliberate — they let
Shipow cut Slopmotion visuals to the set without re-deriving boundaries by ear.
They were measured by aligning the 1 Hz gig log to the audio via
cross-correlation (r>=0.99 over 20 probes, 0.00 ms spread).

Note for whoever touches lives content next: the live tree is content/lives/,
NOT content/parvagues/lives/ (legacy, last moved by the June hoist) and not
next/content/lives/ (the path Sound/Tidal/CLAUDE.md still documents — stale
since the app moved out of next/).
parent aff33d43
---
title: "Sunset Forest"
date: "2026-08-08"
time: "20:30"
location: "Normandie, France"
address: "Opal Festival"
stage: "Scène Cabane (main stage)"
description: "Sunset Forest live coding set @ Opal Festival 2026, Scène Cabane"
ctaURL: "https://www.opal-festival.com/"
ctaText: "Opal Festival"
video: ""
audio: ""
archive: ""
tags: ["livecoding", "festival", "opal", "normandie", "tidalcycles", "sunset-forest"]
---
# Sunset Forest — Opal Festival 2026
Troisième Opal d'affilée, et le premier sur la grande scène : **Scène Cabane**,
samedi 8 août, coucher de soleil.
Un set de live coding TidalCycles en 15 morceaux, 1h20, joué en six mouvements —
*Ouverture*, *SUNSET*, *We call it NuJazz*, *NUIT*, *FINALE*, *Encore* — de 89 à
166 BPM. Chaque morceau est un fichier `.tidal` autonome, écrit et modifié en
direct ; les douze orbites partent en stems séparés dans Ardour.
Le set a été joué dans l'ordre prévu, du premier au dernier morceau. *Piment
Brésilien* a été le pic du dancefloor — assez pour le laisser tourner huit
minutes. *Mafia* a pris juste après, et *Take five Drops* a trouvé son moment
exact au coucher du soleil.
La tracklist complète, avec les timecodes mesurés sur l'enregistrement, les
tempos et les banques de samples de chaque morceau, est dans `tracks.json`.
{
"gig": "opal-festival-2026",
"title": "Sunset Forest",
"date": "2026-08-08",
"venue": "Opal Festival",
"stage": "Scène Cabane (main stage)",
"bpmRange": [
89,
166
],
"styleDistribution": {
"collab": 4,
"techno": 3,
"dnb": 3,
"lounge": 2,
"remix": 1,
"acid": 1,
"nujazz": 1
},
"trackCount": 15,
"totalDuration_s": 4809,
"samplePacks": [
"armora",
"bd",
"break",
"breaks165",
"bskick",
"clubkick",
"cp",
"crimewave",
"d",
"daft",
"desire",
"diams_dj",
"drum",
"drums_nes",
"drumtraks",
"e",
"fbreak120",
"gfunk_bass",
"gfunk_lead",
"ghost",
"giorgio_syn",
"h",
"h2ogmcp",
"h2ogmcy",
"h2ogmhh",
"hardkick_rha",
"hh",
"jazz",
"jbk_kick",
"jungle_breaks",
"kick",
"like_sugar",
"meth_bass",
"molotov",
"moog",
"movie_paris",
"movie_wolf",
"no_sunshine",
"oil",
"org_jungle_breaks",
"perfect",
"rampleS34",
"rampleS37",
"realclaps",
"rhadamanthe_vocal",
"risers",
"sd",
"sine",
"snare",
"speedupdown",
"take5",
"techno",
"the_revolution",
"trance_loops",
"v",
"vec1_acid",
"vec1_claps",
"vec1_snare",
"vocal_bordel",
"wap"
],
"tracks": [
{
"name": "Ceci n'est pas Une Bombe",
"file": "live/midi/nova/techno/bombe_dj.tidal",
"bpm": 124,
"section": "Ouverture",
"style": "techno",
"start_s": 0,
"end_s": 530,
"duration_s": 530,
"start": "0:00:00",
"end": "0:08:50",
"samples": [
"bd",
"diams_dj",
"h",
"h2ogmhh",
"jungle_breaks",
"kick",
"risers",
"vec1_claps"
]
},
{
"name": "WAP",
"file": "live/midi/nova/dnb/wap.tidal",
"bpm": 133,
"section": "Ouverture",
"style": "dnb",
"start_s": 530,
"end_s": 891,
"duration_s": 361,
"start": "0:08:50",
"end": "0:14:51",
"samples": [
"cp",
"e",
"h",
"hh",
"jungle_breaks",
"kick",
"risers",
"vec1_acid",
"vec1_snare",
"wap"
]
},
{
"name": "There's **Something About Drums** <3",
"file": "live/midi/nova/dnb/something_about_drums.tidal",
"bpm": 160,
"section": "SUNSET",
"style": "dnb",
"start_s": 895,
"end_s": 1108,
"duration_s": 213,
"start": "0:14:55",
"end": "0:18:28",
"samples": [
"break",
"bskick",
"d",
"drum",
"drumtraks",
"h2ogmcy",
"jazz",
"jungle_breaks",
"movie_paris"
]
},
{
"name": "Am i _Doing it Right_",
"file": "live/techno/do_it_right.tidal",
"bpm": 89,
"section": "SUNSET",
"style": "techno",
"start_s": 1108,
"end_s": 1541,
"duration_s": 433,
"start": "0:18:28",
"end": "0:25:41",
"samples": [
"bskick",
"d",
"daft",
"h2ogmhh",
"jazz",
"jungle_breaks",
"realclaps",
"risers",
"snare"
]
},
{
"name": "You My Sunshine",
"file": "live/midi/nova/dnb/liquid/you_my_sunshine.tidal",
"bpm": 166,
"section": "We call it NuJazz",
"style": "dnb",
"start_s": 1541,
"end_s": 1794,
"duration_s": 253,
"start": "0:25:41",
"end": "0:29:54",
"samples": [
"breaks165",
"d",
"kick",
"no_sunshine",
"org_jungle_breaks",
"rampleS34",
"rampleS37",
"risers"
]
},
{
"name": "Take five Drops",
"file": "live/midi/nova/lounge/take_5_drops.tidal",
"bpm": 124,
"section": "We call it NuJazz",
"style": "lounge",
"start_s": 1794,
"end_s": 2211,
"duration_s": 417,
"start": "0:29:54",
"end": "0:36:51",
"samples": [
"bd",
"h",
"h2ogmhh",
"jungle_breaks",
"kick",
"risers",
"take5",
"techno",
"vec1_claps"
]
},
{
"name": "Piment Bresilien",
"file": "live/collab/raph/piment_bresilien.tidal",
"bpm": 124,
"section": "We call it NuJazz",
"style": "collab",
"start_s": 2211,
"end_s": 2717,
"duration_s": 506,
"start": "0:36:51",
"end": "0:45:17",
"samples": [
"bd",
"gfunk_lead",
"h",
"h2ogmhh",
"jungle_breaks",
"kick",
"techno",
"vec1_claps"
]
},
{
"name": "Eh ouais je Funk",
"file": "live/midi/nova/lounge/ouais_je_funk.tidal",
"bpm": 120,
"section": "We call it NuJazz",
"style": "lounge",
"start_s": 2717,
"end_s": 2904,
"duration_s": 187,
"start": "0:45:17",
"end": "0:48:24",
"samples": [
"bd",
"breaks165",
"cp",
"gfunk_bass",
"gfunk_lead",
"giorgio_syn",
"h",
"h2ogmcp",
"h2ogmhh",
"jungle_breaks",
"kick",
"moog",
"techno",
"trance_loops",
"vec1_claps",
"vec1_snare"
]
},
{
"name": "Perfect <3",
"file": "live/midi/nova/remix/perfect.tidal",
"bpm": 128,
"section": "We call it NuJazz",
"style": "remix",
"start_s": 2904,
"end_s": 3219,
"duration_s": 315,
"start": "0:48:24",
"end": "0:53:39",
"samples": [
"breaks165",
"clubkick",
"e",
"h",
"h2ogmhh",
"jazz",
"jungle_breaks",
"meth_bass",
"perfect",
"sine",
"vec1_claps"
]
},
{
"name": "Gimme Acid",
"file": "live/midi/nova/acid/gimme_acid.tidal",
"bpm": 160,
"section": "NUIT",
"style": "acid",
"start_s": 3219,
"end_s": 3528,
"duration_s": 309,
"start": "0:53:39",
"end": "0:58:48",
"samples": [
"bd",
"drums_nes",
"giorgio_syn",
"jungle_breaks",
"kick",
"molotov",
"trance_loops",
"v",
"vec1_claps",
"vocal_bordel"
]
},
{
"name": "GHOSTS IN THE TOILETS",
"file": "live/collab/ccc/ghosts_in_the_toilets.tidal",
"bpm": 160,
"section": "NUIT",
"style": "collab",
"start_s": 3528,
"end_s": 3682,
"duration_s": 154,
"start": "0:58:48",
"end": "1:01:22",
"samples": [
"armora",
"breaks165",
"cp",
"d",
"e",
"ghost",
"hardkick_rha",
"jazz",
"jungle_breaks",
"kick",
"moog",
"movie_wolf",
"rhadamanthe_vocal",
"snare",
"vec1_acid"
]
},
{
"name": "Mafia",
"file": "live/collab/raph/mafia_sans_serif.tidal",
"bpm": 160,
"section": "NUIT",
"style": "collab",
"start_s": 3682,
"end_s": 3873,
"duration_s": 191,
"start": "1:01:22",
"end": "1:04:33",
"samples": [
"breaks165",
"clubkick",
"h",
"h2ogmhh",
"jazz",
"jbk_kick",
"jungle_breaks",
"moog",
"oil",
"risers",
"snare"
]
},
{
"name": "Vague de CRIME",
"file": "live/techno/vague_de_crime.tidal",
"bpm": 120,
"section": "NUIT",
"style": "techno",
"start_s": 3873,
"end_s": 4152,
"duration_s": 279,
"start": "1:04:33",
"end": "1:09:12",
"samples": [
"cp",
"crimewave",
"e",
"fbreak120",
"hh",
"jazz",
"jungle_breaks",
"kick",
"risers"
]
},
{
"name": "Desire",
"file": "live/collab/raph/desire.tidal",
"bpm": 129,
"section": "FINALE",
"style": "collab",
"start_s": 4152,
"end_s": 4547,
"duration_s": 395,
"start": "1:09:12",
"end": "1:15:47",
"samples": [
"breaks165",
"cp",
"desire",
"e",
"h",
"h2ogmcp",
"h2ogmhh",
"jazz",
"jungle_breaks",
"risers",
"speedupdown",
"techno"
]
},
{
"name": "REVOLUTION",
"file": "live/midi/nova/jazz/the_revolution_will_be_sampled.tidal",
"bpm": 114,
"section": "Encore",
"style": "nujazz",
"start_s": 4547,
"end_s": 4813,
"duration_s": 266,
"start": "1:15:47",
"end": "1:20:13",
"samples": [
"cp",
"e",
"h",
"h2ogmhh",
"jazz",
"jungle_breaks",
"like_sugar",
"sd",
"snare",
"the_revolution"
]
}
]
}
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