Commit cdbc28ff by PLN (Algolia)

feat(setbuilder): the picker now holds the catalog it already measured

The sweep evaluated all 703 tracks on Sunday night and found 597 that compile
and emit. The picker still carried fourteen hand-written entries, so the page
said the library was fourteen deep — the measurement existed and the surface
that needed it did not have it.

gen_setbuilder_catalog.py turns the sweep into the page's data, joined against
two things the verdict alone does not tell you: how often the driver journal
saw the track loaded (what the hands know), and how many of its sample banks
the preload plan already warms (a cold bank is not a fault, it just hiccups on
the first bar). Sample names come from setlist_samples.py, never a fresh regex.

The sweep results now live in docs/ instead of a scratchpad that dies with the
session — an artifact nobody can compare against is the preload.scd story.

Ids are repo-relative paths, not stems. Sixteen stems collide across folders
(major_nostalgia in chill and techno, all four FFF tracks in two trees) and a
stem key merged each pair into one card, silently. Picks stored under the old
stem keys are migrated on load where the stem is unambiguous.

And the Thu-24 list is a candidate arc, not a locked set. It was exported from
the builder, not decided at the desk; rehearsal decides.
parent 806c1e5d
...@@ -93,9 +93,11 @@ Open, highest leverage first: ...@@ -93,9 +93,11 @@ Open, highest leverage first:
saturated ±63 delta is unknown. Likely dead code. Re-run saturated ±63 delta is unknown. Likely dead code. Re-run
`scratchpad/delta_probe.py` while PLN sweeps, read the delta histogram, THEN set the `scratchpad/delta_probe.py` while PLN sweeps, read the delta histogram, THEN set the
threshold from reality. Builder also flagged 123 → 127 overshoot at the `>=115` band. threshold from reality. Builder also flagged 123 → 127 overshoot at the `>=115` band.
- [x] **THE SET IS LOCKED** — `armada/setlist_thu24.txt`, 10 tracks, 120/120 min, in play - [ ] **CANDIDATE ARC, not locked** — `armada/setlist_thu24.txt`, 10 tracks, 120/120 min,
order (commit 2fbb7d3). All 10 pass `silent-eval --seeded`, including in play order (commit 2fbb7d3), exported from the Set Builder Tue 22. PLN's words Tue 22
`something_about_drums` (never validated before). The set needs 46 banks, all 46 on disk. evening: "this set is not locked, just a potential one." All 10 pass
`silent-eval --seeded`, including `something_about_drums` (never validated before); the
arc needs 46 banks, all 46 on disk. Rehearsal decides what stays.
- [x] **Preload covers the set** — `preload.scd` regenerated as a SUPERSET: 125 banks - [x] **Preload covers the set** — `preload.scd` regenerated as a SUPERSET: 125 banks
(39-track 12-month list ∪ the 10 Thursday tracks), adding `bass2` for ete_a_mauerpark. (39-track 12-month list ∪ the 10 Thursday tracks), adding `bass2` for ete_a_mauerpark.
Warms at the next parvagues-sc boot. Backup in scratchpad; file is gitignored by design. Warms at the next parvagues-sc boot. Backup in scratchpad; file is gitignored by design.
...@@ -118,6 +120,19 @@ Open, highest leverage first: ...@@ -118,6 +120,19 @@ Open, highest leverage first:
Bites on the next `systemctl --user restart perf-tray`. Bites on the next `systemctl --user restart perf-tray`.
- [ ] **techno_orage d2** (line 158) silent even seeded — fix or cut. PLN's call. - [ ] **techno_orage d2** (line 158) silent even seeded — fix or cut. PLN's call.
- [ ] **Preload gaps**: `bass2`, `humps` lazy-load mid-set. Regenerate after the arc is picked. - [ ] **Preload gaps**: `bass2`, `humps` lazy-load mid-set. Regenerate after the arc is picked.
- [x] **The picker now holds the whole catalog** — the Set Builder showed 14 hand-written
candidates while the sweep had already measured all 703 tracks, which made the library
look 14 deep. `tools/gen_setbuilder_catalog.py` generates `armada/setbuilder-data.js`
from `docs/2026-09-22-catalog-playability.tsv` (the sweep, now durable in the repo — it
only lived in a scratchpad), the driver journal and `preload.scd`. Every row carries
verdict, area, play count, and how many of its sample banks are warm. 597 playable
tracks, filterable by text / area / played-here / fully-warm; 21 silent-orbit behind a
toggle; 85 compile-fails not listed. Per-area chip counts cross-check against the doc
(midi/nova 181, collab 98, techno 57, hip 41, boeuf 36). Ids are now repo-relative
PATHS, not stems: 16 stems collide across folders (`major_nostalgia` in chill and
techno, all four FFF tracks in two trees), and a stem key silently merged them into one
card. A one-line migration maps any previously-stored stem to its path, so a pick made
before this change survives.
### Play history — the real candidate pool (discovered Tue 22) ### Play history — the real candidate pool (discovered Tue 22)
......
/* Generated by tools/gen_setbuilder_catalog.py — do not hand-edit. */
window.PV_CATALOG = {"generated":"2026-09-22 14:18 UTC","source":"docs/2026-09-22-catalog-playability.tsv","counts":{"PLAYABLE":597,"SILENT_ORBIT":21,"COMPILE_FAIL":85},"journal_window_tracks":17,"tracks":[{"p":"live/collab/baba/sept1.tidal","t":"sept1","v":0,"a":"collab","s":"baba","b":16,"w":15,"n":8},{"p":"live/collab/siberie_samuel.tidal","t":"siberie_samuel","v":0,"a":"collab","s":"","b":6,"w":6,"n":6},{"p":"live/midi/nova/nujazz/rose_rouge.tidal","t":"rose_rouge","v":0,"a":"midi/nova","s":"nujazz","b":9,"w":8,"n":5},{"p":"live/midi/nova/techno/cyber_hump.tidal","t":"cyber_hump","v":0,"a":"midi/nova","s":"techno","b":5,"w":4,"n":5},{"p":"live/collab/raph/piment_bresilien.tidal","t":"piment_bresilien","v":0,"a":"collab","s":"raph","b":9,"w":8,"n":2},{"p":"live/midi/nova/techno/ete_a_mauerpark.tidal","t":"ete_a_mauerpark","v":0,"a":"midi/nova","s":"techno","b":13,"w":12,"n":2},{"p":"live/midi/nova/techno/techno_orage.tidal","t":"techno_orage","v":1,"a":"midi/nova","s":"techno","b":13,"w":12,"n":2},{"p":"live/collab/raph/jeudrill.tidal","t":"jeudrill","v":0,"a":"collab","s":"raph","b":12,"w":12,"n":1},{"p":"live/midi/nova/ambient/quand_on_decolle.tidal","t":"quand_on_decolle","v":0,"a":"midi/nova","s":"ambient","b":8,"w":8,"n":1},{"p":"live/midi/nova/nujazz/cafe_glace.tidal","t":"cafe_glace","v":0,"a":"midi/nova","s":"nujazz","b":10,"w":10,"n":1},{"p":"live/fusion/batterie.tidal","t":"batterie","v":0,"a":"fusion","s":"","b":6,"w":3,"n":1},{"p":"live/midi/nova/breaks/ton_numero.tidal","t":"ton_numero","v":0,"a":"midi/nova","s":"breaks","b":18,"w":17,"n":1},{"p":"live/midi/nova/dnb/liquid/you_my_sunshine.tidal","t":"you_my_sunshine","v":0,"a":"midi/nova","s":"dnb","b":9,"w":8,"n":1},{"p":"live/midi/nova/dnb/something_about_drums.tidal","t":"something_about_drums","v":0,"a":"midi/nova","s":"dnb","b":10,"w":9,"n":1},{"p":"live/midi/nova/dnb/wap.tidal","t":"wap","v":0,"a":"midi/nova","s":"dnb","b":11,"w":10,"n":1},{"p":"live/midi/nova/lounge/sunny_side_up.tidal","t":"sunny_side_up","v":0,"a":"midi/nova","s":"lounge","b":14,"w":13,"n":1},{"p":"live/midi/nova/techno/bombe_dj.tidal","t":"bombe_dj","v":0,"a":"midi/nova","s":"techno","b":9,"w":8,"n":1},{"p":"live/FOSDEM/after.tidal","t":"after","v":2,"a":"FOSDEM","s":"","b":3,"w":3,"n":0},{"p":"live/ambient/weird.tidal","t":"weird","v":2,"a":"ambient","s":"","b":1,"w":1,"n":0},{"p":"live/bdmania.tidal","t":"bdmania","v":0,"a":"root","s":"","b":1,"w":1,"n":0},{"p":"live/bodgan2.tidal","t":"bodgan2","v":0,"a":"root","s":"","b":3,"w":3,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/what_you_wont_do_for_love.tidal","t":"what_you_wont_do_for_love","v":0,"a":"boeuf","s":"algorythm","b":5,"w":5,"n":0},{"p":"live/boeuf/algorythm/love23/cant_help_falling_in_love.tidal","t":"cant_help_falling_in_love","v":0,"a":"boeuf","s":"algorythm","b":3,"w":3,"n":0},{"p":"live/boeuf/bass_boeuf.tidal","t":"bass_boeuf","v":0,"a":"boeuf","s":"","b":12,"w":12,"n":0},{"p":"live/boeuf/biarritz/21nuit.tidal","t":"21nuit","v":0,"a":"boeuf","s":"biarritz","b":5,"w":5,"n":0},{"p":"live/boeuf/biarritz/cloud.tidal","t":"cloud","v":0,"a":"boeuf","s":"biarritz","b":4,"w":4,"n":0},{"p":"live/boeuf/premier_tour.tidal","t":"premier_tour","v":0,"a":"boeuf","s":"","b":12,"w":12,"n":0},{"p":"live/boeuf/valtho/dorian.tidal","t":"dorian","v":0,"a":"boeuf","s":"valtho","b":5,"w":5,"n":0},{"p":"live/bogbog.tidal","t":"bogbog","v":0,"a":"root","s":"","b":1,"w":1,"n":0},{"p":"live/chill/atm/board.tidal","t":"board","v":0,"a":"chill","s":"atm","b":5,"w":5,"n":0},{"p":"live/chill/atm/break_blue.tidal","t":"break_blue","v":2,"a":"chill","s":"atm","b":7,"w":7,"n":0},{"p":"live/chill/blue_mind.tidal","t":"blue_mind","v":0,"a":"chill","s":"","b":6,"w":6,"n":0},{"p":"live/chill/dub/dam.tidal","t":"dam","v":0,"a":"chill","s":"dub","b":3,"w":3,"n":0},{"p":"live/chill/mondam.tidal","t":"mondam","v":0,"a":"chill","s":"","b":5,"w":5,"n":0},{"p":"live/collab/baba/xp1.tidal","t":"xp1","v":0,"a":"collab","s":"baba","b":8,"w":8,"n":0},{"p":"live/collab/cookie/from_scratch_prep.tidal","t":"from_scratch_prep","v":0,"a":"collab","s":"cookie","b":6,"w":6,"n":0},{"p":"live/collab/kevin/synchro.tidal","t":"synchro","v":0,"a":"collab","s":"kevin","b":5,"w":5,"n":0},{"p":"live/collab/raph/acab.tidal","t":"acab","v":0,"a":"collab","s":"raph","b":5,"w":5,"n":0},{"p":"live/collab/raph/biscuit_acide.tidal","t":"biscuit_acide","v":0,"a":"collab","s":"raph","b":7,"w":7,"n":0},{"p":"live/collab/raph/el_diablo.tidal","t":"el_diablo","v":0,"a":"collab","s":"raph","b":3,"w":3,"n":0},{"p":"live/collab/raph/quatre_magiques.tidal","t":"quatre_magiques","v":0,"a":"collab","s":"raph","b":3,"w":3,"n":0},{"p":"live/collab/stevie/aime_la_jungle.tidal","t":"aime_la_jungle","v":0,"a":"collab","s":"stevie","b":7,"w":7,"n":0},{"p":"live/collab/val/samedi_acid.tidal","t":"samedi_acid","v":0,"a":"collab","s":"val","b":2,"w":2,"n":0},{"p":"live/dnb/meth.tidal","t":"meth","v":0,"a":"dnb","s":"","b":5,"w":5,"n":0},{"p":"live/dnb/montee_descente.tidal","t":"montee_descente","v":0,"a":"dnb","s":"","b":2,"w":2,"n":0},{"p":"live/dnb/moulin.tidal","t":"moulin","v":0,"a":"dnb","s":"","b":3,"w":3,"n":0},{"p":"live/dnb/slow_step_abstract.tidal","t":"slow_step_abstract","v":0,"a":"dnb","s":"","b":4,"w":4,"n":0},{"p":"live/etienne.tidal","t":"etienne","v":0,"a":"root","s":"","b":4,"w":4,"n":0},{"p":"live/fusion/b2p.tidal","t":"b2p","v":0,"a":"fusion","s":"","b":7,"w":7,"n":0},{"p":"live/fusion/bottled_baby.tidal","t":"bottled_baby","v":0,"a":"fusion","s":"","b":5,"w":5,"n":0},{"p":"live/fusion/crapeau_russe.tidal","t":"crapeau_russe","v":0,"a":"fusion","s":"","b":4,"w":4,"n":0},{"p":"live/fusion/dub_night.tidal","t":"dub_night","v":0,"a":"fusion","s":"","b":3,"w":3,"n":0},{"p":"live/fusion/mad_piano.tidal","t":"mad_piano","v":0,"a":"fusion","s":"","b":5,"w":5,"n":0},{"p":"live/hip/organ_seeker.tidal","t":"organ_seeker","v":0,"a":"hip","s":"","b":5,"w":5,"n":0},{"p":"live/hip/roll.tidal","t":"roll","v":0,"a":"hip","s":"","b":4,"w":4,"n":0},{"p":"live/hiphop.tidal","t":"hiphop","v":0,"a":"root","s":"","b":1,"w":1,"n":0},{"p":"live/jam/cosmic26.tidal","t":"cosmic26","v":0,"a":"jam","s":"","b":1,"w":1,"n":0},{"p":"live/midi/jazz_tech_piano.tidal","t":"jazz_tech_piano","v":0,"a":"midi","s":"","b":2,"w":2,"n":0},{"p":"live/midi/nova/FM/paul_machine.tidal","t":"paul_machine","v":0,"a":"midi/nova","s":"FM","b":1,"w":1,"n":0},{"p":"live/midi/nova/ambient/raise.tidal","t":"raise","v":0,"a":"midi/nova","s":"ambient","b":10,"w":10,"n":0},{"p":"live/midi/nova/boombap/module_amour.tidal","t":"module_amour","v":0,"a":"midi/nova","s":"boombap","b":8,"w":8,"n":0},{"p":"live/midi/nova/boombap/module_latin.tidal","t":"module_latin","v":0,"a":"midi/nova","s":"boombap","b":9,"w":9,"n":0},{"p":"live/midi/nova/breaks/break_the_storm.tidal","t":"break_the_storm","v":0,"a":"midi/nova","s":"breaks","b":9,"w":9,"n":0},{"p":"live/midi/nova/breaks/rub_a_drum.tidal","t":"rub_a_drum","v":0,"a":"midi/nova","s":"breaks","b":11,"w":11,"n":0},{"p":"live/midi/nova/dnb/lucy_rode.tidal","t":"lucy_rode","v":0,"a":"midi/nova","s":"dnb","b":6,"w":6,"n":0},{"p":"live/midi/nova/dubstep/break_my_new_synths.tidal","t":"break_my_new_synths","v":2,"a":"midi/nova","s":"dubstep","b":1,"w":1,"n":0},{"p":"live/midi/nova/fusion/deck_the_dancehall.tidal","t":"deck_the_dancehall","v":0,"a":"midi/nova","s":"fusion","b":5,"w":5,"n":0},{"p":"live/midi/nova/giant.tidal","t":"giant","v":0,"a":"midi/nova","s":"","b":1,"w":1,"n":0},{"p":"live/midi/nova/grunge/le_bruit_des_bots.tidal","t":"le_bruit_des_bots","v":2,"a":"midi/nova","s":"grunge","b":7,"w":7,"n":0},{"p":"live/midi/nova/jazz/the_revolution_will_be_sampled.tidal","t":"the_revolution_will_be_sampled","v":0,"a":"midi/nova","s":"jazz","b":10,"w":10,"n":0},{"p":"live/midi/nova/lounge/liquid_nite.tidal","t":"liquid_nite","v":0,"a":"midi/nova","s":"lounge","b":8,"w":8,"n":0},{"p":"live/midi/nova/punk/killing.tidal","t":"killing","v":0,"a":"midi/nova","s":"punk","b":4,"w":4,"n":0},{"p":"live/midi/nova/techno/livecode_parade.tidal","t":"livecode_parade","v":0,"a":"midi/nova","s":"techno","b":8,"w":8,"n":0},{"p":"live/midi/nova/waves.tidal","t":"waves","v":0,"a":"midi/nova","s":"","b":1,"w":1,"n":0},{"p":"live/quantum.tidal","t":"quantum","v":2,"a":"root","s":"","b":1,"w":1,"n":0},{"p":"live/techno/abstract.tidal","t":"abstract","v":0,"a":"techno","s":"","b":4,"w":4,"n":0},{"p":"live/techno/cocon.tidal","t":"cocon","v":2,"a":"techno","s":"","b":6,"w":6,"n":0},{"p":"live/techno/dambell.tidal","t":"dambell","v":2,"a":"techno","s":"","b":6,"w":6,"n":0},{"p":"live/techno/experience_vertige.tidal","t":"experience_vertige","v":0,"a":"techno","s":"","b":7,"w":7,"n":0},{"p":"live/techno/foret_noire.tidal","t":"foret_noire","v":0,"a":"techno","s":"","b":2,"w":2,"n":0},{"p":"live/techno/raclette.tidal","t":"raclette","v":0,"a":"techno","s":"","b":4,"w":4,"n":0},{"p":"live/techno/vite.tidal","t":"vite","v":2,"a":"techno","s":"","b":3,"w":3,"n":0},{"p":"live/trilles.tidal","t":"trilles","v":0,"a":"root","s":"","b":2,"w":2,"n":0},{"p":"live/tutobeat.tidal","t":"tutobeat","v":0,"a":"root","s":"","b":4,"w":4,"n":0},{"p":"live/val.tidal","t":"val","v":0,"a":"root","s":"","b":2,"w":2,"n":0},{"p":"live/FOSDEM/before.tidal","t":"before","v":0,"a":"FOSDEM","s":"","b":3,"w":2,"n":0},{"p":"live/FOSDEM/sunday.tidal","t":"sunday","v":2,"a":"FOSDEM","s":"","b":4,"w":2,"n":0},{"p":"live/FOSDEM/techno_du_soir.tidal","t":"techno_du_soir","v":0,"a":"FOSDEM","s":"","b":8,"w":3,"n":0},{"p":"live/FOSDEM/train.tidal","t":"train","v":0,"a":"FOSDEM","s":"","b":5,"w":1,"n":0},{"p":"live/FOSDEM/train_du_soir.tidal","t":"train_du_soir","v":2,"a":"FOSDEM","s":"","b":6,"w":4,"n":0},{"p":"live/TODO/dildo_cycles.tidal","t":"dildo_cycles","v":0,"a":"TODO","s":"","b":0,"w":0,"n":0},{"p":"live/amazonbeat.tidal","t":"amazonbeat","v":0,"a":"root","s":"","b":6,"w":3,"n":0},{"p":"live/ambient/batavia_la_tortue.tidal","t":"batavia_la_tortue","v":0,"a":"ambient","s":"","b":8,"w":7,"n":0},{"p":"live/ambient/before.tidal","t":"before","v":0,"a":"ambient","s":"","b":9,"w":6,"n":0},{"p":"live/ambient/brise_les_chaines.tidal","t":"brise_les_chaines","v":0,"a":"ambient","s":"","b":6,"w":5,"n":0},{"p":"live/ambient/cascade.tidal","t":"cascade","v":0,"a":"ambient","s":"","b":7,"w":4,"n":0},{"p":"live/ambient/citarpurh.tidal","t":"citarpurh","v":0,"a":"ambient","s":"","b":7,"w":5,"n":0},{"p":"live/ambient/crutches.tidal","t":"crutches","v":0,"a":"ambient","s":"","b":7,"w":5,"n":0},{"p":"live/ambient/eroll_roll.tidal","t":"eroll_roll","v":0,"a":"ambient","s":"","b":8,"w":4,"n":0},{"p":"live/ambient/fm_radio.tidal","t":"fm_radio","v":0,"a":"ambient","s":"","b":8,"w":6,"n":0},{"p":"live/ambient/inquiry.tidal","t":"inquiry","v":0,"a":"ambient","s":"","b":6,"w":5,"n":0},{"p":"live/ambient/new_machine.tidal","t":"new_machine","v":2,"a":"ambient","s":"","b":13,"w":10,"n":0},{"p":"live/ambient/radio_paradis.tidal","t":"radio_paradis","v":0,"a":"ambient","s":"","b":0,"w":0,"n":0},{"p":"live/ambient/scintillance_bleue.tidal","t":"scintillance_bleue","v":0,"a":"ambient","s":"","b":8,"w":6,"n":0},{"p":"live/ambient/tokyo_chase.tidal","t":"tokyo_chase","v":0,"a":"ambient","s":"","b":13,"w":8,"n":0},{"p":"live/ambient/wild_coffee.tidal","t":"wild_coffee","v":0,"a":"ambient","s":"","b":9,"w":8,"n":0},{"p":"live/anar.tidal","t":"anar","v":2,"a":"root","s":"","b":7,"w":3,"n":0},{"p":"live/autotune.tidal","t":"autotune","v":0,"a":"root","s":"","b":3,"w":2,"n":0},{"p":"live/boeuf/_clock.tidal","t":"_clock","v":0,"a":"boeuf","s":"","b":0,"w":0,"n":0},{"p":"live/boeuf/algo25.tidal","t":"algo25","v":0,"a":"boeuf","s":"","b":13,"w":12,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/intro_parvagues.tidal","t":"intro_parvagues","v":2,"a":"boeuf","s":"algorythm","b":10,"w":7,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/jolene.tidal","t":"jolene","v":0,"a":"boeuf","s":"algorythm","b":8,"w":6,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/lady.tidal","t":"lady","v":0,"a":"boeuf","s":"algorythm","b":9,"w":6,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/sweet_dreams.tidal","t":"sweet_dreams","v":0,"a":"boeuf","s":"algorythm","b":2,"w":1,"n":0},{"p":"live/boeuf/algorythm/fdlm2022/toxic.tidal","t":"toxic","v":0,"a":"boeuf","s":"algorythm","b":6,"w":4,"n":0},{"p":"live/boeuf/algorythm/first_jam.tidal","t":"first_jam","v":2,"a":"boeuf","s":"algorythm","b":7,"w":5,"n":0},{"p":"live/boeuf/algorythm/fix_you.tidal","t":"fix_you","v":0,"a":"boeuf","s":"algorythm","b":6,"w":4,"n":0},{"p":"live/boeuf/algorythm/fly_me_to_the_moon.tidal","t":"fly_me_to_the_moon","v":0,"a":"boeuf","s":"algorythm","b":7,"w":5,"n":0},{"p":"live/boeuf/algorythm/lonely_day.tidal","t":"lonely_day","v":0,"a":"boeuf","s":"algorythm","b":6,"w":5,"n":0},{"p":"live/boeuf/algorythm/love23/killing_me_softer.tidal","t":"killing_me_softer","v":0,"a":"boeuf","s":"algorythm","b":13,"w":9,"n":0},{"p":"live/boeuf/algorythm/love23/killing_me_softly.tidal","t":"killing_me_softly","v":1,"a":"boeuf","s":"algorythm","b":14,"w":9,"n":0},{"p":"live/boeuf/algorythm/love23/shallow.tidal","t":"shallow","v":0,"a":"boeuf","s":"algorythm","b":0,"w":0,"n":0},{"p":"live/boeuf/algorythm/love23/something_about_us.tidal","t":"something_about_us","v":0,"a":"boeuf","s":"algorythm","b":10,"w":8,"n":0},{"p":"live/boeuf/algorythm/love23/u_remind_me.tidal","t":"u_remind_me","v":0,"a":"boeuf","s":"algorythm","b":9,"w":8,"n":0},{"p":"live/boeuf/algorythm/love23/until_i_found_you.tidal","t":"until_i_found_you","v":0,"a":"boeuf","s":"algorythm","b":9,"w":7,"n":0},{"p":"live/boeuf/algorythm/season2/blues_wednesday.tidal","t":"blues_wednesday","v":2,"a":"boeuf","s":"algorythm","b":9,"w":6,"n":0},{"p":"live/boeuf/algorythm/season2/come_together.tidal","t":"come_together","v":0,"a":"boeuf","s":"algorythm","b":4,"w":3,"n":0},{"p":"live/boeuf/algorythm/something_bossa_nova.tidal","t":"something_bossa_nova","v":0,"a":"boeuf","s":"algorythm","b":6,"w":5,"n":0},{"p":"live/boeuf/august.tidal","t":"august","v":1,"a":"boeuf","s":"","b":11,"w":6,"n":0},{"p":"live/boeuf/biarritz/20sept.tidal","t":"20sept","v":0,"a":"boeuf","s":"biarritz","b":0,"w":0,"n":0},{"p":"live/boeuf/biarritz/blue_tuesday.tidal","t":"blue_tuesday","v":0,"a":"boeuf","s":"biarritz","b":11,"w":8,"n":0},{"p":"live/boeuf/biarritz/blues_debranche.tidal","t":"blues_debranche","v":0,"a":"boeuf","s":"biarritz","b":8,"w":5,"n":0},{"p":"live/boeuf/biarritz/morning_glory.tidal","t":"morning_glory","v":0,"a":"boeuf","s":"biarritz","b":4,"w":2,"n":0},{"p":"live/boeuf/canard_breake.tidal","t":"canard_breake","v":2,"a":"boeuf","s":"","b":10,"w":8,"n":0},{"p":"live/boeuf/canicule.tidal","t":"canicule","v":2,"a":"boeuf","s":"","b":10,"w":5,"n":0},{"p":"live/boeuf/dimanche_pizza.tidal","t":"dimanche_pizza","v":2,"a":"boeuf","s":"","b":10,"w":5,"n":0},{"p":"live/boeuf/fevrier.tidal","t":"fevrier","v":2,"a":"boeuf","s":"","b":12,"w":10,"n":0},{"p":"live/boeuf/lunar_light.tidal","t":"lunar_light","v":0,"a":"boeuf","s":"","b":7,"w":5,"n":0},{"p":"live/boeuf/may_cafe.tidal","t":"may_cafe","v":0,"a":"boeuf","s":"","b":18,"w":12,"n":0},{"p":"live/boeuf/nouvelle_poussiere.tidal","t":"nouvelle_poussiere","v":0,"a":"boeuf","s":"","b":5,"w":2,"n":0},{"p":"live/boeuf/samedi_canard.tidal","t":"samedi_canard","v":0,"a":"boeuf","s":"","b":9,"w":7,"n":0},{"p":"live/boeuf/samedi_chill.tidal","t":"samedi_chill","v":0,"a":"boeuf","s":"","b":6,"w":5,"n":0},{"p":"live/boeuf/samedi_confine_extra.tidal","t":"samedi_confine_extra","v":2,"a":"boeuf","s":"","b":12,"w":7,"n":0},{"p":"live/boeuf/stupefaction.tidal","t":"stupefaction","v":0,"a":"boeuf","s":"","b":9,"w":5,"n":0},{"p":"live/boeuf/valtho/cats.tidal","t":"cats","v":0,"a":"boeuf","s":"valtho","b":17,"w":11,"n":0},{"p":"live/boeuf/vendredi_saint.tidal","t":"vendredi_saint","v":0,"a":"boeuf","s":"","b":11,"w":8,"n":0},{"p":"live/boeuf/viteuf/blues.tidal","t":"blues","v":0,"a":"boeuf","s":"viteuf","b":13,"w":11,"n":0},{"p":"live/bogdan.tidal","t":"bogdan","v":2,"a":"root","s":"","b":5,"w":3,"n":0},{"p":"live/briquets.tidal","t":"briquets","v":2,"a":"root","s":"","b":7,"w":1,"n":0},{"p":"live/briquets2.tidal","t":"briquets2","v":0,"a":"root","s":"","b":6,"w":3,"n":0},{"p":"live/chill.tidal","t":"chill","v":0,"a":"root","s":"","b":7,"w":3,"n":0},{"p":"live/chill/atm/batteur.tidal","t":"batteur","v":0,"a":"chill","s":"atm","b":7,"w":6,"n":0},{"p":"live/chill/atm/hors_amsterdam.tidal","t":"hors_amsterdam","v":1,"a":"chill","s":"atm","b":6,"w":2,"n":0},{"p":"live/chill/atm/nightly.tidal","t":"nightly","v":0,"a":"chill","s":"atm","b":6,"w":5,"n":0},{"p":"live/chill/atm/workroll.tidal","t":"workroll","v":0,"a":"chill","s":"atm","b":5,"w":2,"n":0},{"p":"live/chill/bad_bad_guy.tidal","t":"bad_bad_guy","v":0,"a":"chill","s":"","b":7,"w":5,"n":0},{"p":"live/chill/birds.tidal","t":"birds","v":0,"a":"chill","s":"","b":2,"w":0,"n":0},{"p":"live/chill/break/break_the_sunday.tidal","t":"break_the_sunday","v":0,"a":"chill","s":"break","b":4,"w":3,"n":0},{"p":"live/chill/break/responsabilite.tidal","t":"responsabilite","v":0,"a":"chill","s":"break","b":6,"w":3,"n":0},{"p":"live/chill/break_toys.tidal","t":"break_toys","v":0,"a":"chill","s":"","b":6,"w":3,"n":0},{"p":"live/chill/cloudy_afternoon.tidal","t":"cloudy_afternoon","v":0,"a":"chill","s":"","b":5,"w":2,"n":0},{"p":"live/chill/dim_blue.tidal","t":"dim_blue","v":2,"a":"chill","s":"","b":4,"w":3,"n":0},{"p":"live/chill/dimanche_mineur.tidal","t":"dimanche_mineur","v":0,"a":"chill","s":"","b":12,"w":6,"n":0},{"p":"live/chill/dub.tidal","t":"dub","v":2,"a":"chill","s":"","b":5,"w":4,"n":0},{"p":"live/chill/dub/80s.tidal","t":"80s","v":0,"a":"chill","s":"dub","b":4,"w":2,"n":0},{"p":"live/chill/dub/mini_deconf.tidal","t":"mini_deconf","v":0,"a":"chill","s":"dub","b":5,"w":2,"n":0},{"p":"live/chill/dub/rebond.tidal","t":"rebond","v":0,"a":"chill","s":"dub","b":2,"w":1,"n":0},{"p":"live/chill/dub/restez_chez_vous.tidal","t":"restez_chez_vous","v":0,"a":"chill","s":"dub","b":7,"w":2,"n":0},{"p":"live/chill/dub/riddim_du_dim.tidal","t":"riddim_du_dim","v":0,"a":"chill","s":"dub","b":14,"w":6,"n":0},{"p":"live/chill/dub/sunday.tidal","t":"sunday","v":0,"a":"chill","s":"dub","b":7,"w":6,"n":0},{"p":"live/chill/epilog.tidal","t":"epilog","v":2,"a":"chill","s":"","b":11,"w":7,"n":0},{"p":"live/chill/major_nostalgia.tidal","t":"major_nostalgia","v":0,"a":"chill","s":"","b":3,"w":2,"n":0},{"p":"live/chill/neige.tidal","t":"neige","v":0,"a":"chill","s":"","b":4,"w":3,"n":0},{"p":"live/chill/powder_asmr.tidal","t":"powder_asmr","v":0,"a":"chill","s":"","b":4,"w":1,"n":0},{"p":"live/chill/ritusen.tidal","t":"ritusen","v":0,"a":"chill","s":"","b":2,"w":1,"n":0},{"p":"live/chill/tete.tidal","t":"tete","v":0,"a":"chill","s":"","b":3,"w":2,"n":0},{"p":"live/chill/timeless.tidal","t":"timeless","v":0,"a":"chill","s":"","b":4,"w":3,"n":0},{"p":"live/china.tidal","t":"china","v":0,"a":"root","s":"","b":3,"w":2,"n":0},{"p":"live/chip/ataright.tidal","t":"ataright","v":0,"a":"chip","s":"","b":7,"w":5,"n":0},{"p":"live/chip/cours_toujours.tidal","t":"cours_toujours","v":0,"a":"chip","s":"","b":10,"w":4,"n":0},{"p":"live/chip/game_on.tidal","t":"game_on","v":2,"a":"chip","s":"","b":3,"w":1,"n":0},{"p":"live/chip/nano_rain.tidal","t":"nano_rain","v":2,"a":"chip","s":"","b":11,"w":4,"n":0},{"p":"live/chip/step_silence.tidal","t":"step_silence","v":0,"a":"chip","s":"","b":7,"w":6,"n":0},{"p":"live/clinique.tidal","t":"clinique","v":0,"a":"root","s":"","b":5,"w":3,"n":0},{"p":"live/collab/Sexes/julien.tidal","t":"julien","v":0,"a":"collab","s":"Sexes","b":13,"w":8,"n":0},{"p":"live/collab/baba/_inspi.tidal","t":"_inspi","v":0,"a":"collab","s":"baba","b":2,"w":1,"n":0},{"p":"live/collab/baba/la_matrice.tidal","t":"la_matrice","v":0,"a":"collab","s":"baba","b":7,"w":6,"n":0},{"p":"live/collab/baba/larmes_salees.tidal","t":"larmes_salees","v":0,"a":"collab","s":"baba","b":10,"w":8,"n":0},{"p":"live/collab/baba/moulins_de_mon_coeur.tidal","t":"moulins_de_mon_coeur","v":0,"a":"collab","s":"baba","b":15,"w":11,"n":0},{"p":"live/collab/baba/oparoles.tidal","t":"oparoles","v":1,"a":"collab","s":"baba","b":11,"w":8,"n":0},{"p":"live/collab/baba/xp2.tidal","t":"xp2","v":0,"a":"collab","s":"baba","b":0,"w":0,"n":0},{"p":"live/collab/baba/xp3.tidal","t":"xp3","v":0,"a":"collab","s":"baba","b":6,"w":5,"n":0},{"p":"live/collab/benoit/tous_ensemble.tidal","t":"tous_ensemble","v":0,"a":"collab","s":"benoit","b":10,"w":9,"n":0},{"p":"live/collab/bobylito/exquis1.tidal","t":"exquis1","v":0,"a":"collab","s":"bobylito","b":10,"w":8,"n":0},{"p":"live/collab/bobylito/l_espace.tidal","t":"l_espace","v":0,"a":"collab","s":"bobylito","b":10,"w":9,"n":0},{"p":"live/collab/bobylito/new_jam_nu_jazz.tidal","t":"new_jam_nu_jazz","v":1,"a":"collab","s":"bobylito","b":22,"w":17,"n":0},{"p":"live/collab/cam/guitar_first.tidal","t":"guitar_first","v":0,"a":"collab","s":"cam","b":10,"w":8,"n":0},{"p":"live/collab/cam/i_come_from_cyberspace.tidal","t":"i_come_from_cyberspace","v":0,"a":"collab","s":"cam","b":8,"w":4,"n":0},{"p":"live/collab/ccc/ccc0.tidal","t":"ccc0","v":0,"a":"collab","s":"ccc","b":18,"w":16,"n":0},{"p":"live/collab/ccc/ghosts_in_the_toilets.tidal","t":"ghosts_in_the_toilets","v":0,"a":"collab","s":"ccc","b":15,"w":14,"n":0},{"p":"live/collab/clem/shiloh_tech.tidal","t":"shiloh_tech","v":0,"a":"collab","s":"clem","b":16,"w":12,"n":0},{"p":"live/collab/cookie/ccc.tidal","t":"ccc","v":0,"a":"collab","s":"cookie","b":10,"w":7,"n":0},{"p":"live/collab/cookie/from_scratch.tidal","t":"from_scratch","v":0,"a":"collab","s":"cookie","b":9,"w":7,"n":0},{"p":"live/collab/cookie/from_scratch_prep2.tidal","t":"from_scratch_prep2","v":0,"a":"collab","s":"cookie","b":8,"w":6,"n":0},{"p":"live/collab/cookie/maudite_soit_la_guerre.tidal","t":"maudite_soit_la_guerre","v":2,"a":"collab","s":"cookie","b":11,"w":8,"n":0},{"p":"live/collab/cricri/citar1.tidal","t":"citar1","v":0,"a":"collab","s":"cricri","b":10,"w":8,"n":0},{"p":"live/collab/daniel/auxiliaire.tidal","t":"auxiliaire","v":0,"a":"collab","s":"daniel","b":6,"w":5,"n":0},{"p":"live/collab/etienne/concombre.tidal","t":"concombre","v":0,"a":"collab","s":"etienne","b":7,"w":5,"n":0},{"p":"live/collab/hugo/faith_in_bass.tidal","t":"faith_in_bass","v":0,"a":"collab","s":"hugo","b":10,"w":8,"n":0},{"p":"live/collab/igor/hello_studio.tidal","t":"hello_studio","v":2,"a":"collab","s":"igor","b":19,"w":12,"n":0},{"p":"live/collab/ituin/bass_night.tidal","t":"bass_night","v":0,"a":"collab","s":"ituin","b":0,"w":0,"n":0},{"p":"live/collab/ituin/wobble_research.tidal","t":"wobble_research","v":0,"a":"collab","s":"ituin","b":0,"w":0,"n":0},{"p":"live/collab/jane/drifting_soul.tidal","t":"drifting_soul","v":0,"a":"collab","s":"jane","b":18,"w":17,"n":0},{"p":"live/collab/jane/tired_soul.tidal","t":"tired_soul","v":0,"a":"collab","s":"jane","b":19,"w":17,"n":0},{"p":"live/collab/josh/oct_18_rainy_day.tidal","t":"oct_18_rainy_day","v":0,"a":"collab","s":"josh","b":12,"w":8,"n":0},{"p":"live/collab/l'ine*fable/premiere_fable.tidal","t":"premiere_fable","v":0,"a":"collab","s":"l'ine*fable","b":11,"w":9,"n":0},{"p":"live/collab/louis/anarchie.tidal","t":"anarchie","v":0,"a":"collab","s":"louis","b":7,"w":5,"n":0},{"p":"live/collab/louis/d_accord.tidal","t":"d_accord","v":2,"a":"collab","s":"louis","b":8,"w":7,"n":0},{"p":"live/collab/micka/bazurto_closed.tidal","t":"bazurto_closed","v":0,"a":"collab","s":"micka","b":7,"w":6,"n":0},{"p":"live/collab/mousquetaires/blue_burn.tidal","t":"blue_burn","v":0,"a":"collab","s":"mousquetaires","b":8,"w":7,"n":0},{"p":"live/collab/mousquetaires/blue_gold.tidal","t":"blue_gold","v":2,"a":"collab","s":"mousquetaires","b":18,"w":17,"n":0},{"p":"live/collab/nass/bass_first.tidal","t":"bass_first","v":0,"a":"collab","s":"nass","b":9,"w":5,"n":0},{"p":"live/collab/nass/love_first.tidal","t":"love_first","v":0,"a":"collab","s":"nass","b":14,"w":9,"n":0},{"p":"live/collab/nass/mains_libres.tidal","t":"mains_libres","v":0,"a":"collab","s":"nass","b":12,"w":7,"n":0},{"p":"live/collab/nass/sogood.tidal","t":"sogood","v":0,"a":"collab","s":"nass","b":13,"w":10,"n":0},{"p":"live/collab/nvzt/liquid_finale.tidal","t":"liquid_finale","v":0,"a":"collab","s":"nvzt","b":13,"w":11,"n":0},{"p":"live/collab/quentin/pain_with_love.tidal","t":"pain_with_love","v":0,"a":"collab","s":"quentin","b":8,"w":6,"n":0},{"p":"live/collab/raph/8_blues.tidal","t":"8_blues","v":0,"a":"collab","s":"raph","b":20,"w":14,"n":0},{"p":"live/collab/raph/8bit_delicat.tidal","t":"8bit_delicat","v":0,"a":"collab","s":"raph","b":20,"w":15,"n":0},{"p":"live/collab/raph/acidule.tidal","t":"acidule","v":0,"a":"collab","s":"raph","b":13,"w":12,"n":0},{"p":"live/collab/raph/ambiance.tidal","t":"ambiance","v":0,"a":"collab","s":"raph","b":6,"w":4,"n":0},{"p":"live/collab/raph/bad_witch.tidal","t":"bad_witch","v":0,"a":"collab","s":"raph","b":8,"w":5,"n":0},{"p":"live/collab/raph/chevalerie.tidal","t":"chevalerie","v":0,"a":"collab","s":"raph","b":11,"w":9,"n":0},{"p":"live/collab/raph/coffee_pot.tidal","t":"coffee_pot","v":0,"a":"collab","s":"raph","b":1,"w":0,"n":0},{"p":"live/collab/raph/dernier_dimanche.tidal","t":"dernier_dimanche","v":0,"a":"collab","s":"raph","b":15,"w":13,"n":0},{"p":"live/collab/raph/dernier_doute.tidal","t":"dernier_doute","v":0,"a":"collab","s":"raph","b":11,"w":8,"n":0},{"p":"live/collab/raph/des_efforts.tidal","t":"des_efforts","v":0,"a":"collab","s":"raph","b":11,"w":9,"n":0},{"p":"live/collab/raph/desire.tidal","t":"desire","v":0,"a":"collab","s":"raph","b":13,"w":12,"n":0},{"p":"live/collab/raph/diable.tidal","t":"diable","v":0,"a":"collab","s":"raph","b":7,"w":6,"n":0},{"p":"live/collab/raph/drums_architect.tidal","t":"drums_architect","v":0,"a":"collab","s":"raph","b":10,"w":9,"n":0},{"p":"live/collab/raph/dub_a_trois.tidal","t":"dub_a_trois","v":0,"a":"collab","s":"raph","b":9,"w":5,"n":0},{"p":"live/collab/raph/esperluette.tidal","t":"esperluette","v":0,"a":"collab","s":"raph","b":7,"w":6,"n":0},{"p":"live/collab/raph/explo_rha_teur.tidal","t":"explo_rha_teur","v":0,"a":"collab","s":"raph","b":15,"w":13,"n":0},{"p":"live/collab/raph/han.tidal","t":"han","v":0,"a":"collab","s":"raph","b":10,"w":6,"n":0},{"p":"live/collab/raph/hard_monday.tidal","t":"hard_monday","v":0,"a":"collab","s":"raph","b":17,"w":14,"n":0},{"p":"live/collab/raph/hardorage.tidal","t":"hardorage","v":0,"a":"collab","s":"raph","b":15,"w":12,"n":0},{"p":"live/collab/raph/hello_tek.tidal","t":"hello_tek","v":0,"a":"collab","s":"raph","b":14,"w":6,"n":0},{"p":"live/collab/raph/le_blues_du_mic.tidal","t":"le_blues_du_mic","v":0,"a":"collab","s":"raph","b":9,"w":7,"n":0},{"p":"live/collab/raph/long_way.tidal","t":"long_way","v":0,"a":"collab","s":"raph","b":7,"w":6,"n":0},{"p":"live/collab/raph/mafia_sans_serif.tidal","t":"mafia_sans_serif","v":0,"a":"collab","s":"raph","b":12,"w":11,"n":0},{"p":"live/collab/raph/meshuggah.tidal","t":"meshuggah","v":0,"a":"collab","s":"raph","b":10,"w":9,"n":0},{"p":"live/collab/raph/network_zero_un.tidal","t":"network_zero_un","v":0,"a":"collab","s":"raph","b":10,"w":8,"n":0},{"p":"live/collab/raph/nouveau_punk.tidal","t":"nouveau_punk","v":1,"a":"collab","s":"raph","b":15,"w":13,"n":0},{"p":"live/collab/raph/oldskool_radius.tidal","t":"oldskool_radius","v":0,"a":"collab","s":"raph","b":10,"w":7,"n":0},{"p":"live/collab/raph/partir.tidal","t":"partir","v":2,"a":"collab","s":"raph","b":9,"w":7,"n":0},{"p":"live/collab/raph/permanence.tidal","t":"permanence","v":0,"a":"collab","s":"raph","b":10,"w":8,"n":0},{"p":"live/collab/raph/playa_fun.tidal","t":"playa_fun","v":0,"a":"collab","s":"raph","b":5,"w":4,"n":0},{"p":"live/collab/raph/punkachien.tidal","t":"punkachien","v":0,"a":"collab","s":"raph","b":11,"w":10,"n":0},{"p":"live/collab/raph/ragga_la_hierarchie.tidal","t":"ragga_la_hierarchie","v":0,"a":"collab","s":"raph","b":10,"w":6,"n":0},{"p":"live/collab/raph/rainbow_race.tidal","t":"rainbow_race","v":0,"a":"collab","s":"raph","b":7,"w":3,"n":0},{"p":"live/collab/raph/ratus.tidal","t":"ratus","v":0,"a":"collab","s":"raph","b":10,"w":9,"n":0},{"p":"live/collab/raph/sale_piano.tidal","t":"sale_piano","v":0,"a":"collab","s":"raph","b":12,"w":11,"n":0},{"p":"live/collab/raph/saria.tidal","t":"saria","v":0,"a":"collab","s":"raph","b":10,"w":9,"n":0},{"p":"live/collab/raph/sautillant.tidal","t":"sautillant","v":0,"a":"collab","s":"raph","b":7,"w":4,"n":0},{"p":"live/collab/raph/septieme_armee.tidal","t":"septieme_armee","v":0,"a":"collab","s":"raph","b":5,"w":4,"n":0},{"p":"live/collab/raph/vacances_solaires.tidal","t":"vacances_solaires","v":0,"a":"collab","s":"raph","b":13,"w":10,"n":0},{"p":"live/collab/raph/wet_hard_pussy.tidal","t":"wet_hard_pussy","v":0,"a":"collab","s":"raph","b":9,"w":8,"n":0},{"p":"live/collab/rhadamanthe.tidal","t":"rhadamanthe","v":0,"a":"collab","s":"","b":11,"w":8,"n":0},{"p":"live/collab/rhadamanthe/layering.tidal","t":"layering","v":0,"a":"collab","s":"rhadamanthe","b":4,"w":3,"n":0},{"p":"live/collab/ryan/day0.tidal","t":"day0","v":0,"a":"collab","s":"ryan","b":11,"w":10,"n":0},{"p":"live/collab/val/2026_jam.tidal","t":"2026_jam","v":0,"a":"collab","s":"val","b":11,"w":10,"n":0},{"p":"live/collab/val/ambient_dust.tidal","t":"ambient_dust","v":0,"a":"collab","s":"val","b":9,"w":8,"n":0},{"p":"live/collab/val/edgy.tidal","t":"edgy","v":0,"a":"collab","s":"val","b":7,"w":6,"n":0},{"p":"live/collab/val/euclidian_machine.tidal","t":"euclidian_machine","v":2,"a":"collab","s":"val","b":11,"w":9,"n":0},{"p":"live/collab/val/soir_noir.tidal","t":"soir_noir","v":0,"a":"collab","s":"val","b":9,"w":4,"n":0},{"p":"live/collab/val/template.tidal","t":"template","v":0,"a":"collab","s":"val","b":5,"w":3,"n":0},{"p":"live/collab/val/un_an.tidal","t":"un_an","v":0,"a":"collab","s":"val","b":12,"w":9,"n":0},{"p":"live/collab/youssef/eole.tidal","t":"eole","v":0,"a":"collab","s":"youssef","b":10,"w":9,"n":0},{"p":"live/contrevent.tidal","t":"contrevent","v":0,"a":"root","s":"","b":4,"w":2,"n":0},{"p":"live/digestion_roll.tidal","t":"digestion_roll","v":0,"a":"root","s":"","b":3,"w":2,"n":0},{"p":"live/disco/high.tidal","t":"high","v":0,"a":"disco","s":"","b":8,"w":3,"n":0},{"p":"live/dnb.tidal","t":"dnb","v":0,"a":"root","s":"","b":15,"w":6,"n":0},{"p":"live/dnb/automne_electrique.tidal","t":"automne_electrique","v":1,"a":"dnb","s":"","b":10,"w":7,"n":0},{"p":"live/dnb/bluesify.tidal","t":"bluesify","v":0,"a":"dnb","s":"","b":7,"w":5,"n":0},{"p":"live/dnb/chemise.tidal","t":"chemise","v":0,"a":"dnb","s":"","b":6,"w":2,"n":0},{"p":"live/dnb/dansant.tidal","t":"dansant","v":0,"a":"dnb","s":"","b":10,"w":6,"n":0},{"p":"live/dnb/etienne.tidal","t":"etienne","v":0,"a":"dnb","s":"","b":7,"w":4,"n":0},{"p":"live/dnb/giorgio_s_drums.tidal","t":"giorgio_s_drums","v":0,"a":"dnb","s":"","b":6,"w":5,"n":0},{"p":"live/dnb/nass.tidal","t":"nass","v":0,"a":"dnb","s":"","b":7,"w":5,"n":0},{"p":"live/dnb/nass_arrive.tidal","t":"nass_arrive","v":0,"a":"dnb","s":"","b":12,"w":6,"n":0},{"p":"live/dnb/nass_revient.tidal","t":"nass_revient","v":0,"a":"dnb","s":"","b":15,"w":10,"n":0},{"p":"live/dnb/neuro.tidal","t":"neuro","v":0,"a":"dnb","s":"","b":6,"w":3,"n":0},{"p":"live/dnb/new_synth_wave.tidal","t":"new_synth_wave","v":0,"a":"dnb","s":"","b":15,"w":9,"n":0},{"p":"live/dnb/sans_courant.tidal","t":"sans_courant","v":1,"a":"dnb","s":"","b":13,"w":9,"n":0},{"p":"live/dnb/soleil_pourpre.tidal","t":"soleil_pourpre","v":0,"a":"dnb","s":"","b":6,"w":5,"n":0},{"p":"live/dnb/vendredi_dnb.tidal","t":"vendredi_dnb","v":0,"a":"dnb","s":"","b":8,"w":7,"n":0},{"p":"live/dnb/video_live.tidal","t":"video_live","v":2,"a":"dnb","s":"","b":10,"w":9,"n":0},{"p":"live/drone/hello_drones.tidal","t":"hello_drones","v":0,"a":"drone","s":"","b":5,"w":2,"n":0},{"p":"live/drone/ordre.tidal","t":"ordre","v":0,"a":"drone","s":"","b":6,"w":3,"n":0},{"p":"live/dub/amis_roots.tidal","t":"amis_roots","v":0,"a":"dub","s":"","b":10,"w":3,"n":0},{"p":"live/dub/fdlm2021.tidal","t":"fdlm2021","v":0,"a":"dub","s":"","b":14,"w":6,"n":0},{"p":"live/dub/hello_dub.tidal","t":"hello_dub","v":0,"a":"dub","s":"","b":11,"w":6,"n":0},{"p":"live/dub/racine_clave.tidal","t":"racine_clave","v":0,"a":"dub","s":"","b":10,"w":5,"n":0},{"p":"live/dub/renfort_solaire.tidal","t":"renfort_solaire","v":0,"a":"dub","s":"","b":11,"w":7,"n":0},{"p":"live/dub/steps.tidal","t":"steps","v":0,"a":"dub","s":"","b":6,"w":2,"n":0},{"p":"live/dub/tubby_study.tidal","t":"tubby_study","v":0,"a":"dub","s":"","b":10,"w":5,"n":0},{"p":"live/exp/bogdanniv.tidal","t":"bogdanniv","v":0,"a":"exp","s":"","b":10,"w":5,"n":0},{"p":"live/exp/hot_stuff.tidal","t":"hot_stuff","v":0,"a":"exp","s":"","b":7,"w":4,"n":0},{"p":"live/francesca.tidal","t":"francesca","v":0,"a":"root","s":"","b":7,"w":4,"n":0},{"p":"live/friday.tidal","t":"friday","v":0,"a":"root","s":"","b":5,"w":1,"n":0},{"p":"live/friday2.tidal","t":"friday2","v":0,"a":"root","s":"","b":6,"w":3,"n":0},{"p":"live/friday_feb.tidal","t":"friday_feb","v":2,"a":"root","s":"","b":5,"w":4,"n":0},{"p":"live/funky_veranda.tidal","t":"funky_veranda","v":0,"a":"root","s":"","b":9,"w":5,"n":0},{"p":"live/fusion/acid_jazz.tidal","t":"acid_jazz","v":0,"a":"fusion","s":"","b":3,"w":2,"n":0},{"p":"live/fusion/acide_guitar.tidal","t":"acide_guitar","v":0,"a":"fusion","s":"","b":6,"w":3,"n":0},{"p":"live/fusion/anthropocene.tidal","t":"anthropocene","v":2,"a":"fusion","s":"","b":4,"w":2,"n":0},{"p":"live/fusion/blue_party.tidal","t":"blue_party","v":2,"a":"fusion","s":"","b":5,"w":4,"n":0},{"p":"live/fusion/bogdanerie.tidal","t":"bogdanerie","v":0,"a":"fusion","s":"","b":6,"w":4,"n":0},{"p":"live/fusion/camille.tidal","t":"camille","v":0,"a":"fusion","s":"","b":7,"w":5,"n":0},{"p":"live/fusion/castle.tidal","t":"castle","v":0,"a":"fusion","s":"","b":7,"w":5,"n":0},{"p":"live/fusion/comete/808_et_etoiles.tidal","t":"808_et_etoiles","v":0,"a":"fusion","s":"comete","b":9,"w":7,"n":0},{"p":"live/fusion/comete/marche_vertige.tidal","t":"marche_vertige","v":0,"a":"fusion","s":"comete","b":5,"w":4,"n":0},{"p":"live/fusion/comete/my_other_car_is_a_storm.tidal","t":"my_other_car_is_a_storm","v":0,"a":"fusion","s":"comete","b":9,"w":5,"n":0},{"p":"live/fusion/confine.tidal","t":"confine","v":0,"a":"fusion","s":"","b":5,"w":4,"n":0},{"p":"live/fusion/cuba_space_program.tidal","t":"cuba_space_program","v":0,"a":"fusion","s":"","b":7,"w":5,"n":0},{"p":"live/fusion/dessin.tidal","t":"dessin","v":0,"a":"fusion","s":"","b":6,"w":4,"n":0},{"p":"live/fusion/dimitri.tidal","t":"dimitri","v":0,"a":"fusion","s":"","b":11,"w":7,"n":0},{"p":"live/fusion/doux.tidal","t":"doux","v":0,"a":"fusion","s":"","b":3,"w":2,"n":0},{"p":"live/fusion/drunk_beat.tidal","t":"drunk_beat","v":0,"a":"fusion","s":"","b":5,"w":4,"n":0},{"p":"live/fusion/du_code.tidal","t":"du_code","v":0,"a":"fusion","s":"","b":6,"w":3,"n":0},{"p":"live/fusion/faites_de_la_musique.tidal","t":"faites_de_la_musique","v":0,"a":"fusion","s":"","b":16,"w":8,"n":0},{"p":"live/fusion/hipofunk.tidal","t":"hipofunk","v":0,"a":"fusion","s":"","b":8,"w":4,"n":0},{"p":"live/fusion/josephine.tidal","t":"josephine","v":0,"a":"fusion","s":"","b":1,"w":0,"n":0},{"p":"live/fusion/kaalamite.tidal","t":"kaalamite","v":0,"a":"fusion","s":"","b":4,"w":3,"n":0},{"p":"live/fusion/latin/like_what.tidal","t":"like_what","v":0,"a":"fusion","s":"latin","b":4,"w":2,"n":0},{"p":"live/fusion/lucy_sky.tidal","t":"lucy_sky","v":1,"a":"fusion","s":"","b":3,"w":2,"n":0},{"p":"live/fusion/minuit.tidal","t":"minuit","v":0,"a":"fusion","s":"","b":9,"w":7,"n":0},{"p":"live/fusion/moog_hat.tidal","t":"moog_hat","v":0,"a":"fusion","s":"","b":5,"w":4,"n":0},{"p":"live/fusion/morning/flowers.tidal","t":"flowers","v":0,"a":"fusion","s":"morning","b":9,"w":6,"n":0},{"p":"live/fusion/morning/latin_core.tidal","t":"latin_core","v":0,"a":"fusion","s":"morning","b":9,"w":4,"n":0},{"p":"live/fusion/orleans_les_bains.tidal","t":"orleans_les_bains","v":0,"a":"fusion","s":"","b":17,"w":10,"n":0},{"p":"live/fusion/ploink.tidal","t":"ploink","v":2,"a":"fusion","s":"","b":5,"w":4,"n":0},{"p":"live/fusion/sel_marin.tidal","t":"sel_marin","v":0,"a":"fusion","s":"","b":10,"w":8,"n":0},{"p":"live/fusion/you_may.tidal","t":"you_may","v":0,"a":"fusion","s":"","b":8,"w":7,"n":0},{"p":"live/hardcore/anar.tidal","t":"anar","v":2,"a":"hardcore","s":"","b":7,"w":5,"n":0},{"p":"live/hardcore/dure_liberte.tidal","t":"dure_liberte","v":0,"a":"hardcore","s":"","b":8,"w":5,"n":0},{"p":"live/hardcore/etat.tidal","t":"etat","v":0,"a":"hardcore","s":"","b":1,"w":0,"n":0},{"p":"live/hardcore/jambon.tidal","t":"jambon","v":2,"a":"hardcore","s":"","b":10,"w":6,"n":0},{"p":"live/hardcore/manoir_rhadamanthe.tidal","t":"manoir_rhadamanthe","v":1,"a":"hardcore","s":"","b":13,"w":9,"n":0},{"p":"live/hardcore/noise_in_the_wires.tidal","t":"noise_in_the_wires","v":0,"a":"hardcore","s":"","b":7,"w":3,"n":0},{"p":"live/hardcore/priere.tidal","t":"priere","v":0,"a":"hardcore","s":"","b":3,"w":2,"n":0},{"p":"live/hardcore/printanier.tidal","t":"printanier","v":0,"a":"hardcore","s":"","b":5,"w":3,"n":0},{"p":"live/hardcore/scribe.tidal","t":"scribe","v":0,"a":"hardcore","s":"","b":6,"w":4,"n":0},{"p":"live/hardcore/soleil.tidal","t":"soleil","v":0,"a":"hardcore","s":"","b":3,"w":2,"n":0},{"p":"live/hip/bb/cest_le_code.tidal","t":"cest_le_code","v":0,"a":"hip","s":"bb","b":7,"w":2,"n":0},{"p":"live/hip/bb/minibeat.tidal","t":"minibeat","v":2,"a":"hip","s":"bb","b":10,"w":4,"n":0},{"p":"live/hip/beats.tidal","t":"beats","v":0,"a":"hip","s":"","b":10,"w":6,"n":0},{"p":"live/hip/bocal.tidal","t":"bocal","v":2,"a":"hip","s":"","b":6,"w":4,"n":0},{"p":"live/hip/boombap/plage.tidal","t":"plage","v":0,"a":"hip","s":"boombap","b":13,"w":9,"n":0},{"p":"live/hip/boombap/princesse_de_mars.tidal","t":"princesse_de_mars","v":0,"a":"hip","s":"boombap","b":11,"w":8,"n":0},{"p":"live/hip/chaude_civ.tidal","t":"chaude_civ","v":0,"a":"hip","s":"","b":11,"w":3,"n":0},{"p":"live/hip/comme_un_lundi.tidal","t":"comme_un_lundi","v":0,"a":"hip","s":"","b":9,"w":6,"n":0},{"p":"live/hip/darkside/clameur.tidal","t":"clameur","v":0,"a":"hip","s":"darkside","b":12,"w":7,"n":0},{"p":"live/hip/darkside/russia.tidal","t":"russia","v":0,"a":"hip","s":"darkside","b":6,"w":5,"n":0},{"p":"live/hip/darkside/sub_marine.tidal","t":"sub_marine","v":1,"a":"hip","s":"darkside","b":10,"w":7,"n":0},{"p":"live/hip/entre_en_scene.tidal","t":"entre_en_scene","v":0,"a":"hip","s":"","b":6,"w":3,"n":0},{"p":"live/hip/instru/break_britannique.tidal","t":"break_britannique","v":0,"a":"hip","s":"instru","b":4,"w":1,"n":0},{"p":"live/hip/instru/cooldown.tidal","t":"cooldown","v":0,"a":"hip","s":"instru","b":6,"w":2,"n":0},{"p":"live/hip/instru/courant_alternatif.tidal","t":"courant_alternatif","v":0,"a":"hip","s":"instru","b":9,"w":5,"n":0},{"p":"live/hip/instru/crapeau_hippo.tidal","t":"crapeau_hippo","v":0,"a":"hip","s":"instru","b":7,"w":4,"n":0},{"p":"live/hip/instru/envahisseur_celtique.tidal","t":"envahisseur_celtique","v":2,"a":"hip","s":"instru","b":9,"w":6,"n":0},{"p":"live/hip/instru/guitar_roll.tidal","t":"guitar_roll","v":0,"a":"hip","s":"instru","b":11,"w":7,"n":0},{"p":"live/hip/instru/jardin_dhiver.tidal","t":"jardin_dhiver","v":0,"a":"hip","s":"instru","b":17,"w":9,"n":0},{"p":"live/hip/instru/jazz_noise.tidal","t":"jazz_noise","v":0,"a":"hip","s":"instru","b":6,"w":2,"n":0},{"p":"live/hip/instru/minibreak.tidal","t":"minibreak","v":0,"a":"hip","s":"instru","b":15,"w":8,"n":0},{"p":"live/hip/instru/nu.tidal","t":"nu","v":0,"a":"hip","s":"instru","b":7,"w":3,"n":0},{"p":"live/hip/instru/nuit_au_quartier_latin.tidal","t":"nuit_au_quartier_latin","v":0,"a":"hip","s":"instru","b":9,"w":6,"n":0},{"p":"live/hip/instru/pixels_roses.tidal","t":"pixels_roses","v":0,"a":"hip","s":"instru","b":9,"w":5,"n":0},{"p":"live/hip/instru/remede.tidal","t":"remede","v":0,"a":"hip","s":"instru","b":8,"w":5,"n":0},{"p":"live/hip/instru/training.tidal","t":"training","v":0,"a":"hip","s":"instru","b":13,"w":9,"n":0},{"p":"live/hip/jerem.tidal","t":"jerem","v":0,"a":"hip","s":"","b":5,"w":3,"n":0},{"p":"live/hip/lofi/808_lessons.tidal","t":"808_lessons","v":0,"a":"hip","s":"lofi","b":12,"w":8,"n":0},{"p":"live/hip/lofi/back_baby.tidal","t":"back_baby","v":0,"a":"hip","s":"lofi","b":10,"w":6,"n":0},{"p":"live/hip/lofi/brouillard.tidal","t":"brouillard","v":0,"a":"hip","s":"lofi","b":10,"w":9,"n":0},{"p":"live/hip/lofi/du_miel.tidal","t":"du_miel","v":2,"a":"hip","s":"lofi","b":7,"w":5,"n":0},{"p":"live/hip/lofi/hellofi.tidal","t":"hellofi","v":0,"a":"hip","s":"lofi","b":6,"w":5,"n":0},{"p":"live/hip/lofi/poke_bone.tidal","t":"poke_bone","v":0,"a":"hip","s":"lofi","b":7,"w":6,"n":0},{"p":"live/hip/lofi/sete_et_match.tidal","t":"sete_et_match","v":0,"a":"hip","s":"lofi","b":9,"w":7,"n":0},{"p":"live/hip/lofi/slow_mo.tidal","t":"slow_mo","v":0,"a":"hip","s":"lofi","b":15,"w":9,"n":0},{"p":"live/hip/lofi/soleil_enthousiaste.tidal","t":"soleil_enthousiaste","v":0,"a":"hip","s":"lofi","b":8,"w":7,"n":0},{"p":"live/hip/lofi/toujours_plus.tidal","t":"toujours_plus","v":0,"a":"hip","s":"lofi","b":8,"w":6,"n":0},{"p":"live/hip/mask.tidal","t":"mask","v":0,"a":"hip","s":"","b":4,"w":2,"n":0},{"p":"live/hip/pensif.tidal","t":"pensif","v":0,"a":"hip","s":"","b":7,"w":5,"n":0},{"p":"live/hip/piano_fight.tidal","t":"piano_fight","v":0,"a":"hip","s":"","b":7,"w":3,"n":0},{"p":"live/hip/solitude_hivernale.tidal","t":"solitude_hivernale","v":0,"a":"hip","s":"","b":7,"w":5,"n":0},{"p":"live/hip/sunny.tidal","t":"sunny","v":0,"a":"hip","s":"","b":10,"w":8,"n":0},{"p":"live/hip/sunny2.tidal","t":"sunny2","v":0,"a":"hip","s":"","b":8,"w":5,"n":0},{"p":"live/hip/trapped_in_space.tidal","t":"trapped_in_space","v":0,"a":"hip","s":"","b":6,"w":2,"n":0},{"p":"live/hip/volette.tidal","t":"volette","v":2,"a":"hip","s":"","b":5,"w":2,"n":0},{"p":"live/home.tidal","t":"home","v":0,"a":"root","s":"","b":8,"w":5,"n":0},{"p":"live/jam/cbow.tidal","t":"cbow","v":2,"a":"jam","s":"","b":10,"w":9,"n":0},{"p":"live/jam/chalet.tidal","t":"chalet","v":0,"a":"jam","s":"","b":5,"w":4,"n":0},{"p":"live/jam/val23.tidal","t":"val23","v":0,"a":"jam","s":"","b":18,"w":17,"n":0},{"p":"live/late/funky_evening.tidal","t":"funky_evening","v":0,"a":"late","s":"","b":8,"w":3,"n":0},{"p":"live/late/good_morning_minneapolis.tidal","t":"good_morning_minneapolis","v":0,"a":"late","s":"","b":7,"w":4,"n":0},{"p":"live/late/romain.tidal","t":"romain","v":0,"a":"late","s":"","b":10,"w":6,"n":0},{"p":"live/late/temps.tidal","t":"temps","v":0,"a":"late","s":"","b":3,"w":2,"n":0},{"p":"live/lib/prelude.tidal","t":"prelude","v":0,"a":"lib","s":"","b":0,"w":0,"n":0},{"p":"live/medievalcore.tidal","t":"medievalcore","v":0,"a":"root","s":"","b":11,"w":10,"n":0},{"p":"live/midi/ambient_space.tidal","t":"ambient_space","v":0,"a":"midi","s":"","b":11,"w":6,"n":0},{"p":"live/midi/ams_companion.tidal","t":"ams_companion","v":0,"a":"midi","s":"","b":8,"w":7,"n":0},{"p":"live/midi/beats.tidal","t":"beats","v":2,"a":"midi","s":"","b":20,"w":11,"n":0},{"p":"live/midi/break_metal.tidal","t":"break_metal","v":0,"a":"midi","s":"","b":8,"w":6,"n":0},{"p":"live/midi/bruit_hiver.tidal","t":"bruit_hiver","v":0,"a":"midi","s":"","b":6,"w":4,"n":0},{"p":"live/midi/dub.tidal","t":"dub","v":2,"a":"midi","s":"","b":14,"w":4,"n":0},{"p":"live/midi/dubmini.tidal","t":"dubmini","v":0,"a":"midi","s":"","b":8,"w":5,"n":0},{"p":"live/midi/dusty_cypres.tidal","t":"dusty_cypres","v":0,"a":"midi","s":"","b":3,"w":0,"n":0},{"p":"live/midi/dusty_marcia.tidal","t":"dusty_marcia","v":0,"a":"midi","s":"","b":2,"w":1,"n":0},{"p":"live/midi/frerot.tidal","t":"frerot","v":0,"a":"midi","s":"","b":7,"w":5,"n":0},{"p":"live/midi/hello_world.tidal","t":"hello_world","v":2,"a":"midi","s":"","b":6,"w":5,"n":0},{"p":"live/midi/jazz.tidal","t":"jazz","v":0,"a":"midi","s":"","b":6,"w":5,"n":0},{"p":"live/midi/looper/god_money.tidal","t":"god_money","v":2,"a":"midi","s":"looper","b":5,"w":3,"n":0},{"p":"live/midi/nova/120_techoirs.tidal","t":"120_techoirs","v":0,"a":"midi/nova","s":"","b":8,"w":6,"n":0},{"p":"live/midi/nova/80fonk.tidal","t":"80fonk","v":0,"a":"midi/nova","s":"","b":8,"w":5,"n":0},{"p":"live/midi/nova/DX_tech.tidal","t":"DX_tech","v":2,"a":"midi/nova","s":"","b":8,"w":7,"n":0},{"p":"live/midi/nova/FFF/Noise.tidal","t":"Noise","v":2,"a":"midi/nova","s":"FFF","b":6,"w":2,"n":0},{"p":"live/midi/nova/FFF/grace.tidal","t":"grace","v":0,"a":"midi/nova","s":"FFF","b":10,"w":8,"n":0},{"p":"live/midi/nova/FFF/mad_fonk.tidal","t":"mad_fonk","v":0,"a":"midi/nova","s":"FFF","b":12,"w":8,"n":0},{"p":"live/midi/nova/FFF/pray.tidal","t":"pray","v":2,"a":"midi/nova","s":"FFF","b":5,"w":2,"n":0},{"p":"live/midi/nova/FM/fm.tidal","t":"fm","v":0,"a":"midi/nova","s":"FM","b":0,"w":0,"n":0},{"p":"live/midi/nova/FM/heure_a_perdre.tidal","t":"heure_a_perdre","v":0,"a":"midi/nova","s":"FM","b":6,"w":5,"n":0},{"p":"live/midi/nova/FM/superFM.tidal","t":"superFM","v":0,"a":"midi/nova","s":"FM","b":0,"w":0,"n":0},{"p":"live/midi/nova/acid/gimme_acid.tidal","t":"gimme_acid","v":0,"a":"midi/nova","s":"acid","b":11,"w":10,"n":0},{"p":"live/midi/nova/acid/la_dub_sour.tidal","t":"la_dub_sour","v":0,"a":"midi/nova","s":"acid","b":9,"w":8,"n":0},{"p":"live/midi/nova/acid/la_porte_de_leternite.tidal","t":"la_porte_de_leternite","v":0,"a":"midi/nova","s":"acid","b":14,"w":11,"n":0},{"p":"live/midi/nova/ambient/ambient_chaos.tidal","t":"ambient_chaos","v":2,"a":"midi/nova","s":"ambient","b":8,"w":5,"n":0},{"p":"live/midi/nova/ambient/contre_visite.tidal","t":"contre_visite","v":0,"a":"midi/nova","s":"ambient","b":17,"w":13,"n":0},{"p":"live/midi/nova/ambient/drone_aveugle.tidal","t":"drone_aveugle","v":0,"a":"midi/nova","s":"ambient","b":9,"w":8,"n":0},{"p":"live/midi/nova/ambient/empreinte_du_numerique.tidal","t":"empreinte_du_numerique","v":0,"a":"midi/nova","s":"ambient","b":9,"w":5,"n":0},{"p":"live/midi/nova/ambient/froid_de_minuit.tidal","t":"froid_de_minuit","v":0,"a":"midi/nova","s":"ambient","b":12,"w":9,"n":0},{"p":"live/midi/nova/ambient/mono_over.tidal","t":"mono_over","v":1,"a":"midi/nova","s":"ambient","b":8,"w":4,"n":0},{"p":"live/midi/nova/ambient/prestance.tidal","t":"prestance","v":0,"a":"midi/nova","s":"ambient","b":8,"w":7,"n":0},{"p":"live/midi/nova/ambient/snow_white.tidal","t":"snow_white","v":0,"a":"midi/nova","s":"ambient","b":12,"w":7,"n":0},{"p":"live/midi/nova/beatober/oct_15_midoct.tidal","t":"oct_15_midoct","v":0,"a":"midi/nova","s":"beatober","b":7,"w":4,"n":0},{"p":"live/midi/nova/beatober/oct_16_haunted_house_insouciance.tidal","t":"oct_16_haunted_house_insouciance","v":0,"a":"midi/nova","s":"beatober","b":14,"w":13,"n":0},{"p":"live/midi/nova/beatober/oct_29_can_i_code_it.tidal","t":"oct_29_can_i_code_it","v":0,"a":"midi/nova","s":"beatober","b":12,"w":9,"n":0},{"p":"live/midi/nova/beatober/oct_5.tidal","t":"oct_5","v":2,"a":"midi/nova","s":"beatober","b":13,"w":11,"n":0},{"p":"live/midi/nova/beatober/oct_glitchs_sauvages.tidal","t":"oct_glitchs_sauvages","v":0,"a":"midi/nova","s":"beatober","b":13,"w":9,"n":0},{"p":"live/midi/nova/boombap/al_salar.tidal","t":"al_salar","v":0,"a":"midi/nova","s":"boombap","b":17,"w":11,"n":0},{"p":"live/midi/nova/boombap/boom_jane.tidal","t":"boom_jane","v":0,"a":"midi/nova","s":"boombap","b":7,"w":5,"n":0},{"p":"live/midi/nova/boombap/chemise_a_carreaux.tidal","t":"chemise_a_carreaux","v":0,"a":"midi/nova","s":"boombap","b":10,"w":8,"n":0},{"p":"live/midi/nova/boombap/creme.tidal","t":"creme","v":0,"a":"midi/nova","s":"boombap","b":11,"w":8,"n":0},{"p":"live/midi/nova/boombap/el_mundo.tidal","t":"el_mundo","v":0,"a":"midi/nova","s":"boombap","b":11,"w":7,"n":0},{"p":"live/midi/nova/boombap/latin_au_chocolat.tidal","t":"latin_au_chocolat","v":0,"a":"midi/nova","s":"boombap","b":6,"w":5,"n":0},{"p":"live/midi/nova/boombap/rien_a_craindre.tidal","t":"rien_a_craindre","v":0,"a":"midi/nova","s":"boombap","b":11,"w":8,"n":0},{"p":"live/midi/nova/boombap/saloon.tidal","t":"saloon","v":0,"a":"midi/nova","s":"boombap","b":9,"w":5,"n":0},{"p":"live/midi/nova/boombap/sept20.tidal","t":"sept20","v":0,"a":"midi/nova","s":"boombap","b":10,"w":6,"n":0},{"p":"live/midi/nova/boombap/trop_plein.tidal","t":"trop_plein","v":0,"a":"midi/nova","s":"boombap","b":9,"w":5,"n":0},{"p":"live/midi/nova/breaks.tidal","t":"breaks","v":0,"a":"midi/nova","s":"","b":2,"w":1,"n":0},{"p":"live/midi/nova/breaks/StolenChoir.tidal","t":"StolenChoir","v":0,"a":"midi/nova","s":"breaks","b":12,"w":8,"n":0},{"p":"live/midi/nova/breaks/acid_rain.tidal","t":"acid_rain","v":0,"a":"midi/nova","s":"breaks","b":14,"w":8,"n":0},{"p":"live/midi/nova/breaks/bain_electrique.tidal","t":"bain_electrique","v":0,"a":"midi/nova","s":"breaks","b":19,"w":18,"n":0},{"p":"live/midi/nova/breaks/break_90s.tidal","t":"break_90s","v":2,"a":"midi/nova","s":"breaks","b":10,"w":6,"n":0},{"p":"live/midi/nova/breaks/break_at_home.tidal","t":"break_at_home","v":2,"a":"midi/nova","s":"breaks","b":4,"w":3,"n":0},{"p":"live/midi/nova/breaks/break_dynasty.tidal","t":"break_dynasty","v":0,"a":"midi/nova","s":"breaks","b":8,"w":6,"n":0},{"p":"live/midi/nova/breaks/break_low.tidal","t":"break_low","v":0,"a":"midi/nova","s":"breaks","b":12,"w":10,"n":0},{"p":"live/midi/nova/breaks/break_the_night.tidal","t":"break_the_night","v":0,"a":"midi/nova","s":"breaks","b":10,"w":5,"n":0},{"p":"live/midi/nova/breaks/break_the_rentree.tidal","t":"break_the_rentree","v":0,"a":"midi/nova","s":"breaks","b":9,"w":3,"n":0},{"p":"live/midi/nova/breaks/code_secret.tidal","t":"code_secret","v":0,"a":"midi/nova","s":"breaks","b":9,"w":7,"n":0},{"p":"live/midi/nova/breaks/green_land.tidal","t":"green_land","v":0,"a":"midi/nova","s":"breaks","b":12,"w":9,"n":0},{"p":"live/midi/nova/breaks/hello_fred.tidal","t":"hello_fred","v":0,"a":"midi/nova","s":"breaks","b":7,"w":4,"n":0},{"p":"live/midi/nova/breaks/its_about_time.tidal","t":"its_about_time","v":2,"a":"midi/nova","s":"breaks","b":12,"w":7,"n":0},{"p":"live/midi/nova/breaks/jesus_loves_disco.tidal","t":"jesus_loves_disco","v":0,"a":"midi/nova","s":"breaks","b":7,"w":6,"n":0},{"p":"live/midi/nova/breaks/la_canopee.tidal","t":"la_canopee","v":0,"a":"midi/nova","s":"breaks","b":6,"w":4,"n":0},{"p":"live/midi/nova/breaks/lady_perplexity.tidal","t":"lady_perplexity","v":0,"a":"midi/nova","s":"breaks","b":11,"w":10,"n":0},{"p":"live/midi/nova/breaks/lourd.tidal","t":"lourd","v":0,"a":"midi/nova","s":"breaks","b":10,"w":6,"n":0},{"p":"live/midi/nova/breaks/lunar.tidal","t":"lunar","v":0,"a":"midi/nova","s":"breaks","b":7,"w":6,"n":0},{"p":"live/midi/nova/breaks/madeleine_de_paris.tidal","t":"madeleine_de_paris","v":0,"a":"midi/nova","s":"breaks","b":9,"w":8,"n":0},{"p":"live/midi/nova/breaks/midnight_breaking.tidal","t":"midnight_breaking","v":0,"a":"midi/nova","s":"breaks","b":14,"w":8,"n":0},{"p":"live/midi/nova/breaks/monday_fairy.tidal","t":"monday_fairy","v":0,"a":"midi/nova","s":"breaks","b":13,"w":10,"n":0},{"p":"live/midi/nova/breaks/nova_bossa.tidal","t":"nova_bossa","v":2,"a":"midi/nova","s":"breaks","b":9,"w":6,"n":0},{"p":"live/midi/nova/breaks/nuit_agitee.tidal","t":"nuit_agitee","v":1,"a":"midi/nova","s":"breaks","b":13,"w":12,"n":0},{"p":"live/midi/nova/breaks/rose_eternelle.tidal","t":"rose_eternelle","v":0,"a":"midi/nova","s":"breaks","b":9,"w":8,"n":0},{"p":"live/midi/nova/breaks/slower.tidal","t":"slower","v":0,"a":"midi/nova","s":"breaks","b":11,"w":7,"n":0},{"p":"live/midi/nova/breaks/solar.tidal","t":"solar","v":2,"a":"midi/nova","s":"breaks","b":12,"w":9,"n":0},{"p":"live/midi/nova/breaks/spanish_thingy.tidal","t":"spanish_thingy","v":0,"a":"midi/nova","s":"breaks","b":7,"w":5,"n":0},{"p":"live/midi/nova/breaks/the_secret.tidal","t":"the_secret","v":0,"a":"midi/nova","s":"breaks","b":12,"w":10,"n":0},{"p":"live/midi/nova/computer_riddub.tidal","t":"computer_riddub","v":2,"a":"midi/nova","s":"","b":17,"w":12,"n":0},{"p":"live/midi/nova/disco/buena_sera_milano.tidal","t":"buena_sera_milano","v":0,"a":"midi/nova","s":"disco","b":7,"w":6,"n":0},{"p":"live/midi/nova/disco/friends_in_blue.tidal","t":"friends_in_blue","v":0,"a":"midi/nova","s":"disco","b":9,"w":5,"n":0},{"p":"live/midi/nova/dnb/BreakBass.tidal","t":"BreakBass","v":2,"a":"midi/nova","s":"dnb","b":20,"w":11,"n":0},{"p":"live/midi/nova/dnb/MethBass.tidal","t":"MethBass","v":0,"a":"midi/nova","s":"dnb","b":11,"w":7,"n":0},{"p":"live/midi/nova/dnb/alerte_verte.tidal","t":"alerte_verte","v":0,"a":"midi/nova","s":"dnb","b":18,"w":14,"n":0},{"p":"live/midi/nova/dnb/anniv.tidal","t":"anniv","v":0,"a":"midi/nova","s":"dnb","b":16,"w":11,"n":0},{"p":"live/midi/nova/dnb/break_the_loop.tidal","t":"break_the_loop","v":0,"a":"midi/nova","s":"dnb","b":9,"w":7,"n":0},{"p":"live/midi/nova/dnb/bruler_franchement.tidal","t":"bruler_franchement","v":0,"a":"midi/nova","s":"dnb","b":10,"w":8,"n":0},{"p":"live/midi/nova/dnb/drums_I_presume.tidal","t":"drums_I_presume","v":0,"a":"midi/nova","s":"dnb","b":8,"w":6,"n":0},{"p":"live/midi/nova/dnb/force_motrice.tidal","t":"force_motrice","v":0,"a":"midi/nova","s":"dnb","b":15,"w":14,"n":0},{"p":"live/midi/nova/dnb/golden_drum.tidal","t":"golden_drum","v":0,"a":"midi/nova","s":"dnb","b":14,"w":12,"n":0},{"p":"live/midi/nova/dnb/jet_de_resistance.tidal","t":"jet_de_resistance","v":0,"a":"midi/nova","s":"dnb","b":6,"w":4,"n":0},{"p":"live/midi/nova/dnb/la_bonne_pression.tidal","t":"la_bonne_pression","v":0,"a":"midi/nova","s":"dnb","b":14,"w":10,"n":0},{"p":"live/midi/nova/dnb/la_foule.tidal","t":"la_foule","v":0,"a":"midi/nova","s":"dnb","b":13,"w":11,"n":0},{"p":"live/midi/nova/dnb/lime_tacos.tidal","t":"lime_tacos","v":0,"a":"midi/nova","s":"dnb","b":12,"w":11,"n":0},{"p":"live/midi/nova/dnb/noname.tidal","t":"noname","v":0,"a":"midi/nova","s":"dnb","b":13,"w":8,"n":0},{"p":"live/midi/nova/dnb/nouveau_soleil.tidal","t":"nouveau_soleil","v":0,"a":"midi/nova","s":"dnb","b":13,"w":9,"n":0},{"p":"live/midi/nova/dnb/perceneige.tidal","t":"perceneige","v":0,"a":"midi/nova","s":"dnb","b":8,"w":4,"n":0},{"p":"live/midi/nova/dnb/plosive.tidal","t":"plosive","v":0,"a":"midi/nova","s":"dnb","b":11,"w":10,"n":0},{"p":"live/midi/nova/dnb/prepabass.tidal","t":"prepabass","v":0,"a":"midi/nova","s":"dnb","b":10,"w":9,"n":0},{"p":"live/midi/nova/dnb/venons_ensemble.tidal","t":"venons_ensemble","v":0,"a":"midi/nova","s":"dnb","b":16,"w":11,"n":0},{"p":"live/midi/nova/dub.tidal","t":"dub","v":0,"a":"midi/nova","s":"","b":8,"w":4,"n":0},{"p":"live/midi/nova/dub/big_morning.tidal","t":"big_morning","v":0,"a":"midi/nova","s":"dub","b":8,"w":6,"n":0},{"p":"live/midi/nova/dub/computer_riddim.tidal","t":"computer_riddim","v":0,"a":"midi/nova","s":"dub","b":15,"w":11,"n":0},{"p":"live/midi/nova/dub/simon_arrive.tidal","t":"simon_arrive","v":0,"a":"midi/nova","s":"dub","b":2,"w":1,"n":0},{"p":"live/midi/nova/dub/skunky.tidal","t":"skunky","v":0,"a":"midi/nova","s":"dub","b":14,"w":11,"n":0},{"p":"live/midi/nova/feu.tidal","t":"feu","v":2,"a":"midi/nova","s":"","b":12,"w":9,"n":0},{"p":"live/midi/nova/fm.tidal","t":"fm","v":0,"a":"midi/nova","s":"","b":0,"w":0,"n":0},{"p":"live/midi/nova/fusion/all_the_way.tidal","t":"all_the_way","v":0,"a":"midi/nova","s":"fusion","b":7,"w":6,"n":0},{"p":"live/midi/nova/fusion/coworking.tidal","t":"coworking","v":0,"a":"midi/nova","s":"fusion","b":8,"w":7,"n":0},{"p":"live/midi/nova/fusion/crystal_d_ete.tidal","t":"crystal_d_ete","v":0,"a":"midi/nova","s":"fusion","b":8,"w":6,"n":0},{"p":"live/midi/nova/fusion/elephunk.tidal","t":"elephunk","v":0,"a":"midi/nova","s":"fusion","b":11,"w":4,"n":0},{"p":"live/midi/nova/fusion/etapes.tidal","t":"etapes","v":2,"a":"midi/nova","s":"fusion","b":8,"w":5,"n":0},{"p":"live/midi/nova/fusion/funk_trap.tidal","t":"funk_trap","v":0,"a":"midi/nova","s":"fusion","b":0,"w":0,"n":0},{"p":"live/midi/nova/fusion/qui_sait.tidal","t":"qui_sait","v":0,"a":"midi/nova","s":"fusion","b":7,"w":5,"n":0},{"p":"live/midi/nova/fusion/shape_of_foo.tidal","t":"shape_of_foo","v":0,"a":"midi/nova","s":"fusion","b":9,"w":5,"n":0},{"p":"live/midi/nova/grime/bogdan_arrive.tidal","t":"bogdan_arrive","v":0,"a":"midi/nova","s":"grime","b":14,"w":12,"n":0},{"p":"live/midi/nova/harder_crime.tidal","t":"harder_crime","v":0,"a":"midi/nova","s":"","b":11,"w":8,"n":0},{"p":"live/midi/nova/instruments/8box.tidal","t":"8box","v":2,"a":"midi/nova","s":"instruments","b":17,"w":12,"n":0},{"p":"live/midi/nova/instruments/AtomicRhodes.tidal","t":"AtomicRhodes","v":2,"a":"midi/nova","s":"instruments","b":7,"w":6,"n":0},{"p":"live/midi/nova/instruments/scratchomatic.tidal","t":"scratchomatic","v":1,"a":"midi/nova","s":"instruments","b":7,"w":4,"n":0},{"p":"live/midi/nova/jamuary/2504_ce_quon_ignore.tidal","t":"2504_ce_quon_ignore","v":0,"a":"midi/nova","s":"jamuary","b":10,"w":8,"n":0},{"p":"live/midi/nova/jazz/giant_technique.tidal","t":"giant_technique","v":0,"a":"midi/nova","s":"jazz","b":6,"w":4,"n":0},{"p":"live/midi/nova/jungle/chemin_de_traverse.tidal","t":"chemin_de_traverse","v":0,"a":"midi/nova","s":"jungle","b":9,"w":5,"n":0},{"p":"live/midi/nova/lofi/back_baby.tidal","t":"back_baby","v":0,"a":"midi/nova","s":"lofi","b":8,"w":4,"n":0},{"p":"live/midi/nova/lofi/dark_money.tidal","t":"dark_money","v":0,"a":"midi/nova","s":"lofi","b":10,"w":8,"n":0},{"p":"live/midi/nova/lofi/fictional_yehuda.tidal","t":"fictional_yehuda","v":0,"a":"midi/nova","s":"lofi","b":8,"w":5,"n":0},{"p":"live/midi/nova/lofi/hello_shiloh.tidal","t":"hello_shiloh","v":0,"a":"midi/nova","s":"lofi","b":7,"w":4,"n":0},{"p":"live/midi/nova/lofi/lendemain_divin.tidal","t":"lendemain_divin","v":1,"a":"midi/nova","s":"lofi","b":9,"w":7,"n":0},{"p":"live/midi/nova/lofi/low_and_numb.tidal","t":"low_and_numb","v":0,"a":"midi/nova","s":"lofi","b":9,"w":7,"n":0},{"p":"live/midi/nova/lofi/new_dust.tidal","t":"new_dust","v":0,"a":"midi/nova","s":"lofi","b":12,"w":8,"n":0},{"p":"live/midi/nova/lofi/pour_une_hypothese.tidal","t":"pour_une_hypothese","v":0,"a":"midi/nova","s":"lofi","b":11,"w":10,"n":0},{"p":"live/midi/nova/lofi/premier_mai.tidal","t":"premier_mai","v":0,"a":"midi/nova","s":"lofi","b":8,"w":6,"n":0},{"p":"live/midi/nova/lofi/premiere_grillade.tidal","t":"premiere_grillade","v":0,"a":"midi/nova","s":"lofi","b":9,"w":7,"n":0},{"p":"live/midi/nova/lofi/reboot.tidal","t":"reboot","v":0,"a":"midi/nova","s":"lofi","b":11,"w":6,"n":0},{"p":"live/midi/nova/lofi/savoir_voyager.tidal","t":"savoir_voyager","v":0,"a":"midi/nova","s":"lofi","b":12,"w":10,"n":0},{"p":"live/midi/nova/lofi/soleil_de_sete.tidal","t":"soleil_de_sete","v":0,"a":"midi/nova","s":"lofi","b":10,"w":8,"n":0},{"p":"live/midi/nova/lofi/sunny_march.tidal","t":"sunny_march","v":0,"a":"midi/nova","s":"lofi","b":8,"w":5,"n":0},{"p":"live/midi/nova/lofi/zombie_bed.tidal","t":"zombie_bed","v":0,"a":"midi/nova","s":"lofi","b":12,"w":10,"n":0},{"p":"live/midi/nova/lounge/acidoo.tidal","t":"acidoo","v":0,"a":"midi/nova","s":"lounge","b":14,"w":12,"n":0},{"p":"live/midi/nova/lounge/blade_dreamer.tidal","t":"blade_dreamer","v":0,"a":"midi/nova","s":"lounge","b":12,"w":7,"n":0},{"p":"live/midi/nova/lounge/cbow.tidal","t":"cbow","v":2,"a":"midi/nova","s":"lounge","b":15,"w":12,"n":0},{"p":"live/midi/nova/lounge/fabuleux.tidal","t":"fabuleux","v":0,"a":"midi/nova","s":"lounge","b":10,"w":8,"n":0},{"p":"live/midi/nova/lounge/hello_loo.tidal","t":"hello_loo","v":0,"a":"midi/nova","s":"lounge","b":4,"w":3,"n":0},{"p":"live/midi/nova/lounge/hoover_sepia.tidal","t":"hoover_sepia","v":0,"a":"midi/nova","s":"lounge","b":7,"w":6,"n":0},{"p":"live/midi/nova/lounge/invoque_ete.tidal","t":"invoque_ete","v":2,"a":"midi/nova","s":"lounge","b":16,"w":11,"n":0},{"p":"live/midi/nova/lounge/la_nuit_je_funk.tidal","t":"la_nuit_je_funk","v":0,"a":"midi/nova","s":"lounge","b":10,"w":9,"n":0},{"p":"live/midi/nova/lounge/michael.tidal","t":"michael","v":0,"a":"midi/nova","s":"lounge","b":10,"w":5,"n":0},{"p":"live/midi/nova/lounge/mojo_hats.tidal","t":"mojo_hats","v":0,"a":"midi/nova","s":"lounge","b":5,"w":3,"n":0},{"p":"live/midi/nova/lounge/night_sun.tidal","t":"night_sun","v":0,"a":"midi/nova","s":"lounge","b":11,"w":9,"n":0},{"p":"live/midi/nova/lounge/ouais_je_funk.tidal","t":"ouais_je_funk","v":0,"a":"midi/nova","s":"lounge","b":17,"w":16,"n":0},{"p":"live/midi/nova/lounge/soleil_du_soir.tidal","t":"soleil_du_soir","v":0,"a":"midi/nova","s":"lounge","b":13,"w":11,"n":0},{"p":"live/midi/nova/lounge/suns_of_gold.tidal","t":"suns_of_gold","v":0,"a":"midi/nova","s":"lounge","b":16,"w":13,"n":0},{"p":"live/midi/nova/lounge/take_5_drops.tidal","t":"take_5_drops","v":0,"a":"midi/nova","s":"lounge","b":10,"w":9,"n":0},{"p":"live/midi/nova/lounge/top_hats.tidal","t":"top_hats","v":0,"a":"midi/nova","s":"lounge","b":9,"w":6,"n":0},{"p":"live/midi/nova/minneapolis.tidal","t":"minneapolis","v":0,"a":"midi/nova","s":"","b":12,"w":9,"n":0},{"p":"live/midi/nova/nujazz/cafe_bouillant.tidal","t":"cafe_bouillant","v":0,"a":"midi/nova","s":"nujazz","b":13,"w":11,"n":0},{"p":"live/midi/nova/nujazz/cafe_tiede.tidal","t":"cafe_tiede","v":0,"a":"midi/nova","s":"nujazz","b":11,"w":10,"n":0},{"p":"live/midi/nova/nujazz/chere_mireille.tidal","t":"chere_mireille","v":0,"a":"midi/nova","s":"nujazz","b":18,"w":14,"n":0},{"p":"live/midi/nova/nujazz/dimanche_numb.tidal","t":"dimanche_numb","v":0,"a":"midi/nova","s":"nujazz","b":12,"w":9,"n":0},{"p":"live/midi/nova/nujazz/infusion_basse.tidal","t":"infusion_basse","v":0,"a":"midi/nova","s":"nujazz","b":11,"w":8,"n":0},{"p":"live/midi/nova/nujazz/menthe_givree.tidal","t":"menthe_givree","v":0,"a":"midi/nova","s":"nujazz","b":8,"w":7,"n":0},{"p":"live/midi/nova/nujazz/nouvelle_couleur.tidal","t":"nouvelle_couleur","v":0,"a":"midi/nova","s":"nujazz","b":10,"w":8,"n":0},{"p":"live/midi/nova/nujazz/nu_dans_la_boue.tidal","t":"nu_dans_la_boue","v":1,"a":"midi/nova","s":"nujazz","b":16,"w":14,"n":0},{"p":"live/midi/nova/nujazz/salut_nu.tidal","t":"salut_nu","v":0,"a":"midi/nova","s":"nujazz","b":14,"w":13,"n":0},{"p":"live/midi/nova/once_upon_a_loop.tidal","t":"once_upon_a_loop","v":2,"a":"midi/nova","s":"","b":8,"w":5,"n":0},{"p":"live/midi/nova/party/80s_neon.tidal","t":"80s_neon","v":0,"a":"midi/nova","s":"party","b":11,"w":6,"n":0},{"p":"live/midi/nova/party/blues_machine.tidal","t":"blues_machine","v":0,"a":"midi/nova","s":"party","b":3,"w":1,"n":0},{"p":"live/midi/nova/party/dark_angel_frappe.tidal","t":"dark_angel_frappe","v":1,"a":"midi/nova","s":"party","b":12,"w":8,"n":0},{"p":"live/midi/nova/party/electro_blues.tidal","t":"electro_blues","v":2,"a":"midi/nova","s":"party","b":5,"w":3,"n":0},{"p":"live/midi/nova/party/last_one.tidal","t":"last_one","v":0,"a":"midi/nova","s":"party","b":12,"w":11,"n":0},{"p":"live/midi/nova/party/maudits_insectes.tidal","t":"maudits_insectes","v":0,"a":"midi/nova","s":"party","b":6,"w":4,"n":0},{"p":"live/midi/nova/party/phunk.tidal","t":"phunk","v":2,"a":"midi/nova","s":"party","b":17,"w":10,"n":0},{"p":"live/midi/nova/party/sidekick.tidal","t":"sidekick","v":0,"a":"midi/nova","s":"party","b":10,"w":7,"n":0},{"p":"live/midi/nova/party/technomidi.tidal","t":"technomidi","v":0,"a":"midi/nova","s":"party","b":6,"w":4,"n":0},{"p":"live/midi/nova/party_hard.tidal","t":"party_hard","v":2,"a":"midi/nova","s":"","b":9,"w":6,"n":0},{"p":"live/midi/nova/punk/hello_poesie.tidal","t":"hello_poesie","v":0,"a":"midi/nova","s":"punk","b":8,"w":4,"n":0},{"p":"live/midi/nova/punk/punk_teng.tidal","t":"punk_teng","v":0,"a":"midi/nova","s":"punk","b":7,"w":4,"n":0},{"p":"live/midi/nova/remix/perfect.tidal","t":"perfect","v":0,"a":"midi/nova","s":"remix","b":12,"w":11,"n":0},{"p":"live/midi/nova/superFM.tidal","t":"superFM","v":0,"a":"midi/nova","s":"","b":0,"w":0,"n":0},{"p":"live/midi/nova/techno/around_the_bass.tidal","t":"around_the_bass","v":0,"a":"midi/nova","s":"techno","b":8,"w":7,"n":0},{"p":"live/midi/nova/techno/belle_pluie.tidal","t":"belle_pluie","v":0,"a":"midi/nova","s":"techno","b":12,"w":9,"n":0},{"p":"live/midi/nova/techno/ca_fait_rien.tidal","t":"ca_fait_rien","v":0,"a":"midi/nova","s":"techno","b":13,"w":7,"n":0},{"p":"live/midi/nova/techno/coconut_coffee.tidal","t":"coconut_coffee","v":0,"a":"midi/nova","s":"techno","b":8,"w":7,"n":0},{"p":"live/midi/nova/techno/electric_hammer.tidal","t":"electric_hammer","v":0,"a":"midi/nova","s":"techno","b":7,"w":4,"n":0},{"p":"live/midi/nova/techno/ere_de_jeu.tidal","t":"ere_de_jeu","v":0,"a":"midi/nova","s":"techno","b":17,"w":16,"n":0},{"p":"live/midi/nova/techno/industry/no_panic.tidal","t":"no_panic","v":0,"a":"midi/nova","s":"techno","b":9,"w":8,"n":0},{"p":"live/midi/nova/techno/law_and_order.tidal","t":"law_and_order","v":0,"a":"midi/nova","s":"techno","b":9,"w":8,"n":0},{"p":"live/midi/nova/techno/love_of_techno.tidal","t":"love_of_techno","v":0,"a":"midi/nova","s":"techno","b":4,"w":3,"n":0},{"p":"live/midi/nova/techno/panda_rouge.tidal","t":"panda_rouge","v":0,"a":"midi/nova","s":"techno","b":12,"w":9,"n":0},{"p":"live/midi/nova/techno/prelude.tidal","t":"prelude","v":0,"a":"midi/nova","s":"techno","b":11,"w":10,"n":0},{"p":"live/midi/nova/techno/techno_oligarchie.tidal","t":"techno_oligarchie","v":0,"a":"midi/nova","s":"techno","b":15,"w":10,"n":0},{"p":"live/midi/nova/techno/techno_pretre.tidal","t":"techno_pretre","v":0,"a":"midi/nova","s":"techno","b":7,"w":4,"n":0},{"p":"live/midi/nova/techno/the_good_bass.tidal","t":"the_good_bass","v":0,"a":"midi/nova","s":"techno","b":8,"w":7,"n":0},{"p":"live/midi/nova/techno/tour_du_ciel.tidal","t":"tour_du_ciel","v":0,"a":"midi/nova","s":"techno","b":8,"w":4,"n":0},{"p":"live/midi/nova/techno/trn/no_time_to_die.tidal","t":"no_time_to_die","v":0,"a":"midi/nova","s":"techno","b":10,"w":5,"n":0},{"p":"live/midi/nova/tidal_crime.tidal","t":"tidal_crime","v":0,"a":"midi/nova","s":"","b":11,"w":8,"n":0},{"p":"live/midi/nova/wave/horizons.tidal","t":"horizons","v":0,"a":"midi/nova","s":"wave","b":14,"w":10,"n":0},{"p":"live/midi/nova/zelda.tidal","t":"zelda","v":2,"a":"midi/nova","s":"","b":12,"w":8,"n":0},{"p":"live/midi/toyota.tidal","t":"toyota","v":0,"a":"midi","s":"","b":7,"w":5,"n":0},{"p":"live/midi/zelda/mashup.tidal","t":"mashup","v":0,"a":"midi","s":"zelda","b":3,"w":1,"n":0},{"p":"live/mood/energy/waiting.tidal","t":"waiting","v":0,"a":"mood","s":"energy","b":9,"w":5,"n":0},{"p":"live/mood/fight/clav_clash.tidal","t":"clav_clash","v":0,"a":"mood","s":"fight","b":6,"w":3,"n":0},{"p":"live/mood/fight/grimpe.tidal","t":"grimpe","v":0,"a":"mood","s":"fight","b":9,"w":4,"n":0},{"p":"live/mood/fight/sage.tidal","t":"sage","v":0,"a":"mood","s":"fight","b":6,"w":5,"n":0},{"p":"live/mood/sad/bass_vibes.tidal","t":"bass_vibes","v":2,"a":"mood","s":"sad","b":10,"w":9,"n":0},{"p":"live/mood/sad/infiltrations.tidal","t":"infiltrations","v":0,"a":"mood","s":"sad","b":8,"w":7,"n":0},{"p":"live/mood/soothing/breathe.tidal","t":"breathe","v":0,"a":"mood","s":"soothing","b":7,"w":6,"n":0},{"p":"live/mood/soothing/tea_time.tidal","t":"tea_time","v":0,"a":"mood","s":"soothing","b":9,"w":6,"n":0},{"p":"live/mood/soothing/tone_down.tidal","t":"tone_down","v":0,"a":"mood","s":"soothing","b":7,"w":5,"n":0},{"p":"live/mood/tired/afternoon.tidal","t":"afternoon","v":0,"a":"mood","s":"tired","b":7,"w":3,"n":0},{"p":"live/noise/decentering.tidal","t":"decentering","v":0,"a":"noise","s":"","b":6,"w":1,"n":0},{"p":"live/noise/omondi_no_more.tidal","t":"omondi_no_more","v":0,"a":"noise","s":"","b":6,"w":3,"n":0},{"p":"live/noise/vie_hivernale.tidal","t":"vie_hivernale","v":0,"a":"noise","s":"","b":7,"w":4,"n":0},{"p":"live/nuit.tidal","t":"nuit","v":0,"a":"root","s":"","b":7,"w":3,"n":0},{"p":"live/offbeat.tidal","t":"offbeat","v":0,"a":"root","s":"","b":6,"w":3,"n":0},{"p":"live/pair/be_my_punk.tidal","t":"be_my_punk","v":0,"a":"pair","s":"","b":11,"w":7,"n":0},{"p":"live/pair/technopunk.tidal","t":"technopunk","v":0,"a":"pair","s":"","b":4,"w":3,"n":0},{"p":"live/pianotrap.tidal","t":"pianotrap","v":2,"a":"root","s":"","b":5,"w":3,"n":0},{"p":"live/psc/bbq.tidal","t":"bbq","v":0,"a":"psc","s":"","b":8,"w":7,"n":0},{"p":"live/remix/day_trippin.tidal","t":"day_trippin","v":0,"a":"remix","s":"","b":8,"w":5,"n":0},{"p":"live/remix/kanye_fly.tidal","t":"kanye_fly","v":2,"a":"remix","s":"","b":12,"w":8,"n":0},{"p":"live/remix/stup.tidal","t":"stup","v":0,"a":"remix","s":"","b":10,"w":6,"n":0},{"p":"live/scratch.tidal","t":"scratch","v":0,"a":"root","s":"","b":2,"w":1,"n":0},{"p":"live/seb.tidal","t":"seb","v":0,"a":"root","s":"","b":6,"w":4,"n":0},{"p":"live/snake.tidal","t":"snake","v":2,"a":"root","s":"","b":4,"w":1,"n":0},{"p":"live/techno/4stems/_template.tidal","t":"_template","v":1,"a":"techno","s":"4stems","b":0,"w":0,"n":0},{"p":"live/techno/4stems/detroit_outer_space.tidal","t":"detroit_outer_space","v":0,"a":"techno","s":"4stems","b":10,"w":8,"n":0},{"p":"live/techno/4stems/la_vibe.tidal","t":"la_vibe","v":0,"a":"techno","s":"4stems","b":5,"w":4,"n":0},{"p":"live/techno/80s.tidal","t":"80s","v":0,"a":"techno","s":"","b":6,"w":4,"n":0},{"p":"live/techno/accel.tidal","t":"accel","v":0,"a":"techno","s":"","b":11,"w":8,"n":0},{"p":"live/techno/acid_80s.tidal","t":"acid_80s","v":0,"a":"techno","s":"","b":6,"w":1,"n":0},{"p":"live/techno/bailar.tidal","t":"bailar","v":0,"a":"techno","s":"","b":6,"w":3,"n":0},{"p":"live/techno/balais.tidal","t":"balais","v":0,"a":"techno","s":"","b":8,"w":4,"n":0},{"p":"live/techno/blade-piano.tidal","t":"blade-piano","v":0,"a":"techno","s":"","b":4,"w":3,"n":0},{"p":"live/techno/blue_impro.tidal","t":"blue_impro","v":0,"a":"techno","s":"","b":4,"w":2,"n":0},{"p":"live/techno/break_me.tidal","t":"break_me","v":0,"a":"techno","s":"","b":8,"w":6,"n":0},{"p":"live/techno/breakbeat.tidal","t":"breakbeat","v":0,"a":"techno","s":"","b":4,"w":1,"n":0},{"p":"live/techno/bureau.tidal","t":"bureau","v":0,"a":"techno","s":"","b":7,"w":5,"n":0},{"p":"live/techno/ciel_etoile.tidal","t":"ciel_etoile","v":0,"a":"techno","s":"","b":7,"w":5,"n":0},{"p":"live/techno/code_voila.tidal","t":"code_voila","v":0,"a":"techno","s":"","b":6,"w":2,"n":0},{"p":"live/techno/delic_jazz.tidal","t":"delic_jazz","v":0,"a":"techno","s":"","b":7,"w":6,"n":0},{"p":"live/techno/do_it_right.tidal","t":"do_it_right","v":0,"a":"techno","s":"","b":10,"w":9,"n":0},{"p":"live/techno/exutoire.tidal","t":"exutoire","v":0,"a":"techno","s":"","b":6,"w":4,"n":0},{"p":"live/techno/faya.tidal","t":"faya","v":0,"a":"techno","s":"","b":5,"w":4,"n":0},{"p":"live/techno/feeling_electric.tidal","t":"feeling_electric","v":2,"a":"techno","s":"","b":8,"w":5,"n":0},{"p":"live/techno/fine.tidal","t":"fine","v":0,"a":"techno","s":"","b":6,"w":3,"n":0},{"p":"live/techno/friday_tired.tidal","t":"friday_tired","v":0,"a":"techno","s":"","b":7,"w":4,"n":0},{"p":"live/techno/funk/FFF/Noise.tidal","t":"Noise","v":2,"a":"techno","s":"funk","b":6,"w":2,"n":0},{"p":"live/techno/funk/FFF/funk_n_bass.tidal","t":"funk_n_bass","v":0,"a":"techno","s":"funk","b":10,"w":5,"n":0},{"p":"live/techno/funk/FFF/grace.tidal","t":"grace","v":0,"a":"techno","s":"funk","b":8,"w":6,"n":0},{"p":"live/techno/funk/FFF/mad_fonk.tidal","t":"mad_fonk","v":0,"a":"techno","s":"funk","b":9,"w":7,"n":0},{"p":"live/techno/funk/FFF/pray.tidal","t":"pray","v":0,"a":"techno","s":"funk","b":7,"w":3,"n":0},{"p":"live/techno/funk/ant.tidal","t":"ant","v":0,"a":"techno","s":"funk","b":14,"w":9,"n":0},{"p":"live/techno/funk/bbass.tidal","t":"bbass","v":0,"a":"techno","s":"funk","b":9,"w":7,"n":0},{"p":"live/techno/funk/bogfunk.tidal","t":"bogfunk","v":0,"a":"techno","s":"funk","b":8,"w":7,"n":0},{"p":"live/techno/funk/electric.tidal","t":"electric","v":0,"a":"techno","s":"funk","b":10,"w":7,"n":0},{"p":"live/techno/funk/layered_breaks.tidal","t":"layered_breaks","v":0,"a":"techno","s":"funk","b":10,"w":7,"n":0},{"p":"live/techno/funk/minimal.tidal","t":"minimal","v":1,"a":"techno","s":"funk","b":11,"w":7,"n":0},{"p":"live/techno/funk/nass_night.tidal","t":"nass_night","v":2,"a":"techno","s":"funk","b":9,"w":6,"n":0},{"p":"live/techno/funk/naufrage.tidal","t":"naufrage","v":0,"a":"techno","s":"funk","b":10,"w":6,"n":0},{"p":"live/techno/funk/pure.tidal","t":"pure","v":0,"a":"techno","s":"funk","b":12,"w":8,"n":0},{"p":"live/techno/funk/work.tidal","t":"work","v":0,"a":"techno","s":"funk","b":5,"w":4,"n":0},{"p":"live/techno/german_wings.tidal","t":"german_wings","v":0,"a":"techno","s":"","b":10,"w":5,"n":0},{"p":"live/techno/jump.tidal","t":"jump","v":0,"a":"techno","s":"","b":5,"w":3,"n":0},{"p":"live/techno/kart.tidal","t":"kart","v":2,"a":"techno","s":"","b":6,"w":4,"n":0},{"p":"live/techno/kumai_nights.tidal","t":"kumai_nights","v":0,"a":"techno","s":"","b":5,"w":2,"n":0},{"p":"live/techno/laser_roll.tidal","t":"laser_roll","v":0,"a":"techno","s":"","b":5,"w":4,"n":0},{"p":"live/techno/late_train.tidal","t":"late_train","v":0,"a":"techno","s":"","b":6,"w":4,"n":0},{"p":"live/techno/major_nostalgia.tidal","t":"major_nostalgia","v":0,"a":"techno","s":"","b":4,"w":3,"n":0},{"p":"live/techno/more_like_us.tidal","t":"more_like_us","v":0,"a":"techno","s":"","b":13,"w":11,"n":0},{"p":"live/techno/multibass.tidal","t":"multibass","v":0,"a":"techno","s":"","b":4,"w":3,"n":0},{"p":"live/techno/nightly_repair.tidal","t":"nightly_repair","v":2,"a":"techno","s":"","b":8,"w":6,"n":0},{"p":"live/techno/noir/barriere_bleue.tidal","t":"barriere_bleue","v":0,"a":"techno","s":"noir","b":8,"w":6,"n":0},{"p":"live/techno/noir/burn_this_book.tidal","t":"burn_this_book","v":0,"a":"techno","s":"noir","b":8,"w":6,"n":0},{"p":"live/techno/noir/lavabo_noir.tidal","t":"lavabo_noir","v":0,"a":"techno","s":"noir","b":7,"w":6,"n":0},{"p":"live/techno/persistent_moog.tidal","t":"persistent_moog","v":0,"a":"techno","s":"","b":4,"w":3,"n":0},{"p":"live/techno/phazer.tidal","t":"phazer","v":0,"a":"techno","s":"","b":7,"w":3,"n":0},{"p":"live/techno/piano_forte.tidal","t":"piano_forte","v":0,"a":"techno","s":"","b":4,"w":3,"n":0},{"p":"live/techno/piano_intro.tidal","t":"piano_intro","v":1,"a":"techno","s":"","b":3,"w":1,"n":0},{"p":"live/techno/progressive_tuesday.tidal","t":"progressive_tuesday","v":2,"a":"techno","s":"","b":5,"w":4,"n":0},{"p":"live/techno/remember.tidal","t":"remember","v":0,"a":"techno","s":"","b":9,"w":5,"n":0},{"p":"live/techno/samedi_interdit.tidal","t":"samedi_interdit","v":0,"a":"techno","s":"","b":10,"w":8,"n":0},{"p":"live/techno/saturday4.tidal","t":"saturday4","v":0,"a":"techno","s":"","b":6,"w":5,"n":0},{"p":"live/techno/soleil_neige.tidal","t":"soleil_neige","v":0,"a":"techno","s":"","b":3,"w":2,"n":0},{"p":"live/techno/vague_de_crime.tidal","t":"vague_de_crime","v":0,"a":"techno","s":"","b":10,"w":9,"n":0},{"p":"live/techno/vertige_experienciel.tidal","t":"vertige_experienciel","v":0,"a":"techno","s":"","b":5,"w":4,"n":0},{"p":"live/techno/violent_violin.tidal","t":"violent_violin","v":0,"a":"techno","s":"","b":5,"w":4,"n":0},{"p":"live/techno/virus.tidal","t":"virus","v":2,"a":"techno","s":"","b":6,"w":5,"n":0},{"p":"live/transe/barrels.tidal","t":"barrels","v":0,"a":"transe","s":"","b":4,"w":2,"n":0},{"p":"live/transe/cosmos.tidal","t":"cosmos","v":0,"a":"transe","s":"","b":12,"w":7,"n":0},{"p":"live/transe/doo.tidal","t":"doo","v":0,"a":"transe","s":"","b":6,"w":3,"n":0},{"p":"live/transe/soleil.tidal","t":"soleil","v":0,"a":"transe","s":"","b":0,"w":0,"n":0},{"p":"live/work/contre.tidal","t":"contre","v":0,"a":"work","s":"","b":4,"w":3,"n":0},{"p":"live/work/wake_the_funk.tidal","t":"wake_the_funk","v":0,"a":"work","s":"","b":8,"w":6,"n":0}]};
...@@ -24,25 +24,45 @@ ...@@ -24,25 +24,45 @@
@media(min-width:1000px){.cols{grid-template-columns:1fr 1fr}} @media(min-width:1000px){.cols{grid-template-columns:1fr 1fr}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px} .panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
/* ── filters ── */
.filters{margin-bottom:12px}
input[type=search]{width:100%;min-height:42px;background:#fffdf7;color:var(--ink);
border:1px solid var(--line);border-radius:8px;font-family:var(--mono);
font-size:.95rem;padding:0 12px}
input[type=search]::placeholder{color:#a8977f}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{font-family:var(--mono);font-size:.74rem;color:var(--dim);background:#efe8d8;
border:1px solid var(--line);border-radius:99px;padding:3px 10px;cursor:pointer;
user-select:none}
.chip:hover{background:#e4d8c2}
.chip.on{background:#f0dcc9;border-color:var(--accent);color:var(--accent);font-weight:700}
.toggles{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:10px;
font-size:.8rem;color:var(--dim);font-family:var(--mono)}
.toggles label{display:flex;align-items:center;gap:6px;cursor:pointer}
.toggles input{width:16px;height:16px;accent-color:var(--accent)}
.stat{font-family:var(--mono);font-size:.78rem;color:var(--dim);margin-top:8px}
.scroll{max-height:70vh;overflow-y:auto;padding-right:4px}
.card{background:var(--panel2);border:1px solid var(--line);border-left:3px solid transparent; .card{background:var(--panel2);border:1px solid var(--line);border-left:3px solid transparent;
border-radius:8px;padding:12px 14px;margin-bottom:10px;cursor:pointer; border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;
min-height:56px;transition:border-color .12s,background .12s} transition:border-color .12s,background .12s}
.card:hover{border-color:#c9b89c} .card:hover{border-color:#c9b89c}
.card.on{border-left-color:var(--accent);background:#f5e7d6} .card.on{border-left-color:var(--accent);background:#f5e7d6}
.card .top{display:flex;align-items:center;gap:10px;flex-wrap:wrap} .card .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.name{font-family:var(--mono);font-size:1rem;font-weight:600} .name{font-family:var(--mono);font-size:.95rem;font-weight:600}
.genre{font-size:.72rem;color:var(--dim);border:1px solid var(--line); .genre{font-size:.7rem;color:var(--dim);border:1px solid var(--line);
border-radius:99px;padding:1px 8px} border-radius:99px;padding:1px 8px;font-family:var(--mono)}
.pill{font-size:.68rem;font-weight:700;letter-spacing:.08em;border-radius:99px; .pill{font-size:.66rem;font-weight:700;letter-spacing:.06em;border-radius:99px;
padding:2px 9px;text-transform:uppercase} padding:2px 8px;text-transform:uppercase;font-family:var(--mono)}
.pill.ok{background:rgba(79,122,79,.16);color:var(--ok)} .pill.ok{background:rgba(79,122,79,.16);color:var(--ok)}
.pill.warn{background:rgba(160,106,20,.16);color:var(--warn)} .pill.warn{background:rgba(160,106,20,.16);color:var(--warn)}
.pill.played{background:rgba(181,83,58,.14);color:var(--accent)} .pill.played{background:rgba(181,83,58,.14);color:var(--accent)}
.note{color:#5a4a3c;font-size:.85rem;margin-top:6px} .pill.cold{background:rgba(138,122,104,.14);color:#6f6152}
.note{color:#5a4a3c;font-size:.82rem;margin-top:5px}
.card.warnrow .note{color:#8a5a14} .card.warnrow .note{color:#8a5a14}
.path{font-family:var(--mono);font-size:.74rem;color:var(--dim);margin-top:6px; .path{font-family:var(--mono);font-size:.72rem;color:var(--dim);margin-top:5px;
word-break:break-all} word-break:break-all}
.added{float:right;font-size:.7rem;color:var(--accent);font-family:var(--mono)} .added{margin-left:auto;font-size:.68rem;color:var(--accent);font-family:var(--mono)}
.row{display:flex;align-items:center;gap:8px;background:var(--panel2); .row{display:flex;align-items:center;gap:8px;background:var(--panel2);
border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px} border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px}
...@@ -77,17 +97,33 @@ ...@@ -77,17 +97,33 @@
white-space:pre;margin:12px 0 0;min-height:2em} white-space:pre;margin:12px 0 0;min-height:2em}
.empty{color:var(--dim);font-family:var(--mono);font-size:.85rem;padding:8px 0} .empty{color:var(--dim);font-family:var(--mono);font-size:.85rem;padding:8px 0}
.flash{font-family:var(--mono);font-size:.8rem;color:var(--ok);margin-left:4px} .flash{font-family:var(--mono);font-size:.8rem;color:var(--ok);margin-left:4px}
.legend{font-family:var(--mono);font-size:.74rem;color:var(--dim);margin-top:12px;
padding-top:10px;border-top:1px solid var(--line);line-height:1.6}
</style> </style>
</head> </head>
<body> <body>
<h1>SET BUILDER</h1> <h1>SET BUILDER</h1>
<div class="sub">Thu 2026-09-24 &middot; target 120 min &middot; tap a track to add / remove</div> <div class="sub" id="head">Thu 2026-09-24 &middot; target 120 min &middot; tap a track to add / remove</div>
<div class="cols"> <div class="cols">
<section class="panel"> <section class="panel">
<h2>Candidates <span id="libcount" class="mins-u"></span></h2> <h2>Catalog <span id="libcount" class="mins-u"></span></h2>
<div id="lib"></div>
<div class="filters">
<input type="search" id="q" placeholder="filter — name, folder or path" autocomplete="off">
<div class="chips" id="chips"></div>
<div class="toggles">
<label><input type="checkbox" id="warnon"> include silent-orbit <span id="nwarn"></span></label>
<label><input type="checkbox" id="handson"> played on this rig only</label>
<label><input type="checkbox" id="warmon"> fully warm only</label>
</div>
<div class="stat" id="stat"></div>
</div>
<div class="scroll" id="lib"></div>
<div class="legend" id="legend"></div>
</section> </section>
<section class="panel"> <section class="panel">
...@@ -109,50 +145,53 @@ ...@@ -109,50 +145,53 @@
</section> </section>
</div> </div>
<script src="setbuilder-data.js"></script>
<script> <script>
"use strict"; "use strict";
var TARGET = 120; var TARGET = 120;
var CAP = 160; /* cards rendered at once — the filter is the navigation */
var TRACKS = [
{id:"sept1", path:"live/collab/baba/sept1.tidal", status:"OK", genre:"", var CAT = (window.PV_CATALOG || {tracks:[], counts:{}, generated:"?"});
note:"d1 d4 d5 d11 need the #55 boot seed"},
{id:"jeudrill", path:"live/collab/raph/jeudrill.tidal", status:"OK", genre:"", /* Hand-written orbit notes from the validation passes. Keyed by PATH, because
note:"d3 d4 d7 need seed"}, stems collide across folders (major_nostalgia, back_baby, the four FFF
{id:"piment_bresilien", path:"live/collab/raph/piment_bresilien.tidal", status:"OK", genre:"", tracks…) and a stem key silently merges two different tracks into one. */
note:"d3 d4 d5 d7 d9 need seed"}, var NOTES = {
{id:"you_my_sunshine", path:"live/midi/nova/dnb/liquid/you_my_sunshine.tidal", status:"OK", "live/collab/baba/sept1.tidal": "d1 d4 d5 d11 need the #55 boot seed",
genre:"dnb/liquid", note:"d4 needs seed"}, "live/collab/raph/jeudrill.tidal": "d3 d4 d7 need seed",
{id:"techno_orage", path:"live/midi/nova/techno/techno_orage.tidal", status:"WARN", "live/collab/raph/piment_bresilien.tidal": "d3 d4 d5 d7 d9 need seed",
genre:"techno", note:"d2 (line 158) emits NOTHING even with seed — real silence, fix or cut"}, "live/midi/nova/dnb/liquid/you_my_sunshine.tidal": "d4 needs seed",
{id:"siberie_samuel", path:"live/collab/siberie_samuel.tidal", status:"OK", genre:"", "live/midi/nova/techno/techno_orage.tidal":
note:"cleanest: every orbit emits with no seed"}, "d2 (line 158) emits NOTHING even with seed — real silence, fix or cut",
{id:"cyber_hump", path:"live/midi/nova/techno/cyber_hump.tidal", status:"OK", genre:"techno", "live/collab/siberie_samuel.tidal": "cleanest: every orbit emits with no seed",
note:"was dead (vi typo), FIXED 2026-09-22; bank 'humps' NOT in preload — lazy-loads"}, "live/midi/nova/techno/cyber_hump.tidal":
{id:"cafe_glace", path:"live/midi/nova/nujazz/cafe_glace.tidal", status:"OK", genre:"nujazz", "was dead (vi typo), fixed 2026-09-22; bank 'humps' lazy-loads",
note:"d4 d5 need seed"}, "live/midi/nova/nujazz/cafe_glace.tidal": "d4 d5 need seed",
{id:"ete_a_mauerpark", path:"live/midi/nova/techno/ete_a_mauerpark.tidal", status:"OK", "live/midi/nova/techno/ete_a_mauerpark.tidal": "d1-d5 d7-d9 need seed",
genre:"techno", note:"d1-d5 d7-d9 need seed; bank 'bass2' NOT in preload — lazy-loads"}, "live/midi/nova/nujazz/rose_rouge.tidal": "d4 d10 d11 d12 need the #55 seed",
"live/midi/nova/lounge/sunny_side_up.tidal": "d4 d7 need seed",
/* Play-history tracks: what PLN's hands actually reached for in the last 5 days "live/midi/nova/ambient/quand_on_decolle.tidal": "d4 d5 need seed",
(lcxl3-driver journal). Validated 2026-09-22 with tools/silent-eval.py, cold "live/midi/nova/dnb/something_about_drums.tidal": "d4 d5 need seed",
and with the #55 boot seed; all 28 sample banks resolve on disk and all 28 are "live/midi/nova/techno/bombe_dj.tidal": "d3 d4 d5 d9 need seed"
already inside the 124-bank preload plan. */ };
{id:"rose_rouge", path:"live/midi/nova/nujazz/rose_rouge.tidal", status:"OK",
genre:"nujazz", played:true, /* Catalog rows, path-keyed. v: 0 playable, 1 silent-orbit, 2 compile-fail. */
note:"played 2x in the last 5 days; d4 d10 d11 d12 need the #55 seed"}, var TRACKS = CAT.tracks.filter(function(t){ return t.v !== 2; });
{id:"sunny_side_up", path:"live/midi/nova/lounge/sunny_side_up.tidal", status:"OK",
genre:"lounge", played:true, note:"d4 d7 need seed"},
{id:"quand_on_decolle", path:"live/midi/nova/ambient/quand_on_decolle.tidal", status:"OK",
genre:"ambient", played:true, note:"d4 d5 need seed"},
{id:"something_about_drums", path:"live/midi/nova/dnb/something_about_drums.tidal",
status:"OK", genre:"dnb", played:true, note:"d4 d5 need seed"},
{id:"bombe_dj", path:"live/midi/nova/techno/bombe_dj.tidal", status:"OK",
genre:"techno", played:true, note:"d3 d4 d5 d9 need seed"}
];
var BY_ID = {}; var BY_ID = {};
TRACKS.forEach(function(t){ BY_ID[t.id] = t; }); TRACKS.forEach(function(t){ BY_ID[t.p] = t; });
/* stem -> path, only for stems that are unambiguous. Used once, to carry a set
picked before the page was path-keyed. */
var BY_STEM = (function(){
var seen = {}, out = {};
TRACKS.forEach(function(t){
seen[t.t] = (seen[t.t] || 0) + 1;
out[t.t] = t.p;
});
Object.keys(seen).forEach(function(k){ if(seen[k] > 1) delete out[k]; });
return out;
})();
var KEY = "pv.setbuilder.thu24"; var KEY = "pv.setbuilder.thu24";
var set = load(); var set = load();
...@@ -163,8 +202,12 @@ function load(){ ...@@ -163,8 +202,12 @@ function load(){
if(!raw) return []; if(!raw) return [];
var v = JSON.parse(raw); var v = JSON.parse(raw);
if(!Array.isArray(v)) return []; if(!Array.isArray(v)) return [];
return v.filter(function(e){ return e && BY_ID[e.id]; }) return v.map(function(e){
.map(function(e){ return {id:e.id, mins: clampMins(e.mins)}; }); if(!e || !e.id) return null;
/* pre-path ids were bare stems */
var id = BY_ID[e.id] ? e.id : BY_STEM[e.id];
return id ? {id:id, mins:clampMins(e.mins)} : null;
}).filter(Boolean);
} catch(e){ return []; } } catch(e){ return []; }
} }
function save(){ function save(){
...@@ -186,31 +229,73 @@ function el(tag, cls, text){ ...@@ -186,31 +229,73 @@ function el(tag, cls, text){
return n; return n;
} }
/* ── filter state ──────────────────────────────────────────────────────── */
var filt = {q:"", area:"", warn:false, hands:false, warm:false};
function matches(t){
if(t.v === 1 && !filt.warn) return false;
if(filt.area && t.a !== filt.area) return false;
if(filt.hands && !t.n) return false;
if(filt.warm && !(t.b > 0 && t.w === t.b)) return false;
if(filt.q && t.p.toLowerCase().indexOf(filt.q) < 0) return false;
return true;
}
function renderChips(){
var box = document.getElementById("chips");
box.textContent = "";
/* Counts follow the silent-orbit toggle, so a chip never promises more
tracks than the list below it will show. */
var pool = TRACKS.filter(function(t){ return t.v === 0 || filt.warn; });
var counts = {};
pool.forEach(function(t){ counts[t.a] = (counts[t.a] || 0) + 1; });
var areas = Object.keys(counts).sort(function(a,b){ return counts[b] - counts[a]; });
function chip(label, area){
var c = el("span", "chip" + (filt.area === area ? " on" : ""), label);
c.addEventListener("click", function(){
filt.area = (filt.area === area ? "" : area);
renderChips(); renderLib();
});
box.appendChild(c);
}
chip("all " + pool.length, "");
areas.forEach(function(a){ chip(a + " " + counts[a], a); });
}
/* ── library ───────────────────────────────────────────────────────────── */ /* ── library ───────────────────────────────────────────────────────────── */
function renderLib(){ function renderLib(){
var box = document.getElementById("lib"); var box = document.getElementById("lib");
box.textContent = ""; box.textContent = "";
TRACKS.forEach(function(t){
var i = indexOf(t.id); var hits = TRACKS.filter(matches);
var card = el("div", "card" + (i >= 0 ? " on" : "") + var shown = hits.slice(0, CAP);
(t.status === "WARN" ? " warnrow" : ""));
shown.forEach(function(t){
var i = indexOf(t.p);
var warn = (t.v === 1);
var card = el("div", "card" + (i >= 0 ? " on" : "") + (warn ? " warnrow" : ""));
card.setAttribute("role", "button"); card.setAttribute("role", "button");
card.tabIndex = 0; card.tabIndex = 0;
var top = el("div", "top"); var top = el("div", "top");
top.appendChild(el("span", "name", t.id)); top.appendChild(el("span", "name", t.t));
if(t.genre) top.appendChild(el("span", "genre", t.genre)); top.appendChild(el("span", "genre", t.a + (t.s ? "/" + t.s : "")));
top.appendChild(el("span", "pill " + (t.status === "WARN" ? "warn" : "ok"), t.status)); top.appendChild(el("span", "pill " + (warn ? "warn" : "ok"),
if(t.played) top.appendChild(el("span", "pill played", "played recently")); warn ? "silent orbit" : "plays"));
if(t.n) top.appendChild(el("span", "pill played", "played ×" + t.n));
if(t.b > 0 && t.w < t.b){
top.appendChild(el("span", "pill cold", (t.b - t.w) + " cold of " + t.b));
}
if(i >= 0) top.appendChild(el("span", "added", "in set #" + (i+1) + " — tap to remove")); if(i >= 0) top.appendChild(el("span", "added", "in set #" + (i+1) + " — tap to remove"));
card.appendChild(top); card.appendChild(top);
card.appendChild(el("div", "note", t.note)); if(NOTES[t.p]) card.appendChild(el("div", "note", NOTES[t.p]));
card.appendChild(el("div", "path", t.path)); card.appendChild(el("div", "path", t.p));
function toggle(){ function toggle(){
var j = indexOf(t.id); var j = indexOf(t.p);
if(j >= 0) set.splice(j, 1); if(j >= 0) set.splice(j, 1);
else set.push({id:t.id, mins:12}); else set.push({id:t.p, mins:12});
commit(); commit();
} }
card.addEventListener("click", toggle); card.addEventListener("click", toggle);
...@@ -219,7 +304,17 @@ function renderLib(){ ...@@ -219,7 +304,17 @@ function renderLib(){
}); });
box.appendChild(card); box.appendChild(card);
}); });
document.getElementById("libcount").textContent = set.length + "/" + TRACKS.length + " picked";
if(!hits.length){
box.appendChild(el("div", "empty", "nothing matches — clear the filter"));
}
var stat = hits.length + " match" + (hits.length === 1 ? "" : "es");
if(hits.length > shown.length){
stat += " · showing the first " + shown.length + ", narrow the filter to see the rest";
}
document.getElementById("stat").textContent = stat;
document.getElementById("libcount").textContent = set.length + " picked";
} }
/* ── the set ───────────────────────────────────────────────────────────── */ /* ── the set ───────────────────────────────────────────────────────────── */
...@@ -227,17 +322,18 @@ function renderSet(){ ...@@ -227,17 +322,18 @@ function renderSet(){
var box = document.getElementById("set"); var box = document.getElementById("set");
box.textContent = ""; box.textContent = "";
if(!set.length){ if(!set.length){
box.appendChild(el("div", "empty", "nothing picked yet — tap a candidate")); box.appendChild(el("div", "empty", "nothing picked yet — tap a track"));
} }
set.forEach(function(e, i){ set.forEach(function(e, i){
var t = BY_ID[e.id]; var t = BY_ID[e.id];
var row = el("div", "row" + (t.status === "WARN" ? " warnrow" : "")); var warn = (t.v === 1);
var row = el("div", "row" + (warn ? " warnrow" : ""));
row.appendChild(el("span", "idx", (i+1) + ".")); row.appendChild(el("span", "idx", (i+1) + "."));
row.appendChild(el("span", "rname", t.id + (t.status === "WARN" ? " ⚠" : ""))); row.appendChild(el("span", "rname", t.t + (warn ? " ⚠" : "")));
var inp = document.createElement("input"); var inp = document.createElement("input");
inp.type = "number"; inp.min = "0"; inp.step = "1"; inp.value = e.mins; inp.type = "number"; inp.min = "0"; inp.step = "1"; inp.value = e.mins;
inp.setAttribute("aria-label", "minutes for " + t.id); inp.setAttribute("aria-label", "minutes for " + t.t);
inp.addEventListener("change", function(){ inp.addEventListener("change", function(){
e.mins = clampMins(inp.value); inp.value = e.mins; commit(); e.mins = clampMins(inp.value); inp.value = e.mins; commit();
}); });
...@@ -290,11 +386,10 @@ function renderTotal(){ ...@@ -290,11 +386,10 @@ function renderTotal(){
/* ── output text ───────────────────────────────────────────────────────── */ /* ── output text ───────────────────────────────────────────────────────── */
function setText(){ function setText(){
return set.map(function(e){ return BY_ID[e.id].path; }).join("\n"); return set.map(function(e){ return e.id; }).join("\n");
} }
function renderOut(){ function renderOut(){
var txt = setText(); document.getElementById("out").textContent = setText() || "(empty)";
document.getElementById("out").textContent = txt || "(empty)";
} }
function flash(msg, bad){ function flash(msg, bad){
...@@ -340,6 +435,48 @@ document.getElementById("clear").addEventListener("click", function(){ ...@@ -340,6 +435,48 @@ document.getElementById("clear").addEventListener("click", function(){
commit(); commit();
}); });
/* ── wiring ────────────────────────────────────────────────────────────── */
document.getElementById("q").addEventListener("input", function(){
filt.q = this.value.trim().toLowerCase();
renderLib();
});
document.getElementById("warnon").addEventListener("change", function(){
/* the area chips carry counts, so they have to follow this toggle too */
filt.warn = this.checked; renderChips(); renderLib();
});
document.getElementById("handson").addEventListener("change", function(){
filt.hands = this.checked; renderLib();
});
document.getElementById("warmon").addEventListener("change", function(){
filt.warm = this.checked; renderLib();
});
(function header(){
var c = CAT.counts || {};
document.getElementById("nwarn").textContent = "(" + (c.SILENT_ORBIT || 0) + ")";
document.getElementById("head").textContent =
"Thu 2026-09-24 · target 120 min · " + (c.PLAYABLE || 0) + " of " +
((c.PLAYABLE || 0) + (c.SILENT_ORBIT || 0) + (c.COMPILE_FAIL || 0)) +
" tracks compile and emit · tap to add / remove";
document.getElementById("legend").innerHTML = "";
[
"plays — compiles and every declared orbit emits with the #55 boot seed. " +
"Pattern-level: it does not prove the sound is audible.",
"silent orbit — builds, but an orbit emits nothing even seeded. A real fault: " +
(c.SILENT_ORBIT || 0) + " of them, hidden until you tick the box.",
"played ×N — times the lcxl3 driver logged loading it. Journal retention is " +
"short, so this is the recent window (" + (CAT.journal_window_tracks || 0) +
" tracks), not all time.",
"N cold of M — sample banks the preload plan does not warm. Not a fault: they " +
"lazy-load on first hit.",
(c.COMPILE_FAIL || 0) + " tracks that do not compile are not listed at all.",
"measured " + (CAT.generated || "?") + " from " + (CAT.source || "?")
].forEach(function(line){
document.getElementById("legend").appendChild(el("div", "", "· " + line));
});
})();
renderChips();
commit(); commit();
</script> </script>
</body> </body>
......
# THU 24 — 2026-09-24, the set in performance order. # THU 24 — 2026-09-24, the candidate set in performance order (NOT locked).
# #
# Hand-authored 2026-09-22 from PLN's Set Builder export (2h, 10 tracks, # Hand-authored 2026-09-22 from PLN's Set Builder export (2h, 10 tracks,
# 120/120 min). NOT generated: there is no "## THU 24" section in backlog.md, # 120/120 min). NOT generated: there is no "## THU 24" section in backlog.md,
......
PLAYABLE live/amazonbeat.tidal
PLAYABLE live/ambient/before.tidal
PLAYABLE live/ambient/batavia_la_tortue.tidal
PLAYABLE live/ambient/brise_les_chaines.tidal
PLAYABLE live/ambient/cascade.tidal
PLAYABLE live/ambient/citarpurh.tidal
PLAYABLE live/ambient/crutches.tidal
PLAYABLE live/ambient/eroll_roll.tidal
COMPILE_FAIL live/ambient/new_machine.tidal
PLAYABLE live/ambient/radio_paradis.tidal
PLAYABLE live/ambient/inquiry.tidal
PLAYABLE live/ambient/fm_radio.tidal
PLAYABLE live/ambient/scintillance_bleue.tidal
COMPILE_FAIL live/ambient/weird.tidal
COMPILE_FAIL live/anar.tidal
PLAYABLE live/autotune.tidal
PLAYABLE live/ambient/tokyo_chase.tidal
PLAYABLE live/ambient/wild_coffee.tidal
PLAYABLE live/bodgan2.tidal
PLAYABLE live/bdmania.tidal
COMPILE_FAIL live/boeuf/algorythm/fdlm2022/intro_parvagues.tidal
PLAYABLE live/boeuf/algo25.tidal
PLAYABLE live/boeuf/algorythm/fdlm2022/jolene.tidal
PLAYABLE live/boeuf/algorythm/fdlm2022/lady.tidal
PLAYABLE live/boeuf/algorythm/fdlm2022/sweet_dreams.tidal
COMPILE_FAIL live/boeuf/algorythm/first_jam.tidal
PLAYABLE live/boeuf/algorythm/fdlm2022/what_you_wont_do_for_love.tidal
PLAYABLE live/boeuf/algorythm/fdlm2022/toxic.tidal
PLAYABLE live/boeuf/algorythm/fix_you.tidal
PLAYABLE live/boeuf/algorythm/fly_me_to_the_moon.tidal
PLAYABLE live/boeuf/algorythm/lonely_day.tidal
PLAYABLE live/boeuf/algorythm/love23/killing_me_softer.tidal
PLAYABLE live/boeuf/algorythm/love23/shallow.tidal
PLAYABLE live/boeuf/algorythm/love23/cant_help_falling_in_love.tidal
SILENT_ORBIT live/boeuf/algorythm/love23/killing_me_softly.tidal
PLAYABLE live/boeuf/algorythm/love23/something_about_us.tidal
PLAYABLE live/boeuf/algorythm/love23/until_i_found_you.tidal
COMPILE_FAIL live/boeuf/algorythm/season2/blues_wednesday.tidal
PLAYABLE live/boeuf/algorythm/love23/u_remind_me.tidal
PLAYABLE live/boeuf/algorythm/season2/come_together.tidal
PLAYABLE live/boeuf/algorythm/something_bossa_nova.tidal
PLAYABLE live/boeuf/biarritz/20sept.tidal
PLAYABLE live/boeuf/bass_boeuf.tidal
PLAYABLE live/boeuf/biarritz/21nuit.tidal
SILENT_ORBIT live/boeuf/august.tidal
PLAYABLE live/boeuf/biarritz/blues_debranche.tidal
PLAYABLE live/boeuf/biarritz/blue_tuesday.tidal
PLAYABLE live/boeuf/biarritz/cloud.tidal
COMPILE_FAIL live/boeuf/canicule.tidal
COMPILE_FAIL live/boeuf/canard_breake.tidal
PLAYABLE live/boeuf/_clock.tidal
COMPILE_FAIL live/boeuf/dimanche_pizza.tidal
COMPILE_FAIL live/boeuf/fevrier.tidal
PLAYABLE live/boeuf/biarritz/morning_glory.tidal
PLAYABLE live/boeuf/lunar_light.tidal
PLAYABLE live/boeuf/may_cafe.tidal
PLAYABLE live/boeuf/nouvelle_poussiere.tidal
PLAYABLE live/boeuf/samedi_canard.tidal
PLAYABLE live/boeuf/samedi_chill.tidal
COMPILE_FAIL live/boeuf/samedi_confine_extra.tidal
PLAYABLE live/boeuf/premier_tour.tidal
PLAYABLE live/boeuf/valtho/dorian.tidal
PLAYABLE live/boeuf/stupefaction.tidal
PLAYABLE live/boeuf/valtho/cats.tidal
PLAYABLE live/bogbog.tidal
PLAYABLE live/boeuf/vendredi_saint.tidal
PLAYABLE live/boeuf/viteuf/blues.tidal
COMPILE_FAIL live/bogdan.tidal
PLAYABLE live/chill/atm/batteur.tidal
PLAYABLE live/briquets2.tidal
COMPILE_FAIL live/briquets.tidal
COMPILE_FAIL live/chill/atm/break_blue.tidal
PLAYABLE live/chill/atm/board.tidal
PLAYABLE live/chill/atm/nightly.tidal
PLAYABLE live/chill/bad_bad_guy.tidal
PLAYABLE live/chill/atm/workroll.tidal
SILENT_ORBIT live/chill/atm/hors_amsterdam.tidal
PLAYABLE live/chill/blue_mind.tidal
PLAYABLE live/chill/break/responsabilite.tidal
PLAYABLE live/chill/break_toys.tidal
PLAYABLE live/chill/birds.tidal
PLAYABLE live/chill/break/break_the_sunday.tidal
PLAYABLE live/chill/cloudy_afternoon.tidal
COMPILE_FAIL live/chill/dim_blue.tidal
PLAYABLE live/chill/dimanche_mineur.tidal
PLAYABLE live/chill/dub/80s.tidal
PLAYABLE live/chill/dub/mini_deconf.tidal
PLAYABLE live/chill/dub/dam.tidal
PLAYABLE live/chill/dub/rebond.tidal
PLAYABLE live/chill/dub/restez_chez_vous.tidal
PLAYABLE live/chill/dub/sunday.tidal
COMPILE_FAIL live/chill/epilog.tidal
PLAYABLE live/chill/dub/riddim_du_dim.tidal
COMPILE_FAIL live/chill/dub.tidal
PLAYABLE live/chill/major_nostalgia.tidal
PLAYABLE live/chill/neige.tidal
PLAYABLE live/chill/powder_asmr.tidal
PLAYABLE live/chill/mondam.tidal
PLAYABLE live/chill/ritusen.tidal
PLAYABLE live/chill.tidal
PLAYABLE live/chill/tete.tidal
PLAYABLE live/chill/timeless.tidal
PLAYABLE live/china.tidal
COMPILE_FAIL live/chip/game_on.tidal
PLAYABLE live/chip/ataright.tidal
PLAYABLE live/chip/cours_toujours.tidal
COMPILE_FAIL live/chip/nano_rain.tidal
PLAYABLE live/collab/baba/_inspi.tidal
PLAYABLE live/chip/step_silence.tidal
PLAYABLE live/clinique.tidal
PLAYABLE live/collab/baba/la_matrice.tidal
PLAYABLE live/collab/baba/larmes_salees.tidal
PLAYABLE live/collab/baba/moulins_de_mon_coeur.tidal
SILENT_ORBIT live/collab/baba/oparoles.tidal
PLAYABLE live/collab/baba/xp2.tidal
PLAYABLE live/collab/baba/xp1.tidal
PLAYABLE live/collab/baba/sept1.tidal
PLAYABLE live/collab/baba/xp3.tidal
PLAYABLE live/collab/benoit/tous_ensemble.tidal
PLAYABLE live/collab/bobylito/exquis1.tidal
PLAYABLE live/collab/bobylito/l_espace.tidal
PLAYABLE live/collab/cam/i_come_from_cyberspace.tidal
SILENT_ORBIT live/collab/bobylito/new_jam_nu_jazz.tidal
PLAYABLE live/collab/cam/guitar_first.tidal
PLAYABLE live/collab/ccc/ghosts_in_the_toilets.tidal
PLAYABLE live/collab/ccc/ccc0.tidal
PLAYABLE live/collab/clem/shiloh_tech.tidal
PLAYABLE live/collab/cookie/ccc.tidal
PLAYABLE live/collab/cookie/from_scratch_prep2.tidal
PLAYABLE live/collab/cookie/from_scratch_prep.tidal
COMPILE_FAIL live/collab/cookie/maudite_soit_la_guerre.tidal
PLAYABLE live/collab/cookie/from_scratch.tidal
PLAYABLE live/collab/cricri/citar1.tidal
PLAYABLE live/collab/daniel/auxiliaire.tidal
COMPILE_FAIL live/collab/igor/hello_studio.tidal
PLAYABLE live/collab/ituin/bass_night.tidal
PLAYABLE live/collab/ituin/wobble_research.tidal
PLAYABLE live/collab/etienne/concombre.tidal
PLAYABLE live/collab/hugo/faith_in_bass.tidal
PLAYABLE live/collab/jane/drifting_soul.tidal
PLAYABLE live/collab/jane/tired_soul.tidal
PLAYABLE live/collab/josh/oct_18_rainy_day.tidal
PLAYABLE live/collab/kevin/synchro.tidal
COMPILE_FAIL live/collab/louis/d_accord.tidal
PLAYABLE live/collab/louis/anarchie.tidal
PLAYABLE live/collab/l'ine*fable/premiere_fable.tidal
PLAYABLE live/collab/micka/bazurto_closed.tidal
PLAYABLE live/collab/mousquetaires/blue_burn.tidal
PLAYABLE live/collab/nass/bass_first.tidal
COMPILE_FAIL live/collab/mousquetaires/blue_gold.tidal
PLAYABLE live/collab/nass/love_first.tidal
PLAYABLE live/collab/nass/mains_libres.tidal
PLAYABLE live/collab/nass/sogood.tidal
PLAYABLE live/collab/nvzt/liquid_finale.tidal
PLAYABLE live/collab/quentin/pain_with_love.tidal
PLAYABLE live/collab/raph/8bit_delicat.tidal
PLAYABLE live/collab/raph/8_blues.tidal
PLAYABLE live/collab/raph/acab.tidal
PLAYABLE live/collab/raph/acidule.tidal
PLAYABLE live/collab/raph/ambiance.tidal
PLAYABLE live/collab/raph/bad_witch.tidal
PLAYABLE live/collab/raph/biscuit_acide.tidal
PLAYABLE live/collab/raph/chevalerie.tidal
PLAYABLE live/collab/raph/coffee_pot.tidal
PLAYABLE live/collab/raph/dernier_dimanche.tidal
PLAYABLE live/collab/raph/dernier_doute.tidal
PLAYABLE live/collab/raph/des_efforts.tidal
PLAYABLE live/collab/raph/drums_architect.tidal
PLAYABLE live/collab/raph/diable.tidal
PLAYABLE live/collab/raph/desire.tidal
PLAYABLE live/collab/raph/dub_a_trois.tidal
PLAYABLE live/collab/raph/esperluette.tidal
PLAYABLE live/collab/raph/el_diablo.tidal
PLAYABLE live/collab/raph/explo_rha_teur.tidal
PLAYABLE live/collab/raph/han.tidal
PLAYABLE live/collab/raph/hard_monday.tidal
PLAYABLE live/collab/raph/hardorage.tidal
PLAYABLE live/collab/raph/hello_tek.tidal
PLAYABLE live/collab/raph/jeudrill.tidal
PLAYABLE live/collab/raph/le_blues_du_mic.tidal
PLAYABLE live/collab/raph/long_way.tidal
PLAYABLE live/collab/raph/mafia_sans_serif.tidal
PLAYABLE live/collab/raph/meshuggah.tidal
SILENT_ORBIT live/collab/raph/nouveau_punk.tidal
PLAYABLE live/collab/raph/network_zero_un.tidal
COMPILE_FAIL live/collab/raph/partir.tidal
PLAYABLE live/collab/raph/oldskool_radius.tidal
PLAYABLE live/collab/raph/permanence.tidal
PLAYABLE live/collab/raph/piment_bresilien.tidal
PLAYABLE live/collab/raph/playa_fun.tidal
PLAYABLE live/collab/raph/punkachien.tidal
PLAYABLE live/collab/raph/quatre_magiques.tidal
PLAYABLE live/collab/raph/ragga_la_hierarchie.tidal
PLAYABLE live/collab/raph/ratus.tidal
PLAYABLE live/collab/raph/rainbow_race.tidal
PLAYABLE live/collab/raph/sale_piano.tidal
PLAYABLE live/collab/raph/sautillant.tidal
PLAYABLE live/collab/raph/septieme_armee.tidal
PLAYABLE live/collab/raph/saria.tidal
PLAYABLE live/collab/raph/vacances_solaires.tidal
PLAYABLE live/collab/rhadamanthe.tidal
PLAYABLE live/collab/rhadamanthe/layering.tidal
PLAYABLE live/collab/ryan/day0.tidal
PLAYABLE live/collab/raph/wet_hard_pussy.tidal
PLAYABLE live/collab/siberie_samuel.tidal
PLAYABLE live/collab/stevie/aime_la_jungle.tidal
PLAYABLE live/collab/val/2026_jam.tidal
PLAYABLE live/collab/Sexes/julien.tidal
PLAYABLE live/collab/val/ambient_dust.tidal
COMPILE_FAIL live/collab/val/euclidian_machine.tidal
PLAYABLE live/collab/val/edgy.tidal
PLAYABLE live/collab/val/samedi_acid.tidal
PLAYABLE live/collab/val/template.tidal
PLAYABLE live/collab/val/soir_noir.tidal
PLAYABLE live/collab/youssef/eole.tidal
PLAYABLE live/collab/val/un_an.tidal
PLAYABLE live/contrevent.tidal
PLAYABLE live/digestion_roll.tidal
PLAYABLE live/disco/high.tidal
PLAYABLE live/dnb/bluesify.tidal
SILENT_ORBIT live/dnb/automne_electrique.tidal
PLAYABLE live/dnb/etienne.tidal
PLAYABLE live/dnb/chemise.tidal
PLAYABLE live/dnb/meth.tidal
PLAYABLE live/dnb/montee_descente.tidal
PLAYABLE live/dnb/giorgio_s_drums.tidal
PLAYABLE live/dnb/moulin.tidal
PLAYABLE live/dnb/dansant.tidal
PLAYABLE live/dnb/nass.tidal
PLAYABLE live/dnb/neuro.tidal
PLAYABLE live/dnb/nass_revient.tidal
PLAYABLE live/dnb/nass_arrive.tidal
SILENT_ORBIT live/dnb/sans_courant.tidal
PLAYABLE live/dnb/soleil_pourpre.tidal
PLAYABLE live/dnb/slow_step_abstract.tidal
PLAYABLE live/dnb/new_synth_wave.tidal
PLAYABLE live/dnb.tidal
COMPILE_FAIL live/dnb/video_live.tidal
PLAYABLE live/dnb/vendredi_dnb.tidal
PLAYABLE live/drone/hello_drones.tidal
PLAYABLE live/drone/ordre.tidal
PLAYABLE live/dub/amis_roots.tidal
PLAYABLE live/dub/racine_clave.tidal
PLAYABLE live/dub/fdlm2021.tidal
PLAYABLE live/dub/hello_dub.tidal
PLAYABLE live/dub/steps.tidal
PLAYABLE live/dub/tubby_study.tidal
PLAYABLE live/dub/renfort_solaire.tidal
PLAYABLE live/etienne.tidal
COMPILE_FAIL live/FOSDEM/after.tidal
PLAYABLE live/exp/bogdanniv.tidal
PLAYABLE live/exp/hot_stuff.tidal
PLAYABLE live/FOSDEM/before.tidal
COMPILE_FAIL live/FOSDEM/sunday.tidal
PLAYABLE live/FOSDEM/techno_du_soir.tidal
COMPILE_FAIL live/FOSDEM/train_du_soir.tidal
PLAYABLE live/FOSDEM/train.tidal
PLAYABLE live/friday2.tidal
COMPILE_FAIL live/friday_feb.tidal
PLAYABLE live/francesca.tidal
PLAYABLE live/friday.tidal
PLAYABLE live/fusion/acide_guitar.tidal
PLAYABLE live/funky_veranda.tidal
PLAYABLE live/fusion/acid_jazz.tidal
PLAYABLE live/fusion/b2p.tidal
COMPILE_FAIL live/fusion/anthropocene.tidal
PLAYABLE live/fusion/batterie.tidal
PLAYABLE live/fusion/bottled_baby.tidal
PLAYABLE live/fusion/bogdanerie.tidal
COMPILE_FAIL live/fusion/blue_party.tidal
PLAYABLE live/fusion/camille.tidal
PLAYABLE live/fusion/castle.tidal
PLAYABLE live/fusion/comete/808_et_etoiles.tidal
PLAYABLE live/fusion/comete/my_other_car_is_a_storm.tidal
PLAYABLE live/fusion/comete/marche_vertige.tidal
PLAYABLE live/fusion/crapeau_russe.tidal
PLAYABLE live/fusion/confine.tidal
PLAYABLE live/fusion/dessin.tidal
PLAYABLE live/fusion/cuba_space_program.tidal
PLAYABLE live/fusion/doux.tidal
PLAYABLE live/fusion/drunk_beat.tidal
PLAYABLE live/fusion/du_code.tidal
PLAYABLE live/fusion/dimitri.tidal
PLAYABLE live/fusion/faites_de_la_musique.tidal
PLAYABLE live/fusion/hipofunk.tidal
PLAYABLE live/fusion/josephine.tidal
PLAYABLE live/fusion/dub_night.tidal
PLAYABLE live/fusion/latin/like_what.tidal
PLAYABLE live/fusion/kaalamite.tidal
SILENT_ORBIT live/fusion/lucy_sky.tidal
PLAYABLE live/fusion/minuit.tidal
PLAYABLE live/fusion/mad_piano.tidal
PLAYABLE live/fusion/moog_hat.tidal
PLAYABLE live/fusion/orleans_les_bains.tidal
PLAYABLE live/fusion/morning/flowers.tidal
PLAYABLE live/fusion/morning/latin_core.tidal
COMPILE_FAIL live/fusion/ploink.tidal
PLAYABLE live/fusion/you_may.tidal
PLAYABLE live/hardcore/dure_liberte.tidal
PLAYABLE live/fusion/sel_marin.tidal
PLAYABLE live/hardcore/etat.tidal
COMPILE_FAIL live/hardcore/jambon.tidal
COMPILE_FAIL live/hardcore/anar.tidal
PLAYABLE live/hardcore/noise_in_the_wires.tidal
PLAYABLE live/hardcore/priere.tidal
PLAYABLE live/hardcore/printanier.tidal
SILENT_ORBIT live/hardcore/manoir_rhadamanthe.tidal
PLAYABLE live/hardcore/scribe.tidal
PLAYABLE live/hip/bb/cest_le_code.tidal
PLAYABLE live/hardcore/soleil.tidal
COMPILE_FAIL live/hip/bocal.tidal
PLAYABLE live/hip/beats.tidal
COMPILE_FAIL live/hip/bb/minibeat.tidal
PLAYABLE live/hip/boombap/plage.tidal
PLAYABLE live/hip/boombap/princesse_de_mars.tidal
PLAYABLE live/hip/chaude_civ.tidal
PLAYABLE live/hip/comme_un_lundi.tidal
PLAYABLE live/hip/darkside/russia.tidal
PLAYABLE live/hip/darkside/clameur.tidal
SILENT_ORBIT live/hip/darkside/sub_marine.tidal
PLAYABLE live/hip/entre_en_scene.tidal
PLAYABLE live/hiphop.tidal
PLAYABLE live/hip/instru/courant_alternatif.tidal
PLAYABLE live/hip/instru/break_britannique.tidal
PLAYABLE live/hip/instru/cooldown.tidal
PLAYABLE live/hip/instru/guitar_roll.tidal
COMPILE_FAIL live/hip/instru/envahisseur_celtique.tidal
PLAYABLE live/hip/instru/crapeau_hippo.tidal
PLAYABLE live/hip/instru/jazz_noise.tidal
PLAYABLE live/hip/instru/jardin_dhiver.tidal
PLAYABLE live/hip/instru/minibreak.tidal
PLAYABLE live/hip/instru/nuit_au_quartier_latin.tidal
PLAYABLE live/hip/instru/nu.tidal
PLAYABLE live/hip/instru/training.tidal
PLAYABLE live/hip/jerem.tidal
PLAYABLE live/hip/instru/pixels_roses.tidal
PLAYABLE live/hip/instru/remede.tidal
PLAYABLE live/hip/lofi/back_baby.tidal
PLAYABLE live/hip/lofi/808_lessons.tidal
COMPILE_FAIL live/hip/lofi/du_miel.tidal
PLAYABLE live/hip/lofi/brouillard.tidal
PLAYABLE live/hip/lofi/poke_bone.tidal
PLAYABLE live/hip/lofi/sete_et_match.tidal
PLAYABLE live/hip/lofi/hellofi.tidal
PLAYABLE live/hip/lofi/soleil_enthousiaste.tidal
PLAYABLE live/hip/mask.tidal
PLAYABLE live/hip/lofi/toujours_plus.tidal
PLAYABLE live/hip/lofi/slow_mo.tidal
PLAYABLE live/hip/pensif.tidal
PLAYABLE live/hip/piano_fight.tidal
PLAYABLE live/hip/roll.tidal
PLAYABLE live/hip/organ_seeker.tidal
PLAYABLE live/hip/solitude_hivernale.tidal
PLAYABLE live/hip/sunny2.tidal
PLAYABLE live/hip/sunny.tidal
PLAYABLE live/hip/trapped_in_space.tidal
COMPILE_FAIL live/jam/cbow.tidal
COMPILE_FAIL live/hip/volette.tidal
PLAYABLE live/home.tidal
PLAYABLE live/jam/chalet.tidal
PLAYABLE live/jam/cosmic26.tidal
PLAYABLE live/late/good_morning_minneapolis.tidal
PLAYABLE live/late/romain.tidal
PLAYABLE live/jam/val23.tidal
PLAYABLE live/lib/prelude.tidal
PLAYABLE live/late/temps.tidal
PLAYABLE live/late/funky_evening.tidal
PLAYABLE live/medievalcore.tidal
COMPILE_FAIL live/midi/beats.tidal
PLAYABLE live/midi/ams_companion.tidal
PLAYABLE live/midi/break_metal.tidal
PLAYABLE live/midi/bruit_hiver.tidal
PLAYABLE live/midi/dubmini.tidal
COMPILE_FAIL live/midi/dub.tidal
PLAYABLE live/midi/dusty_marcia.tidal
PLAYABLE live/midi/dusty_cypres.tidal
COMPILE_FAIL live/midi/hello_world.tidal
PLAYABLE live/midi/jazz_tech_piano.tidal
PLAYABLE live/midi/frerot.tidal
COMPILE_FAIL live/midi/looper/god_money.tidal
PLAYABLE live/midi/jazz.tidal
PLAYABLE live/midi/nova/120_techoirs.tidal
PLAYABLE live/midi/nova/80fonk.tidal
PLAYABLE live/midi/nova/acid/gimme_acid.tidal
PLAYABLE live/midi/nova/acid/la_dub_sour.tidal
COMPILE_FAIL live/midi/nova/ambient/ambient_chaos.tidal
PLAYABLE live/midi/nova/acid/la_porte_de_leternite.tidal
PLAYABLE live/midi/nova/ambient/drone_aveugle.tidal
PLAYABLE live/midi/nova/ambient/contre_visite.tidal
PLAYABLE live/midi/nova/ambient/empreinte_du_numerique.tidal
PLAYABLE live/midi/nova/ambient/froid_de_minuit.tidal
PLAYABLE live/midi/ambient_space.tidal
SILENT_ORBIT live/midi/nova/ambient/mono_over.tidal
PLAYABLE live/midi/nova/ambient/prestance.tidal
PLAYABLE live/midi/nova/ambient/quand_on_decolle.tidal
PLAYABLE live/midi/nova/ambient/raise.tidal
PLAYABLE live/midi/nova/ambient/snow_white.tidal
PLAYABLE live/midi/nova/beatober/oct_15_midoct.tidal
COMPILE_FAIL live/midi/nova/beatober/oct_5.tidal
PLAYABLE live/midi/nova/beatober/oct_16_haunted_house_insouciance.tidal
PLAYABLE live/midi/nova/beatober/oct_29_can_i_code_it.tidal
PLAYABLE live/midi/nova/boombap/boom_jane.tidal
PLAYABLE live/midi/nova/beatober/oct_glitchs_sauvages.tidal
PLAYABLE live/midi/nova/boombap/al_salar.tidal
PLAYABLE live/midi/nova/boombap/chemise_a_carreaux.tidal
PLAYABLE live/midi/nova/boombap/creme.tidal
PLAYABLE live/midi/nova/boombap/el_mundo.tidal
PLAYABLE live/midi/nova/boombap/module_amour.tidal
PLAYABLE live/midi/nova/boombap/latin_au_chocolat.tidal
PLAYABLE live/midi/nova/boombap/module_latin.tidal
PLAYABLE live/midi/nova/boombap/saloon.tidal
PLAYABLE live/midi/nova/boombap/rien_a_craindre.tidal
PLAYABLE live/midi/nova/boombap/sept20.tidal
PLAYABLE live/midi/nova/boombap/trop_plein.tidal
COMPILE_FAIL live/midi/nova/breaks/break_90s.tidal
PLAYABLE live/midi/nova/breaks/acid_rain.tidal
PLAYABLE live/midi/nova/breaks/bain_electrique.tidal
COMPILE_FAIL live/midi/nova/breaks/break_at_home.tidal
PLAYABLE live/midi/nova/breaks/break_dynasty.tidal
PLAYABLE live/midi/nova/breaks/break_the_night.tidal
PLAYABLE live/midi/nova/breaks/break_low.tidal
PLAYABLE live/midi/nova/breaks/break_the_rentree.tidal
PLAYABLE live/midi/nova/breaks/code_secret.tidal
PLAYABLE live/midi/nova/breaks/break_the_storm.tidal
COMPILE_FAIL live/midi/nova/breaks/its_about_time.tidal
PLAYABLE live/midi/nova/breaks/hello_fred.tidal
PLAYABLE live/midi/nova/breaks/green_land.tidal
PLAYABLE live/midi/nova/breaks/jesus_loves_disco.tidal
PLAYABLE live/midi/nova/breaks/la_canopee.tidal
PLAYABLE live/midi/nova/breaks/lady_perplexity.tidal
PLAYABLE live/midi/nova/breaks/lourd.tidal
PLAYABLE live/midi/nova/breaks/midnight_breaking.tidal
PLAYABLE live/midi/nova/breaks/madeleine_de_paris.tidal
PLAYABLE live/midi/nova/breaks/lunar.tidal
COMPILE_FAIL live/midi/nova/breaks/nova_bossa.tidal
PLAYABLE live/midi/nova/breaks/monday_fairy.tidal
SILENT_ORBIT live/midi/nova/breaks/nuit_agitee.tidal
PLAYABLE live/midi/nova/breaks/rose_eternelle.tidal
COMPILE_FAIL live/midi/nova/breaks/solar.tidal
PLAYABLE live/midi/nova/breaks/rub_a_drum.tidal
PLAYABLE live/midi/nova/breaks/slower.tidal
PLAYABLE live/midi/nova/breaks/spanish_thingy.tidal
PLAYABLE live/midi/nova/breaks/StolenChoir.tidal
PLAYABLE live/midi/nova/breaks/the_secret.tidal
PLAYABLE live/midi/nova/breaks.tidal
COMPILE_FAIL live/midi/nova/computer_riddub.tidal
PLAYABLE live/midi/nova/breaks/ton_numero.tidal
PLAYABLE live/midi/nova/disco/buena_sera_milano.tidal
PLAYABLE live/midi/nova/disco/friends_in_blue.tidal
COMPILE_FAIL live/midi/nova/dnb/BreakBass.tidal
PLAYABLE live/midi/nova/dnb/alerte_verte.tidal
PLAYABLE live/midi/nova/dnb/break_the_loop.tidal
PLAYABLE live/midi/nova/dnb/bruler_franchement.tidal
PLAYABLE live/midi/nova/dnb/anniv.tidal
PLAYABLE live/midi/nova/dnb/drums_I_presume.tidal
PLAYABLE live/midi/nova/dnb/force_motrice.tidal
PLAYABLE live/midi/nova/dnb/golden_drum.tidal
PLAYABLE live/midi/nova/dnb/jet_de_resistance.tidal
PLAYABLE live/midi/nova/dnb/la_bonne_pression.tidal
PLAYABLE live/midi/nova/dnb/la_foule.tidal
PLAYABLE live/midi/nova/dnb/lucy_rode.tidal
PLAYABLE live/midi/nova/dnb/lime_tacos.tidal
PLAYABLE live/midi/nova/dnb/liquid/you_my_sunshine.tidal
PLAYABLE live/midi/nova/dnb/noname.tidal
PLAYABLE live/midi/nova/dnb/MethBass.tidal
PLAYABLE live/midi/nova/dnb/nouveau_soleil.tidal
PLAYABLE live/midi/nova/dnb/perceneige.tidal
PLAYABLE live/midi/nova/dnb/plosive.tidal
PLAYABLE live/midi/nova/dnb/prepabass.tidal
PLAYABLE live/midi/nova/dnb/something_about_drums.tidal
PLAYABLE live/midi/nova/dnb/venons_ensemble.tidal
PLAYABLE live/midi/nova/dnb/wap.tidal
PLAYABLE live/midi/nova/dub/big_morning.tidal
PLAYABLE live/midi/nova/dub/simon_arrive.tidal
PLAYABLE live/midi/nova/dub/computer_riddim.tidal
COMPILE_FAIL live/midi/nova/dubstep/break_my_new_synths.tidal
PLAYABLE live/midi/nova/dub/skunky.tidal
COMPILE_FAIL live/midi/nova/DX_tech.tidal
COMPILE_FAIL live/midi/nova/feu.tidal
PLAYABLE live/midi/nova/FFF/mad_fonk.tidal
COMPILE_FAIL live/midi/nova/FFF/Noise.tidal
PLAYABLE live/midi/nova/dub.tidal
PLAYABLE live/midi/nova/FM/fm.tidal
PLAYABLE live/midi/nova/FFF/grace.tidal
PLAYABLE live/midi/nova/FM/paul_machine.tidal
COMPILE_FAIL live/midi/nova/FFF/pray.tidal
PLAYABLE live/midi/nova/fm.tidal
PLAYABLE live/midi/nova/FM/heure_a_perdre.tidal
PLAYABLE live/midi/nova/FM/superFM.tidal
PLAYABLE live/midi/nova/fusion/all_the_way.tidal
PLAYABLE live/midi/nova/fusion/coworking.tidal
PLAYABLE live/midi/nova/fusion/crystal_d_ete.tidal
PLAYABLE live/midi/nova/fusion/deck_the_dancehall.tidal
PLAYABLE live/midi/nova/fusion/funk_trap.tidal
PLAYABLE live/midi/nova/fusion/elephunk.tidal
COMPILE_FAIL live/midi/nova/fusion/etapes.tidal
PLAYABLE live/midi/nova/fusion/qui_sait.tidal
PLAYABLE live/midi/nova/fusion/shape_of_foo.tidal
COMPILE_FAIL live/midi/nova/grunge/le_bruit_des_bots.tidal
PLAYABLE live/midi/nova/giant.tidal
PLAYABLE live/midi/nova/grime/bogdan_arrive.tidal
COMPILE_FAIL live/midi/nova/instruments/8box.tidal
COMPILE_FAIL live/midi/nova/instruments/AtomicRhodes.tidal
PLAYABLE live/midi/nova/harder_crime.tidal
PLAYABLE live/midi/nova/jazz/giant_technique.tidal
PLAYABLE live/midi/nova/jamuary/2504_ce_quon_ignore.tidal
SILENT_ORBIT live/midi/nova/instruments/scratchomatic.tidal
PLAYABLE live/midi/nova/jazz/the_revolution_will_be_sampled.tidal
PLAYABLE live/midi/nova/lofi/back_baby.tidal
PLAYABLE live/midi/nova/jungle/chemin_de_traverse.tidal
PLAYABLE live/midi/nova/lofi/dark_money.tidal
PLAYABLE live/midi/nova/lofi/hello_shiloh.tidal
PLAYABLE live/midi/nova/lofi/fictional_yehuda.tidal
SILENT_ORBIT live/midi/nova/lofi/lendemain_divin.tidal
PLAYABLE live/midi/nova/lofi/low_and_numb.tidal
PLAYABLE live/midi/nova/lofi/new_dust.tidal
PLAYABLE live/midi/nova/lofi/premiere_grillade.tidal
PLAYABLE live/midi/nova/lofi/pour_une_hypothese.tidal
PLAYABLE live/midi/nova/lofi/premier_mai.tidal
PLAYABLE live/midi/nova/lofi/reboot.tidal
PLAYABLE live/midi/nova/lofi/savoir_voyager.tidal
PLAYABLE live/midi/nova/lofi/soleil_de_sete.tidal
PLAYABLE live/midi/nova/lofi/zombie_bed.tidal
PLAYABLE live/midi/nova/lofi/sunny_march.tidal
PLAYABLE live/midi/nova/lounge/acidoo.tidal
COMPILE_FAIL live/midi/nova/lounge/cbow.tidal
PLAYABLE live/midi/nova/lounge/blade_dreamer.tidal
PLAYABLE live/midi/nova/lounge/fabuleux.tidal
PLAYABLE live/midi/nova/lounge/hello_loo.tidal
COMPILE_FAIL live/midi/nova/lounge/invoque_ete.tidal
PLAYABLE live/midi/nova/lounge/hoover_sepia.tidal
PLAYABLE live/midi/nova/lounge/la_nuit_je_funk.tidal
PLAYABLE live/midi/nova/lounge/liquid_nite.tidal
PLAYABLE live/midi/nova/lounge/mojo_hats.tidal
PLAYABLE live/midi/nova/lounge/night_sun.tidal
PLAYABLE live/midi/nova/lounge/michael.tidal
PLAYABLE live/midi/nova/lounge/soleil_du_soir.tidal
PLAYABLE live/midi/nova/lounge/ouais_je_funk.tidal
PLAYABLE live/midi/nova/lounge/sunny_side_up.tidal
PLAYABLE live/midi/nova/lounge/suns_of_gold.tidal
PLAYABLE live/midi/nova/lounge/take_5_drops.tidal
PLAYABLE live/midi/nova/lounge/top_hats.tidal
PLAYABLE live/midi/nova/nujazz/cafe_bouillant.tidal
PLAYABLE live/midi/nova/nujazz/cafe_glace.tidal
PLAYABLE live/midi/nova/minneapolis.tidal
PLAYABLE live/midi/nova/nujazz/cafe_tiede.tidal
PLAYABLE live/midi/nova/nujazz/chere_mireille.tidal
PLAYABLE live/midi/nova/nujazz/dimanche_numb.tidal
PLAYABLE live/midi/nova/nujazz/infusion_basse.tidal
PLAYABLE live/midi/nova/nujazz/menthe_givree.tidal
PLAYABLE live/midi/nova/nujazz/nouvelle_couleur.tidal
SILENT_ORBIT live/midi/nova/nujazz/nu_dans_la_boue.tidal
COMPILE_FAIL live/midi/nova/once_upon_a_loop.tidal
PLAYABLE live/midi/nova/nujazz/rose_rouge.tidal
PLAYABLE live/midi/nova/nujazz/salut_nu.tidal
PLAYABLE live/midi/nova/party/80s_neon.tidal
COMPILE_FAIL live/midi/nova/party/electro_blues.tidal
COMPILE_FAIL live/midi/nova/party_hard.tidal
PLAYABLE live/midi/nova/party/blues_machine.tidal
SILENT_ORBIT live/midi/nova/party/dark_angel_frappe.tidal
COMPILE_FAIL live/midi/nova/party/phunk.tidal
PLAYABLE live/midi/nova/party/maudits_insectes.tidal
PLAYABLE live/midi/nova/party/last_one.tidal
PLAYABLE live/midi/nova/party/sidekick.tidal
PLAYABLE live/midi/nova/punk/hello_poesie.tidal
PLAYABLE live/midi/nova/party/technomidi.tidal
PLAYABLE live/midi/nova/punk/killing.tidal
PLAYABLE live/midi/nova/punk/punk_teng.tidal
PLAYABLE live/midi/nova/superFM.tidal
PLAYABLE live/midi/nova/remix/perfect.tidal
PLAYABLE live/midi/nova/techno/around_the_bass.tidal
PLAYABLE live/midi/nova/techno/belle_pluie.tidal
PLAYABLE live/midi/nova/techno/bombe_dj.tidal
PLAYABLE live/midi/nova/techno/ca_fait_rien.tidal
PLAYABLE live/midi/nova/techno/cyber_hump.tidal
PLAYABLE live/midi/nova/techno/coconut_coffee.tidal
PLAYABLE live/midi/nova/techno/electric_hammer.tidal
PLAYABLE live/midi/nova/techno/ere_de_jeu.tidal
PLAYABLE live/midi/nova/techno/industry/no_panic.tidal
PLAYABLE live/midi/nova/techno/ete_a_mauerpark.tidal
PLAYABLE live/midi/nova/techno/law_and_order.tidal
PLAYABLE live/midi/nova/techno/love_of_techno.tidal
PLAYABLE live/midi/nova/techno/livecode_parade.tidal
PLAYABLE live/midi/nova/techno/prelude.tidal
PLAYABLE live/midi/nova/techno/panda_rouge.tidal
PLAYABLE live/midi/nova/techno/techno_oligarchie.tidal
PLAYABLE live/midi/nova/techno/techno_pretre.tidal
PLAYABLE live/midi/nova/techno/the_good_bass.tidal
SILENT_ORBIT live/midi/nova/techno/techno_orage.tidal
PLAYABLE live/midi/nova/techno/tour_du_ciel.tidal
PLAYABLE live/midi/nova/techno/trn/no_time_to_die.tidal
PLAYABLE live/midi/nova/wave/horizons.tidal
PLAYABLE live/midi/nova/tidal_crime.tidal
COMPILE_FAIL live/midi/nova/zelda.tidal
PLAYABLE live/midi/nova/waves.tidal
PLAYABLE live/mood/energy/waiting.tidal
PLAYABLE live/midi/toyota.tidal
PLAYABLE live/midi/zelda/mashup.tidal
PLAYABLE live/mood/fight/grimpe.tidal
PLAYABLE live/mood/fight/sage.tidal
COMPILE_FAIL live/mood/sad/bass_vibes.tidal
PLAYABLE live/mood/fight/clav_clash.tidal
PLAYABLE live/mood/sad/infiltrations.tidal
PLAYABLE live/mood/soothing/tea_time.tidal
PLAYABLE live/mood/soothing/breathe.tidal
PLAYABLE live/mood/soothing/tone_down.tidal
PLAYABLE live/mood/tired/afternoon.tidal
PLAYABLE live/noise/decentering.tidal
PLAYABLE live/noise/vie_hivernale.tidal
PLAYABLE live/nuit.tidal
PLAYABLE live/offbeat.tidal
PLAYABLE live/pair/be_my_punk.tidal
PLAYABLE live/pair/technopunk.tidal
PLAYABLE live/psc/bbq.tidal
COMPILE_FAIL live/pianotrap.tidal
COMPILE_FAIL live/quantum.tidal
COMPILE_FAIL live/remix/kanye_fly.tidal
PLAYABLE live/remix/day_trippin.tidal
PLAYABLE live/remix/stup.tidal
PLAYABLE live/scratch.tidal
PLAYABLE live/seb.tidal
COMPILE_FAIL live/snake.tidal
PLAYABLE live/techno/4stems/detroit_outer_space.tidal
PLAYABLE live/techno/4stems/la_vibe.tidal
SILENT_ORBIT live/techno/4stems/_template.tidal
PLAYABLE live/techno/80s.tidal
PLAYABLE live/techno/abstract.tidal
PLAYABLE live/techno/acid_80s.tidal
PLAYABLE live/techno/accel.tidal
PLAYABLE live/techno/bailar.tidal
PLAYABLE live/techno/balais.tidal
PLAYABLE live/techno/blue_impro.tidal
PLAYABLE live/techno/blade-piano.tidal
PLAYABLE live/techno/breakbeat.tidal
PLAYABLE live/techno/break_me.tidal
PLAYABLE live/techno/bureau.tidal
PLAYABLE live/techno/ciel_etoile.tidal
PLAYABLE live/noise/omondi_no_more.tidal
COMPILE_FAIL live/techno/cocon.tidal
COMPILE_FAIL live/techno/dambell.tidal
PLAYABLE live/techno/delic_jazz.tidal
PLAYABLE live/techno/do_it_right.tidal
PLAYABLE live/techno/exutoire.tidal
PLAYABLE live/techno/faya.tidal
PLAYABLE live/techno/experience_vertige.tidal
COMPILE_FAIL live/techno/feeling_electric.tidal
PLAYABLE live/techno/code_voila.tidal
PLAYABLE live/techno/friday_tired.tidal
PLAYABLE live/techno/funk/ant.tidal
PLAYABLE live/techno/foret_noire.tidal
PLAYABLE live/techno/funk/bogfunk.tidal
PLAYABLE live/techno/fine.tidal
PLAYABLE live/techno/funk/bbass.tidal
PLAYABLE live/techno/funk/FFF/grace.tidal
PLAYABLE live/techno/funk/FFF/mad_fonk.tidal
PLAYABLE live/techno/funk/electric.tidal
PLAYABLE live/techno/funk/FFF/funk_n_bass.tidal
PLAYABLE live/techno/funk/FFF/pray.tidal
PLAYABLE live/techno/funk/layered_breaks.tidal
COMPILE_FAIL live/techno/funk/FFF/Noise.tidal
PLAYABLE live/techno/funk/naufrage.tidal
COMPILE_FAIL live/techno/funk/nass_night.tidal
PLAYABLE live/techno/funk/work.tidal
SILENT_ORBIT live/techno/funk/minimal.tidal
PLAYABLE live/techno/funk/pure.tidal
PLAYABLE live/techno/german_wings.tidal
COMPILE_FAIL live/techno/kart.tidal
PLAYABLE live/techno/jump.tidal
PLAYABLE live/techno/laser_roll.tidal
PLAYABLE live/techno/late_train.tidal
PLAYABLE live/techno/more_like_us.tidal
PLAYABLE live/techno/major_nostalgia.tidal
PLAYABLE live/techno/multibass.tidal
PLAYABLE live/techno/noir/barriere_bleue.tidal
COMPILE_FAIL live/techno/nightly_repair.tidal
PLAYABLE live/techno/noir/burn_this_book.tidal
PLAYABLE live/techno/persistent_moog.tidal
PLAYABLE live/techno/kumai_nights.tidal
PLAYABLE live/techno/piano_forte.tidal
PLAYABLE live/techno/noir/lavabo_noir.tidal
PLAYABLE live/techno/phazer.tidal
SILENT_ORBIT live/techno/piano_intro.tidal
COMPILE_FAIL live/techno/progressive_tuesday.tidal
PLAYABLE live/techno/remember.tidal
PLAYABLE live/techno/saturday4.tidal
PLAYABLE live/techno/samedi_interdit.tidal
PLAYABLE live/techno/raclette.tidal
PLAYABLE live/techno/vertige_experienciel.tidal
PLAYABLE live/techno/soleil_neige.tidal
PLAYABLE live/techno/vague_de_crime.tidal
PLAYABLE live/techno/violent_violin.tidal
PLAYABLE live/TODO/dildo_cycles.tidal
COMPILE_FAIL live/techno/virus.tidal
COMPILE_FAIL live/techno/vite.tidal
PLAYABLE live/transe/barrels.tidal
PLAYABLE live/transe/soleil.tidal
PLAYABLE live/transe/cosmos.tidal
PLAYABLE live/transe/doo.tidal
PLAYABLE live/trilles.tidal
PLAYABLE live/tutobeat.tidal
PLAYABLE live/val.tidal
PLAYABLE live/work/contre.tidal
PLAYABLE live/work/wake_the_funk.tidal
#!/usr/bin/env python3.12
"""Gen the Set Builder catalog: one row per track, with every signal that answers
"can I actually play this tonight?".
The picker used to carry fourteen hand-written entries. That was honest for the
night it was written — a shortlist from the driver journal — but it made the page
look like the catalog was fourteen tracks deep, when the sweep had already
measured all 703. This turns the measurement into the picker's data.
Signals, and what each one is worth:
verdict PLAYABLE / SILENT_ORBIT / COMPILE_FAIL, from tools/silent-eval.py
over every file under live/ (docs/2026-09-22-catalog-playability.tsv).
PLAYABLE means it compiles and every declared orbit emits events with
the #55 boot seed. It does NOT mean audible — see the doc's caveats.
banks how many sample folders the track names actually resolve to on disk.
An UNRESOLVED name is normal (a SynthDef, or structure overridden
downstream by `#`), so we count what resolves and never flag the rest.
warm how many of those banks the current preload plan already warms. A
cold bank is not a fault: it lazy-loads on first hit, which on stage
sounds like a hiccup on the first bar and is fine afterwards.
played how many times the driver journal saw this track loaded. Journal
retention is short, so this is "seen in the window", not all-time —
but it is the only record of what PLN's hands actually reach for.
Sample-name extraction is imported from tools/setlist_samples.py, never
re-implemented here: a `.tidal` file is a program, and `#` is `|>`, so a
hand-rolled regex is wrong in ways that fail silently.
Output is a same-origin data file the page loads, so the page stays hand-edited
UI and the data stays generated. Nothing here reaches the network.
python3.12 tools/gen_setbuilder_catalog.py
"""
import json
import re
import subprocess
import sys
from collections import Counter
from datetime import datetime, timezone
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
from setlist_samples import extract_names, build_index, bank_file_count # noqa: E402
REPO = Path(__file__).resolve().parent.parent
TSV = REPO / "docs/2026-09-22-catalog-playability.tsv"
PRELOAD = REPO / "preload.scd"
OUT = REPO / "armada/setbuilder-data.js"
# Two path segments deep for midi/nova, which is half the catalog on its own and
# would otherwise swamp every other area in the filter chips.
TWO_DEEP = {("midi", "nova")}
VERDICT_CODE = {"PLAYABLE": 0, "SILENT_ORBIT": 1, "COMPILE_FAIL": 2}
def area_of(rel):
"""`live/midi/nova/techno/x.tidal` -> ('midi/nova', 'techno')."""
parts = rel.split("/")[1:-1] # drop 'live' and the filename
if not parts:
return "root", ""
if len(parts) >= 2 and (parts[0], parts[1]) in TWO_DEEP:
return "/".join(parts[:2]), (parts[2] if len(parts) > 2 else "")
return parts[0], (parts[1] if len(parts) > 1 else "")
def preload_banks():
"""The bank names the current plan warms.
Same extraction as tools/check-preload.sh:121 so the two tools can never
disagree about what 'warm' means.
"""
if not PRELOAD.is_file():
print("! no preload.scd — every bank will read as cold", file=sys.stderr)
return set()
text = PRELOAD.read_text(errors="replace")
return set(re.findall(r"\[ \\([A-Za-z0-9_]+)", text))
def play_counts():
"""track -> times the lcxl3 driver logged loading it, over journal retention."""
try:
out = subprocess.run(
["journalctl", "--user", "-u", "lcxl3-driver", "-o", "cat"],
capture_output=True, text=True, timeout=60,
).stdout
except (OSError, subprocess.SubprocessError) as exc:
print(f"! journal unreadable ({exc}) — play counts omitted", file=sys.stderr)
return Counter()
names = re.findall(r"track -> (\S+)", out)
# Log lines read `track -> sept1:`; `test` is the scratchpad, not a track.
return Counter(n.rstrip(":") for n in names if n.rstrip(":") != "test")
def main():
if not TSV.is_file():
sys.exit(f"! missing {TSV.relative_to(REPO)} — run the playability sweep first")
index = build_index()
warm = preload_banks()
plays = play_counts()
rows, counted = [], Counter()
for line in TSV.read_text().splitlines():
if not line.strip():
continue
verdict, rel = line.split("\t", 1)
counted[verdict] += 1
src = REPO / rel
banks_warm = banks_total = 0
if src.is_file():
for name in extract_names(src.read_text(errors="replace")):
folder = index.get(name)
if folder is None or bank_file_count(folder) == 0:
continue # unresolved or empty: normal, not a fault
banks_total += 1
if name in warm:
banks_warm += 1
stem = Path(rel).stem
area, sub = area_of(rel)
rows.append({
"p": rel, # repo-relative path = the identity
"t": stem, # display title
"v": VERDICT_CODE[verdict],
"a": area,
"s": sub,
"b": banks_total,
"w": banks_warm,
"n": plays.get(stem, 0),
})
# Hands first, then warmth, then name — the order PLN would pick in.
rows.sort(key=lambda r: (-r["n"], -(r["w"] == r["b"] and r["b"] > 0), r["p"]))
payload = {
"generated": datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC"),
"source": str(TSV.relative_to(REPO)),
"counts": {k: counted[k] for k in ("PLAYABLE", "SILENT_ORBIT", "COMPILE_FAIL")},
"journal_window_tracks": len(plays),
"tracks": rows,
}
OUT.write_text(
"/* Generated by tools/gen_setbuilder_catalog.py — do not hand-edit. */\n"
"window.PV_CATALOG = " + json.dumps(payload, separators=(",", ":")) + ";\n"
)
print(f"wrote {OUT.relative_to(REPO)} — {len(rows)} tracks "
f"({counted['PLAYABLE']} playable, {counted['SILENT_ORBIT']} silent-orbit, "
f"{counted['COMPILE_FAIL']} compile-fail), "
f"{len(plays)} in the journal window")
if __name__ == "__main__":
main()
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