## SwamiguiControlMidiKey SwamiguiControlMidiKey |

## Synopsis

                        SwamiguiControlMidiKey;
    SwamiguiControlMidiKey * swamigui_control_midi_key_new  (void);
    void                swamigui_control_midi_key_press     (SwamiguiControlMidiKey *keyctrl,
                                                             guint key);
    void                swamigui_control_midi_key_release   (SwamiguiControlMidiKey *keyctrl,
                                                             guint key);
    void                swamigui_control_midi_key_set_lower (SwamiguiControlMidiKey *keyctrl,
                                                             const guint *keys,
                                                             guint count);
    void                swamigui_control_midi_key_set_upper (SwamiguiControlMidiKey *keyctrl,
                                                             const guint *keys,
                                                             guint count);

## Object Hierarchy

      GObject
       +----SwamiLock
             +----SwamiControl
                   +----SwamiControlFunc
                         +----SwamiControlMidi
                               +----SwamiguiControlMidiKey

## Properties

      "join-octaves"             gboolean              : Read / Write
      "lower-channel"            gint                  : Read / Write
      "lower-octave"             gint                  : Read / Write
      "lower-velocity"           gint                  : Read / Write
      "same-velocity"            gboolean              : Read / Write
      "upper-channel"            gint                  : Read / Write
      "upper-octave"             gint                  : Read / Write
      "upper-velocity"           gint                  : Read / Write

## Description

## Details

### SwamiguiControlMidiKey

    typedef struct _SwamiguiControlMidiKey SwamiguiControlMidiKey;

### swamigui_control_midi_key_new ()

    SwamiguiControlMidiKey * swamigui_control_midi_key_new  (void);

Create a new MIDI keyboard control.

Returns : | New MIDI keyboard control with a refcount of 1 which the caller owns.

### swamigui_control_midi_key_press ()

    void                swamigui_control_midi_key_press     (SwamiguiControlMidiKey *keyctrl,
                                                             guint key);

Send a key press to a MIDI keyboard control.

`keyctrl` : | MIDI keyboard control
`key` : | GDK keyboard key (see gdk/gdkkeysyms.h header)

### swamigui_control_midi_key_release ()

    void                swamigui_control_midi_key_release   (SwamiguiControlMidiKey *keyctrl,
                                                             guint key);

Send a key release to a MIDI keyboard control.

`keyctrl` : | MIDI keyboard control
`key` : | GDK keyboard key (see gdk/gdkkeysyms.h header)

### swamigui_control_midi_key_set_lower ()

    void                swamigui_control_midi_key_set_lower (SwamiguiControlMidiKey *keyctrl,
                                                             const guint *keys,
                                                             guint count);

Set the lower keyboard key array.

Note: Not multi-thread safe

`keyctrl` : | MIDI keyboard control
`keys` : | Array of GDK key values
`count` : | Number of values in `keys`

### swamigui_control_midi_key_set_upper ()

    void                swamigui_control_midi_key_set_upper (SwamiguiControlMidiKey *keyctrl,
                                                             const guint *keys,
                                                             guint count);

Set the upper keyboard key array.

Note: Not multi-thread safe

`keyctrl` : | MIDI keyboard control
`keys` : | Array of GDK key values
`count` : | Number of values in `keys`

## Property Details

### The `"join-octaves"` property

      "join-octaves"             gboolean              : Read / Write

Join upper and lower octaves.

Default value: TRUE

### The `"lower-channel"` property

      "lower-channel"            gint                  : Read / Write

Lower keyboard MIDI channel.

Allowed values: [0,15]

Default value: 0

### The `"lower-octave"` property

      "lower-octave"             gint                  : Read / Write

Lower keyboard MIDI octave.

Allowed values: [-2,8]

Default value: 2

### The `"lower-velocity"` property

      "lower-velocity"           gint                  : Read / Write

Lower keyboard MIDI velocity.

Allowed values: [1,127]

Default value: 127

### The `"same-velocity"` property

      "same-velocity"            gboolean              : Read / Write

Same velocity for upper and lower.

Default value: TRUE

### The `"upper-channel"` property

      "upper-channel"            gint                  : Read / Write

Upper keyboard MIDI channel.

Allowed values: [0,15]

Default value: 0

### The `"upper-octave"` property

      "upper-octave"             gint                  : Read / Write

Upper keyboard MIDI octave.

Allowed values: [-2,8]

Default value: 3

### The `"upper-velocity"` property

      "upper-velocity"           gint                  : Read / Write

Upper keyboard MIDI velocity.

Allowed values: [1,127]

Default value: 127