aboutsummaryrefslogtreecommitdiff
path: root/fmdriver
diff options
context:
space:
mode:
authorTakamichi Horikawa <takamichiho@gmail.com>2017-09-21 23:50:11 +0900
committerTakamichi Horikawa <takamichiho@gmail.com>2017-09-21 23:50:11 +0900
commit8ff1fce2a918f4ff2b1df41efad2163e630c322f (patch)
tree627b011f351ff2f62a210f58ae91b494b58400b8 /fmdriver
parent0e4014dae7727a06a80b59b6ede26d8d08d2c42b (diff)
pmd: fixed relative detune
Diffstat (limited to 'fmdriver')
-rw-r--r--fmdriver/fmdriver_pmd.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/fmdriver/fmdriver_pmd.c b/fmdriver/fmdriver_pmd.c
index 343152b..a3a50c3 100644
--- a/fmdriver/fmdriver_pmd.c
+++ b/fmdriver/fmdriver_pmd.c
@@ -2365,8 +2365,8 @@ static void pmd_cmdfb_tie(
pmd->no_keyoff = true;
}
-// 2371, 2376
-static void pmd_cmdfa_d5_det(
+// 2371
+static void pmd_cmdfa_det(
struct fmdriver_work *work,
struct driver_pmd *pmd,
struct pmd_part *part
@@ -2377,6 +2377,18 @@ static void pmd_cmdfa_d5_det(
part->detune = u16s16(val);
}
+// 2376
+static void pmd_cmdd5_detrel(
+ struct fmdriver_work *work,
+ struct driver_pmd *pmd,
+ struct pmd_part *part
+){
+ (void)work;
+ uint16_t val = pmd_part_cmdload(pmd, part);
+ val |= ((uint16_t)(pmd_part_cmdload(pmd, part)) << 8);
+ part->detune += u16s16(val);
+}
+
// 237b
static void pmd_cmdf9_repeat_reset(
struct fmdriver_work *work,
@@ -4181,7 +4193,7 @@ static const pmd_cmd_func pmd_cmd_table_fm[PMD_CMD_CNT] = {
pmd_cmdfd_vol,
pmd_cmdfc_tempo,
pmd_cmdfb_tie,
- pmd_cmdfa_d5_det,
+ pmd_cmdfa_det,
pmd_cmdf9_repeat_reset,
pmd_cmdf8_repeat,
pmd_cmdf7_repeat_exit,
@@ -4218,7 +4230,7 @@ static const pmd_cmd_func pmd_cmd_table_fm[PMD_CMD_CNT] = {
pmd_cmd_null_1,
pmd_cmd_null_1,
pmd_cmdd6_md,
- pmd_cmdfa_d5_det,
+ pmd_cmdd5_detrel,
pmd_cmdd4_ssgeff,
pmd_cmdd3_fmeff,
pmd_cmdd2_fadeout,
@@ -4263,7 +4275,7 @@ static const pmd_cmd_func pmd_cmd_table_ssg[PMD_CMD_CNT] = {
pmd_cmdfd_vol,
pmd_cmdfc_tempo,
pmd_cmdfb_tie,
- pmd_cmdfa_d5_det,
+ pmd_cmdfa_det,
pmd_cmdf9_repeat_reset,
pmd_cmdf8_repeat,
pmd_cmdf7_repeat_exit,
@@ -4300,7 +4312,7 @@ static const pmd_cmd_func pmd_cmd_table_ssg[PMD_CMD_CNT] = {
pmd_cmd_null_1,
pmd_cmd_null_1,
pmd_cmdd6_md,
- pmd_cmdfa_d5_det,
+ pmd_cmdd5_detrel,
pmd_cmdd4_ssgeff,
pmd_cmdd3_fmeff,
pmd_cmdd2_fadeout,
@@ -4345,7 +4357,7 @@ static const pmd_cmd_func pmd_cmd_table_rhythm[PMD_CMD_CNT] = {
pmd_cmdfd_vol,
pmd_cmdfc_tempo,
pmd_cmdfb_tie,
- pmd_cmdfa_d5_det,
+ pmd_cmdfa_det,
pmd_cmdf9_repeat_reset,
pmd_cmdf8_repeat,
pmd_cmdf7_repeat_exit,
@@ -4382,7 +4394,7 @@ static const pmd_cmd_func pmd_cmd_table_rhythm[PMD_CMD_CNT] = {
pmd_cmd_null_1,
pmd_cmd_null_1,
pmd_cmd_null_2,
- pmd_cmdfa_d5_det,
+ pmd_cmdd5_detrel,
pmd_cmdd4_ssgeff,
pmd_cmdd3_fmeff,
pmd_cmdd2_fadeout,
@@ -4427,7 +4439,7 @@ static const pmd_cmd_func pmd_cmd_table_adpcm[PMD_CMD_CNT] = {
pmd_cmdfd_vol,
pmd_cmdfc_tempo,
pmd_cmdfb_tie,
- pmd_cmdfa_d5_det,
+ pmd_cmdfa_det,
pmd_cmdf9_repeat_reset,
pmd_cmdf8_repeat,
pmd_cmdf7_repeat_exit,
@@ -4464,7 +4476,7 @@ static const pmd_cmd_func pmd_cmd_table_adpcm[PMD_CMD_CNT] = {
pmd_cmd_null_1,
pmd_cmd_null_1,
pmd_cmdd6_md,
- pmd_cmdfa_d5_det,
+ pmd_cmdd5_detrel,
pmd_cmdd4_ssgeff,
pmd_cmdd3_fmeff,
pmd_cmdd2_fadeout,
@@ -4509,7 +4521,7 @@ static const pmd_cmd_func pmd_cmd_table_ppz8[PMD_CMD_CNT] = {
pmd_cmdfd_vol,
pmd_cmdfc_tempo,
pmd_cmdfb_tie,
- pmd_cmdfa_d5_det,
+ pmd_cmdfa_det,
pmd_cmdf9_repeat_reset,
pmd_cmdf8_repeat,
pmd_cmdf7_repeat_exit,
@@ -4546,7 +4558,7 @@ static const pmd_cmd_func pmd_cmd_table_ppz8[PMD_CMD_CNT] = {
pmd_cmd_null_1,
pmd_cmd_null_1,
pmd_cmdd6_md,
- pmd_cmdfa_d5_det,
+ pmd_cmdd5_detrel,
pmd_cmdd4_ssgeff,
pmd_cmdd3_fmeff,
pmd_cmdd2_fadeout,