Commit graph

971 commits

Author SHA1 Message Date
Jamie Hardt
b373f5253a Moved "noise" feature documentation
...into the previous "Optional Features" block
2024-09-29 16:02:07 -07:00
Jamie Hardt
09c5f31435 Merge branch 'master' of https://github.com/RustAudio/rodio into synth-waveforms 2024-09-29 15:44:13 -07:00
Jamie Hardt
56fcce74f3 Fixed a typo from @UnknownSuperficialNight 2024-09-29 15:40:36 -07:00
UnknownSuperficialNight
beeacf6e4a Added agc to CHANGELOG.md 2024-09-29 19:07:30 +13:00
UnknownSuperficialNight
1d2a6fdc94 Removed bullet point from docs 2024-09-29 15:52:33 +13:00
UnknownSuperficialNight
f4bb729235 Added benchmark for agc and inlines 2024-09-29 15:03:58 +13:00
UnknownSuperficialNight
d4a09f3f0b Merge branch 'master' into feature/automatic-gain-control 2024-09-29 13:40:12 +13:00
UnknownSuperficialNight
28b3c4b80c Removed MAX_PEAK_LEVEL now uses target_level as intended and styled documentation 2024-09-29 13:36:55 +13:00
github-actions[bot]
2e5fc2e312
fmt 2024-09-29 02:00:59 +02: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]
a4e12d09b3
add section on features, decribe tracing feature 2024-09-28 13:59:15 +02:00
UnknownSuperficialNight
ce3d7e0bd2 Optimize AGC with CircularBuffer and enhance functionality
- Replace Vec-based RMS calculation with efficient CircularBuffer
- Add separate release_time for asymmetric gain control
- Implement MAX_PEAK_LEVEL constant to prevent clipping
- Revise gain calculation logic:
  • Separate RMS and peak gain calculations
  • Use RMS for general adjustments, peak for limiting
  • Implement smoother transitions between gain levels
  • Improve handling of edge cases (e.g., zero RMS)
- Improve code organization and documentation
2024-09-28 23:47:34 +12:00
UnknownSuperficialNight
d9f7967fd2 Better document comments for docs.rs 2024-09-28 17:19:13 +12:00
UnknownSuperficialNight
1b27bcd335 Add debug logging for AGC current gain value 2024-09-28 13:52:42 +12:00
UnknownSuperficialNight
9497f5c9c2 Merge branch 'master' into feature/automatic-gain-control 2024-09-28 13:23:52 +12:00
github-actions[bot]
95a466e03a
use tracing (if enabled) for stream error + sink fmt 2024-09-28 02:44:58 +02:00
github-actions[bot]
1a7b8e5e8f
adds optional tracing 2024-09-28 02:41:44 +02:00
UnknownSuperficialNight
97636d163e Add author credit to AGC implementation 2024-09-28 11:15:46 +12:00
UnknownSuperficialNight
611055c62d Enhance AGC with asymmetric attack/release and safety limits
- Implement asymmetric attack/release
- Introduce MIN_ATTACK_TIME limit to prevent AGC instability
- Clamp attack_time to prevent instability
- Faster decrease, slower increase for smoother sound
- Safeguard against extreme gain fluctuations
2024-09-27 15:27:35 +12:00
UnknownSuperficialNight
6b62544cde Added simple flag to enable the debug temporarily during development 2024-09-27 13:04:48 +12:00
UnknownSuperficialNight
625d0f27b5 Updated comments, refactored logic & added more member functions for simplicity 2024-09-27 10:35:44 +12:00
UnknownSuperficialNight
85bfcbd40c Init commit for automatic_gain_control 2024-09-27 06:41:08 +12:00
github-actions[bot]
58b61f66ff
Doc/Api note that a returning None means the end of the sound 2024-09-24 23:35:06 +02:00
Petr Gladkikh
dd1edbb11d WIP, simplify output stream initialization 2024-09-24 01:01:10 +04:00
github-actions[bot]
e116660568
docs: add missing + fix docs in wrong place 2024-09-17 00:06:23 +02:00
github-actions[bot]
22d90e71d8
Docs: Added where missing corrected where wrong
Specifically the documentation for
 - UniformSourceIterator was incomplete it did not mention that it can
   change the sample type
2024-09-16 18:52:19 +02:00
github-actions[bot]
70c236c7ac
docs: fixes spatial source & sink description (was wrong & missing) 2024-09-16 12:23:17 +02:00
Jamie Hardt
cde724a429 Removed white space for rustfmt 2024-09-15 13:29:15 -07:00
Jamie Hardt
c912f567a6 Removed white space for rustfmt 2024-09-15 13:26:43 -07:00
Jamie Hardt
28b7fc1ce6 Merge branch 'master' of https://github.com/RustAudio/rodio into synth-waveforms 2024-09-15 13:23:32 -07:00
Jamie Hardt
f3e77f43ec Removed try_seek() from chirp. 2024-09-14 09:39:02 -07:00
Jamie Hardt
e060bdd35c Implemented chirp generator 2024-09-14 09:32:51 -07:00
David Kleingeld
6bfd840de6
Merge pull request #608 from lautarodragan/master
Optimistic update to controls.position in try_seek
2024-09-05 17:58:19 +02:00
taro
7fc5bd05d1 Optimistic update to controls.position in try_seek:
- Add entry in CHANGELOG.md
- `cargo fmt`
2024-09-05 11:46:25 -03:00
taro
2c95f1a00e Optimistic update to controls.position in try_seek 2024-09-05 02:53:47 -03: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
59a5b12367 Several code review fixes 2024-08-19 17:14:06 -05:00
Jamie Hardt
87cd605d73 More documentation, WhiteNoise creation option. 2024-08-15 01:32:46 -07:00
Jamie Hardt
0907857501 Documentation updates 2024-08-15 01:01:53 -07:00
Jamie Hardt
56d087afbc Renamed Synth to Test
Modules, files and types renamed
2024-08-15 00:33:02 -07: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
84a008dd27 Added noise_generator example 2024-08-11 15:28:15 -07:00
Jamie Hardt
1eabb212ac Some clippy and style changes 2024-08-11 14:29:24 -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
2783904715 Dumb typo on sine sample rate 2024-08-09 20:17:42 -07:00
Jamie Hardt
7d4c9d78fa Implemented sine source as a Synth 2024-08-09 18:46:44 -07:00
Jamie Hardt
107454efde Implementation of synth waveforms, tests 2024-08-09 12:54:41 -07:00
Jamie Hardt
eef2edaa3d Recent synth changes caught up with master
...and upstream.
2024-08-09 12:40:46 -07:00
Jamie Hardt
8b08d1209a Merge branch 'master' of https://github.com/RustAudio/rodio into synth-waveforms 2024-08-09 12:39:37 -07:00