# av.audio 库模块帮助文档

<details>  <summary>说明</summary>  <p>
av.audio - 音频合成、效果、混音与响度分析

音频以 av.audio.clip 表示：float32 平面 PCM（1 或 2 声道），默认 48000Hz。
所有时间参数单位为秒；频率参数可写 Hz 数值或音名（"A4"、"C#5"）；
可自动化的参数可写数值、曲线点表 {{时间,值[,形状]},...} 或函数 function(t){}。
曲线形状（写在段末点上）：省略为线性，"exp" 指数（适合频率），"hold" 阶跃，"sine" S 形，
数值为曲率（负数先快后慢，适合衰减；正数先慢后快，适合渐强）。
DSP 内核见 av.audio.dsp（C 函数，预编译 DLL 内存加载）。随机性全部来自 seed，同样的参数总是得到同样的声音。
</p></details>

## av.audio 成员列表 <a id="av.audio" href="#av.audio">&#x23;</a>

音频合成、效果、混音与响度分析（float32 平面 PCM，DSP 内核为预编译 C DLL）

### av.audio.adsr(a,d,s,r,dur) <a id="av.audio.adsr" href="#av.audio.adsr">&#x23;</a>
ADSR 包络曲线点表（秒）；指定总时长 dur 时在 dur-r 处开始释放

### av.audio.ampToDb(amp) <a id="av.audio.ampToDb" href="#av.audio.ampToDb">&#x23;</a>
线性增益转 dB，0 返回 -200

