870920 Menu

MidiKeyboardComponent详解

MidiKeyboardComponent

MidiKeyboardComponent是一个可视组件,其外观为一个128键的MIDI键盘,鼠标指向或点击某个键时,该键的背景色默认变为黄色。可设置键盘的放置方向和键的颜色。本组件持有一个MidiKeyboardState对象,用来显示键按下和键抬起的状态,并将产生的MIDI消息发送给该对象,或者接受该对象的noteOn()或noteOff()函数所产生的MIDI消息。

另外,当本组件拥有键盘焦点时,可响应keypresses事件,即:计算机键盘也可演奏。音符默认映射标准键盘上的两行键(A~K,W~U),可重新映射所对应的键。如果要禁用此功能,可调用setWantsKeyboardFocus (false)。

该类的继承图示:

MidiKeyboardComponent-inherit

图 3 21 MidiKeyboardComponent类的继承图示

由上图可知,Component、MidiKeyboardStateListener、ChangeBroadcaster、Timer等基类拥有的属性和行为,MidiKeyboardComponent同样拥有。注意,该类还是一个可变生成器,可绑定ChangeListener可变捕获类以让该类的changeListenerCallback()处理本类所产生的可变消息。

MidiKeyBoardComponent的枚举常量(放置方向):
 MidiKeyboardComponent::horizontalKeyboard 水平放置
 MidiKeyboardComponent::verticalKeyboardFacingLeft 垂直靠左
 MidiKeyboardComponent::verticalKeyboardFacingRight 垂直靠右

MidiKeyBoardComponent的枚举常量(颜色ID):
 MidiKeyboardComponent::whiteNoteColourId 白键的颜色ID
 MidiKeyboardComponent::blackNoteColourId 黑键的颜色ID
 MidiKeyboardComponent::keySeparatorLineColourId 键与键之间分隔线的颜色ID
 MidiKeyboardComponent::mouseOverKeyOverlayColourId 鼠标指向时的颜色ID
 MidiKeyboardComponent::keyDownOverlayColourId 键按下状态的颜色ID
 MidiKeyboardComponent::textLabelColourId 文本颜色ID
 MidiKeyboardComponent::upDownButtonBackgroundColourId 滚动三角的颜色ID
 MidiKeyboardComponent::upDownButtonArrowColourId 滚动三角的颜色ID

MidiKeyboardComponent的构造函数
MidiKeyboardComponent (MidiKeyboardState对象, 放置的方向)

MidiKeyboardComponent的重要成员函数
 setVelocity () 设置MIDI音符的力度
 setMidiChannel () 设置所使用的MIDI通道
 getMidiChannel () 返回当前所使用的MIDI通道
 setMidiChannelsToDisplay () 设置响应哪个MIDI通道的事件
 getMidiChannelsToDisplay () 返回当前设置的所响应的MIDI通道
 setKeyWidth () 设置白键的宽度
 getKeyWidth () 返回所设置的白键宽度
 setOrientation () 设置方向
 getOrientation () 返回当前的方向
 setAvailableRange () 设置音符范围
 getRangeStart () 返回当前的音符范围
 getRangeEnd () 返回范围的最高音的音符编号
 setLowestVisibleKey () 设置最低音,并自动滚屏至给出的音符处
 getLowestVisibleKey () 返回所显示的最低音
 getBlackNoteLength () 返回黑键的长度
 setScrollButtonsVisible () 是否显示滚动三角
 getKeyStartPosition () 返回某个音符左边缘的位置
 clearKeyMappings () 移除计算机键盘的键映射
 setKeyPressForNote () 将某个计算机键盘上的某个键映射到给定的音符
 removeKeyPressForNote () 移除给定音符的映射键
 setKeyPressBaseOctave () 设置计算机键盘演奏时的基础音程
 setOctaveForMiddleC () 设置中央C
 getOctaveForMiddleC () 返回所设置的中央C