revise set_wah_type, set_comp_type, set_pickup_type and set_eq_type

This commit is contained in:
Tomasz Moń
2009-02-22 22:37:29 +01:00
parent 1c4ff62baa
commit 886f01c1e4
2 changed files with 52 additions and 38 deletions

67
gdigi.c
View File

@@ -189,14 +189,16 @@ void set_wah_level(int level)
void set_wah_type(int type) void set_wah_type(int type)
{ {
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2C, 0x00, 0x00, 0x03, 0x01, 0x00 /* type */, 0x00 /* confirm */, 0xF7}; /* ID = 128 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2C, 0x00, 0x00, /* ??? */
0x03, /* seems to be position */
0x01, /* ??? */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) { /* 8th bit of type is always 1 - check how does it affect command */
case WAH_TYPE_CRY: set_type[14] = 4; break; set_type[14] = (type & 0x007F);
case WAH_TYPE_FULLRANGE: set_type[14] = 5; break;
case WAH_TYPE_CLYDE: set_type[14] = 6; break;
default: break;
}
set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07; set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07;
@@ -234,13 +236,16 @@ void set_comp_level(int level)
void set_comp_type(int type) void set_comp_type(int type)
{ {
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2C, 0x00, 0x4F, 0x04, 0x01, 0x00 /* type */, 0x00 /* checksum */, 0xF7}; /* ID = 207 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2C, 0x00, 0x4F, /* ??? */
0x04, /* seems to be position */
0x01, /* ??? */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) { /* 8th bit of type is always 1 - check how does it affect command */
case COMP_TYPE_DIGI: set_type[14] = 0x43; break; set_type[14] = (type & 0x007F);
case COMP_TYPE_CS: set_type[14] = 0x44; break;
default: break;
}
set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07; set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07;
@@ -276,13 +281,14 @@ void switch_system_preset(int x)
void set_pickup_type(int type) void set_pickup_type(int type)
{ {
static char pickup[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x00, 0x40, 0x02, 0x00 /* type1 */, 0x00 /* checksum */, 0xF7}; /* ID = 64 */
static char pickup[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x00, 0x00, 0x40, /* ??? */
0x02, /* seems to be position */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) { pickup[13] = type;
case PICKUP_TYPE_HB_SC: pickup[13] = 0x42; break;
case PICKUP_TYPE_SC_HB: pickup[13] = 0x41; break;
default: break;
}
pickup[14] = calculate_checksum(pickup, sizeof(pickup), 14) ^ 0x07; pickup[14] = calculate_checksum(pickup, sizeof(pickup), 14) ^ 0x07;
@@ -296,6 +302,7 @@ void set_pickup_on_off(gboolean val)
void set_dist_type(int type) void set_dist_type(int type)
{ {
/* ID = 2432 */
static char set_dist[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, static char set_dist[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x09, 0x00, /* ??? */ 0x28, 0x09, 0x00, /* ??? */
0x06, /* seems to be position */ 0x06, /* seems to be position */
@@ -329,15 +336,17 @@ void set_preset_level(int level)
void set_eq_type(int type) void set_eq_type(int type)
{ {
static char set_eq[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2A, 0x0C, 0x02, 0x18, 0x02, 0x05, 0x00 /* type1 */, 0x00 /* checksum */, 0xF7}; /* ID = 3202 */
static char set_eq[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2A, 0x0C, 0x02,
0x18, /* seems to be position */
0x02, /* ??? */
0x05, 0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) { /* 8th bit of type is always 1 - check how does it affect command */
case EQ_TYPE_BRIGHT: set_eq[15] = 0x42; break; set_eq[14] = ((type & 0xFF00) >> 8);
case EQ_TYPE_MIDBOOST: set_eq[15] = 0x40; break; set_eq[15] = ((type & 0x007F));
case EQ_TYPE_SCOOP: set_eq[15] = 0x41; break;
case EQ_TYPE_WARM: set_eq[15] = 0x43; break;
default: break;
}
set_eq[16] = calculate_checksum(set_eq, sizeof(set_eq), 16) ^ 0x07; set_eq[16] = calculate_checksum(set_eq, sizeof(set_eq), 16) ^ 0x07;
@@ -483,6 +492,7 @@ void set_eq_on_off(gboolean val)
void set_noisegate_type(int type) void set_noisegate_type(int type)
{ {
/* ID = 704 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x02, 0x40, /* ??? */ 0x28, 0x02, 0x40, /* ??? */
0x0C, /* seems to be position */ 0x0C, /* seems to be position */
@@ -516,6 +526,7 @@ void set_chorusfx_option(guint32 option, int x)
void set_chorusfx_type(int type) void set_chorusfx_type(int type)
{ {
/* ID = 768 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x00 /* ? */, 0x03, 0x00, /* ??? */ 0x00 /* ? */, 0x03, 0x00, /* ??? */
0x0E, /* seems to be position */ 0x0E, /* seems to be position */
@@ -563,6 +574,7 @@ void set_delay_time(int x)
void set_delay_type(int type) void set_delay_type(int type)
{ {
/* ID = 1856 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x08, 0x07, 0x40, /* ??? */ 0x08, 0x07, 0x40, /* ??? */
0x0F, /* seems to be position */ 0x0F, /* seems to be position */
@@ -596,6 +608,7 @@ void set_reverb_option(guint32 option, int x)
void set_reverb_type(int type) void set_reverb_type(int type)
{ {
/* ID = 1920 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x07, 0x00, /* ??? */ 0x28, 0x07, 0x00, /* ??? */
0x10, /* seems to be position */ 0x10, /* seems to be position */

23
gdigi.h
View File

@@ -18,9 +18,9 @@
#include <glib.h> #include <glib.h>
enum { enum {
WAH_TYPE_CRY = 0, WAH_TYPE_CRY = 132,
WAH_TYPE_FULLRANGE, WAH_TYPE_FULLRANGE = 133,
WAH_TYPE_CLYDE WAH_TYPE_CLYDE = 134
}; };
#define WAH_POSITION_MIN_MAX 20 #define WAH_POSITION_MIN_MAX 20
@@ -34,8 +34,8 @@ enum {
#define WAH_LEVEL 133 #define WAH_LEVEL 133
enum { enum {
COMP_TYPE_DIGI = 0, COMP_TYPE_DIGI = 195,
COMP_TYPE_CS COMP_TYPE_CS = 196
}; };
#define COMP_ON_OFF 193 #define COMP_ON_OFF 193
@@ -47,8 +47,8 @@ enum {
#define COMP_LEVEL 210 #define COMP_LEVEL 210
enum { enum {
PICKUP_TYPE_HB_SC = 0, PICKUP_TYPE_HB_SC = 66,
PICKUP_TYPE_SC_HB PICKUP_TYPE_SC_HB = 65
}; };
#define PICKUP_ON_OFF 65 #define PICKUP_ON_OFF 65
@@ -119,10 +119,10 @@ enum {
#define PRESET_LEVEL 2626 #define PRESET_LEVEL 2626
enum { enum {
EQ_TYPE_BRIGHT = 0, EQ_TYPE_BRIGHT = 1474,
EQ_TYPE_MIDBOOST, EQ_TYPE_MIDBOOST = 1472,
EQ_TYPE_SCOOP, EQ_TYPE_SCOOP = 1473,
EQ_TYPE_WARM EQ_TYPE_WARM = 1475
}; };
#define AMP_POSITION 8 #define AMP_POSITION 8
@@ -136,6 +136,7 @@ enum {
#define EQ_BASS 3203 #define EQ_BASS 3203
#define EQ_MID 3204 #define EQ_MID 3204
#define EQ_TREBLE 3205 #define EQ_TREBLE 3205
enum { enum {
NOISEGATE_GATE = 768, NOISEGATE_GATE = 768,
NOISEGATE_SWELL = 769 NOISEGATE_SWELL = 769