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