Metronom-Klickspur aus BPM und Takten erstellen
Erstellen Sie eine deterministische Metronom-Klickspur-Spezifikation, ohne Audio zu erzeugen oder zu analysieren.
Im Browser ausführen – kostenlos
Geben Sie das Tempo in Schlägen pro Minute, eine Taktart wie 4/4 oder 6/8 und die gewünschte Dauer in vollständigen Takten an. Das Ergebnis führt jeden Klick ab Zeitpunkt null auf, ordnet ihm Takt und Schlag zu und kennzeichnet den ersten Schlag jedes Taktes als betont. Verwenden Sie die strukturierten Daten, um Klänge zu planen, Animationen zu steuern, Übungswerkzeuge vorzubereiten oder taktbezogene Software mit reproduzierbaren Zeitdaten zu testen.
Beschreiben Sie das musikalische Raster
Geben Sie einen positiven BPM-Wert, eine Taktart im Format Zähler/Nenner und eine positive ganze Anzahl von Takten ein. BPM misst die durch den Nenner bezeichnete Schlageinheit: 120 BPM im 4/4-Takt bedeutet Viertelnoten im Abstand einer halben Sekunde, während 120 BPM im 6/8-Takt Achtelnoten im Abstand einer halben Sekunde bedeutet. Der Zähler bestimmt die Anzahl der Klicks je Takt. Der Generator setzt den ersten Klick auf den Zeitstempel null, weil Wiedergabesysteme den anfänglichen Taktbeginn üblicherweise am Anfang ihrer Zeitleiste einplanen. Danach rückt jeder weitere Klick um genau sechzig geteilt durch BPM Sekunden vor. Diese Definition schließt verstecktes Einzählen, Swing, Unterteilungen und Audiolatenz aus. Falls Ihre Sitzung solche Funktionen benötigt, können Sie den zurückgegebenen Plan ausdrücklich umformen oder verschieben. Die kompakte musikalische Eingabe macht das Ergebnis für Browser-Audio, native Audio-Engines, Videozeitleisten, Testfälle und Notationsanwendungen nutzbar, ohne es an eine bestimmte Abtastrate oder Audiodatei zu binden.
Lesen Sie Zeitstempel und Betonungen
Jeder Klickdatensatz enthält einen bei eins beginnenden globalen Index, eine Taktnummer und eine Schlagnummer sowie einen Zeitstempel in Sekunden und eine Betonungsmarkierung. Beim ersten Schlag jedes Taktes ist accented auf true gesetzt, bei allen übrigen auf false. Damit kann ein Renderer für Taktanfänge ein kräftigeres Klick-Sample und andernorts ein normales Sample auswählen. Zeitstempel werden auf neun Dezimalstellen gerundet, damit die JSON-Ausgabe stabil bleibt und bei üblichen Musiktempi dennoch eine Genauigkeit unterhalb einer Mikrosekunde bietet. Die Zusammenfassung nennt außerdem Klickintervall, Gesamtdauer, Klickanzahl, Schläge je Takt und Schlageinheit. Die Gesamtdauer beschreibt den vollständigen angeforderten Bereich bis zum Ende des letzten Schlagintervalls, nicht bloß den Zeitstempel des letzten Klicks. Ein 4/4-Takt bei 120 BPM enthält beispielsweise Klicks bei 0, 0.5, 1 und 1.5 Sekunden, dauert insgesamt jedoch 2 Sekunden. Dieser Unterschied verhindert, dass der letzte Schlag beim Anlegen einer Audio- oder Animationszeitleiste abgeschnitten wird.
Planen Sie die Spezifikation zuverlässig ein
Behandeln Sie das Ergebnis als Zeitspezifikation und nicht als erzeugtes Audio. Eine Web-Audio-Anwendung kann ihre Wiedergabestartzeit zu jedem Zeitstempel addieren und abhängig von der Markierung einen betonten oder normalen Puffer einplanen. Ein Skript für eine digitale Audio-Workstation kann Sekunden in eigene Zeitleisteneinheiten umrechnen, und eine Testsuite kann erwartete Transportereignisse ohne Lautsprecher oder Mediencodecs vergleichen. Die Funktion ist deterministisch: Gleiche Eingaben erzeugen stets dasselbe JSON; Netzwerk, aktuelle Uhrzeit und Zufallswerte werden nicht verwendet. Ungültige Tempi werden abgewiesen, darunter null, negative, fehlende und unendliche Werte sowie nicht numerischer Text. Taktarten benötigen einen Zähler von 1 bis 32 und einen üblichen Zweierpotenz-Nenner von 1 bis 32. Die Taktzahl muss eine positive ganze Zahl sein, und der vollständige Plan ist auf 10,000 Klicks begrenzt. Da Zeitstempel relativ zu null sind, bleiben Anwendungslatenz und Gerätekompensation Aufgabe des Aufrufers; ergänzen Sie diese Abstände erst, wenn die endgültige Wiedergabeumgebung feststeht.
Anwendungsfälle
Steuern Sie ein Browser-Metronom
Planen Sie normale und betonte Klick-Samples anhand einer kompakten Musikbeschreibung auf einer Web-Audio-Zeitleiste ein.
Erstellen Sie taktsynchrone Animationen
Richten Sie visuelle Hinweise, Übungen oder Lichteffekte an exakten Takt- und Schlagzeitstempeln aus.
Testen Sie die Transportlogik
Erzeugen Sie reproduzierbare Sollereignisse für Sequenzer, Übungs-Apps und Wiedergabe-Engines, ohne Audio zu rendern.
Häufige Fragen
Was kostet die Nutzung?
Die API kostet $0.002 pro Anfrage; dieselbe deterministische Berechnung können Sie kostenlos in Ihrem Browser ausführen.
Liegt der erste Klick bei null?
Ja. Der Zeitstempel null ist der betonte erste Schlag des ersten Taktes.
Wie werden Taktanfänge markiert?
Beim ersten Schlag jedes Taktes ist accented auf true gesetzt. Bei allen anderen Klicks ist accented auf false gesetzt.
Wird dabei eine Audiodatei erzeugt?
Nein. Das Ergebnis ist ein strukturierter Klickplan, den Audio-, Animations- oder Testsysteme rendern oder verarbeiten können.
Was bedeutet BPM im 6/8-Takt?
BPM bezieht sich auf die vom Nenner bezeichnete Schlageinheit. Im 6/8-Takt erhält jeder der sechs Achtelschläge einen Klick.
Warum reicht die Gesamtdauer über den letzten Zeitstempel hinaus?
Der letzte Klick startet den letzten Schlag. Die Gesamtdauer umfasst dessen volles Intervall, damit die angeforderten Takte vollständig sind.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"bpm": 120,
"time_signature": "4/4",
"bars": 2
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.metronome_click_track",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_items | 10000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |