@@ -45,21 +45,20 @@ ssg_tune::
45
45
.dw 0x0077, 0x0070, 0x006a, 0x0064, 0x005e, 0x0059, 0x0054, 0x004f, 0x004b, 0x0047, 0x0043, 0x003f, 0 , 0 , 0 , 0
46
46
.dw 0x003b, 0x0038, 0x0035, 0x0032, 0x002f, 0x002c, 0x002a, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f, 0 , 0 , 0 , 0
47
47
48
- ;;; Vibrato - Semitone distance table
48
+ ;;; SSG frequency half- distance table
49
49
;;; ------
50
- ;;; each element in the table holds the distance to the previous semitone
51
- ;;; in the note table. The vibrato effect oscillate between one semi-tone
52
- ;;; up and down of the current note of the SSG channel.
50
+ ;;; The half-distance between a semitone's SSG frequency and the next semitone's SSG frequency.
51
+ ;;; This is used to compute fractional SSG frequency values from fixed-point note.
53
52
ssg_semitone_distance: :
54
53
;; C-n, C#n, D-n, D#n, E-n, F-n, F#n, G-n, G#n, A-n, A#n, B-n, C-(n+1)
55
- .db 0xe3, 0xd7, 0xca, 0xbf, 0xb5, 0xaa, 0xa1, 0x97, 0x8f, 0x88, 0x7f, 0x79, 0x71 , 0 , 0 , 0
56
- .db 0xe3, 0xd7, 0xca, 0xbf, 0xb5, 0xaa, 0xa1, 0x97, 0x8f, 0x88, 0x7f, 0x79, 0x71 , 0 , 0 , 0
57
- .db 0x71, 0x6c, 0x65, 0x60, 0x5a, 0x55, 0x50, 0x4c, 0x48, 0x43, 0x40, 0x3c, 0x39 , 0 , 0 , 0
58
- .db 0x39, 0x36, 0x32, 0x30, 0x2d, 0x2b, 0x28, 0x26, 0x24, 0x21, 0x20, 0x1e, 0x1d , 0 , 0 , 0
59
- .db 0x1d, 0x1b, 0x19, 0x18, 0x16, 0x16, 0x14, 0x13, 0x12, 0x10, 0x10, 0x0f, 0x0f , 0 , 0 , 0
60
- .db 0x0f, 0x0d, 0x0d, 0x0c, 0x0b, 0x0b, 0x0a, 0x09, 0x09, 0x08, 0x08, 0x08, 0x07 , 0 , 0 , 0
61
- .db 0x07, 0x07, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x04 , 0 , 0 , 0
62
- .db 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02 , 0 , 0 , 0
54
+ .db 0x6b, 0x65, 0x5f, 0x5a, 0x55, 0x50, 0x4b, 0x47, 0x44, 0x3f, 0x3c, 0x38, 0 , 0 , 0 , 0
55
+ .db 0x6b, 0x65, 0x5f, 0x5a, 0x55, 0x50, 0x4b, 0x47, 0x44, 0x3f, 0x3c, 0x38, 0 , 0 , 0 , 0
56
+ .db 0x36, 0x32, 0x30, 0x2d, 0x2a, 0x28, 0x26, 0x24, 0x21, 0x20, 0x1e, 0x1c, 0 , 0 , 0 , 0
57
+ .db 0x1b, 0x19, 0x18, 0x16, 0x15, 0x14, 0x13, 0x12, 0x10, 0x10, 0x0f, 0x0e, 0 , 0 , 0 , 0
58
+ .db 0x0d, 0x0c, 0x0c, 0x0b, 0x0b, 0x0a, 0x09, 0x09, 0x08, 0x08, 0x07, 0x07, 0 , 0 , 0 , 0
59
+ .db 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0 , 0 , 0 , 0
60
+ .db 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0 , 0 , 0 , 0
61
+ .db 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0 , 0 , 0 , 0
63
62
64
63
;;; Convert note flat representation to <octave,semitone> representation
65
64
;;; ------
0 commit comments