You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-3Lines changed: 22 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,21 +12,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
12
12
### Added
13
13
14
14
- Added `Skippable::skipped` function to check if the inner source was skipped.
15
+
- All sources now implement `ExactSizeIterator` when their inner source does.
16
+
- All sources now implement `Iterator::size_hint()`.
17
+
-`Chirp` now implements `try_seek`.
15
18
16
19
### Changed
17
20
18
21
- Breaking: `Done` now calls a callback instead of decrementing an `Arc<AtomicUsize>`.
19
22
- Updated `cpal` to v0.18.
23
+
- Clarified `Source::current_span_len()` documentation to specify it returns total span length.
24
+
- Explicitly document the requirement for sources to return complete frames.
25
+
- Ensured decoders to always return complete frames, as well as `TakeDuration` when expired.
26
+
- Breaking: `Zero::new_samples()` now returns `Result<Self, ZeroError>` requiring a frame-aligned number of samples.
27
+
- Improved queue, buffer, mixer and sample rate conversion performance.
20
28
21
29
### Fixed
22
30
23
31
- Fixed `Player::skip_one` not decreasing the player's length immediately.
32
+
- Fixed `Source::current_span_len()` to consistently return total span length.
33
+
- Fixed `Source::size_hint()` to consistently report actual bounds based on current sources.
34
+
- Fixed `Pausable::size_hint()` to correctly account for paused samples.
35
+
- Fixed `MixerSource` and `LinearRamp` to prevent overflow with very long playback.
36
+
- Fixed `PeriodicAccess` to prevent overflow with very long periods.
37
+
- Fixed `BltFilter` to work correctly with stereo and multi-channel audio.
38
+
- Fixed `ChannelVolume` to work correclty with stereo and multi-channel audio.
39
+
- Fixed `Brownian` and `Red` noise generators to reset after seeking.
40
+
- Fixed sources to correctly handle sample rate and channel count changes at span boundaries.
41
+
- Fixed sources to detect parameter updates after mid-span seeks.
24
42
25
43
## Version [0.22.2] (2026-02-22)
26
44
27
45
### Fixed
28
46
29
-
- Incorrectly set system default audio buffer size breaks playback. We no longer use the system default (introduced in 0.22 through cpal upgrade) and instead set a safe buffer duration.
47
+
- Incorrectly set system default audio buffer size breaks playback. We no longer use the system default (introduced in 0.22 through cpal upgrade) and instead set a safe buffer duration.
30
48
- Audio output fallback picked null device leading to no output.
31
49
- Mixer did not actually add sources sometimes.
32
50
@@ -38,6 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
38
56
## Version [0.22.1] (2026-02-22)
39
57
40
58
### Fixed
59
+
41
60
- docs.rs could not build the documentation.
42
61
43
62
## Version [0.22] (2026-02-22)
@@ -65,19 +84,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
65
84
- Added `SampleRateConverter::inner` to get underlying iterator by ref.
66
85
67
86
### Fixed
87
+
68
88
- docs.rs will now document all features, including those that are optional.
69
89
-`Chirp::next` now returns `None` when the total duration has been reached, and will work
70
90
correctly for a number of samples greater than 2^24.
71
91
-`PeriodicAccess` is slightly more accurate for 44.1 kHz sample rate families.
72
92
- Fixed audio distortion when queueing sources with different sample rates/channel counts or transitioning from empty queue.
73
93
- Fixed `SamplesBuffer` to correctly report exhaustion and remaining samples.
74
94
- Improved precision in `SkipDuration` to avoid off-by-a-few-samples errors.
75
-
- Fixed channel misalignment in queue with non-power-of-2 channel counts (e.g., 6 channels) by ensuring frame-aligned span lengths.
76
-
- Fixed channel misalignment when sources end before their promised span length by padding with silence to complete frames.
77
95
- Fixed `Empty` source to properly report exhaustion.
78
96
- Fixed `Zero::current_span_len` returning remaining samples instead of span length.
79
97
80
98
### Changed
99
+
81
100
- Breaking: _Sink_ terms are replaced with _Player_ and _Stream_ terms replaced
82
101
with _Sink_. This is a simple rename, functionality is identical.
83
102
-`OutputStream` is now `MixerDeviceSink` (in anticipation of future
0 commit comments