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

Smooth muff #244

Merged
merged 14 commits into from Dec 3, 2022
Merged

Smooth muff #244

merged 14 commits into from Dec 3, 2022

Conversation

x31eq
Copy link
Contributor

@x31eq x31eq commented Nov 25, 2022

This adds a parameter to change the value on the capacitors used in the feedback loop for the Muff Drive. It's required to emulate different Big Muff Pi variants and I think it allows some really good sounds.

The functional change is very simple and I may have done everything else wrong. Feel free to re-write it as you like.

I've also put a comment in the README about building. I found it on Debian 5 and it took a while to work out how to disable the Clap build, which I didn't need and fixes the problem.

@jatinchowdhury18
Copy link
Contributor

This is super cool, thanks for submitting the PR! I'd like to give it a try with my guitar before merging just get a sense of what it sounds like, but the overall implementation looks solid.

That said, one thing that I might want to change would be to use some sort of parameter smoothing (e.g. chowdsp::SmoothedBufferValue), just to make sure there's no artifacts when quickly changing that parameter. Looks like I'll also have to take a look at the CI pipelines since those are failing because of some token issues.

Thanks for mentioning the CMake version thing as well... The README note is a good idea, but I wonder if I should also make some changes to the CMake configuration, like bumping the CMake required version or adding some warning messages.

Anyway, I'd be curious which Big Muff Pi variants have different feedback capacitors? Maybe that's something we could make a couple of presets out of.

Also, feel free to add yourself to the AUTHORS list, if you'd like!

@x31eq
Copy link
Contributor Author

x31eq commented Nov 27, 2022 via email

@jatinchowdhury18
Copy link
Contributor

Did some play testing just now and I think this change is sounding really cool! It definitely opens up some different aspects of the sound, especially at the extreme settings.

I just went ahead and added some parameter smoothing. I also changed the parameter to be a "bipolar" percent parameter (i.e. [-100, 100] instead of [0, 100]), so that when the parameter is at 0%, the sound has no change relative to how the module sounded before. Does that seem okay to you? I'm not particularly tied to doing it either way.

Please don't bump the required version, because that'll break the
whole build on a lot of standard distributions. Auto-disabling Clap
with a warning would be better.

Ah, that's a good point. I was able to get CMake to show a warning on lower CMake version, but I'll see if I can get auto-disabling working as well.

Thanks for sharing the info about the Big Muff variants as well... I'm not exactly sure what would make sense to do with the presets, since the current "Big Muff" preset has the capacitor at 470pf (closest to the Triangle variant, I got the value from a DAFx paper and I don't remember which variant they were looking at off the top of my head), along with the tone circuit component values from the Ram's Head. So maybe we could make a preset for the Russian variant, but I feel like it would be tough to make a Triangle or Ram's Head preset that would be different enough from the current preset.

Another point to note is that, given real engineering tolerances, the
hardware pedals wouldn't have been made with identical capacitors on
both stages.

This is a really good point as well and is perfectly in line with the philosophy of BYOD :). Having the cap value as a parameter is definitely a cool way to let folks make use of that sort of variation as well.

@x31eq
Copy link
Contributor Author

x31eq commented Nov 29, 2022 via email

@jatinchowdhury18
Copy link
Contributor

Oh nice, thanks for the extra info on the different cap values! I totally understand spending all day on this sort of thing, since that's exactly what I did with the Muff Tone module :).

How's this for a few different presets:

  • "Big Muff" -> same as what's currently in the plugin
  • "Big Muff (Triangle)" -> 500pf + Triangle tone circuit
  • "Big Muff (Ram's Head 56)" -> 560 pf + Ram's Head '73 tone circuit
  • "Big Muff (Russian)" -> 430pf + Russian toen circuit

@x31eq
Copy link
Contributor Author

x31eq commented Nov 29, 2022 via email

@x31eq
Copy link
Contributor Author

x31eq commented Nov 30, 2022 via email

@jatinchowdhury18
Copy link
Contributor

Cool I just added the new presets! If CI passes, and you're okay with everything, then I'll probably go ahead and merge this PR.

  • I run with a boost because the level my guitar comes in to the
    computer doesn't match the level the plugin's expecting
  • I happen to keep my effects settings on github if you want a look at them

Yeah, the input level thing is always a bit tricky... the way I usually do it is to have the "Input Gain" (on the bottom bar) set to +9 dB (or a different value if I'm using a guitar other than my own), or if I'm in a DAW maybe I'll have some plugin earlier in the signal chain that gets the level to where I want it to be. The idea with the "Input Gain" is that it's not saved/loaded as part of any presets, so I can flip through presets without having to worry about always adding some extra input gain.

Yeah, your effects settings look pretty nice! If you'd like to have any of them included as factory presets, just let me know. (We can do that in a new PR).

@jatinchowdhury18 jatinchowdhury18 merged commit daa1f2c into Chowdhury-DSP:main Dec 3, 2022
@x31eq
Copy link
Contributor Author

x31eq commented Dec 7, 2022 via email

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.

None yet

2 participants