Mockbird
Interface Libarary and Synthesizer Setup Tool for Mockingbird-OTTO
Loading...
Searching...
No Matches
layer.h
1#ifndef LAYER_H_INCLUDED_
2#define LAYER_H_INCLUDED_
3#include <cstdint>
4#include <cstddef>
5
6namespace Soundscape {
84 std::uint16_t patch : 10;
86 std::int16_t base_pan : 6;
88 std::int16_t pitch;
90 std::uint8_t volume : 7;
92 std::uint8_t exists : 1;
94 std::uint8_t pan_mode : 3;
101 std::int8_t pan_scale : 5;
103 std::uint8_t min_val : 7;
105 std::uint8_t dispatch_on_velocity : 1;
107 std::uint8_t max_val : 7;
109 std::uint8_t boost6db : 1;
110
112 static const std::size_t maxlen = 60;
123 static const std::uint8_t endian_remap[];
125 static const char * const pan_keyword[];
135 static InstrumentLayer parse(const char* input);
142 char* format(char* target);
143};
144}
145#endif
One layer of a melodic instrument.
Definition layer.h:82
std::int16_t base_pan
fixed offset of panning adjustment (raw scale: -32 to +31)
Definition layer.h:86
static InstrumentLayer parse(const char *input)
parse a layer specification according to the specication given in the class comment.
static const std::uint8_t endian_remap[]
order of bytes to be sent or received from the big-endian firmware.
Definition layer.h:123
static const std::size_t maxlen
maximum length of patch description returned by format.
Definition layer.h:112
char * format(char *target)
formats the specification as string.
std::uint8_t volume
attenuation of 63.5dB (0) to 0dB (127) given in steps of 0.5dB
Definition layer.h:90
std::uint8_t min_val
minimum (inclusive) of limited key or velocity range, 0 if no limit
Definition layer.h:103
std::uint8_t boost6db
add a fixed 6dB boost to the patch if set.
Definition layer.h:109
std::int16_t pitch
pitch adjustment in 2048th of an octave
Definition layer.h:88
std::uint8_t exists
set if this layer is present
Definition layer.h:92
std::uint8_t max_val
maximim (inclusive) of limited key or velocity range, 127 if no limit
Definition layer.h:107
std::uint8_t pan_mode
parameter used for linear panning adjustment
Definition layer.h:94
static const char *const pan_keyword[]
keywords for the 8 possible linear panning parameters
Definition layer.h:125
std::uint16_t patch
number of the patch to play
Definition layer.h:84
std::uint8_t dispatch_on_velocity
if set, limit on velocity, if clear, limit on key
Definition layer.h:105
std::int8_t pan_scale
scale for linear panning adjustment.
Definition layer.h:101