### av.audio.clip() <a id="av.audio.clip" href="#av.audio.clip">&#x23;</a>
[返回对象:avAudioClipObject](#avAudioClipObject)

### av.audio.clip(duration,channels,sampleRate) <a id="av.audio.clip" href="#av.audio.clip">&#x23;</a>
创建静音片段：duration 秒，channels 为 1（默认）或 2，sampleRate 默认 av.audio.sampleRate

### av.audio.control(value,n,sampleRate,t0,map) <a id="av.audio.control" href="#av.audio.control">&#x23;</a>
把数值、曲线点表或函数渲染为 float32 控制缓冲区，数值返回 null

### av.audio.dbToAmp(db) <a id="av.audio.dbToAmp" href="#av.audio.dbToAmp">&#x23;</a>
dB 转线性增益

### av.audio.freq(note) <a id="av.audio.freq" href="#av.audio.freq">&#x23;</a>
音名（如 "A4"、"C#5"、"Bb3"）或频率转频率 Hz

### av.audio.kweighting(sampleRate) <a id="av.audio.kweighting" href="#av.audio.kweighting">&#x23;</a>
BS.1770 K 加权滤波器系数 {{b0,b1,b2,a1,a2},{...}}

### av.audio.lfo(rate,depth,center,phase) <a id="av.audio.lfo" href="#av.audio.lfo">&#x23;</a>
返回正弦 LFO 曲线函数：center + depth·sin(2π·rate·t)

### av.audio.load() <a id="av.audio.load" href="#av.audio.load">&#x23;</a>
[返回对象:avAudioClipObject](#avAudioClipObject)

### av.audio.load(path,seconds) <a id="av.audio.load" href="#av.audio.load">&#x23;</a>
读取音频文件为 av.audio.clip：WAV、MP3、M4A/AAC、WMA、MP4/MOV 音轨等。  
采样率总是 av.audio.sampleRate（其他采样率由系统重采样），1 或 2 声道（多声道混缩为立体声）。  
可选参数 seconds 只读取开头若干秒。失败返回 null,错误信息

### av.audio.midi(note) <a id="av.audio.midi" href="#av.audio.midi">&#x23;</a>
音名转 MIDI 音高，例如 "C4" 返回 60

### av.audio.mtof(midi) <a id="av.audio.mtof" href="#av.audio.mtof">&#x23;</a>
MIDI 音高转频率

### av.audio.perc(attack,decay,curve) <a id="av.audio.perc" href="#av.audio.perc">&#x23;</a>
打击型包络曲线点表：起音 attack 秒到 1，再用 decay 秒衰减到 0，曲率默认 -4

### av.audio.random01(a,b,c) <a id="av.audio.random01" href="#av.audio.random01">&#x23;</a>
确定性哈希，返回 [0,1) 的数

### av.audio.sampleRate <a id="av.audio.sampleRate" href="#av.audio.sampleRate">&#x23;</a>
默认采样率，48000

## avAudioClipObject 成员列表 <a id="avAudioClipObject" href="#avAudioClipObject">&#x23;</a>

### avAudioClipObject.amp(value,opt) <a id="avAudioClipObject.amp" href="#avAudioClipObject.amp">&#x23;</a>
乘以系数或包络曲线

### avAudioClipObject.analyze() <a id="avAudioClipObject.analyze" href="#avAudioClipObject.analyze">&#x23;</a>
综合指标：peak,truePeak,rms,lufs,momentaryMax,shortTermMax,dc,clipped,start,end

### avAudioClipObject.anchor <a id="avAudioClipObject.anchor" href="#avAudioClipObject.anchor">&#x23;</a>
锚点（秒）：混入时对齐到指定时间的位置，如冲击点、上升音效的结束点

### avAudioClipObject.bands() <a id="avAudioClipObject.bands" href="#avAudioClipObject.bands">&#x23;</a>
分频段能量占比 {low,mid,high,air,centroid}

### avAudioClipObject.bp(freq,q,opt) <a id="avAudioClipObject.bp" href="#avAudioClipObject.bp">&#x23;</a>
带通滤波（峰值 0dB）

### avAudioClipObject.buf <a id="avAudioClipObject.buf" href="#avAudioClipObject.buf">&#x23;</a>
各声道 float32 缓冲区数组

### avAudioClipObject.channels <a id="avAudioClipObject.channels" href="#avAudioClipObject.channels">&#x23;</a>
声道数（1 或 2）

### avAudioClipObject.chorus(opt) <a id="avAudioClipObject.chorus" href="#avAudioClipObject.chorus">&#x23;</a>
合唱：opt: rate,depth,base,mix

### avAudioClipObject.clear() <a id="avAudioClipObject.clear" href="#avAudioClipObject.clear">&#x23;</a>
清除为静音

### avAudioClipObject.compress(opt) <a id="avAudioClipObject.compress" href="#avAudioClipObject.compress">&#x23;</a>
压缩：opt: threshold,ratio,knee,attack,release,makeup,sidechain

### avAudioClipObject.copy() <a id="avAudioClipObject.copy" href="#avAudioClipObject.copy">&#x23;</a>
复制  

[返回对象:avAudioClipObject](#avAudioClipObject)

### avAudioClipObject.crush(bits,hold,opt) <a id="avAudioClipObject.crush" href="#avAudioClipObject.crush">&#x23;</a>
降位深/降采样

### avAudioClipObject.delay(time,opt) <a id="avAudioClipObject.delay" href="#avAudioClipObject.delay">&#x23;</a>
反馈延迟：opt: feedback,mix,damp,pingpong,tail

### avAudioClipObject.drive(amount,type,mix,opt) <a id="avAudioClipObject.drive" href="#avAudioClipObject.drive">&#x23;</a>
饱和失真：type 为 "tanh"、"clip"、"fold"、"tube"

### avAudioClipObject.duration <a id="avAudioClipObject.duration" href="#avAudioClipObject.duration">&#x23;</a>
时长（秒）

### avAudioClipObject.dust(density,opt) <a id="avAudioClipObject.dust" href="#avAudioClipObject.dust">&#x23;</a>
叠加随机脉冲（每秒 density 个）

### avAudioClipObject.eq(freq,db,q,opt) <a id="avAudioClipObject.eq" href="#avAudioClipObject.eq">&#x23;</a>
峰值均衡

### avAudioClipObject.extend(seconds) <a id="avAudioClipObject.extend" href="#avAudioClipObject.extend">&#x23;</a>
末尾追加静音

### avAudioClipObject.fade(fadeIn,fadeOut) <a id="avAudioClipObject.fade" href="#avAudioClipObject.fade">&#x23;</a>
淡入淡出（秒）

### avAudioClipObject.fm(freq,opt) <a id="avAudioClipObject.fm" href="#avAudioClipObject.fm">&#x23;</a>
叠加双算子 FM：opt: ratio,index（可自动化）,feedback,amp,start,dur

### avAudioClipObject.frames <a id="avAudioClipObject.frames" href="#avAudioClipObject.frames">&#x23;</a>
采样帧数

### avAudioClipObject.gain(db,opt) <a id="avAudioClipObject.gain" href="#avAudioClipObject.gain">&#x23;</a>
增益 dB（可自动化）

### avAudioClipObject.gainReduction <a id="avAudioClipObject.gainReduction" href="#avAudioClipObject.gainReduction">&#x23;</a>
最近一次 compress/limit 的最大增益衰减（dB）

### avAudioClipObject.highShelf(freq,db,opt) <a id="avAudioClipObject.highShelf" href="#avAudioClipObject.highShelf">&#x23;</a>
高架均衡

### avAudioClipObject.hp(freq,q,opt) <a id="avAudioClipObject.hp" href="#avAudioClipObject.hp">&#x23;</a>
高通滤波

### avAudioClipObject.limit(opt) <a id="avAudioClipObject.limit" href="#avAudioClipObject.limit">&#x23;</a>
限幅：opt: ceiling dB（默认 -1）,truePeak（默认 true）,lookahead,release

### avAudioClipObject.loudness() <a id="avAudioClipObject.loudness" href="#avAudioClipObject.loudness">&#x23;</a>
BS.1770 响度：返回 整合 LUFS,最大瞬时,最大短期

### avAudioClipObject.lowShelf(freq,db,opt) <a id="avAudioClipObject.lowShelf" href="#avAudioClipObject.lowShelf">&#x23;</a>
低架均衡

### avAudioClipObject.lp(freq,q,opt) <a id="avAudioClipObject.lp" href="#avAudioClipObject.lp">&#x23;</a>
低通滤波（12dB/倍频，freq 可自动化）

### avAudioClipObject.mix(src,at,opt) <a id="avAudioClipObject.mix" href="#avAudioClipObject.mix">&#x23;</a>
叠加另一个片段：src.anchor 对齐到 at 秒；opt: gain dB,pan

### avAudioClipObject.modal(freq,partials,opt) <a id="avAudioClipObject.modal" href="#avAudioClipObject.modal">&#x23;</a>
叠加模态合成：partials 为 {{倍频,幅度,衰减秒},...}；opt: decay 倍率,amp,start,dur

### avAudioClipObject.mono() <a id="avAudioClipObject.mono" href="#avAudioClipObject.mono">&#x23;</a>
立体声转单声道

### avAudioClipObject.noise(color,opt) <a id="avAudioClipObject.noise" href="#avAudioClipObject.noise">&#x23;</a>
叠加噪声：color 为 "white","pink","brown"；opt: amp,seed,mono,start,dur

### avAudioClipObject.normalize(target,mode) <a id="avAudioClipObject.normalize" href="#avAudioClipObject.normalize">&#x23;</a>
归一化：mode 为 "peak"（默认 -1dBFS）、"lufs" 或 "momentary"（默认 -16）

### avAudioClipObject.notch(freq,q,opt) <a id="avAudioClipObject.notch" href="#avAudioClipObject.notch">&#x23;</a>
陷波

### avAudioClipObject.onsets(opt) <a id="avAudioClipObject.onsets" href="#avAudioClipObject.onsets">&#x23;</a>
起音时间数组（秒）：opt: rise,floor,gap,highpass

### avAudioClipObject.osc(wave,freq,opt) <a id="avAudioClipObject.osc" href="#avAudioClipObject.osc">&#x23;</a>
叠加振荡器：wave 为 "sine","tri","saw","square"；freq 可写音名或曲线；  
opt: amp（可自动化）,pw 占空比,detune 音分,unison 齐奏声部数,spread 音分,seed,phase,start,dur

### avAudioClipObject.pad(before,after) <a id="avAudioClipObject.pad" href="#avAudioClipObject.pad">&#x23;</a>
前后补静音（秒）

### avAudioClipObject.pan(pos) <a id="avAudioClipObject.pan" href="#avAudioClipObject.pan">&#x23;</a>
声像 -1~1（单声道转立体声，可自动化）

### avAudioClipObject.pcm16(first,count,opt) <a id="avAudioClipObject.pcm16" href="#avAudioClipObject.pcm16">&#x23;</a>
转 int16 交错 PCM buffer：从第 first 帧起 count 帧；opt: channels,dither

### avAudioClipObject.peak() <a id="avAudioClipObject.peak" href="#avAudioClipObject.peak">&#x23;</a>
采样峰值 dBFS

### avAudioClipObject.pluck(freq,opt) <a id="avAudioClipObject.pluck" href="#avAudioClipObject.pluck">&#x23;</a>
叠加拨弦（Karplus-Strong）：opt: decay 秒,bright 0~1,amp,seed,start,dur

### avAudioClipObject.resize(frames) <a id="avAudioClipObject.resize" href="#avAudioClipObject.resize">&#x23;</a>
改变长度（帧）

### avAudioClipObject.reverb(opt) <a id="avAudioClipObject.reverb" href="#avAudioClipObject.reverb">&#x23;</a>
混响：opt: mix,room,damp,width,predelay,lowcut,highcut,tail

### avAudioClipObject.reverse() <a id="avAudioClipObject.reverse" href="#avAudioClipObject.reverse">&#x23;</a>
倒放

### avAudioClipObject.rms() <a id="avAudioClipObject.rms" href="#avAudioClipObject.rms">&#x23;</a>
`RMS dBFS`

### avAudioClipObject.sampleRate <a id="avAudioClipObject.sampleRate" href="#avAudioClipObject.sampleRate">&#x23;</a>
采样率

### avAudioClipObject.saveWav(path,opt) <a id="avAudioClipObject.saveWav" href="#avAudioClipObject.saveWav">&#x23;</a>
保存 WAV：opt.bits 16（默认）或 32（float）

### avAudioClipObject.slice(t0,t1) <a id="avAudioClipObject.slice" href="#avAudioClipObject.slice">&#x23;</a>
截取 [t0,t1) 秒，返回新片段  

[返回对象:avAudioClipObject](#avAudioClipObject)

### avAudioClipObject.stereo() <a id="avAudioClipObject.stereo" href="#avAudioClipObject.stereo">&#x23;</a>
单声道转立体声

### avAudioClipObject.trim(thresholdDb) <a id="avAudioClipObject.trim" href="#avAudioClipObject.trim">&#x23;</a>
去掉首尾静音

### avAudioClipObject.truePeak() <a id="avAudioClipObject.truePeak" href="#avAudioClipObject.truePeak">&#x23;</a>
真峰值 dBTP

### avAudioClipObject.width(w) <a id="avAudioClipObject.width" href="#avAudioClipObject.width">&#x23;</a>
立体声宽度
