Genere una pista de clic de metrónomo por BPM y compases
Cree una especificación determinista de pista de clic de metrónomo sin renderizar ni analizar audio.
Ejecutar — gratis
Indique el tempo en pulsaciones por minuto, un compás como 4/4 o 6/8 y la duración deseada en barras completas. El resultado enumera cada clic desde el instante cero, identifica su barra y pulso, y marca como acentuado el primer pulso de cada barra. Use la salida estructurada para programar sonidos, controlar animaciones, preparar herramientas de práctica o probar software musical con datos temporales repetibles.
Describa la cuadrícula musical
Introduzca un valor BPM positivo, un compás en formato numerador/denominador y un número entero positivo de barras. BPM mide la unidad de pulso indicada por el denominador: 120 BPM en 4/4 significa que las negras llegan cada medio segundo, mientras que 120 BPM en 6/8 significa que las corcheas llegan cada medio segundo. El numerador determina cuántos clics pertenecen a cada barra. El generador sitúa el primer clic en la marca de tiempo cero porque los sistemas de reproducción suelen programar el primer tiempo fuerte al inicio de su línea temporal. Después avanza exactamente sesenta dividido entre BPM segundos para cada clic posterior. Esta definición excluye entradas previas ocultas, swing, subdivisiones y latencia de audio. Si una sesión necesita esas funciones, puede transformar o desplazar explícitamente el programa devuelto. La entrada compacta hace que el resultado sirva para audio web, motores nativos, líneas de vídeo, pruebas y aplicaciones de notación sin depender de una frecuencia de muestreo ni de un archivo sonoro concretos.
Interprete las marcas de tiempo y los acentos
Cada registro de clic contiene un índice global, un número de barra y un número de pulso que comienzan en uno, además de una marca de tiempo en segundos y un indicador de acento. El primer pulso de cada barra establece accented como true; los demás quedan en false. Así, un renderizador puede elegir una muestra más intensa para los tiempos fuertes y una normal para el resto. Las marcas se redondean a nueve decimales para mantener estable la salida JSON y conservar precisión inferior al microsegundo en tempos habituales. El resumen también informa del intervalo entre clics, la duración total, la cantidad de clics, los pulsos por barra y la unidad de pulso. La duración total representa todo el tramo solicitado hasta el final del último intervalo, no solo la última marca. Por ejemplo, una barra de 4/4 a 120 BPM contiene clics en 0, 0.5, 1 y 1.5 segundos, pero dura 2 segundos. Esta diferencia evita cortar el pulso final al reservar una línea temporal de audio o animación.
Programe la especificación de forma segura
Considere el resultado una especificación temporal, no audio renderizado. Una aplicación Web Audio puede sumar su hora de inicio a cada marca y programar un búfer acentuado o normal según el indicador. Un script de estación de audio digital puede convertir los segundos a sus unidades, y un conjunto de pruebas puede comparar eventos de transporte sin depender de altavoces ni códecs. La función es determinista: entradas idénticas siempre producen el mismo JSON y no usa la red, el reloj actual ni valores aleatorios. Se rechazan tempos no válidos, incluidos cero, negativos, ausentes, infinitos y texto no numérico. Los compases deben tener un numerador de 1 a 32 y un denominador convencional que sea potencia de dos entre 1 y 32. Las barras deben formar un entero positivo y el programa completo se limita a 10,000 clics. Como las marcas son relativas a cero, la latencia de la aplicación y la compensación del dispositivo siguen bajo responsabilidad de quien llama; añada esos desplazamientos cuando conozca el entorno de reproducción final.
Qué puede hacer con ella
Controle un metrónomo web
Programe muestras normales y acentuadas en una línea Web Audio a partir de una descripción musical compacta.
Cree animaciones sincronizadas
Alinee señales visuales, ejercicios o iluminación con marcas exactas de barra y pulso.
Pruebe la lógica de transporte
Cree eventos esperados repetibles para secuenciadores, aplicaciones de práctica y motores de reproducción sin renderizar audio.
Preguntas frecuentes
¿Cuánto cuesta?
El precio de la API es $0.002 por solicitud, y el mismo cálculo determinista puede ejecutarse gratis en su navegador.
¿El primer clic ocurre en cero?
Sí. La marca cero corresponde al tiempo fuerte acentuado de la primera barra, pulso uno.
¿Cómo se marcan los tiempos fuertes?
El pulso uno de cada barra establece accented en true. Los demás clics establecen accented en false.
¿Esto genera un archivo de audio?
No. Devuelve un programa estructurado de clics que un sistema de audio, animación o pruebas puede renderizar o consumir.
¿Qué significa BPM en 6/8?
BPM se aplica a la unidad de pulso del denominador. En 6/8, cada uno de los seis pulsos de corchea recibe un clic.
¿Por qué la duración total supera la última marca?
El último clic inicia el pulso final. La duración total incluye todo ese intervalo para completar las barras solicitadas.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/audio/metronome-click-track \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bpm":120,"time_signature":"4/4","bars":2}'const res = await fetch("https://api.kit.forhosting.com/audio/metronome-click-track", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bpm": 120,
"time_signature": "4/4",
"bars": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/metronome-click-track",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bpm": 120,
"time_signature": "4/4",
"bars": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/metronome-click-track", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bpm":120,"time_signature":"4/4","bars":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bpm":120,"time_signature":"4/4","bars":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/metronome-click-track", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"bpm": 120,
"time_signature": "4/4",
"bars": 2
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.metronome_click_track",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |