Waveform
Dạng sóng (Biểu diễn Trực quan Âm thanh)
Đồ thị trực quan cho thấy cách biên độ tín hiệu âm thanh thay đổi theo thời gian, được hiển thị dưới dạng đường dao động hoặc hình dạng được tô biểu thị độ to và động lực của âm thanh tại mỗi thời điểm.
Chi tiết kỹ thuật
Dạng sóng vẽ thời gian trên trục x và biên độ trên trục y, thường hiển thị các giá trị mẫu PCM thô hoặc đường bao RMS (Root Mean Square) của chúng. AnalyserNode của Web Audio API cung cấp dữ liệu miền thời gian thời gian thực thông qua getTimeDomainData() cho trực quan hóa trực tiếp. Đối với dạng sóng tĩnh (kiểu hiển thị SoundCloud), âm thanh được chia thành các đoạn, mỗi đoạn được giảm thành giá trị biên độ tối thiểu/tối đa tạo nên chiều cao thanh. Canvas hoặc SVG render vẽ các giá trị này dưới dạng thanh dọc hoặc đường dẫn liên tục. Âm thanh stereo hiển thị dạng sóng riêng biệt cho mỗi kênh hoặc chế độ xem mono kết hợp.
Ví dụ
```javascript
// Waveform: Web Audio API example
const audioCtx = new AudioContext();
const response = await fetch('audio.mp3');
const buffer = await audioCtx.decodeAudioData(await response.arrayBuffer());
const source = audioCtx.createBufferSource();
source.buffer = buffer;
source.connect(audioCtx.destination);
source.start();
```