Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Banks
Transposer.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
Banks/Bank.hpp
>
4
#include <
Control_Surface/Control_Surface_Class.hpp
>
5
#include <
Def/Def.hpp
>
6
7
BEGIN_CS_NAMESPACE
8
10
template
<
int
8_t MinTransposition,
int
8_t MaxTransposition>
11
class
Transposer
:
public
Bank
<MaxTransposition - MinTransposition + 1> {
12
public
:
13
Transposer
(int8_t step = 1)
14
:
Bank
<
NumBanks
>(step, -MinTransposition, MinTransposition) {
15
static_assert
(MinTransposition <= 0,
16
"Error: the minimum transposition must be negative"
);
17
static_assert
(MaxTransposition >= 0,
18
"Error: the maximum transposition must be positive"
);
19
}
20
27
void
setTransposition
(int8_t tp) { this->
select
(tp - MinTransposition); }
28
30
int8_t
getTransposition
()
const
{
31
return
this->
getSelection
() + MinTransposition;
32
}
33
35
int8_t
getTranspositionSemitones
()
const
{
return
this->
getOffset
(); }
36
37
static
constexpr
setting_t
N
= MaxTransposition - MinTransposition + 1;
38
static
constexpr
setting_t
NumBanks
=
N
;
39
};
40
41
END_CS_NAMESPACE
Bank.hpp
Control_Surface_Class.hpp
Def.hpp
setting_t
uint8_t setting_t
The type used for Selectors.
Definition
Def.hpp:53
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
Bank< MaxTransposition - MinTransposition+1 >::select
void select(setting_t bankSetting) override
Definition
Bank.hpp:162
Bank< MaxTransposition - MinTransposition+1 >::Bank
Bank(uint8_t tracksPerBank=1, setting_t initialSelection=0, int8_t selectionOffset=0)
Definition
Bank.hpp:107
Bank< MaxTransposition - MinTransposition+1 >::getSelection
setting_t getSelection() const
Definition
Bank.hpp:44
Bank< MaxTransposition - MinTransposition+1 >::getOffset
int8_t getOffset() const
Definition
Bank.hpp:58
Transposer::N
static constexpr setting_t N
Definition
Transposer.hpp:37
Transposer::setTransposition
void setTransposition(int8_t tp)
Set the transposition.
Definition
Transposer.hpp:27
Transposer::getTransposition
int8_t getTransposition() const
Get the transposition.
Definition
Transposer.hpp:30
Transposer::getTranspositionSemitones
int8_t getTranspositionSemitones() const
Get the transposition as a number of semitones.
Definition
Transposer.hpp:35
Transposer::NumBanks
static constexpr setting_t NumBanks
Definition
Transposer.hpp:38
Transposer::Transposer
Transposer(int8_t step=1)
Definition
Transposer.hpp:13
Generated by
1.17.0