-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Automatic Gain Control #621
Add Automatic Gain Control #621
Commits on Sep 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 85bfcbd - Browse repository at this point
Copy the full SHA 85bfcbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 625d0f2 - Browse repository at this point
Copy the full SHA 625d0f2View commit details
Commits on Sep 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6b62544 - Browse repository at this point
Copy the full SHA 6b62544View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 611055c - Browse repository at this point
Copy the full SHA 611055cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 97636d1 - Browse repository at this point
Copy the full SHA 97636d1View commit details
Commits on Sep 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9497f5c - Browse repository at this point
Copy the full SHA 9497f5cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1b27bcd - Browse repository at this point
Copy the full SHA 1b27bcdView commit details -
Configuration menu - View commit details
-
Copy full SHA for d9f7967 - Browse repository at this point
Copy the full SHA d9f7967View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for ce3d7e0 - Browse repository at this point
Copy the full SHA ce3d7e0View commit details
Commits on Sep 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 28b3c4b - Browse repository at this point
Copy the full SHA 28b3c4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d4a09f3 - Browse repository at this point
Copy the full SHA d4a09f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for f4bb729 - Browse repository at this point
Copy the full SHA f4bb729View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d2a6fd - Browse repository at this point
Copy the full SHA 1d2a6fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for beeacf6 - Browse repository at this point
Copy the full SHA beeacf6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bf97ac - Browse repository at this point
Copy the full SHA 9bf97acView commit details
Commits on Sep 30, 2024
-
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.
Configuration menu - View commit details
-
Copy full SHA for a8a443b - Browse repository at this point
Copy the full SHA a8a443bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68e1bd2 - Browse repository at this point
Copy the full SHA 68e1bd2View commit details -
Add real-time toggle for AGC processing
Implement get_agc_control() to allow dynamic enabling/disabling of AGC during audio playback.
Configuration menu - View commit details
-
Copy full SHA for 2442aa0 - Browse repository at this point
Copy the full SHA 2442aa0View commit details -
Configuration menu - View commit details
-
Copy full SHA for b59533e - Browse repository at this point
Copy the full SHA b59533eView commit details -
Enhance automatic_gain_control documentation
- Add references to get_agc_control method in automatic_gain_control docs - Include a quick start example demonstrating usage of get_agc_control
Configuration menu - View commit details
-
Copy full SHA for 42fe832 - Browse repository at this point
Copy the full SHA 42fe832View commit details
Commits on Oct 1, 2024
-
Refactor CircularBuffer to use heap allocation to avoid large stack u…
…sage - Updated CircularBuffer implementation to allocate on the heap instead of the stack to prevent excessive stack usage (32KB) which can lead to stack overflow issues. - Optimized index wrapping logic using bitwise operations, leveraging the fact that RMS_WINDOW_SIZE is a power of two for improved efficiency.
Configuration menu - View commit details
-
Copy full SHA for 86cb156 - Browse repository at this point
Copy the full SHA 86cb156View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 3e4bf8b - Browse repository at this point
Copy the full SHA 3e4bf8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for cb85bce - Browse repository at this point
Copy the full SHA cb85bceView commit details -
Configuration menu - View commit details
-
Copy full SHA for db0bfb0 - Browse repository at this point
Copy the full SHA db0bfb0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ce64ef - Browse repository at this point
Copy the full SHA 3ce64efView commit details -
Configuration menu - View commit details
-
Copy full SHA for fd94703 - Browse repository at this point
Copy the full SHA fd94703View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2ee86e - Browse repository at this point
Copy the full SHA e2ee86eView commit details -
Configuration menu - View commit details
-
Copy full SHA for ef60286 - Browse repository at this point
Copy the full SHA ef60286View commit details -
Configuration menu - View commit details
-
Copy full SHA for af210a6 - Browse repository at this point
Copy the full SHA af210a6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2610a27 - Browse repository at this point
Copy the full SHA 2610a27View commit details
Commits on Oct 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f8cf3c5 - Browse repository at this point
Copy the full SHA f8cf3c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ce1fff - Browse repository at this point
Copy the full SHA 5ce1fffView commit details -
Configuration menu - View commit details
-
Copy full SHA for bdbc159 - Browse repository at this point
Copy the full SHA bdbc159View commit details