Pour les développeurs

Intégrer SPL Sense dans tes propres systèmes : API et formats de données.

Bref et technique, pour toute personne qui connecte SPL Sense à son propre logiciel ou matériel.

1 - API SPL Sense

API HTTP locale pour interroger et commander SPL Sense et comme interface de leveler pour les processeurs audio.

Activer

Paramètres › API dans SPL Sense :

Paramètre Valeurs
Mode Arrêt (par défaut), Leveler externe uniquement, Accès complet
Port Par défaut 8084 (Windows, macOS). Sous Linux, l’API tourne sur le même port que l’interface web, 8080 selon le guide d’installation ; le paramètre de port n’y a pas d’effet.
Clé API au moins 6 caractères ; définie aléatoirement à l’installation

La page affiche l’URL de base, la Swagger UI et la spécification OpenAPI :

Chemin
API /api
Swagger UI /swagger
OpenAPI /swagger/current/swagger.json

L’API écoute sur toutes les interfaces réseau, sans chiffrement (HTTP). Ne l’utilise que dans des réseaux de confiance.

Les connexions à un SPL Tools L1 ne sont pas concernées par ce paramètre.

Authentification

Chaque requête nécessite la clé API, comme en-tête

X-Api-Key: <clé api>

ou en HTTP Basic Auth (nom d’utilisateur quelconque, mot de passe = clé API). Sans clé valable : 401. Si un endpoint n’est pas autorisé dans le mode choisi : 403.

Endpoints

Méthode et chemin But Leveler externe uniquement Accès complet
GET /api/state État : appareil de mesure, capteur actif (numéro de série, firmware, calibration, filtre de protection contre les intempéries), mesure actuelle ✓ ✓
GET /api/live dernière valeur en direct : LAeq/LCeq/LZeq 1 s, MaxF A/C/Z, clip, low, intégrations, spectre ✓ ✓
GET /api/measurements toutes les mesures avec profil de valeurs, offsets et paramètres du leveler ✓ ✓
POST /api/leveler interface de leveler pour processeurs audio ✓ ✓
POST /api/control activer, démarrer, arrêter une mesure, bypass du leveler ✓
POST /api/leveler/settings définir le mode et les limites du leveler d’une mesure ✓

Les structures de données exactes se trouvent dans la Swagger UI.

Commander : POST /api/control

{ "action": "start" }
action Effet
activate activer une mesure ; nécessite "id": "<ID de la mesure>"
start démarrer la mesure active
stop arrêter la mesure
leveler-bypass activer le bypass du leveler
leveler-disable-bypass désactiver le bypass du leveler

Réponse : { "success": true, "errorMessage": null }. Les mêmes règles que dans l’interface s’appliquent ; un démarrage via l’API ne demande rien en cas de calibration expirée. Les événements de la mesure indiquent via l’API.

Paramètres du leveler : POST /api/leveler/settings

{
  "measurementId": "…",
  "mode": 30,
  "limitValueDbA": 96,
  "limitValueDbC": null,
  "limitValueDbZ": null
}

mode : 0 arrêt, 10 leveler simple, 20 avec fonction panique, 30 avec fonction panique et compensation du public. Limites 40–140 dB ou null (pondération non régulée). Les décalages de ligne restent inchangés. Impossible pour les mesures clôturées (409).

Interface de leveler : POST /api/leveler

Pour les processeurs audio qui fonctionnent comme leveler (par exemple avec le plugin Q-SYS). La mesure doit avoir la connexion Processeur audio externe (SenseAPI) dans ses paramètres de leveler.

Le processeur appelle l’endpoint régulièrement (typiquement une fois par seconde) et envoie son niveau de sortie actuel :

{
  "lineLevels": [ { "levelA": -18.2, "levelC": -12.5, "levelZ": -10.1 } ],
  "externalLevelerType": "MyProcessor",
  "externalLevelerVersion": "1.0"
}

Niveaux de ligne en dBFS (négatifs), chaque pondération facultative. Plusieurs valeurs sont moyennées énergétiquement. Chaque appel est un cycle de régulation.

Réponse :

{
  "state": 20,
  "gainReduction": -3.5,
  "headroomBeforeGainReduction": 0,
  "dominantWeighting": "A",
  "compensatedRelevantSplA": 96.2,
  "compensatedRelevantSplC": null,
  "compensatedRelevantSplZ": null,
  "lineCorrelationA": 1.012,
  "lineCorrelationC": null,
  "lineCorrelationZ": null
}

gainReduction en dB, toujours ≤ 0. Le processeur applique cette valeur comme gain.

state Signification gainReduction
0 leveler désactivé ou configuré de manière incomplète –
1 mesure arrêtée 0
2 mesure interrompue (capteur absent) null : conserver la dernière valeur
10 pas de réduction 0
20 réduction < 0
21 réduction, panique < 0
30 la mesure utilise un SPL Tools L1 ; les niveaux de ligne sont ignorés –
99 bypass 0

2 - Formats de données

Export CSV et fichiers .splsense.

CSV

L’export CSV est disponible par jour et pour toute la mesure, dans SPL Sense et dans SPL Cloud (là-bas pour toute la mesure au format ZIP).

  • Séparateur : point-virgule ;
  • une ligne par minute (intervalle)
  • première colonne Timestamp : fin de l’intervalle au format ISO 8601 avec fuseau horaire, par exemple 2026-07-12T22:15:00.0000000+02:00
  • ensuite une colonne par valeur du profil de valeurs, dans son ordre, avec nom et unité dans l’en-tête
  • valeurs en dB avec une décimale, offset inclus
  • séparateur décimal selon la langue de l’interface

Les plages horaires exclues, les commentaires et les événements ne sont pas inclus dans le CSV.

.splsense

Un fichier .splsense contient toute une mesure de SPL Sense avec tous les enregistrements, les intervalles signés, les événements et les paramètres. Il sert de sauvegarde et au transfert vers un autre ordinateur (Importation et exportation).

Le format est interne et peut changer avec les nouvelles versions. Pour une analyse dans ton propre logiciel, utilise l’export CSV et l’API SPL Sense.