# (poll) How do YOU handle your plugins parameters?

**URL:** <https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674>\
**Category:** Audio Plugins\
**Created:** [January 21, 2017, 9:38am UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674 "2017-01-21T09:38:15Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![lalala](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/lalala/32/8577_2.png) [@lalala](https://forum.juce.com/u/lalala)\
**Post date:** [January 21, 2017, 9:38am UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/1 "2017-01-21T09:38:15Z")

</div>

Some time ago `AudioProcessorValueTreeState` and `AudioProcessorParameter`(WithID) did not exist.  
So I’m curious what **you** used in the last plugin you coded :

_Poll ([view on site](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/1))_

* * *

And what would you _recommend_ using :

_Poll ([view on site](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/1))_

---

<div class="post-metadata">

**Author:** ![chkn](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/chkn/32/3862_2.png) [@chkn](https://forum.juce.com/u/chkn)\
**Post date:** [January 21, 2017, 9:58am UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/2 "2017-01-21T09:58:41Z")

</div>

Currently i use AudioProcessorParameter, but i want to use AudioProcessorParameterWithID in the future.

I can’t use AudioProcessorValueTreeState, because it think it has a few design flaws.

- if the parameter uses a interval, the quantized (stepped) values are stored internally.

I think this is problematic, from a hosts perspective, it sets a certain float value, and gets a quantized value back.

(correct me if i’m wrong)

- A function for storing normalized frequency values in a logarithmic way is missing (not skew)  
[NormalisableRange suggestions](https://forum.juce.com/t/normalisablerange-suggestions/19514)

---

<div class="post-metadata">

**Author:** ![jonathonracz](https://avatars.discourse-cdn.com/v4/letter/j/da6949/32.png) [@jonathonracz](https://forum.juce.com/u/jonathonracz)\
**Post date:** [January 21, 2017, 3:27pm UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/3 "2017-01-21T15:27:23Z")

</div>

I’m a huge fan of ValueTreeState, mostly because you basically get parameter save/restore and undo/redo for free. But like @chkn said, it definitely has some flaws that have to be worked around.

---

<div class="post-metadata">

**Author:** ![yairadix](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yairadix/32/1114_2.png) [@yairadix](https://forum.juce.com/u/yairadix)\
**Post date:** [January 22, 2017, 8:29am UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/4 "2017-01-22T08:29:22Z")

</div>

> [@jonathonracz](#):
>
> undo/redo for free

You can try this for undo/redo - [AudioProcessorUndoAttachment for JUCE · GitHub](https://gist.github.com/yairchu/0a70e553af6176b2f6af)  
It provides a class `AudioProcessorUndoAttachment` which listens to an `AudioProcessor` and adds all the parameter changes to an `UndoManager`.

---

<div class="post-metadata">

**Author:** ![lalala](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/lalala/32/8577_2.png) [@lalala](https://forum.juce.com/u/lalala)\
**Post date:** [January 24, 2017, 9:38am UTC](https://forum.juce.com/t/poll-how-do-you-handle-your-plugins-parameters/20674/5 "2017-01-24T09:38:44Z")

</div>

Thanks everyone !

(I will not close the poll before a few days/weeks, so feel free to vote until then if you haven’t)
