Commit graph

149 commits

Author SHA1 Message Date
Petr Gladkikh
c5850ab2ed Sync Cargo.toml with master branch 2024-11-10 15:31:04 +04:00
Petr Gladkikh
2ee0a3cb7a Merge remote-tracking branch 'rust-audio/master' into init-revamp 2024-11-10 15:29:22 +04:00
Petr Gladkikh
dbd1d1f129 Remove Criterion dependency 2024-11-09 02:16:28 +04:00
dvdsk
f1eaaa4a63
release bugfix 0.20.1 2024-11-08 01:36:22 +01:00
dvdsk
be29a3f0fd
release 0.20 2024-11-08 00:00:17 +01:00
Petr Gladkikh
e82b208b7c WIP. Implementing OpenStreamBuilder 2024-11-07 01:15:58 +04:00
dvdsk
48408bcfa6
AGC: adds inner and inner_mut & uses those in example
This removes the use of AGC's experimental atomic bool controls in
favor of the already stable periodic_access method of control.

The disadvantage is that periodic_access is significantly more difficult
for most users to undestand. It requires understanding of how closures
work with ownership and threading primitives like Atomics & Arc.
2024-10-17 22:41:38 +02:00
David Kleingeld
71d9a6d222
Merge pull request #632 from UnknownSuperficialNight/feature/automatic-gain-control-example
Add AGC example
2024-10-17 22:21:15 +02:00
joseLuís
1df14257ba remove thiserror dependency 2024-10-17 13:33:33 +02:00
UnknownSuperficialNight
34b5585061 Remove 'dep:' in Cargo.toml testing 2024-10-06 21:40:26 +13:00
UnknownSuperficialNight
ee980bc5cf Add automatic_gain_control to Cargo.toml examples 2024-10-06 16:14:49 +13:00
UnknownSuperficialNight
fd94703dc7 Merge branch 'master' into feature/automatic-gain-control 2024-10-02 04:42:23 +13:00
UnknownSuperficialNight
3ce64ef53f Add experimental flag to enabled dynamic controls 2024-10-02 04:31:16 +13:00
UnknownSuperficialNight
3e4bf8b12b Implement thread-safe parameter control for AGC using AtomicF32
- Replace static parameters with AtomicF32 for thread-safe access
- Add methods to get Arc<AtomicF32> for release_coeff, attack_coeff, absolute_max_gain, and target_level
- Enable real-time modification of AGC parameters during playback
- Use Ordering::Relaxed for optimal low-latency performance
- Remove set_* methods in favor of direct atomic access
- Update internal methods to use atomic loads consistently

This change allows for dynamic adjustment of AGC parameters
without interrupting audio playback, improving real-time control
and responsiveness of the Automatic Gain Control system.
2024-10-01 20:29:22 +13:00
Jamie Hardt
09c5f31435 Merge branch 'master' of https://github.com/RustAudio/rodio into synth-waveforms 2024-09-29 15:44:13 -07:00
github-actions[bot]
97befac520
Adds benchmarks for effects and type conversions
Benchmarks use the music.wav file, we use *divan* as benchmark harnass.
The time needed to load the wav file is excluded from the benchmark
by preparing the data into a special test Source. That source also
enables converting between formats.

