@buffered-audio/nodes 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +17 -17
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30542,7 +30542,7 @@ function amplitudePercentile(buckets, bucketMax, totalSamples, percent) {
30542
30542
  // src/targets/loudness-stats/index.ts
30543
30543
  var schema = external_exports.object({
30544
30544
  bucketCount: external_exports.number().int().positive().default(1024).describe("Amplitude histogram bucket count"),
30545
- outputPath: external_exports.string().default("").meta({ input: "file", mode: "save" }).describe("Output Path (JSON sidecar). Empty string disables file output.")
30545
+ outputPath: external_exports.string().default("").meta({ input: "file", mode: "save", accept: ".json" }).describe("Output Path (JSON sidecar). Empty string disables file output.")
30546
30546
  });
30547
30547
  var LoudnessStatsStream = class extends BufferedTargetStream {
30548
30548
  constructor() {
@@ -30770,7 +30770,7 @@ function computeLogBandMappings(numBands, minFreq, maxFreq, sampleRate, fftSize)
30770
30770
 
30771
30771
  // src/targets/spectrogram/index.ts
30772
30772
  var schema2 = external_exports.object({
30773
- outputPath: external_exports.string().default("").meta({ input: "file", mode: "save" }).describe("Output Path"),
30773
+ outputPath: external_exports.string().default("").meta({ input: "file", mode: "save", accept: ".bin" }).describe("Output Path"),
30774
30774
  fftSize: external_exports.number().min(256).max(8192).multipleOf(256).default(2048).describe("FFT Size"),
30775
30775
  hopSize: external_exports.number().min(64).max(8192).multipleOf(64).default(512).describe("Hop Size"),
30776
30776
  fftwAddonPath: external_exports.string().default("").meta({ input: "file", mode: "open", binary: "fftw-addon" }).describe("FFTW Addon")
@@ -30980,7 +30980,7 @@ function writeMinMaxPoint(min, max, channels, target, offset) {
30980
30980
 
30981
30981
  // src/targets/waveform/index.ts
30982
30982
  var schema3 = external_exports.object({
30983
- outputPath: external_exports.string().default("").meta({ input: "file", mode: "save" }).describe("Output Path"),
30983
+ outputPath: external_exports.string().default("").meta({ input: "file", mode: "save", accept: ".bin" }).describe("Output Path"),
30984
30984
  resolution: external_exports.number().min(100).max(1e4).multipleOf(100).default(1e3).describe("Resolution")
30985
30985
  });
30986
30986
  var HEADER_SIZE2 = 16;
@@ -31222,11 +31222,11 @@ function bitDepthToPcmFormat(bitDepth) {
31222
31222
  var encodingSchema = external_exports.object({
31223
31223
  format: external_exports.enum(["wav", "flac", "mp3", "aac"]),
31224
31224
  bitrate: external_exports.string().optional(),
31225
- vbr: external_exports.number().optional(),
31225
+ vbr: external_exports.number().min(0).max(9).optional(),
31226
31226
  sampleRate: external_exports.number().int().positive().optional().describe("Output sample rate (Hz). When set, ffmpeg resamples on encode.")
31227
31227
  });
31228
31228
  var schema4 = external_exports.object({
31229
- path: external_exports.string().default("").meta({ input: "file", mode: "save" }),
31229
+ path: external_exports.string().default("").meta({ input: "file", mode: "save", accept: ".wav,.flac,.mp3,.aac" }),
31230
31230
  ffmpegPath: external_exports.string().default("").meta({ input: "file", mode: "open", binary: "ffmpeg", download: "https://ffmpeg.org/download.html" }).describe("FFmpeg \u2014 audio/video processing tool"),
31231
31231
  bitDepth: external_exports.enum(["16", "24", "32", "32f"]).default("16"),
31232
31232
  encoding: encodingSchema.optional().describe("Encode through ffmpeg to a non-WAV format. Requires `ffmpegPath`.")
@@ -31416,8 +31416,8 @@ function computeKeepRanges(sortedRegions, chunkStartSec, sampleRate, chunkFrames
31416
31416
 
31417
31417
  // src/transforms/cut/index.ts
31418
31418
  var cutRegionSchema = external_exports.object({
31419
- start: external_exports.number().min(0).describe("Start (seconds)"),
31420
- end: external_exports.number().min(0).describe("End (seconds)")
31419
+ start: external_exports.number().min(0).max(86400).describe("Start (seconds)"),
31420
+ end: external_exports.number().min(0).max(86400).describe("End (seconds)")
31421
31421
  });
31422
31422
  var schema5 = external_exports.object({
31423
31423
  regions: external_exports.array(cutRegionSchema).default([]).describe("Regions")
@@ -31602,8 +31602,8 @@ function silenceChunkSizes(total, chunkFrames) {
31602
31602
 
31603
31603
  // src/transforms/pad/index.ts
31604
31604
  var schema8 = external_exports.object({
31605
- before: external_exports.number().min(0).multipleOf(1e-3).default(0).describe("Before"),
31606
- after: external_exports.number().min(0).multipleOf(1e-3).default(0).describe("After")
31605
+ before: external_exports.number().min(0).max(300).multipleOf(1e-3).default(0).describe("Before"),
31606
+ after: external_exports.number().min(0).max(300).multipleOf(1e-3).default(0).describe("After")
31607
31607
  });
31608
31608
  var PadStream = class extends UnbufferedTransformStream {
31609
31609
  constructor() {
@@ -31819,7 +31819,7 @@ function applyInsert(destChannel, insertChannel, overlap) {
31819
31819
  // src/transforms/splice/index.ts
31820
31820
  var schema11 = external_exports.object({
31821
31821
  insertPath: external_exports.string().default("").meta({ input: "file", mode: "open", accept: ".wav" }).describe("Insert File Path"),
31822
- insertAt: external_exports.number().min(0).default(0).describe("Insert At (frames)")
31822
+ insertAt: external_exports.number().min(0).max(1e9).default(0).describe("Insert At (frames)")
31823
31823
  });
31824
31824
  var SpliceStream = class extends UnbufferedTransformStream {
31825
31825
  constructor() {
@@ -33181,15 +33181,15 @@ function predictInitialB(args) {
33181
33181
  var FLOOR_PIVOT_EPSILON_DB = 0.01;
33182
33182
  var schema18 = external_exports.object({
33183
33183
  targetLufs: external_exports.number().min(-50).max(0).multipleOf(0.1).default(-16).describe("Target integrated loudness (LUFS)"),
33184
- pivot: external_exports.number().lt(0).optional().describe("Body anchor (dB). Default: median(considered LRA blocks) from BS.1770 LRA gating in pass 1."),
33185
- floor: external_exports.number().lt(0).optional().describe("Silence threshold (dB). Default: min(considered LRA blocks); no floor when no blocks survive gating."),
33184
+ pivot: external_exports.number().min(-80).lt(0).optional().describe("Body anchor (dB). Default: median(considered LRA blocks) from BS.1770 LRA gating in pass 1."),
33185
+ floor: external_exports.number().min(-100).lt(0).optional().describe("Silence threshold (dB). Default: min(considered LRA blocks); no floor when no blocks survive gating."),
33186
33186
  limitPercentile: external_exports.number().min(0.5).max(1).default(0.995).describe("Top-1\u2212p fraction of detection samples to brick-wall. Default 0.995 brick-walls the top 0.5%."),
33187
- limitDb: external_exports.number().lt(0).optional().describe("Limit-anchor override (dB). Default: auto-derived from quantile(detection histogram, limitPercentile). Set explicitly to fix the limit anchor."),
33187
+ limitDb: external_exports.number().min(-60).lt(0).optional().describe("Limit-anchor override (dB). Default: auto-derived from quantile(detection histogram, limitPercentile). Set explicitly to fix the limit anchor."),
33188
33188
  maxAttempts: external_exports.number().int().min(1).default(10).describe("Hard cap on iteration attempts."),
33189
- targetTp: external_exports.number().lt(0).optional().describe("True-peak target (dBTP). Default: source true peak (peaks unchanged)."),
33189
+ targetTp: external_exports.number().min(-24).lt(0).optional().describe("True-peak target (dBTP). Default: source true peak (peaks unchanged)."),
33190
33190
  smoothing: external_exports.number().min(0.01).max(200).default(1).describe("Peak-respecting envelope time constant (ms)."),
33191
- tolerance: external_exports.number().gt(0).default(0.5).describe("Iteration exit threshold (LUFS dB)."),
33192
- peakTolerance: external_exports.number().gt(0).default(0.1).describe("One-sided iteration exit threshold for output true-peak overshoot (dBTP; ceiling \u2014 undershoot ignored).")
33191
+ tolerance: external_exports.number().gt(0).max(6).default(0.5).describe("Iteration exit threshold (LUFS dB)."),
33192
+ peakTolerance: external_exports.number().gt(0).max(6).default(0.1).describe("One-sided iteration exit threshold for output true-peak overshoot (dBTP; ceiling \u2014 undershoot ignored).")
33193
33193
  }).refine(
33194
33194
  ({ floor, pivot }) => floor === void 0 || pivot === void 0 || floor < pivot,
33195
33195
  { message: "loudnessTarget requires floor < pivot when floor is set" }
@@ -33536,7 +33536,7 @@ function resolveTruePeakGain(sourcePeakLinear, target) {
33536
33536
 
33537
33537
  // src/transforms/true-peak-normalize/index.ts
33538
33538
  var schema20 = external_exports.object({
33539
- target: external_exports.number().lt(0).default(-1).describe("Target true peak (dBTP). Must be < 0.")
33539
+ target: external_exports.number().min(-24).lt(0).default(-1).describe("Target true peak (dBTP). Must be < 0.")
33540
33540
  });
33541
33541
  var TruePeakNormalizeStream = class extends BufferedTransformStream {
33542
33542
  constructor() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buffered-audio/nodes",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {