analmux Posted January 28, 2015 Share Posted January 28, 2015 The standard setting of RMT (1.28) contains a distortion table, 16-bit mode select and some note-2-pitch (frqtab) tables. The memory size of this total set of tables is 5*64 = 320 bytes: tabbeganddistor (distortion table) frqtabpure-frqtab,$00 frqtabpure-frqtab,$20 frqtabpure-frqtab,$40 frqtabbass1-frqtab,$c0 frqtabpure-frqtab,$80 frqtabpure-frqtab,$a0 frqtabbass1-frqtab,$c0 frqtabbass2-frqtab,$c0 frqtabbasslo (= frqtab-$40) dta $F2,$33,$96,$E2,$38,$8C,$00,$6A,$E8,$6A,$EF,$80 dta $08,$AE,$46,$E6,$95,$41,$F6,$B0,$6E,$30,$F6,$BB dta $84,$52,$22,$F4,$C8,$A0,$7A,$55,$34,$14,$F5,$D8 dta $BD,$A4,$8D,$77,$60,$4E,$38,$27,$15,$06,$F7,$E8 dta $DB,$CF,$C3,$B8,$AC,$A2,$9A,$90,$88,$7F,$78,$70 dta $6A,$64,$5E,$00 frqtabbass1 (= frqtab) dta $BF,$B6,$AA,$A1,$98,$8F,$89,$80,$F2,$E6,$DA,$CE dta $BF,$B6,$AA,$A1,$98,$8F,$89,$80,$7A,$71,$6B,$65 dta $5F,$5C,$56,$50,$4D,$47,$44,$3E,$3C,$38,$35,$32 dta $2F,$2D,$2A,$28,$25,$23,$21,$1F,$1D,$1C,$1A,$18 dta $17,$16,$14,$13,$12,$11,$10,$0F,$0E,$0D,$0C,$0B dta $0A,$09,$08,$07 frqtabbass2 (= frqtab+$40) dta $FF,$F1,$E4,$D8,$CA,$C0,$B5,$AB,$A2,$99,$8E,$87 dta $7F,$79,$73,$70,$66,$61,$5A,$55,$52,$4B,$48,$43 dta $3F,$3C,$39,$37,$33,$30,$2D,$2A,$28,$25,$24,$21 dta $1F,$1E,$1C,$1B,$19,$17,$16,$15,$13,$12,$11,$10 dta $0F,$0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04 dta $03,$02,$01,$00 frqtabpure (= frqtab+$80) dta $F3,$E6,$D9,$CC,$C1,$B5,$AD,$A2,$99,$90,$88,$80 dta $79,$72,$6C,$66,$60,$5B,$55,$51,$4C,$48,$44,$40 dta $3C,$39,$35,$32,$2F,$2D,$2A,$28,$25,$23,$21,$1F dta $1D,$1C,$1A,$18,$17,$16,$14,$13,$12,$11,$10,$0F dta $0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03 dta $02,$01,$00,$00 frqtabbasshi (= frqtab+$c0) dta $0D,$0D,$0C,$0B,$0B,$0A,$0A,$09,$08,$08,$07,$07 dta $07,$06,$06,$05,$05,$05,$04,$04,$04,$04,$03,$03 dta $03,$03,$03,$02,$02,$02,$02,$02,$02,$02,$01,$01 dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 dta $00,$00,$00,$00 My prediction says that it is possible to change these tables totally with a different form, and my next little project is to make another patch. This patch will be based on the 15 kHz mode, and the base note of a 'chromatic scale approximation' will be 256*114 = 29184 cycles. It will contain: (1) Square bass, with a table of 48 bytes (2) High notes with distortion 2, at 1.79 MHz mode, with another table of 48 bytes (3) Very high notes with distortion C, at 1.79 MHz mode, with another table of 48 bytes (4) Sawtooth (& triangle), i.e. filtered square wave at 1.79 MHz, with another table of 48 bytes (5) Electric distortion guitar (poly 9, 16-bit), with a split-table of 2*32 bytes (6) Clarinet (poly 4, 16-bit), with a split-table of 2*32 bytes Thus, the sum will again be a total table of 320 bytes. Note that it is not that easy to implement 2-tone-filter in RMT itself; a 'by-pass' is needed. Especially interesting: (5) and (6) could be supported with fat undertones, when also the 2nd voice is turned on!!! Or will it be impossible? 2 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted January 28, 2015 Share Posted January 28, 2015 Where is 1.28? I got 1.27 patch2? Quote Link to comment Share on other sites More sharing options...
analmux Posted January 28, 2015 Author Share Posted January 28, 2015 Where is 1.28? I got 1.27 patch2? Here you can find the standard RMT 1.28, and the "RMT 1.28 Patch 8" is still "theory". Quote Link to comment Share on other sites More sharing options...
analmux Posted January 29, 2015 Author Share Posted January 29, 2015 STEP ONE: I will replace standard RMT 1.28, Pure, 64 bytes (5.3333 octaves) frqtabpure dta $F3,$E6,$D9,$CC,$C1,$B5,$AD,$A2,$99,$90,$88,$80,$79,$72,$6C,$66 dta $60,$5B,$55,$51,$4C,$48,$44,$40,$3C,$39,$35,$32,$2F,$2D,$2A,$28 dta $25,$23,$21,$1F,$1D,$1C,$1A,$18,$17,$16,$14,$13,$12,$11,$10,$0F dta $0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03,$02,$01,$00,$00 with RMT 1.28 Patch 8, Pure, 48 bytes (4 octaves) frqtabpure dta $FF,$F1,$E3,$D6,$CA,$BF,$B4,$AA,$A0,$97,$8F,$87 dta $7F,$78,$71,$6B,$65,$5F,$5A,$54,$50,$4B,$47,$43 dta $3F,$3B,$38,$35,$32,$2F,$2C,$2A,$27,$25,$23,$21 dta $1F,$1D,$1C,$1A,$18,$17,$16,$14,$13,$12,$11,$10 See also AA topic How to improve the PoKey "NOTE-2-PITCH" table, compared to RMT. Quote Link to comment Share on other sites More sharing options...
miker Posted January 29, 2015 Share Posted January 29, 2015 A bit old thread, but maybe a bit useful: http://atariage.com/forums/topic/148159-pokey-triangle-sawtooth-and-other-advanced-stuff Note: my experiment on "fitting triangles" is based on standard freq-table (and yes, based on Rybags' calculations, too! ), so it can be re-tuned for the new one. Quote Link to comment Share on other sites More sharing options...
miker Posted January 29, 2015 Share Posted January 29, 2015 (edited) Sorry for post-after-post. My "ideal" RMT should have well-tuned metalic sound ($2), well tuned 16-bit bass ($a0) alloving vibratos on it and of course well tuned triangle/sawtooth sounds. I may keep some C & E type basses but only fragmentarily (omitting bad-notes or so). All the rest can be sacrificed. Edt: of course besides "pure"-table. Edited January 29, 2015 by miker Quote Link to comment Share on other sites More sharing options...
miker Posted January 29, 2015 Share Posted January 29, 2015 (edited) Ok, it may look irrevelant. Swiety/Zelax has just released sources os his SIDplayer and Synthtracker. And small excerpt from it. Load TRK7.XEX and press Ctrl+Shift+P. Synthtracker and SID Player sources.rar TRK7.XEX Edited January 29, 2015 by miker 2 Quote Link to comment Share on other sites More sharing options...
analmux Posted January 29, 2015 Author Share Posted January 29, 2015 Hi miker, Of course Rybags' table is far more accurate, but it is 16-bit. And besides, the advanced sawtooth and triangle tables are rather different. This will take many bytes. My plan is to use 48 bytes at max, and only reuse the simple sawtooth / triangle table. Doing a simple RMT patch, I can't add extra table space, and the maximum size is 320 bytes. By the way, I can help you in triangle tables. The Simpson rule is easy. To my opinion the 8-bit square bass at 15 kHz is enough, it supports vibratos, and then the 16-bit bass isn't that important. I'm sorry, but there's no place left for the C/E and A/C 16-bit basses. Just wait until patch 8 is finished. It has other advantages. My idea is to use 16-bit mode with a slightly different control, but also this is still a secret. Quote Link to comment Share on other sites More sharing options...
analmux Posted January 29, 2015 Author Share Posted January 29, 2015 And here's one example:http://atariage.com/forums/topic/175883-rmt-patch-7/ RMT 127 (Patch 7) - Tests.zip Quote Link to comment Share on other sites More sharing options...
analmux Posted January 30, 2015 Author Share Posted January 30, 2015 STEP TWO: RMT 1.28 Patch 8, high notes with distortion 2 at 1.79 MHz mode, 48 bytes (4 octaves) frqtabdist2179 dta $E7,$DA,$CE,$C2,$B7,$AC,$A2,$99,$90,$88,$80,$79 dta $72,$6B,$65,$5F,$5A,$54,$4F,$4B,$46,$42,$3E,$3B dta $37,$34,$30,$2D,$2B,$28,$26,$23,$21,$1F,$1D,$1C dta $19,$18,$16,$15,$13,$12,$11,$10,$0F,$0E,$0D,$0C Decimal source, with a minimal explanation of 4 'manual corrections', at place 16,23,35 and 45 231 218 206 194 183 172 162 153 144 136 128 121 114 107 101 95 89+1 84 79 75 70 66 62 58+1 55 52 48 45 43 40 38 35 33 31 29 27+1 25 24 22 21 19 18 17 16 15 13+1 13 12 Some explanation: LOAD "D:FTD2179.BAS" And here's an update of the TEST2015.ATR file. TEST2015.ATR Quote Link to comment Share on other sites More sharing options...
peteym5 Posted January 30, 2015 Share Posted January 30, 2015 I know the original programmer, Radek Sterba had an unfortunate encounter with a train. I am wondering if anyone became interested in improving the RMT asm player to see if they can get to use less CPU and memory. I looked at it myself and see several possibilities. However each time I did something, it ended up not working correctly. I prefer doing 3 voice at standard Pokey settings with one voice for sound effects. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted January 30, 2015 Share Posted January 30, 2015 Every time I am using and implementing RMT I need to think of Radek and his pass away... Strange. But yeah the RMT player might need at least some facelift? Anybody else have a 'shortened' tailored version for his game/Demo? Quote Link to comment Share on other sites More sharing options...
analmux Posted January 30, 2015 Author Share Posted January 30, 2015 (edited) I am wondering if anyone became interested in improving the RMT asm player to see if they can get to use less CPU and memory. Less CPU = more memory & less memory = more CPU. I just want to focus on making another very easy patch of the existing RMT asm: only changing tables. Then it's also easy to patch RMT.exe, with a simple hex-editor. The RMT.exe contains copies of the binary asm / rmtplayr.a65. But yeah the RMT player might need at least some facelift? Is there anyone who still has the RMT.exe win32 source code? Edited January 30, 2015 by analmux Quote Link to comment Share on other sites More sharing options...
analmux Posted January 30, 2015 Author Share Posted January 30, 2015 To prepare the next step, I found a related topic: http://atariage.com/forums/topic/231557-10-minutes-of-testsounds/?p=3113446 And here are the tests, without any RMT patches: ExamplesPoly4.zip 1 Quote Link to comment Share on other sites More sharing options...
analmux Posted January 31, 2015 Author Share Posted January 31, 2015 Meanwhile, I have created a new table schedule. I'm still not sure yet how to split up the 8-bit poly 4 degenerate 1 / 3 table. Here's a provisional version of the table set: Patch 8 Table: RMT PoKey Bits: Clock: Number Instrument distortion: distortion: of bytes: name: 0 0 8 x x White noise 2 2 8 1.79 MHz 48 Poly 5 / Generator 2 4 A 8 1.79 MHz 36 Sawtooth (Triangle) 6 C 16 1.79 MHz 32*2 Clarinet (Poly 4) 8 C 8 1.79 MHz 36 Poly 4 degenerate 3 (polydeg43) A A 8 15 kHz 48 Pure bass C C 8 1.79 MHz 24 Poly 4 degenerate 1 (polydeg41) E 8 16 1.79 MHz 32*2 Distortion guitar (Poly 9) 1 Quote Link to comment Share on other sites More sharing options...
analmux Posted February 1, 2015 Author Share Posted February 1, 2015 I have change my mind a little bit: RMT PoKey Bits: Clock: Number Instrument distortion: distortion: of bytes: name: 0 0 8 x x White noise 2 2 8 1.79 MHz 48 Poly 5 / Generator 2 4 A 8 1.79 MHz 36 Sawtooth / Triangle 6 C 8LSB 1.79 MHz 32 Clarinet (Poly 4), LSB 8 A 8HSB 1.79 MHz 64 Harmonic square undertones of Clarinet / Distortion guitar, HSB A A 8 15 kHz 48 Pure bass C C 8 1.79 MHz 60 Poly 4 (degenerate 1 and 3) E 8 8LSB 1.79 MHz 32 Distortion guitar (Poly 9), LSB 1 Quote Link to comment Share on other sites More sharing options...
analmux Posted February 1, 2015 Author Share Posted February 1, 2015 More about 'Poly 4 at 1.79 MHz', then only select D1 and D3: Degenerate numbers, AUDF+4: D15: 15-degenerate - 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 D1: 1-degenerate - 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 D1: 1-degenerate - 17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 257 D3: 3-degenerate - 18 33 48 63 78 93 108 123 138 153 168 183 198 213 228 243 258 D1: 1-degenerate 4 19 34 49 64 79 94 109 124 139 154 169 184 199 214 229 244 259 D5: 5-degenerate 5 20 35 50 65 80 95 110 125 140 155 170 185 200 215 230 245 - D3: 3-degenerate 6 21 36 51 66 81 96 111 126 141 156 171 186 201 216 231 246 - D1: 1-degenerate 7 22 37 52 67 82 97 112 127 142 157 172 187 202 217 232 247 - D1: 1-degenerate 8 23 38 53 68 83 98 113 128 143 158 173 188 203 218 233 248 - D3: 3-degenerate 9 24 39 54 69 84 99 114 129 144 159 174 189 204 219 234 249 - D5: 5-degenerate 10 25 40 55 70 85 100 115 130 145 160 175 190 205 220 235 250 - D1: 1-degenerate 11 26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 - D3: 3-degenerate 12 27 42 57 72 87 102 117 132 147 162 177 192 207 222 237 252 - D1: 1-degenerate 13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 - D1: 1-degenerate 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 - D1, 1-degenerate numbers, AUDF+4: - 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 - 17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 257 4 19 34 49 64 79 94 109 124 139 154 169 184 199 214 229 244 259 7 22 37 52 67 82 97 112 127 142 157 172 187 202 217 232 247 - 8 23 38 53 68 83 98 113 128 143 158 173 188 203 218 233 248 - 11 26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 - 13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 - 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 - D3, 3-degenerate numbers, AUDF+4: - 18 33 48 63 78 93 108 123 138 153 168 183 198 213 228 243 258 6 21 36 51 66 81 96 111 126 141 156 171 186 201 216 231 246 - 9 24 39 54 69 84 99 114 129 144 159 174 189 204 219 234 249 - 12 27 42 57 72 87 102 117 132 147 162 177 192 207 222 237 252 - And reordered, from AUDF+4 to AUDF: Degenerate numbers, AUDF: D15: 15-degenerate - 11 26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 D1: 1-degenerate - 12 27 42 57 72 87 102 117 132 147 162 177 192 207 222 237 252 D1: 1-degenerate - 13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 D3: 3-degenerate - 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 D1: 1-degenerate 0 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 D5: 5-degenerate 1 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 - D3: 3-degenerate 2 17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 - D1: 1-degenerate 3 18 33 48 63 78 93 108 123 138 153 168 183 198 213 228 243 - D1: 1-degenerate 4 19 34 49 64 79 94 109 124 139 154 169 184 199 214 229 244 - D3: 3-degenerate 5 20 35 50 65 80 95 110 125 140 155 170 185 200 215 230 245 - D5: 5-degenerate 6 21 36 51 66 81 96 111 126 141 156 171 186 201 216 231 246 - D1: 1-degenerate 7 22 37 52 67 82 97 112 127 142 157 172 187 202 217 232 247 - D3: 3-degenerate 8 23 38 53 68 83 98 113 128 143 158 173 188 203 218 233 248 - D1: 1-degenerate 9 24 39 54 69 84 99 114 129 144 159 174 189 204 219 234 249 - D1: 1-degenerate 10 25 40 55 70 85 100 115 130 145 160 175 190 205 220 235 250 - D1, 1-degenerate numbers, AUDF: - 12 27 42 57 72 87 102 117 132 147 162 177 192 207 222 237 252 - 13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 0 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 3 18 33 48 63 78 93 108 123 138 153 168 183 198 213 228 243 - 4 19 34 49 64 79 94 109 124 139 154 169 184 199 214 229 244 - 7 22 37 52 67 82 97 112 127 142 157 172 187 202 217 232 247 - 9 24 39 54 69 84 99 114 129 144 159 174 189 204 219 234 249 - 10 25 40 55 70 85 100 115 130 145 160 175 190 205 220 235 250 - D3, 3-degenerate numbers, AUDF: - 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 2 17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 - 5 20 35 50 65 80 95 110 125 140 155 170 185 200 215 230 245 - 8 23 38 53 68 83 98 113 128 143 158 173 188 203 218 233 248 - Quote Link to comment Share on other sites More sharing options...
analmux Posted February 1, 2015 Author Share Posted February 1, 2015 And some testing code: And another ATR update: TEST2015.ATR Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted February 1, 2015 Share Posted February 1, 2015 I know the original programmer, Radek Sterba had an unfortunate encounter with a train. Maybe its just me but that sounds pretty crass... A very well respected community person who met an untimely death and you make it sound like a joke? Maybe I'm just tired? 2 Quote Link to comment Share on other sites More sharing options...
analmux Posted February 1, 2015 Author Share Posted February 1, 2015 STEP THREE: RMT 1.28 Patch 8, very high notes with distortion C at 1.79 MHz mode, 48 bytes (3 octaves, 1 octave double). (12 bytes still unused.) frqtabpolydeg4 frqtabpolydeg41 dta $F0,$E1,$D5,$CA,$BD,$B2,$A8,$9D,$96,$8E,$84,$7C dta $76,$70,$69,$63,$5D,$57,$52,$4E,$49,$45,$40,$3C dta $39,$36,$31,$30,$2D,$2A,$27 frqtabpolydeg43 dta $EF,$E3,$D4,$C8,$BC,$B3,$A7,$9E,$95,$8C,$86,$7D dta $77,$6E,$68,$62,$5C It only works under TurboBasic: LOAD "D:FTDC179.TBB" (And another TEST2015.ATR update.) TEST2015.ATR Quote Link to comment Share on other sites More sharing options...
analmux Posted February 2, 2015 Author Share Posted February 2, 2015 And some more explanation of "3 octaves, 1 octave double": D1, 1-degenerate numbers, AUDF+4: - 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 - 17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 257 4 19 34 49 64 79 94 109 124 139 154 169 184 199 214 229 244 259 7 22 37 52 67 82 97 112 127 142 157 172 187 202 217 232 247 - 8 23 38 53 68 83 98 113 128 143 158 173 188 203 218 233 248 - 11 26 41 56 71 86 101 116 131 146 161 176 191 206 221 236 251 - 13 28 43 58 73 88 103 118 133 148 163 178 193 208 223 238 253 - 14 29 44 59 74 89 104 119 134 149 164 179 194 209 224 239 254 - D3, 3-degenerate numbers, AUDF+4: - 18 33 48 63 78 93 108 123 138 153 168 183 198 213 228 243 258 6 21 36 51 66 81 96 111 126 141 156 171 186 201 216 231 246 - 9 24 39 54 69 84 99 114 129 144 159 174 189 204 219 234 249 - 12 27 42 57 72 87 102 117 132 147 162 177 192 207 222 237 252 - Index 1: POLY4DG1: INT41: Index 3: POLY4DG3: INT43: 0 243.20 244 - - - 1 229.55 229 - - - 2 216.67 217 - - - 3 204.51 206 - - - 4 193.03 193 - - - 5 182.19 182 - - - 6 171.97 172 - - - 7 162.32 161 - - - 8 153.21 154 - - - 9 144.61 146 - - - 10 136.49 136 - - - 11 128.83 128 - - - 12 121.60 122 - - - 13 114.78 116 - - - 14 108.33 109 - - - 15 102.25 103 - - - 16 96.51 97 - - - 17 91.10 91 - - - 18 85.98 86 - - - 19 81.16 82 31 243.47 243 20 76.60 77 32 229.81 231 21 72.30 73 33 216.91 216 22 68.25 68 34 204.74 204 23 64.42 64 35 193.25 192 24 60.80 61 36 182.40 183 25 57.39 58 37 172.16 171 26 54.17 53 38 162.50 162 27 51.13 52 39 153.38 153 28 48.26 49 40 144.77 144 29 45.55 46 41 136.65 138 30 42.99 43 42 128.98 129 - - - 43 121.74 123 - - - 44 114.90 114 - - - 45 108.46 108 - - - 46 102.37 102 - - - 47 96.62 96 Quote Link to comment Share on other sites More sharing options...
analmux Posted February 2, 2015 Author Share Posted February 2, 2015 ... And a small hint: • "Deg 1" vs "Deg 3" is equivalent to the "freq 1" : "freq 3" ratio. • The ratio of "base note" vs "octave + quint", thus 12 + 7 = 19 semitones. • Note that 1 : 3 has an approximation of 2^(19/12) Thus, this gives a small explanation of post 21. Quote Link to comment Share on other sites More sharing options...
peteym5 Posted February 2, 2015 Share Posted February 2, 2015 Maybe its just me but that sounds pretty crass... A very well respected community person who met an untimely death and you make it sound like a joke? Maybe I'm just tired? I did not intend this one as a joke. I respect this guy as much as anyone because many of us made use of his programming. I am glad someone is looking to go forward with upgrading RMT. I am not sure if anyone took it over or if anyone took control of it. Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted February 2, 2015 Share Posted February 2, 2015 I did not intend this one as a joke. I respect this guy as much as anyone because many of us made use of his programming. I am glad someone is looking to go forward with upgrading RMT. I am not sure if anyone took it over or if anyone took control of it. In that case my apologies, just looked wrong to my tired eyes.. Quote Link to comment Share on other sites More sharing options...
analmux Posted February 2, 2015 Author Share Posted February 2, 2015 Now it's time to refresh my memory and study the sawtooth formula. See here for example: AtariAge Forums - Atari Systems - Atari 8-Bit Computers - POKEY help This is a lot less simple. When F3=F1+1, we know for sure that LCM(F1,F3)=F1*F3, as they are always relatively prime (here LCM is the least common multiple of two values). When f.e. F3=F1+2 then only for odd F1, we have LCM(F1,F3)=F1*F3. It's really a long story, but when F3 (=F1+N) and F1 are relatively prime, then there's still a nice formula. The positive thing is that for the purpose of getting better note precision this is exactly what we need: relatively prime pitches. So, when we do: POKE 53760,F1-4:POKE 53764,F3-4 where F3=F1+N, we get: PHI = LCM(F1,F3) =F1*F3 = F1*(F1+N). Now solve this by ABC-formula for quadratic functions. F1^2+N*F1-PHI=0 then: F1=(-N+SQR(N^2+4*PHI))/2 now, because we want P1 (=pitch1) = F1+4, and P3=P1+N, we get: P1=F1-4 = (-N+SQR(N^2+4*PHI)/2 -4=(-N-8+SQR(N^2+4*PHI)/2 you can check that this will obtain the original formula, when you choose N=1. There's another effect when using non-relatively-prime pitches: some subharmonic expansions will be added to the sound, such that it is not a pure sawtooth wave anymore, but a richer type of sound: The richness of Pokey features really lies in all the possible 'resonances' of more simple settings. This is only an example of a small part of Pokey's features. Some features may one day surprise all of us Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.