Initial Commit
This commit is contained in:
27
packages/media/audio/audio-cli/tests/helpers.ts
Normal file
27
packages/media/audio/audio-cli/tests/helpers.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { writeFile } from "node:fs/promises";
|
||||
import { WavCodec } from "@suaveplan/audio-codecs";
|
||||
|
||||
/** Write a minimal mono 44.1 kHz WAV file for fixture purposes. */
|
||||
export async function writeWav(path: string, samples = 256): Promise<void> {
|
||||
const bytes = await WavCodec.encode([new Float32Array(samples)], {
|
||||
sampleRate: 44_100,
|
||||
bitDepth: 16,
|
||||
format: "pcm",
|
||||
});
|
||||
await writeFile(path, bytes);
|
||||
}
|
||||
|
||||
/** Write a noisy 44.1 kHz mono WAV file so loudness analyses report a value. */
|
||||
export async function writeNoisyWav(
|
||||
path: string,
|
||||
samples = 44_100
|
||||
): Promise<void> {
|
||||
const buf = new Float32Array(samples);
|
||||
for (let i = 0; i < samples; i++) buf[i] = Math.sin(i * 0.01) * 0.5;
|
||||
const bytes = await WavCodec.encode([buf], {
|
||||
sampleRate: 44_100,
|
||||
bitDepth: 16,
|
||||
format: "pcm",
|
||||
});
|
||||
await writeFile(path, bytes);
|
||||
}
|
||||
Reference in New Issue
Block a user