1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
clamp!(
    /// Represents the MIDI channel. The minimum value is `0`, the maximum value is `15`. This type
    /// will clamp values to the valid range.
    Channel,
    u8,
    0,
    15,
    0,
    pub
);

clamp!(
    /// Represents the MIDI note number (`C4` is `60`, for example). The minimum value is `0`,
    /// the maximum value is `127` (i.e. `u7`). This type will clamp values to the valid range.
    NoteNumber,
    u8,
    0,
    127,
    60,
    pub
);

clamp!(
    /// Represents the MIDI velocity. The minimum value is `0`, the maximum value is `127` (i.e.
    /// `u7`). This type will clamp values to the valid range.
    Velocity,
    u8,
    0,
    127,
    72,
    pub
);

clamp!(
    /// Represents the MIDI program number. The minimum value is `0`, the maximum value is `127`
    /// (i.e. `u7`). This type will clamp values to the valid range.
    Program,
    u8,
    0,
    127,
    0,
    pub
);

clamp!(
    /// Represents the number of channels in mono mode. The minimum value is `0`, the maximum value
    /// is `127` (i.e. `u7`). This type will clamp values to the valid range.
    MonoModeChannels,
    u8,
    0,
    127,
    0,
    pub
);

clamp!(
    /// Represents a MIDI control value. The minimum value is `0`, the maximum value  is `127` (i.e.
    /// `u7`). This type will clamp values to the valid range.
    ControlValue,
    u8,
    0,
    127,
    0,
    pub
);

clamp!(
    /// The [port](http://midi.teragonaudio.com/tech/midifile/obsolete.htm) number. The minimum
    /// value is `0`, maximum value is `255` (i.e. `u7`). The default value is `0`.
    PortValue,
    u8,
    0,
    127,
    0,
    pub
);

clamp!(
    /// Represents the MIDI pitch bend value. The minimum value is `0`, the maximum value is `16383`
    /// (i.e. `u14`). This type will clamp values to the valid range.
    PitchBendValue,
    u16,
    0,
    16383,
    8192,
    pub
);