# MidiKeyboardComponent "bug"

**URL:** <https://forum.juce.com/t/midikeyboardcomponent-bug/15058>\
**Category:** General JUCE discussion\
**Created:** [June 30, 2015, 6:51pm UTC](https://forum.juce.com/t/midikeyboardcomponent-bug/15058 "2015-06-30T18:51:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![matkatmusic](https://avatars.discourse-cdn.com/v4/letter/m/dfb087/32.png) [@matkatmusic](https://forum.juce.com/u/matkatmusic)\
**Post date:** [June 30, 2015, 6:51pm UTC](https://forum.juce.com/t/midikeyboardcomponent-bug/15058/1 "2015-06-30T18:51:29Z")

</div>

I found a bug in the MidiKeyboardComponent. &nbsp; well, more like unexpected behavior

If you place the MidiKeyboardState object AFTER your MidiKeyboardComponent in your custom class, the MidiKeyboardComponent won't display note-on messages from a midi controller properly. &nbsp;&nbsp;

so always:

```
class CustomClass {
public: 
  CustomClass() : keyboard(state, MidiKeyboardComponent::horizontalKeyboard) {}
private:
  MidiKeyboardState state;
  MidiKeyboardComponent keyboard;
};
```

and not&nbsp;

```
class CustomClass { 
public: CustomClass() : keyboard(state, MidiKeyboardComponent::horizontalKeyboard) {} 
private: 
  MidiKeyboardComponent keyboard;
  MidiKeyboardState state;  
};
```

&nbsp;

When i reorganized my custom class' header file, this ordering bug kept me occupied for a good 2 hours smh

&nbsp;

---

<div class="post-metadata">

**Author:** ![jrlanglois](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jrlanglois/32/21372_2.png) [@jrlanglois](https://forum.juce.com/u/jrlanglois)\
**Post date:** [June 30, 2015, 8:43pm UTC](https://forum.juce.com/t/midikeyboardcomponent-bug/15058/2 "2015-06-30T20:43:00Z")

</div>

That's basic C++: it's the order your members are constructed.  
  
http://stackoverflow.com/questions/1242830/constructor-initialization-list-evaluation-order  
  
Clang will warn about your members being constructed and dependant in a weird way, GCC too I believe (?) - but not any of the MSVC compilers.
