audio
Version:
Audio loading, editing, and rendering for JavaScript
20 lines (16 loc) • 642 B
JavaScript
/**
* Pad — add silence to start and/or end of audio.
* pad(1) = 1s both sides. pad(1, 2) = 1s before, 2s after.
*/
import { seg } from '../plan.js'
const padPlan = (segs, ctx) => {
let { total, sampleRate: sr, args } = ctx
let before = args[0] ?? 0, after = args.length > 1 ? args[1] : before
let bN = Math.round(before * sr), aN = Math.round(after * sr)
let r = segs.map(s => { let n = s.slice(); n[2] = s[2] + bN; return n })
if (bN > 0) r.unshift(seg(0, bN, 0, undefined, null))
if (aN > 0) r.push(seg(0, aN, total + bN, undefined, null))
return r
}
import audio from '../core.js'
audio.op('pad', { plan: padPlan })