2013-08-19 47 views
5

Đối với dự án sắp tới bằng API âm thanh trên web, tôi muốn có thể khuếch đại âm lượng của một số âm thanh.Âm thanh khuếch đại với API âm thanh web

Khi tôi đọc trong tài liệu, nút tăng gấp bội nhân tín hiệu đến bằng giá trị đạt được. Tài liệu nêu rõ rằng giá trị này nằm trong phạm vi 0 đến 1, do đó việc khuếch đại dường như không thể thực hiện được với nút tăng. Nhưng làm cách nào khác tôi có thể làm điều đó?

+0

[Thông số API Web] (https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode) dường như cho phép> 1 giá trị, nhưng triển khai có thể chọn bỏ qua các giá trị trên 1. ("Giá trị danh nghĩa' maxValue' là 1, nhưng giá trị cao hơn được cho phép. ") Cụ thể, Chrome dường như khuếch đại> 1 giá trị. Lưu ý phụ: lý do hạn chế danh nghĩa> 1 là hầu hết các bộ khuếch đại được điều khiển bằng điện áp (http://electronicmusic.wikia.com/wiki/Voltage_controlled_amplifier) ​​(VCA) không sử dụng mức tăng trên một. – apsillers

+0

Ồ, chỉ cần làm rõ: Tôi không có câu trả lời thực sự cho câu hỏi của bạn. Tôi sẽ không dựa vào trình duyệt chéo "gain> 1" không xác định (hoặc thậm chí có thể giữa các bản cập nhật trình duyệt). – apsillers

Trả lời

3

Để cụ thể hơn: như Kevin đã nói, giá trị "danh nghĩa" của một đại diện cho mức tăng thống nhất - tức là, không thay đổi. Điều đó KHÔNG giống như một phạm vi. Các triển khai PHẢI hỗ trợ các giá trị> 1 - trên thực tế, toàn bộ phạm vi của giá trị. Có nhiều kịch bản sử dụng các giá trị mở rộng thu được lớn để làm những điều thú vị và sẽ rất bị hỏng nếu triển khai không hỗ trợ điều này.

Tóm lại: sử dụng mức tăng> 1 để khuếch đại mọi thứ. Nếu bạn lo lắng về việc cắt bớt, hãy đặt một nút xử lý động lực sau đó.

1

Tôi không biết về triển khai không làm tăng mức tăng trên 1. Đó là những gì tôi đã sử dụng trong tất cả các dự án của mình và chưa gặp phải bất kỳ sự cố nào. Nếu bạn lo ngại về điều đó, tôi đoán bạn có thể sử dụng một số ScriptProcessorNode và về cơ bản chỉ nhân tất cả các mẫu của bạn với bất kỳ giá trị nào bạn muốn, nhưng hiệu suất sẽ tồi tệ hơn một chút so với đạt được nút. Và, ngoài ra, đó sẽ chỉ là phẳng ra loại vô lý.

Cách tôi đọc thông số kỹ thuật không thực sự cho tôi bất kỳ lý do gì để tin rằng các giá trị lớn hơn 1 sẽ bị bỏ qua cho tham số gain của GainNode. Về cơ bản, chỉ cần nói 1 là giá trị danh nghĩa. Nói cách khác, nếu bạn muốn âm thanh của bạn đi qua không bị ảnh hưởng, hãy đặt giá trị thành 1. Nếu không, bạn sẽ nhận được sự suy giảm hoặc khuếch đại.

Các vấn đề liên quan