User Tools

Site Tools


effects_customization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
effects_customization [2018/06/14 10:40]
be.ing
effects_customization [2018/06/17 00:01]
be.ing
Line 4: Line 4:
  
 __Email:__ <​[email protected]>​ __Email:__ <​[email protected]>​
 +
 +//mentor: Be//
  
 ==== Abstract ==== ==== Abstract ====
Line 29: Line 31:
   * **EffectProcessorImpl<​EffectProcessorState>​**:​ a template abstract base class which contains the logic for managing the EngineEffectStates so the implementation of specific effects like Echo and Flanger do not need to be concerned with memory management. Each effect implements a subclass of this declaring its parameters with an EffectManifest and containing a processChannel function with its DSP logic. No change from the present implementation.   * **EffectProcessorImpl<​EffectProcessorState>​**:​ a template abstract base class which contains the logic for managing the EngineEffectStates so the implementation of specific effects like Echo and Flanger do not need to be concerned with memory management. Each effect implements a subclass of this declaring its parameters with an EffectManifest and containing a processChannel function with its DSP logic. No change from the present implementation.
  
-  * **EngineEffectSlot**: A place where an effect may be loaded that lives in the audio engine thread. It may contain an EffectProcessor ​or be empty. This class contains logic for smoothly toggling effects on and off without audible pops. This class will be made by //renaming EngineEffect//​.+  * **EngineEffect**: A wrapper around ​EffectProcessor ​with some common ​contains logic for smoothly toggling effects on and off without audible pops. No change from current implementation.
   * **EffectSlot**:​ holds the ControlObjects for interacting with skins and controllers in the GUI thread. Communicates state changes from the ControlObjects to EngineEffectSlot via the effect MessagePipe FIFO. Passes EffectProcessor instances to the EngineEffectSlot also via the MessagePipe FIFO. Decouples the set of potential effect parameters from the parameters exposed to skins and controllers so that users can hide and rearrange parameters as they prefer. This will be made by //combining the present Effect & EffectSlot classes//.   * **EffectSlot**:​ holds the ControlObjects for interacting with skins and controllers in the GUI thread. Communicates state changes from the ControlObjects to EngineEffectSlot via the effect MessagePipe FIFO. Passes EffectProcessor instances to the EngineEffectSlot also via the MessagePipe FIFO. Decouples the set of potential effect parameters from the parameters exposed to skins and controllers so that users can hide and rearrange parameters as they prefer. This will be made by //combining the present Effect & EffectSlot classes//.
   * **EffectPreset**:​ contains a snapshot of the state of an EffectSlot and serializes/​deserializes this to XML. This will be used both to create EffectRackPresets and implement [[https://​bugs.launchpad.net/​mixxx/​+bug/​1740504|custom per-effect defaults]]. This will be a //new class//.   * **EffectPreset**:​ contains a snapshot of the state of an EffectSlot and serializes/​deserializes this to XML. This will be used both to create EffectRackPresets and implement [[https://​bugs.launchpad.net/​mixxx/​+bug/​1740504|custom per-effect defaults]]. This will be a //new class//.
effects_customization.txt ยท Last modified: 2018/08/12 20:59 by kshitij98