In the future *divan* will add support for structured (json) output.
Then we could integrate with the bencher service to generate benchmark
reports for all PR's and keep a timeseries of performance.
2024-09-29 01:58:31 +02:00
github-actions[bot]
1a7b8e5e8f
adds optional tracing 2024-09-28 02:41:44 +02:00
Jamie Hardt
0c2c1941d6 Made noise feature
Noise source and example guarded by it.
2024-08-19 17:39:25 -05:00
Jamie Hardt
a012ac1a48 Changes for code reviews 2024-08-19 17:15:27 -05:00
Jamie Hardt
a015eb49a2 Using SmallRng for white noise generation
This resolves a PR code review note and should make the source run
much faster.
2024-08-12 20:28:25 -07:00
Jamie Hardt
b6c8a7ee48 Implemented White and Pink noise generators
Need to write an example app to test them.
2024-08-11 14:13:42 -07:00
Jamie Hardt
f2f93e6947 Switched-out assert_float_eq for approx
Different macro library for testing float equality
2024-08-04 16:40:39 -07:00
Jamie Hardt
0e3aaa9cea Moved assert_float_eq to dev-dependencies 2024-08-04 16:15:38 -07:00
Jamie Hardt
9f9a1724d4 Added assert_float_eq package. 2024-08-04 13:31:47 -07:00
Keinsleif
10dd86dd6d Added symphonia feature flag 2024-07-19 08:24:16 +09:00
dvdsk
27f2b42406
release 0.19 (adds trackposition) 2024-06-29 23:13:46 +02:00
dvdsk
a3ce66009f
remove features from testing from symphonia dep 2024-06-06 23:41:09 +02:00
apolunar
3bc964737c fix formatting, error handling, and remove uneccesary features 2024-06-02 18:27:23 -05:00
apolunar
b712559418 possibly fixed m4a and mp4a playback 2024-06-01 13:44:53 -05:00
dvdsk
7cd55a1bb3
increment version (patch) and update changelog 2024-05-23 13:15:36 +02:00
dvdsk
50f0177b74
Merge branch 'master' of github.com:RustAudio/rodio 2024-05-05 10:29:28 +02:00
dvdsk
2eb6246884
release 0.18.0 2024-05-05 10:28:50 +02:00
dvdsk
1d15760f3e
The cpal version requirement is too low causing #573
Specifically cpal changed `SupportedStreamConfigRange` and made it Copy.
As that relaxes the requirements on it its a non breaking change. Rodio was
then refactored to remove the now no longer needed `.clone()` in 77c5c54. That
clone however is still needed for Rodio users with a lower cpal version. This
commit fixes that by requiring a higher cpal version.
2024-04-21 12:52:29 +02:00
dvdsk
6f1f44f04a
Merge branch 'master' into seek_runtime_err 2024-04-06 12:00:17 +02:00
dvdsk
7eb13be288
(tests) use rstest to refactor and expand seek test
This adds two dependencies, they are only needed for the test suite.
Compile time will not increase for users. The extra overhead when
running the test suite is worth it imho. The test file is significantly
shorter and there is less code duplication. A run time solution would
decrease the test interface (you would have to manually find out which
params caused the test).
2024-04-04 21:22:53 +02:00
François
4688432c4b
expose feature for shared stdcxx from cpal (#546) 2024-03-05 13:03:19 +01:00
dvdsk
470eba8328
Merge branch 'master' into seek_runtime_err 2024-01-26 21:21:34 +01:00
est31
4973f330e0
Release 0.17.3 (#522) 2023-10-23 14:50:26 +02:00
David Kleingeld
b7b5735afe
Merge branch 'master' into seek_runtime_err 2023-10-17 13:21:21 +02:00
est31
6a255fe70a
Release 0.17.2 (#518) 2023-10-17 12:41:00 +02:00
dvdsk
4237effbf4
revert to upstream non-seekable minimp3, comment out minimp3-seek support 2023-10-13 15:45:40 +02:00
dvdsk
ebebe88339
turns SeekNotSupported into a SeekError 2023-10-13 15:45:40 +02:00
dvdsk
d47842fe57
remove seek trait from source mods, added it to symphonia decoder, renamed the trait to SeekableSource 2023-10-13 15:44:43 +02:00
dskleingeld
204a3f89c9
switch to fork for cpal 2023-10-13 15:44:43 +02:00
dskleingeld
fafe4ba1af
seek implemented through SourceExt trait 2023-10-13 15:44:43 +02:00
BOB450
eda5934a20
Replace minimp3 with minimp3_fixed witch fixes a vital security flaw (#504)
See https://rustsec.org/packages/slice-deque.html and #456
2023-07-26 00:21:03 +02:00
hinto-janai
9674ea56cf
queue: add crossbeam-channel feature flag (#500) 2023-05-25 10:25:00 +02:00
Benjins-automation
8f949a81c8
Upgrade plain-HTTP links to HTTPS in Cargo.toml files (#498)
Co-authored-by: Benji Smith <6193112+Benjins@users.noreply.github.com>
2023-05-21 08:02:32 +02:00
Joe Clay
d5b9ae3467 Release 0.17.1 2023-02-25 20:45:30 +01:00
Joe Clay
4e123a6366 Disable Symphonia default features 2023-02-25 20:45:30 +01:00