A class for MIDI input elements that represent Mackie Control Universal VU meters. More...
#include <MIDI_Inputs/MCU/VU.hpp>
Public Member Functions | |
VU (uint8_t track, const MIDICNChannel &channelCN, unsigned int decayTime=VUDecay::Default) | |
Construct a new VU object. More... | |
VU (uint8_t track, unsigned int decayTime=VUDecay::Default) | |
Construct a new VU object. More... | |
void | begin () override |
Initialize. More... | |
void | reset () override |
Reset all values to zero. More... | |
uint8_t | getValue () override |
Return the VU meter value as an integer in [0, 12]. More... | |
bool | getOverload () override |
Return the overload status. More... | |
void | update () override |
Update is called periodically, it decays the meter if the time is right. More... | |
bool | updateWith (const ChannelMessageMatcher &midimsg) |
Receive a new MIDI message and update the internal state. More... | |
virtual float | getFloatValue () |
Get the VU meter value as a floating point number. More... | |
uint8_t | getMax () const |
Get the maximum value that this VU meter can return. More... | |
Static Public Member Functions | |
static void | beginAll () |
static void | resetAll () |
Reset all MIDIInputElementChannelPressure elements to their initial state. More... | |
static void | updateAll () |
Update all MIDIInputElementChannelPressure elements. More... | |
static void | updateAllWith (const ChannelMessageMatcher &midimsg) |
Update all MIDIInputElementChannelPressure elements with a new MIDI message. More... | |
Public Attributes | |
VUEmptyCallback | callback |
Protected Attributes | |
const MIDICNChannelAddress | address |
MIDIInputElementChannelPressure * | next |
MIDIInputElementChannelPressure * | previous |
const uint8_t | max |
Private Member Functions | |
uint8_t | getValue (uint8_t index) const |
Get the VU meter value from the raw value. More... | |
bool | getOverload (uint8_t index) const |
Get the overload status value from the raw value. More... | |
bool | updateImpl (const ChannelMessageMatcher &midimsg, const MIDICNChannelAddress &target) override |
Called when an incoming MIDI message matches this element. More... | |
MIDICNChannelAddress | getTarget (const ChannelMessageMatcher &midimsg) const override |
The address of the VU meter is the high nibble of the first (and only) data byte. More... | |
void | decay () |
virtual uint8_t | getSelection () const |
Get the active bank selection. More... | |
virtual setting_t | getBankIndex (const MIDICNChannelAddress &target) const |
Get the bank index from a MIDI address. More... | |
void | setValue (uint8_t index, uint8_t newValue) |
Set the VU meter value. More... | |
void | setOverload (uint8_t index) |
Set the overload status. More... | |
void | clearOverload (uint8_t index) |
Clear the overload status. More... | |
void | moveDown () |
Move down this element in the linked list of elements. More... | |
virtual bool | match (const MIDICNChannelAddress &target) const |
Check if the address of the incoming MIDI message matches an address of this element. More... | |
Private Attributes | |
Array< uint8_t, NumValues > | values |
unsigned int | decayTime |
unsigned long | prevDecayTime |
Static Private Attributes | |
static DoublyLinkedList< MIDIInputElementChannelPressure > | elements |
A class for MIDI input elements that represent Mackie Control Universal VU meters.
This version cannot be banked.
|
inline |
Construct a new VU object.
track | The track of the VU meter. [1, 8] |
channelCN | The MIDI channel [CHANNEL_1, CHANNEL_16] and optional Cable Number [0, 15]. |
decayTime | The time in milliseconds it takes for the value to decay one step. The MCU protocol uses 300 ms per division, and two steps per division, so the default is 150 ms per step. Some software doesn't work if the VU meter decays automatically, in that case, you can set the decay time to zero to disable the decay. |
|
inline |
Construct a new VU object.
track | The track of the VU meter. [1, 8] |
decayTime | The time in milliseconds it takes for the value to decay one step. The MCU protocol uses 300 ms per division, and two steps per division, so the default is 150 ms per step. Some software doesn't work if the VU meter decays automatically, in that case, you can set the decay time to zero to disable the decay. |
|
inlineoverridevirtualinherited |
|
inlineoverridevirtualinherited |
Reset all values to zero.
Reimplemented from MIDIInputElement.
|
inlineoverridevirtualinherited |
|
inlineprivateinherited |
|
inlineoverridevirtualinherited |
|
inlineprivateinherited |
|
inlineoverridevirtualinherited |
Update is called periodically, it decays the meter if the time is right.
Reimplemented from MIDIInputElement.
|
inlineoverrideprivatevirtualinherited |
Called when an incoming MIDI message matches this element.
Implements MIDIInputElement.
|
inlineoverrideprivatevirtualinherited |
The address of the VU meter is the high nibble of the first (and only) data byte.
Reimplemented from MIDIInputElementChannelPressure.
|
inlineprivatevirtualinherited |
|
inlineprivatevirtualinherited |
|
inlineprivateinherited |
|
inlineprivateinherited |
|
inlineprivateinherited |
|
inlinestaticinherited |
Definition at line 38 of file MIDIInputElementChannelPressure.hpp.
|
inlinestaticinherited |
Reset all MIDIInputElementChannelPressure elements to their initial state.
Definition at line 50 of file MIDIInputElementChannelPressure.hpp.
|
inlinestaticinherited |
Update all MIDIInputElementChannelPressure elements.
Definition at line 59 of file MIDIInputElementChannelPressure.hpp.
|
inlinestaticinherited |
Update all MIDIInputElementChannelPressure elements with a new MIDI message.
Definition at line 71 of file MIDIInputElementChannelPressure.hpp.
|
inlineprivateinherited |
Move down this element in the linked list of elements.
This means that the element will be checked earlier on the next iteration.
Definition at line 96 of file MIDIInputElementChannelPressure.hpp.
|
inlineinherited |
Receive a new MIDI message and update the internal state.
Definition at line 39 of file MIDIInputElement.hpp.
|
inlineprivatevirtualinherited |
Check if the address of the incoming MIDI message matches an address of this element.
Reimplemented in GenericVU< NumBanks, Callback >, GenericVU< NumBanks >, GenericVU< NumBanks, VULEDsCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, BankSize, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, BankSize, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, BankSize, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, BankSize, NoteCCFastLEDCallback< ColorMapper > >, GenericVPotRing< NumBanks, Callback >, GenericVPotRing< NumBanks >, GenericVPotRing< NumBanks, VPotRingLEDsCallback >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLED< 1 > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLEDPWM< 1 > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCFastLEDCallback< ColorMapper > >, GenericNoteCCRange< MIDIInputElementCC, 1, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCLED< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, RangeLen, NoteCCLEDPWM< RangeLen > >, GenericNoteCCRange< MIDIInputElementNote, 1, NoteCCLEDBarCallback< NumLEDs > >, GenericNoteCCRange< MIDIInputElementCC, RangeLen, NoteCCLEDPWM< RangeLen > >, SevenSegmentDisplay< LENGTH >, SevenSegmentDisplay< AssignmentDisplayLength >, and SevenSegmentDisplay< TimeDisplayLength >.
Definition at line 75 of file MIDIInputElement.hpp.
|
inlinevirtualinherited |
|
inlineinherited |
|
inherited |
|
staticprivateinherited |
Definition at line 101 of file MIDIInputElementChannelPressure.hpp.
|
protectedinherited |
Definition at line 80 of file MIDIInputElement.hpp.
|
protectedinherited |
Definition at line 305 of file LinkedList.hpp.
|
protectedinherited |
Definition at line 306 of file LinkedList.hpp.