Skip to content
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

Master compressor #630

Merged
merged 38 commits into from
Oct 25, 2023

Conversation

m-m-adams
Copy link
Collaborator

@m-m-adams m-m-adams commented Oct 17, 2023

RMS calculation is done in floats due to the number of sqrt/logs required, rest of the compressor is integer based on extending the existing sidechain envelopes

UI:
in song or arranger view, affect entire sidechain is a one knob compressor, lowering the threshold and auto increasing make up gain. Pressing sidechain will flash COMP, and switch to showing gain reduction on the top LED meter and input volume on the bottom. They are not identically scaled in order to make better use of the lights. While in this mode the bottom knob (reverb) adjusts the ratio, ranging from about 1/8 to infinity/brick wall limiting

Attack and release can be adjusted on the affect entire attack/release knobs since they're otherwise unused.

I have removed the community settings as there is no longer a downside to the compressor, it's approximately 10x faster than in #583
image

Todo:

  • speed up compressor
  • overhaul UI
  • save/restore settings

In a future PR I'll move this into global effectable proper so that it can properly leverage the parameter system and kits can have their own compressor as well. Currently it relies on the fallthrough method for gold knobs without params attached

@m-m-adams m-m-adams changed the base branch from community to release/1.0 October 17, 2023 13:38
@m-m-adams m-m-adams marked this pull request as ready for review October 20, 2023 18:33
@baymud
Copy link
Contributor

baymud commented Oct 21, 2023

Thanks for digging in to this! As per the video I posted on Discord, I've noticed a few things on 7SEG when testing this compressor:

  • It seems to default to maximum attack/release times when starting a new track, which seems counter intuitive
  • It also seems to default to maximum compressor amount (sidechain LEDs are off, but when I go to turn it up it jumps to fully lit and I have to reduce it)
  • LEDs in general seem to reset to off for amount, attack and release once you navigate away and back again (but it doesn't sound like it's resetting the parameters, so maybe just an LED issue)
  • Numbers on the display for the various parameters would help, especially if you ever want to recall/recreate certain settings, as right now you'd have to match the LEDs as best you could
  • The input meter is useful, but the moving LEDs make it hard to tell where you're at when adjusting the ratio (maybe a brief interruption in the input meter or just values on the display)
  • When editing ratio you can still press the encoder to change reverb size (not sure if this is a problem, or people may want it, but I found it confusing at first)

@m-m-adams
Copy link
Collaborator Author

Thanks for the feedback! Some of those I'll handle in a different PR to switch to the proper deluge parameter management system, but I'd like to get this merged to solidify the audio side before that's done

* It seems to default to maximum attack/release times when starting a new track, which seems counter intuitive

* It also seems to default to maximum compressor amount (sidechain LEDs are off, but when I go to turn it up it jumps to fully lit and I have to reduce it)

Both are bugs in the interaction between the older compressor code and this one. I'll fix in this PR

* LEDs in general seem to reset to off for amount, attack and release once you navigate away and back again (but it doesn't sound like it's resetting the parameters, so maybe just an LED issue)

Tracking but out of scope for this PR, it'll fix itself in the main deluge parameter system

* Numbers on the display for the various parameters would help, especially if you ever want to recall/recreate certain settings, as right now you'd have to match the LEDs as best you could

* The input meter is useful, but the moving LEDs make it hard to tell where you're at when adjusting the ratio (maybe a brief interruption in the input meter or just values on the display)

Will fix in this PR

* When editing ratio you can still press the encoder to change reverb size (not sure if this is a problem, or people may want it, but I found it confusing at first)

I'll fix that too, not sure if it's good or not but it seems counter intuitive

@PaulFreund
Copy link
Collaborator

Code looks good but need to get rid with that interaction with sidechain :)

@m-m-adams m-m-adams marked this pull request as draft October 24, 2023 00:08
@m-m-adams
Copy link
Collaborator Author

Gonna see if I can integrate the master comp with the 32->24 bit conversion to optimize the headroom

@m-m-adams m-m-adams marked this pull request as ready for review October 25, 2023 14:31
@PaulFreund PaulFreund merged commit 41bda54 into SynthstromAudible:release/1.0 Oct 25, 2023
2 checks passed
@PaulFreund
Copy link
Collaborator

Forgot to press approve but did review it ;)

@m-m-adams m-m-adams deleted the master_compressor branch October 25, 2023 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants