Control Surface API  2.2.2
ShortMidiMessage.java
1 package com.bitwig.extension.api.util.midi;
2 
3 public class ShortMidiMessage
4 {
5  public static final int NOTE_OFF = 0x80;
6 
7  public static final int NOTE_ON = 0x90;
8 
9  public static final int POLY_PRESSURE = 0xA0;
10 
11  public static final int CONTROL_CHANGE = 0xB0;
12 
13  public static final int PROGRAM_CHANGE = 0xC0;
14 
15  public static final int CHANNEL_PRESSURE = 0xD0;
16 
17  public static final int PITCH_BEND = 0xE0;
18 
19  public static final int MIDI_TIME_CODE = 0xF1;
20 
21  public static final int SONG_POSITION_POINTER = 0xF2;
22 
23  public static final int SONG_SELECT = 0xF3;
24 
25  public static final int TUNE_REQUEST = 0xF6;
26 
27  public static final int TIMING_CLOCK = 0xF8;
28 
29  public static final int START = 0xFA;
30 
31  public static final int CONTINUE = 0xFB;
32 
33  public static final int STOP = 0xFC;
34 
35  public static final int ACTIVE_SENSING = 0xFE;
36 
37  public static final int SYSTEM_RESET = 0xFF;
38 
39  public ShortMidiMessage(final int status, final int data1, final int data2)
40  {
41  mData = status | data1 << 8 | data2 << 16;
42  }
43 
44  public int getStatusByte()
45  {
46  return mData & 0xff;
47  }
48 
49  public int getData1()
50  {
51  return (mData >> 8) & 0xff;
52  }
53 
54  public int getData2()
55  {
56  return (mData >> 16) & 0xff;
57  }
58 
59  public int getChannel()
60  {
61  return mData & 0xf;
62  }
63 
64  private int getStatusMessage()
65  {
66  return mData & 0xf0;
67  }
68 
69  public boolean isNoteOff()
70  {
71  return getStatusMessage() == NOTE_OFF;
72  }
73 
74  public boolean isNoteOn()
75  {
76  return getStatusMessage() == NOTE_ON;
77  }
78 
79  public boolean isPolyPressure()
80  {
81  return getStatusMessage() == POLY_PRESSURE;
82  }
83 
84  public boolean isControlChange()
85  {
86  return getStatusMessage() == CONTROL_CHANGE;
87  }
88 
89  public boolean isProgramChange()
90  {
91  return getStatusMessage() == PROGRAM_CHANGE;
92  }
93 
94  public boolean isChannelPressure()
95  {
96  return getStatusMessage() == CHANNEL_PRESSURE;
97  }
98 
99  private int mData;
100 }