BiquadFilterNode: thuộc tính Q
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thuộc tính Q của giao diện BiquadFilterNode là một AudioParam a-rate, một số thực kép biểu diễn hệ số Q, hay quality factor.
Giá trị
Một AudioParam. defaultValue của nó là 1, và minValue cùng maxValue của nó là ±(2128 - 2104), hay xấp xỉ ±3.403e38. Đây là phạm vi của các số dấu chấm động đơn chính xác.
Phạm vi giá trị thực tế của nó phụ thuộc vào type của bộ lọc:
- Đối với
lowpassvàhighpass, giá trịQđược diễn giải theo dB. Với các bộ lọc này, phạm vi giá trị là [-Q, Q], trong đó Q là giá trị lớn nhất sao cho 10Q/20 không bị tràn vượt quá giới hạn nêu trên. Giá trị này xấp xỉ 770.63678. - Với
bandpass,notch,allpassvàpeaking, giá trịQliên quan đến băng thông của bộ lọc và nên là số dương, nhưng không có giới hạn tối đa nghiêm ngặt nào ngoài giới hạn đã nêu ở trên. - Nó không được dùng cho các bộ lọc
lowshelfvàhighshelf.
Note:
Mặc dù AudioParam được trả về là chỉ đọc, giá trị mà nó biểu diễn thì không phải.
Ví dụ
Ví dụ sau cho thấy cách dùng cơ bản của một AudioContext để tạo một nút bộ lọc Biquad. Để xem ví dụ/thông tin đầy đủ hơn, hãy tham khảo bản minh họa Voice-change-O-matic của chúng tôi (xem các dòng 108–193 trong app.js để biết phần mã liên quan).
const audioCtx = new AudioContext();
// Set up the different audio nodes we will use for the app
const analyser = audioCtx.createAnalyser();
const distortion = audioCtx.createWaveShaper();
const gainNode = audioCtx.createGain();
const biquadFilter = audioCtx.createBiquadFilter();
const convolver = audioCtx.createConvolver();
// Connect the nodes together
source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);
analyser.connect(distortion);
distortion.connect(biquadFilter);
biquadFilter.connect(convolver);
convolver.connect(gainNode);
gainNode.connect(audioCtx.destination);
// Manipulate the Biquad filter
biquadFilter.type = "lowshelf";
biquadFilter.frequency.value = 1000;
biquadFilter.gain.value = 25;
biquadFilter.type = "peaking";
biquadFilter.frequency.value = 1000;
biquadFilter.Q.value = 100;
biquadFilter.gain.value = 25;
Thông số kỹ thuật
| Specification |
|---|
| Web Audio API> # dom-biquadfilternode-q> |