Commit graph

791 commits

Author SHA1 Message Date
UnknownSuperficialNight
68e1bd21c0 Pass min_attack_coeff directly 2024-09-30 20:09:05 +13:00
UnknownSuperficialNight
a8a443ba51 Enhance AGC stability and flexibility
- Increase RMS_WINDOW_SIZE for more stable measurements of very low frequencies
- Replace MIN_ATTACK_COEFF with release_coeff for improved customizability

These changes provide better handling of low-frequency content and allow
developers more control over AGC behavior, particularly in attack/release
time adjustments.
2024-09-30 19:46:46 +13:00
UnknownSuperficialNight
9bf97acfa6 Update benchmark to new default values 2024-09-30 12:44:55 +13: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
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
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
github-actions[bot]
4805661cd1
formatting 2024-08-09 12:04:06 +02:00
github-actions[bot]
7c39451138
refactor, move test dep use into test mod 2024-08-09 11:53:49 +02:00
David Kleingeld
3c18b53a47
Merge pull request #499 from iluvcapra/ramp-linear
Added linear gain filter
2024-08-09 11:50:24 +02:00
Jamie Hardt
c541f35211 Redid changelog 2024-08-05 10:09:19 -07:00
Jamie Hardt
97cf232798 Revert "Updated changelog"
This reverts commit 972147ae57.
2024-08-05 10:08:02 -07:00
Jamie Hardt
972147ae57 Updated changelog 2024-08-05 09:55:44 -07:00
Jamie Hardt
cd52071273 Revert changes to this for now 2024-08-05 09:51:08 -07:00
Jamie Hardt
9351746e0b Fixed comments 2024-08-04 18:10:45 -07:00
Jamie Hardt
52e7d4aaa8 Added a fadeout source 2024-08-04 17:07:50 -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
6ba19a649d Rustfmt 2024-08-04 16:30:20 -07:00
Jamie Hardt
8f53addbde Implemented a little fade envelope on the notes. 2024-08-04 16:28:37 -07:00
Jamie Hardt
0e3aaa9cea Moved assert_float_eq to dev-dependencies 2024-08-04 16:15:38 -07:00
Jamie Hardt
98c008d7ea Fixed try_seek() to seek from absolute start
and not the current position.
2024-08-04 14:43:39 -07:00
Jamie Hardt
5e73ffd4aa Removed a typo (I think rustfmt did this!) 2024-08-04 13:57:49 -07:00
Jamie Hardt
5056a88b9f Twiddles 2024-08-04 13:55:53 -07:00
Jamie Hardt
e581653578 Rustfmt 2024-08-04 13:46:54 -07:00
Jamie Hardt
e72de34a93 Implemented linear_ramp_seek tests
Also integratd assert_float_eq
2024-08-04 13:45:35 -07:00
Jamie Hardt
78fffb4ec6 Implementing seek test 2024-08-04 13:33:44 -07:00
Jamie Hardt
5f9c521a8b Revert "Code review stuff..."
This reverts commit d5c9e0d62c.
2024-08-04 13:33:09 -07:00
Jamie Hardt
9f9a1724d4 Added assert_float_eq package. 2024-08-04 13:31:47 -07:00