JOS 320C Project
- Make my first "meta plugin" that writes out files for other plugins to read
- Learn how to make better GUIs for plugin Editors
- Look at some 220C projects for general orientation on project reporting
- Read ahead in the course schedule to learn about GUI options
- Decide on a file format: XML? Plain text? Encrypted?
- I am starting with plain text, and planning to include a hash string generated by a secret algorithm to detect modification if/when needed
- I am now reading all GUI-related JUCE tutorials that are new since I last looked
- JUCE GUI Editor used (very quick)
- Band-setting sliders will be programmatically laid out dynamically
- Later planning to draw the T60 curve directly, like many EQ interfaces these days
- Configured for waveguide string loop filter
- Can also be used to design late reverb
- Changed name T60Designer to LoopFilterDesigner
- Letting go of Reverb case for now (planning a separate plugin)
- Created LoopFilterDesignerGUI from T60DesignerGUI and added a Tabbed Component
- Moved T60DesignerGUI to Tab 1
- Created a new IRDesignerGUI for Tab 2
- Revised GUI prototype with Tab 1 and 2 selected, respectively:
- Started prototyping the GUI again, this time in PGM
- PGM a little harder to work with at this point, but run-time editing is huge, and XML GUI description much better
- Remade GUI in PGM and changed its layout a bit:
- The reason for making the plot more prominent at the top is to facilitate direct manipulation, as in the EqualizerExample
- Now there is no need to show all the band design parameters (which requires programmatic layout)
- Due to bug(s), I cannot create Classes in PGM (for editing groups of widgets all at once)
- I am suspending efforts on GUI development and moving to implementations under the hood
- I reported the bugs and may eventually work to debug PGM in order to resume GUI development
- Discovered that it is super easy to edit the .xml of a PGM GUI - faster than using PGM itself!
- Pulled in the PGM EqualizerExample GUI as the starting point for my editable T60 GUI Plot:
- In Emacs, changed `parameter="string"' to `<!-- parameter="string"-->' in the .xml for now, so it will load without errors
- Getting into the .xml showed me differences that led to working class-editing!
- Apparently it is necessary to define some number of Nodes before Classes will work.
- (I copied the Node definitions from EqualizerExample/Resources/magic.xml into my .xml)
See the jos directory of the 320C-2021 GitLab project which can be cloned as follows:
git clone email@example.com:jos/320C-2021.git
Loop Filter Designer Help
- Loop Filter Designer is an audio plugin that designs, tests, and exports digital filters to other compatible audio plugins.
- The filter design is specified as the desired decay-time in each frequency band.
- Decay time is specified by T60, which means "time in seconds to decay by 60 dB" (a term commonly used when studying reverberation).
- Presently the only filter type is a String Loop Filter (loop filter used in a digital waveguide string model)
- The same approach can be used to design Late Reverberator (feedback filter used to simulate air absorption in an acoustic wave propagation model)
Test Pluck Help
When T60 Designer is configured to design a "String Filter", then the "Tester" panel in the lower-right corner provides a Pluck button for hearing the sound of a plucked waveguide string using the loop-filter designed by T60 Designer. When you like what you hear, you can Save it out as a Preset that any compatible plugin can use.