aboutsummaryrefslogtreecommitdiff
path: root/fmdriver/fmdriver_fmp.h
diff options
context:
space:
mode:
authorTakamichi Horikawa <takamichiho@gmail.com>2017-02-23 19:20:28 +0900
committerTakamichi Horikawa <takamichiho@gmail.com>2017-02-23 19:20:28 +0900
commit8b1e78183a4e045189d7711c5eb8bbcb6df4f0a3 (patch)
treed3cc9b10f34ebc989388463a8f4244fda9c00e86 /fmdriver/fmdriver_fmp.h
parent98cb7c12e832a99cb0fb0e04094106c0ff3b76af (diff)
PDZF pitchbend/LFO support
Diffstat (limited to 'fmdriver/fmdriver_fmp.h')
-rw-r--r--fmdriver/fmdriver_fmp.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/fmdriver/fmdriver_fmp.h b/fmdriver/fmdriver_fmp.h
index 5211a80..4fd107a 100644
--- a/fmdriver/fmdriver_fmp.h
+++ b/fmdriver/fmdriver_fmp.h
@@ -366,6 +366,7 @@ struct fmp_part {
uint8_t ppz8_channel;
uint8_t voice;
uint8_t vol;
+ uint8_t prev_note;
int8_t pan;
struct {
uint8_t al;
@@ -384,6 +385,20 @@ struct fmp_part {
int8_t vol;
} env_state;
bool keyon;
+ // detune = (pitchdiff*64) + (pitchdiff*(2**(octave-5)))
+ // octave = prevnote/0xc;
+ struct {
+ bool on;
+ uint8_t rate;
+ uint8_t delay;
+ uint8_t speed;
+ uint8_t speed_cnt;
+ uint32_t target_freq;
+ uint8_t target_note;
+ int32_t pitchdiff;
+ } pit;
+ int32_t lfodiff;
+ uint32_t lastfreq;
} pdzf;
};