Comment 6 for bug 1707961

Revision history for this message
Be (be.ing) wrote : Re: save, load, import, and export custom effect chains

In implementing post fader effects, I realized this actually won't be very easy to implement because there are major architectural issues with the main thread side of the effects system that should be taken care of before implementing this. Here is a brief outline of my thoughts at the moment. I'm only putting these here so I don't forget them. I will not discuss these until after 2.1 beta is released:

1. Remove the confusing EffectRack layer. Current EffectRack subclasses will become EffectUnit subclasses.

2. Consolidate Effect*/Effect*Slot classes. XML saving and loading as well as initialization should be greatly simplified by this.

3. Remove confusing and highly error-prone capability of having an Effect* main thread class that is not connected to an EngineEffect* class loaded in the engine. Do this by removing addToEngine/removeFromEngine methods from Effect* classes and adding EngineEffect* classes to engine in constructors of Engine* main thread classes. EngineEffect* classes can be destroyed by EngineEffectsManager on shutdown. This may need to be done concurrently with 2.

4. Rename all mentions of EffectChains to EffectUnits.

5. Thoroughly think through UX design for saving and loading effect chain presets to clarify how naming, saving, switching, importing, and exporting chain presets should work.

6. Create a new QComboBox subclass for a skin widget like WEffectSelector for selecting effect chain presets. Introduce a new class for managing effect chain presets and have EffectUnit interface with it.

7. Add new effect chain preset selector widget to skins.