# MidikeyboardState initialise

**URL:** <https://forum.juce.com/t/midikeyboardstate-initialise/46454>\
**Category:** Audio Plugins\
**Created:** [June 11, 2021, 2:17pm UTC](https://forum.juce.com/t/midikeyboardstate-initialise/46454 "2021-06-11T14:17:25Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![GezCoulter](https://avatars.discourse-cdn.com/v4/letter/g/5daacb/32.png) [@GezCoulter](https://forum.juce.com/u/GezCoulter)\
**Post date:** [June 11, 2021, 2:17pm UTC](https://forum.juce.com/t/midikeyboardstate-initialise/46454/1 "2021-06-11T14:17:26Z")

</div>

How do you initialise the MidikeyboardState  
Eg I have an instance

MidikeyboardState& keyboardState;

In pluginEditor.h

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [June 11, 2021, 2:37pm UTC](https://forum.juce.com/t/midikeyboardstate-initialise/46454/2 "2021-06-11T14:37:14Z")

</div>

This is actually not an instance but a reference.  
The MidiKeyboardState needs to live in the processor, because it is used with or without the existence of the GUI (for keeping track of currently down notes).

You need to initialise the reference in the initialiser list from an argument to your GUI:

```auto
MyPluginProcessorEditor (MyPluginProcessor& p) 
  : juce::AudioProcessorEditor (p),
    processor (p),
    keyboardState (p.getKeyboardState())
// ...

```

Where your MyPluginProcessor has a method to return a reference to the state.

HTH
