Rights & provenance

Content ID workflow

Generative audio only earns trust if you can prove where it came from. Eleven steps run on every render, and the last one is public.

AI-generated audioComposed by a generative model from your physiological data. Not a medical device — fitness guidance only.FTC 16 CFR §255 · EU AI Act Art. 50
  1. 01

    Capture

    Wearable streams heart rate at 1 Hz. Only physiological channels are read; the stream is discarded after the session summary is computed.

    hr_series[]
  2. 02

    Prescribe

    Tanaka HRmax and Karvonen reserve produce the zone band; the goal preset produces six phases with per-phase heart-rate targets.

    rx_…
  3. 03

    Anchor tempo

    Each phase target folds into a musical BPM inside 70–190, so the beat sits at a whole-number relationship to the heartbeat.

    tempo_bpm
  4. 04

    Compose

    The generative model receives the tempo map, mood token and phase energies — never identity, never raw health records.

    render_job
  5. 05

    Disclose

    An AI-generation disclosure is written into container metadata and shown in the player, per FTC 16 CFR §255 and EU AI Act Article 50.

    disclosure_tag
  6. 06

    Watermark

    An inaudible payload carrying prescription and session ids is embedded, surviving transcode and re-encode.

    watermark_payload
  7. 07

    Hash

    SHA-256 over the rendered audio object binds the file bit-for-bit to the record.

    audio_sha256
  8. 08

    Seal

    One append-only row is written, including the hash of the previous row. Updates and deletes are refused at the database level.

    row_hash
  9. 09

    Fingerprint

    The render is fingerprinted for reference delivery, with the asset id reserved at generation time.

    A-VO2-…
  10. 10

    Deliver reference

    Reference audio plus ownership metadata goes to the rights registry so third-party uploads match back to the originating athlete session.

    content_id_asset
  11. 11

    Publish or verify

    Anyone can query the public audit endpoint by prescription id and re-verify the chain without seeing a single identifying field.

    GET /api/public/v1/audit

Want to see it end to end? Generate a session, seal it, then look it up in the explorer.