diff options
author | Takamichi Horikawa <takamichiho@gmail.com> | 2017-09-21 23:50:11 +0900 |
---|---|---|
committer | Takamichi Horikawa <takamichiho@gmail.com> | 2017-09-21 23:50:11 +0900 |
commit | 8ff1fce2a918f4ff2b1df41efad2163e630c322f (patch) | |
tree | 627b011f351ff2f62a210f58ae91b494b58400b8 | |
parent | 0e4014dae7727a06a80b59b6ede26d8d08d2c42b (diff) |
pmd: fixed relative detune
-rw-r--r-- | fmdriver/fmdriver_pmd.c | 36 |
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, |