85 bool isLowerZone()
const noexcept {
return lowerZone; }
86 bool isUpperZone()
const noexcept {
return ! lowerZone; }
88 bool isActive()
const noexcept {
return numMemberChannels > 0; }
90 int getMasterChannel()
const noexcept {
return lowerZone ? 1 : 16; }
91 int getFirstMemberChannel()
const noexcept {
return lowerZone ? 2 : 15; }
92 int getLastMemberChannel()
const noexcept {
return lowerZone ? (1 + numMemberChannels)
93 : (16 - numMemberChannels); }
95 bool isUsingChannelAsMemberChannel (
int channel)
const noexcept
97 return lowerZone ? (channel > 1 && channel <= 1 + numMemberChannels)
98 : (channel < 16 && channel >= 16 - numMemberChannels);
101 bool isUsing (
int channel)
const noexcept
103 return isUsingChannelAsMemberChannel (channel) || channel == getMasterChannel();
106 bool operator== (
const Zone& other)
const noexcept {
return lowerZone == other.lowerZone
107 && numMemberChannels == other.numMemberChannels
108 && perNotePitchbendRange == other.perNotePitchbendRange
109 && masterPitchbendRange == other.masterPitchbendRange; }
111 bool operator!= (
const Zone& other)
const noexcept {
return ! operator== (other); }
113 int numMemberChannels;
114 int perNotePitchbendRange;
115 int masterPitchbendRange;
120 Zone (
bool lower,
int memberChans = 0,
int perNotePb = 48,
int masterPb = 2) noexcept
121 : numMemberChannels (memberChans),
122 perNotePitchbendRange (perNotePb),
123 masterPitchbendRange (masterPb),