Loading...
Searching...
No Matches
MPEZone Struct Reference

This struct represents an MPE zone. More...

Public Types

enum class  Type { lower , upper }

Public Member Functions

 MPEZone ()=default
 MPEZone (Type type, int memberChannels=0, int perNotePitchbend=48, int masterPitchbend=2)
bool isLowerZone () const noexcept
bool isUpperZone () const noexcept
bool isActive () const noexcept
int getMasterChannel () const noexcept
int getFirstMemberChannel () const noexcept
int getLastMemberChannel () const noexcept
bool isUsingChannelAsMemberChannel (int channel) const noexcept
bool isUsing (int channel) const noexcept
bool operator== (const MPEZone &other) const
bool operator!= (const MPEZone &other) const

Static Public Member Functions

static auto tie (const MPEZone &z)

Public Attributes

Type zoneType = Type::lower
int numMemberChannels = 0
int perNotePitchbendRange = 48
int masterPitchbendRange = 2

Static Public Attributes

static constexpr int lowerZoneMasterChannel = 1
static constexpr int upperZoneMasterChannel = 16

Detailed Description

This struct represents an MPE zone.

It can either be a lower or an upper zone, where:

  • A lower zone encompasses master channel 1 and an arbitrary number of ascending MIDI channels, increasing from channel 2.
  • An upper zone encompasses master channel 16 and an arbitrary number of descending MIDI channels, decreasing from channel 15.

It also defines a pitchbend range (in semitones) to be applied for per-note pitchbends and master pitchbends, respectively.

Member Enumeration Documentation

◆ Type

enum class MPEZone::Type
strong
Enumerator
lower 
upper 

Constructor & Destructor Documentation

◆ MPEZone() [1/2]

MPEZone::MPEZone ( )
default

Referenced by operator!=(), operator==(), and tie().

◆ MPEZone() [2/2]

MPEZone::MPEZone ( Type type,
int memberChannels = 0,
int perNotePitchbend = 48,
int masterPitchbend = 2 )

Member Function Documentation

◆ isLowerZone()

bool MPEZone::isLowerZone ( ) const
noexcept

◆ isUpperZone()

bool MPEZone::isUpperZone ( ) const
noexcept

References upper, and zoneType.

◆ isActive()

bool MPEZone::isActive ( ) const
noexcept

References numMemberChannels.

◆ getMasterChannel()

int MPEZone::getMasterChannel ( ) const
noexcept

◆ getFirstMemberChannel()

int MPEZone::getFirstMemberChannel ( ) const
noexcept

◆ getLastMemberChannel()

int MPEZone::getLastMemberChannel ( ) const
noexcept

◆ isUsingChannelAsMemberChannel()

bool MPEZone::isUsingChannelAsMemberChannel ( int channel) const
noexcept

◆ isUsing()

bool MPEZone::isUsing ( int channel) const
noexcept

◆ tie()

auto MPEZone::tie ( const MPEZone & z)
static

◆ operator==()

bool MPEZone::operator== ( const MPEZone & other) const

References MPEZone(), and tie().

◆ operator!=()

bool MPEZone::operator!= ( const MPEZone & other) const

References MPEZone(), and tie().

Member Data Documentation

◆ lowerZoneMasterChannel

int MPEZone::lowerZoneMasterChannel = 1
staticconstexpr

◆ upperZoneMasterChannel

int MPEZone::upperZoneMasterChannel = 16
static

◆ zoneType

Type MPEZone::zoneType = Type::lower

Referenced by isLowerZone(), isUpperZone(), MPEZone(), and tie().

◆ numMemberChannels

int MPEZone::numMemberChannels = 0

◆ perNotePitchbendRange

int MPEZone::perNotePitchbendRange = 48

Referenced by MPEZone(), and tie().

◆ masterPitchbendRange

int MPEZone::masterPitchbendRange = 2

Referenced by MPEZone(), and tie().

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram