Retour

Orfeo

macOS

La fête choisit la musique. L'app la mixe.

Auto-DJ participatif — les invités proposent et votent depuis leur téléphone, un cerveau autonome décide quoi jouer et quand.

SwiftSwiftUIMusicKitSupabaseNext.jsTypeScript
Code privé

À propos

La fête décide, l'app exécute

Orfeo — d'après L'Orfeo de Monteverdi — est un auto-DJ participatif. Les invités d'une soirée proposent et votent des titres depuis leur téléphone, sans installer la moindre app, et un cerveau autonome décide quoi jouer et quand, enchaînant tout seul quand le flux de propositions se tarit.

La contrainte qui définit le projet : l'app est le DJ. Elle ordonnance et pilote la lecture en temps réel, pendant que la logique de curation reste totalement agnostique de la plateforme.

Trois couches, une règle d'or

Côté invités, une app web (Next.js) sert la recherche catalogue, le vote et les dédicaces. Côté hôte, une app macOS native (SwiftUI + MusicKit) s'abonne à l'état temps réel et pilote ApplicationMusicPlayer. Entre les deux, Supabase fait autorité — chaque morceau est identifié par son ISRC, jamais par un URI natif.

La règle d'or : le cerveau (CurationEngine) ne connaît jamais la plateforme de lecture. Il reçoit un instantané de l'état live et émet un plan ordonné de titres. Seuls les adaptateurs touchent Apple Music. Toute la logique métier vit dans des unités pures et testables, jamais dans une View SwiftUI ni un composant React.

Le cerveau

Le CurationEngine score chaque candidat — votes log-normalisés, adéquation énergie/humeur, fit de phase de soirée, bonus de dédicace, pénalités anti-répétition d'artiste et de genre — et produit une file ordonnée, déterministe hors aléa injecté. Quand les propositions sèchent, l'auto-continue navigue un vrai catalogue à partir de ce que la salle écoute — chaque titre mène à son artiste, à la radio de cet artiste et aux artistes proches — avec, en filet de secours, des titres repères choisis par l'organisateur. Le LLM local ne propose jamais de titre : il ne fournit que des genres et des étiquettes, donc un morceau de remplissage ne peut jamais être un titre qui n'existe pas.

Pourquoi

Orfeo est né d'un besoin concret : faire tourner la musique d'une vraie soirée sans qu'une personne reste scotchée à la sono toute la nuit. La v1 l'a fait le 14 août 2026 : un anniversaire de 45 invités, de midi à 3 h du matin ; la suite explore un service self-serve pour que n'importe qui puisse en faire autant.

Feuille de route

  1. v2 — Service self-serve

    Prévu

    Hôte iOS, inférence LLM hébergée (fin de la dépendance Ollama locale), billing Stripe + comptes self-serve, et conformité légale d'un service payant.

  2. vNext — Affûtage & ouverture

    Prévu

    Adaptateur Spotify (le cerveau reste agnostique), playlist souvenir post-event, et raffinements du scoring (vélocité, era, transitions).

  3. v1 — Soirée live de bout en bout

    Livré2026-08

    Web invités (proposer/voter/humeur/dédicace), hôte macOS qui pilote Apple Music, cerveau de curation agnostique plateforme et auto-continue quand le pool sèche. A fait tourner un anniversaire de 45 invités, de midi à 3 h du matin.

  4. Cerveau de curation pur & testable

    Livré2026-06

    Scoring déterministe (votes log-normalisés, fit énergie/humeur/phase, pénalités anti-répétition) isolé de toute plateforme de lecture.

  5. Pilotage temps réel via Apple Music

    Livré2026-06

    L'hôte macOS résout les ISRC et ordonnance la file d'ApplicationMusicPlayer, synchronisé en temps réel via Supabase.

  6. App web invités sans installation

    Livré2026-06

    Recherche catalogue, proposition, upvote, humeur et dédicace depuis le navigateur — aucune app à installer.

Autres apps patolabs