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 格式