Calcoli la durata della scaletta, brani e dialoghi
Una scaletta può sembrare comoda finché presentazioni, dialoghi con il pubblico, pause per accordare e stime generose non consumano il margine.
Esegui gratis nel browser
Questo calcolatore applica una durata totale a un elenco ordinato di brani, riserva il tempo parlato e mostra esattamente dove il programma smette di rientrare. Il risultato comprende i brani programmati, i minuti usati, il margine residuo e il tempo aggiuntivo necessario per il primo brano escluso, così Lei può verificare o automatizzare una stima pratica delle prove.
Parta da un budget realistico
Inserisca tutti i minuti disponibili e disponga i brani nell'ordine previsto. Ogni durata dovrebbe rappresentare l'esecuzione dal vivo, non automaticamente la traccia in studio. Consideri finali estesi, introduzioni strumentali, cambi di tempo e arrangiamenti che tendono ad allungarsi. Aggiunga una riserva complessiva per presentazioni, dialoghi, accordatura, pause e ogni intervallo non incluso nei brani. Il calcolatore accantona questo tempo prima di inserire la musica, rendendo visibile la parte parlata e mantenendo prudente il risultato. La durata totale e ogni brano devono essere positivi; il dialogo può essere zero. Tutti i valori sono in minuti: quattro minuti e trenta secondi diventano 4.5. Dati realistici sono più utili di un calcolo perfetto basato su previsioni ottimistiche.
Comprenda come vengono scelti i brani
I brani sono valutati dall'inizio dell'elenco, uno alla volta. Un titolo viene incluso solo se il tempo parlato, i brani già accettati e la sua durata restano entro il totale. Appena un brano non entra, il calcolo si ferma. Non lo salta per cercarne uno più corto, perché ciò cambierebbe silenziosamente la sequenza artistica. L'elenco restituito è quindi la parte iniziale più lunga che rientra. La risposta indica anche tempo musicale, dialoghi, minuti usati e margine. Se rimane un brano, lo identifica e mostra i minuti aggiuntivi necessari. Se entrano tutti, il campo facoltativo viene omesso. Se il solo dialogo supera il totale, non entra alcun brano e un margine negativo espone il deficit reale invece di nasconderlo come zero.
Usi il risultato nelle prove e in produzione
Consideri il risultato un controllo e perfezioni le stime con i dati delle prove. Un margine ridotto può sparire per applausi lunghi, un cambio di chitarra o una transizione imposta dall'orario del locale. Confronti una stima normale, una prudente con tempi più lunghi e una scaletta abbreviata di emergenza. Poiché l'ordine resta invariato, musicisti, palco e produzione possono confrontare facilmente le versioni. Il deficit del brano successivo aiuta a decidere se ridurre un intervento, accorciare un arrangiamento o eliminare un pezzo. Per l'automazione, conservi il risultato con le stime iniziali. Input identici producono sempre output identici nel browser e tramite API. Ogni richiesta costa $0.002; lo strumento offre un calcolo temporale senza presentare un'ottimizzazione come consiglio artistico.
Casi d'uso
Prepari una scaletta per il locale
Confronti lo spettacolo ordinato con una fascia fissa, riservando esplicitamente tempo per dialoghi e transizioni.
Predisponga un piano per il festival
Confronti stime normali e prudenti per individuare il brano in cui un set molto serrato deve terminare.
Controlli i tempi delle prove
Sostituisca le durate in studio con misure dal vivo e verifichi se il programma conserva un margine pratico.
Domande frequenti
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il risultato è deterministico e non usa né rete né modelli.
Il calcolatore riordina i brani?
No. Mantiene l'ordine fornito, restituisce la parte iniziale più lunga che entra e si ferma al primo brano oltre il limite.
Come si inseriscono minuti e secondi?
Converta la durata in minuti decimali. Per esempio, trenta secondi valgono 0.5 minuti e quindici secondi 0.25 minuti.
Cosa comprende la riserva per i dialoghi?
Includa presentazioni, interazione, accordatura, pause e ogni tempo previsto non già conteggiato nelle stime musicali.
Perché il margine può essere negativo?
Accade quando il solo dialogo riservato supera la durata totale e indica il deficit reale anche se non entra alcun brano.
Cosa accade se entrano tutti i brani?
L'elenco programmato contiene ogni brano, il margine residuo resta disponibile e il campo facoltativo del brano successivo viene omesso.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"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
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.concert_setlist_time_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 500 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |