Tracking issue for audio engine rewrite
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 12/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- audio-video-rtc
Direzione di ricerca
This is a multi-phase tracking issue, not a single task, and it names no source files or tests. Start by reading the linked pull requests #903, #904, #905, #910, #911 and #913 and the rodio-experiments repository to see which phase is still open. Any newcomer change would need to be split out as its own issue first, so ask a maintainer which unchecked item is safe to take.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This tracks landing the changes from https://github.com/RustAudio/rodio-experiments into Rodio. This involves integrating the new rubato resampler and specializing it where possible.
Background:
For a long time we've had mysterious bugs round spans. Spans allow a source to change parameters (sample-rate and channel count) during playback. We've concluded that spans where a mistake as correctly handling audio that at any point is:
- really hard to do correctly.
- impossible to optimize well leading to bad performance.
Most audio should be converted to the playback parameters at the very start of the audio pipeline. To make this easier we are adding two new source types. Both do not allow parameters to change, one fixes this at runtime the other needs the parameters known at compile time.
Approach
This is a large overhaul at around 7700 lines of code (ignoring docs & comments). To keep things reviewable we'll do this in reasonably sized PRs of around 500 lines. Help is greatly appreciated!
Phase one
Implementation in: #903 and #904
- land const source
- remove experimental from fixed source
- land try-into adaptors/convertors between sources (others in phase two)
- note overhaul in Readme
- land most basic generators
Phase two
Implementation in: #905 and #910
- channel conversions
- resampler and integrate with rubato
Phase three:
Implementation in: #911
- land one effect and pure_effect! macro
- land all other effect
- deprecation warning on effects in DynamicSource that are not sound
Phase four
- add new combinators [a, b, c].mixed() etc.
- add all generators (noise etc, function gen. etc)
Phase five
- rename current source to dynamic source
- add Source = DynamicSource type alias with deprecation warning
- Remove placeholders
Phase six
- port all examples
- re-add controls to automatic gain control
- rewrite Rodio main docs
- update porting guide (needs to be really nice this time :3 )
- prepare and make announcements
Small chores
- check the new queues for: https://github.com/RustAudio/rodio/pull/913
Open Questions
- Do we deprecate Source in favor of DynamicSource?
- Do cons sources and the ConstSource trait get default generics?
- Lingua principale
- Rust
- Stelle
- 2.5k
- Fork
- 338
- Merge medio
- 1g 3h
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di RustAudio/rodio
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 73/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
-
WavDecoder::size_hint underflows (u32 wrap, ~4.29e9) after EOF, causes multi-GB Vec::collect() allocationForse già presa @marin-m l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di RustAudio/rodio
Issue simili
-
muse P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
HerringtonDarkholme/hd-lang#923 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
longbridge/gpui-kit#3712 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation enhancement SIEM
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ADORSYS-GIS/wazuh-agent-status#265 ·
I maintainer di solito rispondono entro 2 giorni
-
documentation enhancement SIEM
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
[Feature] 数据表查询结果转置后显示字段注释Apertaai-priority/P2 enhancement user-priority/P0
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno