TimbOS API Reference
A API TimbOS expõe o pipeline semântico de áudio como serviço REST. Permite busca por linguagem natural, geração de TimbreDSL, síntese paramétrica e navegação pelo knowledge graph de timbres.
# Exemplo mínimo de uso curl -X GET "https://api.timbos.io/v1/search?q=bamboo+flute+melancholic" \ -H "Authorization: Bearer tk_live_xxxxxxxxxxxx" \ -H "Accept: application/json"
API Keys
Todas as requisições requerem um Bearer token no header Authorization. Chaves são geradas no dashboard.
Authorization: Bearer tk_live_xxxxxxxxxxxx
Search API
Converte uma descrição textual em embedding CLAP e retorna os samples mais próximos no espaço semântico, com scores e TimbreDSL completa.
| Parâmetro | Tipo | Requerido | Descrição |
|---|---|---|---|
| q | string | required | Descrição textual do timbre (max 500 chars) |
| limit | integer | optional | Número de resultados (1–50, default: 10) |
| family | string | optional | Filtrar por família: strings, wind, brass, keyboard, percussion, electronic |
| include_dsl | boolean | optional | Incluir TimbreDSL completa em cada resultado (default: false) |
| threshold | float | optional | Score mínimo de similaridade 0.0–1.0 (default: 0.6) |
{
"query": "bamboo flute melancholic sunset",
"total": 847,
"results": [
{
"id": "shk_c4_001",
"name": "Shakuhachi C4",
"family": "wind",
"similarity": 0.912,
"preview_url": "https://cdn.timbos.io/samples/shk_c4_001.mp3",
"dsl": {
"spectral": { "brightness": 0.38, "harmonic_density": 0.60 },
"material": { "bamboo": 0.95 },
"emotion": { "melancholic": 0.78 }
}
}
],
"latency_ms": 42
}
{
"error": "invalid_query",
"message": "Query parameter 'q' is required",
"code": 400
}
Chama o pipeline multi-agente (LangGraph + Claude) para converter linguagem natural em TimbreDSL validada por schema. O endpoint mais poderoso da API.
| Body Field | Tipo | Requerido | Descrição |
|---|---|---|---|
| description | string | required | Descrição textual do timbre desejado |
| agents | string[] | optional | Agentes a executar (default: todos os 6) |
| validate | boolean | optional | Validar schema Pydantic antes de retornar (default: true) |
POST /v1/dsl/generate
Content-Type: application/json
{
"description": "old bamboo flute at sunset, slightly melancholic, airy texture",
"agents": ["acoustic", "perception", "ontology"],
"validate": true
}
Recebe uma TimbreDSL e retorna parâmetros de síntese para Web Audio API, DDSP ou SuperCollider.
# Resposta { "engine": "web_audio", "oscillator": { "type": "sine", "frequency": 261.63 }, "filter": { "type": "lowpass", "frequency": 1820, "Q": 2.8 }, "envelope": { "attack": 0.048, "decay": 0.12, "sustain": 0.82, "release": 0.34 }, "reverb": { "room_size": 0.35, "damping": 0.60 } }
TimbreDSL Schema
Todos os atributos numéricos são floats no range [0.0, 1.0] exceto onde indicado. O schema é validado por Pydantic v2 antes de qualquer operação de síntese ou indexação.
API Playground
Teste a API diretamente no browser. As chamadas são reais — o agente Ontology Mapper processa sua descrição e retorna a TimbreDSL canônica.
Client Libraries
pip install timbos
npm install @timbos/sdk
via Package Manager
# Python SDK from timbos import TimbOSClient client = TimbOSClient(api_key="tk_live_xxxx") # Busca semântica results = client.search("bamboo flute melancholic", limit=5) # Gerar DSL dsl = client.dsl.generate("old shakuhachi at sunset") print(dsl.spectral.brightness) # 0.38 # Síntese synth_params = client.dsl.synthesize(dsl, engine="web_audio")