Calcolo dissolvenza audio
Questo calcolatore di inviluppo audio trasforma la durata di una clip e le lunghezze delle due dissolvenze nei punti esatti di tempo e guadagno necessari per un inviluppo lineare del volume.
Esegui gratis nel browser
Segna il silenzio, il guadagno pieno, il tratto stabile e la dissolvenza finale verso il silenzio, eliminando i punti ridondanti allo stesso istante. Il risultato è deterministico e si adatta a un editor, uno script di automazione, una pipeline di rendering o una fase di convalida. Se le dissolvenze richieste superano insieme la durata disponibile, il calcolo si interrompe con un errore di input chiaro.
Trasformi tre valori temporali in un inviluppo inequivocabile
Una dissolvenza audio è facile da descrivere, ma può essere codificata in modi incoerenti. Questo calcolatore riceve la durata totale della clip e le lunghezze delle dissolvenze in entrata e in uscita, tutte espresse in secondi. Restituisce un elenco ordinato di punti, ciascuno con un tempo e un guadagno lineare. Il guadagno zero indica il silenzio, mentre il valore uno mantiene il livello originale. Se è presente la dissolvenza in entrata, l’inviluppo parte da zero e raggiunge uno al suo termine. Se è presente quella in uscita, resta a uno fino all’inizio della discesa e poi arriva a zero alla fine della clip. Un editor o motore successivo può interpolare linearmente i punti consecutivi. Le dissolvenze di lunghezza zero sono gestite esplicitamente: senza dissolvenza iniziale la clip parte a pieno guadagno, mentre senza quella finale termina allo stesso livello. I punti coincidenti vengono uniti, così l’output resta compatto e privo di marcatori temporali duplicati o ambigui.
Comprenda la regola di sovrapposizione e i casi limite
Le due dissolvenze condividono una sola linea temporale finita, quindi la somma delle loro lunghezze non può superare la durata della clip. Se la superasse, la dissolvenza in entrata starebbe ancora crescendo quando quella in uscita dovrebbe già iniziare, senza lasciare un semplice inviluppo lineare con un tratto a pieno guadagno. La capacità rifiuta questo caso come input non valido. L’uguaglianza è invece ammessa: quando le dissolvenze riempiono esattamente la clip, quella iniziale raggiunge il guadagno pieno nello stesso istante in cui comincia quella finale. Il calcolatore rappresenta tale istante una sola volta. Ogni campo numerico deve essere finito; infinito, NaN, stringhe e campi mancanti vengono rifiutati. La durata deve essere maggiore di zero, mentre ogni dissolvenza può valere zero. Queste regole rendono prevedibili i confini e impediscono che impostazioni impossibili raggiungano un motore audio che potrebbe troncarle, riordinarle silenziosamente o interpretarle diversamente.
Utilizzi i punti nei flussi di montaggio e rendering
I punti restituiti descrivono un inviluppo di guadagno normalizzato, non campioni o decibel, e sono quindi portabili. Lei può associare i tempi alla timeline di un editor, convertire il guadagno lineare in decibel se il sistema di destinazione lo richiede oppure generare comandi di automazione per un renderer offline. L’output non modifica l’audio e non esamina file multimediali: calcola soltanto la geometria di controllo dai tempi forniti. Questa separazione è utile per pianificare il montaggio prima del caricamento dei contenuti, convalidare impostazioni in un modulo o archiviare una lista compatta di decisioni per il rendering successivo. Mantenga l’ordine dei punti e interpoli i guadagni adiacenti per una dissolvenza lineare. Se il Suo motore usa millisecondi, moltiplichi ogni tempo per mille durante l’integrazione. Per curve a potenza costante o logaritmiche, usi i punti come ancore temporali e applichi tra essi la curva desiderata.
Casi d'uso
Automatizzare un editor
Trasformi i valori di un modulo in fotogrammi chiave ordinati di guadagno lineare sulla timeline di una clip.
Convalidare un’attività di rendering
Rifiuti dissolvenze sovrapposte impossibili prima che un renderer in coda carichi ed elabori il contenuto sorgente.
Archiviare decisioni di montaggio portabili
Salvi un inviluppo normalizzato compatto, adattabile in seguito a secondi, millisecondi, decibel o comandi specifici.
Domande frequenti
Che cosa indica il valore di guadagno?
Il guadagno è lineare e normalizzato: zero equivale al silenzio e uno mantiene il livello sorgente. I valori intermedi derivano dall’interpolazione lineare.
Le due dissolvenze possono incontrarsi esattamente?
Sì. Le loro lunghezze possono uguagliare la durata della clip, creando un solo punto a pieno guadagno nel punto d’incontro.
Che cosa accade se una dissolvenza dura zero?
Una dissolvenza nulla non viene rappresentata come rampa. Il confine corrispondente resta a pieno guadagno e non viene aggiunto alcun punto ridondante.
Viene elaborato o caricato un file audio?
No. Viene eseguito un calcolo temporale deterministico su tre numeri, senza leggere né modificare contenuti audio.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione nel browser funziona localmente e produce lo stesso calcolo dell’inviluppo.
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/audio/fade-in-out \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration":12,"fade_in":2.5,"fade_out":3}'const res = await fetch("https://api.kit.forhosting.com/audio/fade-in-out", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/fade-in-out",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/fade-in-out", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration":12,"fade_in":2.5,"fade_out":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration":12,"fade_in":2.5,"fade_out":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/fade-in-out", 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
{
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.fade_in_out",
"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_mb | 200 |
max_minutes | 180 |
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. |