andrewreeman / SpectralSuite

The Unlicense
166 stars 5 forks source link

Example of creating a new plugin #46

Closed andrewreeman closed 8 months ago

andrewreeman commented 8 months ago

@pixmusix FYI, this commit shows the name that appears in the DAW changing: https://github.com/andrewreeman/SpectralSuite/pull/46/commits/3f5900a0a62228a6999ecc43d41bd38a885fc982

pixmusix commented 8 months ago

Gotcha @andrewreeman. I'll provide an optional argument that can modify the description.

#eg
$ python3 -path ./directory/ofPlugin -name "Cool Plugin" [-description "makes noise"]
andrewreeman commented 8 months ago

Making it optional is a good idea for this 👍

pixmusix commented 8 months ago

Hi @andrewreeman

Got some working code 👍

I have a design suggestion I'd like to get your approval for. Here is an excerpt of my code which updates the plugin description

#self.swit() is a wrapper around str.replace() with error checking
def manip_description(self, dt:str) -> str:
  #dt is the contents of the Base.jucer file. Here we find the relevant tag and throw in our own data.
  dt = self.swit(dt, 
      'pluginDesc="This plugin will scramble the frequency components of a signal at a provided range and rate."',
      f'pluginDesc="{self.desc}"')
  #This return eventually is written back into the Base.jucer file.
  return dt

As requested I've pulled Base.jucer from the ./SpectralSuiteBuild folder. Note that if you ever chose to change this description in projucer : "This plugin will scramble the frequency components of a signal at a provided range and rate." it will break the excerpt above.

To solve this, I propose an uncolored directory of the relevant files (e.g. Base.jucer) that I copy from every time instead of copying from another existing plugin. What do you think? Pix

andrewreeman commented 8 months ago

That's great 👍

There's no need for the base one to actually have that description so feel free to change the original to anything you want.

Feel free to move the base plugin ones into a new folder as it's quite messy to have those in the same directory as all my existing scripts. Don't worry about breaking the existing scripts if you move it. I'll fix them later

pixmusix commented 8 months ago

There's no need for the base one to actually have that description so feel free to change the original to anything you want.

cool that's done :)

Feel free to move the base plugin ones into a new folder as it's quite messy to have those in the same directory as all my existing scripts. Don't worry about breaking the existing scripts if you move it. I'll fix them later

I can't think of a better place to put them. 🤷‍♂️ It's nice to know what your abstract base objects are and to access them easily. Up to you.

If your happy for the spectral suite object to remain your base class then we should be good. Here is the pull request. 🥳