Chowdhury-DSP / BYOD

Build-your-own guitar distortion!
GNU General Public License v3.0
429 stars 22 forks source link

[Question] How to set processor custom LookAndFeel? #271

Closed butchwarns closed 1 year ago

butchwarns commented 1 year ago

Following the instructions given in the guide on creating a new processor, I ran into an issue trying to apply a custom LookAndFeel. The Readme states, that the uiOptions.lnf should be set, but it doesn't seem to be existent. In the processor base class I was able to find a virtual function, that might be the up-to-date way of doing this. Unfortunately I wasn't able to get it to work by just overriding the function and returning the lnf from the shared lnfAllocator.

Could you maybe give me a hint on where I went wrong?

Many thanks!

-Butch

jatinchowdhury18 commented 1 year ago

Hi Butch,

Apologies for not keeping the documentation up-to-date, I'll make sure that gets fixed shortly.

Overriding BaseProcessor::getCustomLookAndFeel() is the correct way to get a custom look and feel for your processor, and using the SharedLNFAllocator is the right thing to do as well.

My guess as to what's going on is that the methods being overridden in your custom LookAndFeel maybe aren't being used by the processor UI, so it seems like the lnf isn't being set? In particular, if you want to change how the sliders look for your processor, you're going to want to derive from ProcessorLNF, and override the createSlider() method.

If you're able to share a branch or some example code, I'd be happy to take a look at it!

butchwarns commented 1 year ago

Hi Jatin,

thanks a lot for pointing me in the right direction! I think I got it now. I spent the weekend implementing a dual resonating four-pole filter based on the transistor-ladder structure - modeled virtual analog style by the topology-preserving transform method.

If you feel like checking it out, it is here: Ladder Filter BYOD Fork

The processor itself is already fully there, just lacking some eye candy. (Will see what I can come up with after work.)

I would be more than happy to contribute the processor to the BYOD project, if it is something you can see being useful!

-Butch

jatinchowdhury18 commented 1 year ago

Cool stuff! Yeah, the new processor would definitely be a welcome contribution. I was able to test out the changes on your fork today, and it's sounding quite nice :). Feel free to make a pull request whenever you're happy with it, and I can take a closer look at the code.

butchwarns commented 1 year ago

That's great to hear :) I will leave the GUI updates aside for when I find time and inspiration, but will create a PR for the processor as such now. And of course, feel free to tell me if anything needs changing or could be improved upon. Many thanks! -Butch