Adopt a higher quality resampler
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- rust
- Lĩnh vực
- audio-video-rtc
Hướng nghiên cứu
Read the existing SampleRateConverter implementation and the linked discussions in #584 and #316 to understand the current resampler and its audio quality issues. Compare the proposed Rubato, rust-samplerate, and dasp-interpolate options, including their floating point sample requirements and resource tradeoffs. Done means users can choose a higher quality resampler while retaining the current fast option; an optional low-pass filter is also suggested.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Currently implemented sample rate converter uses simple linear interpolation algorithm and is prone to producing high frequency noise in output. See for example #584 and #316 related to the resampler implementation. However the algorithm is fast and requires little resources, so we should keep it at least as an option.
We should integrate an existing sample rate converter and let users to pick a resampler implementation depending on their needs. A simple optional low-pass filter may be also implemented as post-processing step for existing Rodio's SampleRateConverter to improve its audio quality.
It seems that there are 2 implementations that we can use:
- Rubato
- rust-samplerate which uses C bindings to libsamplerate
- Maybe dasp-interpolate
Note that all of these libraries process only floating point samples.
- Ngôn ngữ chính
- Rust
- Star
- 2.5k
- Fork
- 338
- Merge trung bình
- 1 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của RustAudio/rodio
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 73/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
-
WavDecoder::size_hint underflows (u32 wrap, ~4.29e9) after EOF, causes multi-GB Vec::collect() allocationCó thể đã có người làm @marin-m đã nhận 3 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Tất cả issue của RustAudio/rodio
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
haowjy/mars-agents#295 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
rivetkit 3.0: HTTP 400 overloaded on node pool upsert is treated as fatal and exits the processĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
rivet-dev/rivet#5933 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-verification
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
EchoTools/nevr-runtime#1272 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add a `--skip-readme` option to `gleam new`Có thể đã có người làm @mine-tech-oficial đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
gleam-lang/gleam#6458 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày