Setlist-Zeitbudget für Songs und Ansagen berechnen
Ein Konzertplan wirkt oft großzügig, bis Begrüßungen, Publikumsinteraktion, Stimmpausen und reichliche Songschätzungen den Puffer aufzehren.
Im Browser ausführen – kostenlos
Dieser Rechner wendet eine Gesamtdauer auf eine geordnete Songliste an, reserviert Zeit für Ansagen und zeigt genau, ab welcher Stelle der Plan nicht mehr passt. Das Ergebnis enthält die eingeplanten Songs, verbrauchte Minuten, den Restpuffer und die zusätzliche Zeit für den ersten ausgeschlossenen Song. So können Sie eine praxistaugliche Probenplanung prüfen oder automatisieren.
Beginnen Sie mit einem realistischen Zeitbudget
Geben Sie die gesamte verfügbare Dauer in Minuten ein und ordnen Sie die Songs in der geplanten Reihenfolge. Jede Länge sollte die Livefassung abbilden und nicht automatisch der Studioaufnahme entsprechen. Berücksichtigen Sie verlängerte Enden, instrumentale Einleitungen, Tempowechsel und Arrangements, die regelmäßig länger dauern. Ergänzen Sie eine Gesamtreserve für Begrüßungen, Publikumsdialog, Stimmen, Trinkpausen und andere Zeiten außerhalb der Songschätzungen. Der Rechner zieht diese Reserve ab, bevor er Songs einplant. Dadurch bleibt die Sprechzeit sichtbar und das Ergebnis bewusst vorsichtig. Gesamtdauer und Songlängen müssen positiv sein; die Ansagezeit darf null betragen. Alle Werte stehen in Minuten: Vier Minuten und dreißig Sekunden werden als 4.5 eingegeben. Realistische Angaben sind hilfreicher als eine genaue Rechnung mit zu optimistischen Schätzungen.
Verstehen Sie die Auswahl der Songs
Die Songs werden vom Anfang der Liste aus einzeln geprüft. Ein Song wird nur aufgenommen, wenn Ansagezeit, bereits angenommene Titel und seine eigene Länge innerhalb der Gesamtdauer bleiben. Sobald ein Titel nicht passt, endet die Prüfung. Der Rechner überspringt ihn nicht zugunsten eines späteren kürzeren Songs, denn das würde die künstlerische Reihenfolge unbemerkt verändern. Zurückgegeben wird somit der längste passende Anfang der Setlist. Außerdem sehen Sie Musikzeit, Ansagen, belegte Minuten und Puffer. Falls ein weiterer Song vorhanden ist, nennt das Ergebnis ihn und die zusätzlich benötigten Minuten. Wenn alle Songs passen, entfällt dieses optionale Feld. Überschreiten allein die Ansagen die Gesamtdauer, passt kein Song; ein negativer Puffer zeigt dann ehrlich die Unterdeckung statt einer irreführenden null.
Nutzen Sie das Ergebnis für Probe und Produktion
Verwenden Sie die Ausgabe als Kontrollpunkt und verbessern Sie die Schätzungen mit Probendaten. Ein kleiner Puffer kann durch langen Applaus, einen Gitarrenwechsel oder eine feste Übergabezeit des Veranstaltungsorts verschwinden. Vergleichen Sie eine normale Planung, eine vorsichtige Variante mit längeren Zeiten und eine gekürzte Notfall-Setlist. Weil die Reihenfolge erhalten bleibt, können Band, Stage Management und Produktion diese Varianten leicht gegenüberstellen. Der Fehlbetrag des nächsten Songs hilft bei der Entscheidung, ob eine Ansage, ein Arrangement oder ein vollständiger Titel gekürzt wird. Speichern Sie bei Automatisierung das Ergebnis zusammen mit den Ausgangsschätzungen. Gleiche Eingaben liefern im Browser und über die API stets gleiche Ausgaben. Eine API-Anfrage kostet $0.002; das Werkzeug liefert eine Zeitrechnung und gibt keine künstlerische Empfehlung als Optimierung aus.
Anwendungsfälle
Eine Setlist für den Veranstaltungsort planen
Prüfen Sie die Reihenfolge gegen ein festes Zeitfenster und reservieren Sie ausdrücklich Zeit für Ansagen und Übergänge.
Eine Festivalreserve vorbereiten
Vergleichen Sie normale und vorsichtige Schätzungen, um den Endpunkt eines eng getakteten Auftritts zu finden.
Probenzeiten überprüfen
Ersetzen Sie Studiolängen durch Live-Messwerte und prüfen Sie, ob die überarbeitete Planung einen brauchbaren Puffer lässt.
Häufige Fragen
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Das Ergebnis wird deterministisch und ohne Netzwerk- oder Modellaufruf berechnet.
Ordnet der Rechner die Songs neu?
Nein. Er wahrt die gelieferte Reihenfolge, gibt den längsten passenden Anfang zurück und stoppt beim ersten zu langen Song.
Wie werden Minuten und Sekunden eingegeben?
Rechnen Sie die Dauer in Dezimalminuten um. Dreißig Sekunden entsprechen beispielsweise 0.5 Minuten und fünfzehn Sekunden 0.25 Minuten.
Was gehört in die Ansagereserve?
Berücksichtigen Sie Begrüßungen, Publikumsdialog, Stimmen, Pausen und sonstige geplante Zeiten außerhalb der Songschätzungen.
Warum kann der Puffer negativ sein?
Das geschieht, wenn schon die reservierte Ansagezeit die Gesamtdauer überschreitet; der Wert zeigt dann die tatsächliche Unterdeckung.
Was passiert, wenn alle Songs passen?
Die Planung enthält sämtliche Songs, der verbleibende Puffer bleibt verfügbar und das optionale Feld für den nächsten Song entfällt.
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/video/concert-setlist-time-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_duration_minutes":45,"songs":[{"title":"Opening Lights","duration_minutes":4.5},{"title":"River Signal","duration_minutes":6.25},{"title":"Midnight Avenue","duration_minutes":5.75},{"title":"Last Train Home","duration_minutes":7}]}'const res = await fetch("https://api.kit.forhosting.com/video/concert-setlist-time-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_duration_minutes": 45,
"songs": [
{
"title": "Opening Lights",
"duration_minutes": 4.5
},
{
"title": "River Signal",
"duration_minutes": 6.25
},
{
"title": "Midnight Avenue",
"duration_minutes": 5.75
},
{
"title": "Last Train Home",
"duration_minutes": 7
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/concert-setlist-time-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_duration_minutes": 45,
"songs": [
{
"title": "Opening Lights",
"duration_minutes": 4.5
},
{
"title": "River Signal",
"duration_minutes": 6.25
},
{
"title": "Midnight Avenue",
"duration_minutes": 5.75
},
{
"title": "Last Train Home",
"duration_minutes": 7
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/concert-setlist-time-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_duration_minutes":45,"songs":[{"title":"Opening Lights","duration_minutes":4.5},{"title":"River Signal","duration_minutes":6.25},{"title":"Midnight Avenue","duration_minutes":5.75},{"title":"Last Train Home","duration_minutes":7}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_duration_minutes":45,"songs":[{"title":"Opening Lights","duration_minutes":4.5},{"title":"River Signal","duration_minutes":6.25},{"title":"Midnight Avenue","duration_minutes":5.75},{"title":"Last Train Home","duration_minutes":7}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/concert-setlist-time-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"total_duration_minutes": 45,
"songs": [
{
"title": "Opening Lights",
"duration_minutes": 4.5
},
{
"title": "River Signal",
"duration_minutes": 6.25
},
{
"title": "Midnight Avenue",
"duration_minutes": 5.75
},
{
"title": "Last Train Home",
"duration_minutes": 7
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.concert_setlist_time_budget",
"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 | 500 |
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. |