/
patch.h
74 lines (59 loc) · 1.47 KB
/
patch.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
// patch.h
// superjxsyxtool
//
// Created by Christian E. on 2017/Oct/19.
// Copyright © 2017 Ten by Ten. All rights reserved.
//
#ifndef patch_h
#define patch_h
#include <stdint.h>
#include <string>
#include "sysex.h"
struct SuperJXPatch
{
SuperJXPatch(const SyxBuffer& buffer);
void Print() const;
static std::string GetName(const SyxBuffer& patch);
static std::string GetPatchAddress(uint8_t p);
static void GetTones(const SyxBuffer& patch, uint8_t& a, uint8_t& b, bool& holda, bool& holdb);
static void SetTones(SyxBuffer& patch, uint8_t a, uint8_t b, bool holda, bool holdb);
enum
{
kPatchSize = 106,
};
uint8_t number;
std::string name;
uint8_t a_b_balance;
uint8_t dual_detune;
uint8_t upper_split_point;
uint8_t lower_split_point;
uint8_t portamento_time;
uint8_t bend_range;
uint8_t key_mode;
uint8_t total_volume;
uint8_t aftertouch_vibrato;
uint8_t aftertouch_brightness;
uint8_t aftertouch_volume;
uint8_t tone_a;
int8_t tone_a_chromatic_shift;
uint8_t tone_a_key_assign;
int8_t tone_a_unison_detune;
bool tone_a_hold;
uint8_t tone_a_lfo_mod_depth;
bool tone_a_portamento;
bool tone_a_bender;
uint8_t tone_b;
int8_t tone_b_chromatic_shift;
uint8_t tone_b_key_assign;
int8_t tone_b_unison_detune;
bool tone_b_hold;
uint8_t tone_b_lfo_mod_depth;
bool tone_b_portamento;
bool tone_b_bender;
uint8_t chase_play_level;
uint8_t chase_play_mode;
uint8_t chase_play_time;
bool chase_play_switch;
};
#endif /* patch_h */