Pulse Channel frequency chart
MIDI Tuning Table
Using the MIDI Tuning Standard with A=440 Hz, we can derive the equivalent period timer value for the two Pulse channels. Due to limitations on the 11-bit period's range, the lowest standard MIDI frequency that can be reproduced with acceptable tuning is A-1 (55 Hz) on NTSC, and G#1 (51.91 Hz) on PAL. Here we show the desired frequency for each MIDI index, the closest period value, and the resulting tuning error (in cents) from the standard.
Note: The Triangle channel can make use of the same 11-bit period values. Due to its longer 32-step sequence, it will sound exactly one octave lower (half of the apparent frequency) compared to the equivalent period on Pulse.
MIDI | NTSC APU Pulse | PAL APU Pulse | ||||||
Index | Note | Frequency | 11bit Period | Frequency | Tuning | 11bit Period | Frequency | Tuning |
---|---|---|---|---|---|---|---|---|
31 | G-1 | 49.00 | - | - | - | $7FF | 50.74 | +60c |
32 | G#1 | 51.91 | $7FF | 54.62 | +88c | $7D1 | 51.90 | +0c |
33 | A-1 | 55.00 | $7F1 | 55.00 | +0c | $760 | 55.01 | +0c |
34 | A#1 | 58.27 | $77F | 58.26 | +0c | $6F6 | 58.28 | +0c |
35 | B-1 | 61.74 | $713 | 61.73 | +0c | $692 | 61.74 | +0c |
36 | C-2 | 65.41 | $6AD | 65.42 | +0c | $634 | 65.40 | +0c |
37 | C#2 | 69.30 | $64D | 69.31 | +0c | $5DB | 69.28 | -1c |
38 | D-2 | 73.42 | $5F3 | 73.40 | +0c | $586 | 73.44 | +0c |
39 | D#2 | 77.78 | $59D | 77.79 | +0c | $537 | 77.78 | +0c |
40 | E-2 | 82.41 | $54C | 82.43 | +1c | $4EC | 82.41 | +0c |
41 | F-2 | 87.31 | $500 | 87.32 | +0c | $4A5 | 87.32 | +0c |
42 | F#2 | 92.50 | $4B8 | 92.52 | +0c | $462 | 92.53 | +1c |
43 | G-2 | 98.00 | $474 | 98.04 | +1c | $423 | 98.03 | +1c |
44 | G#2 | 103.83 | $434 | 103.86 | +1c | $3E8 | 103.81 | +0c |
45 | A-2 | 110.00 | $3F8 | 109.99 | +0c | $3B0 | 109.96 | -1c |
46 | A#2 | 116.54 | $3BF | 116.52 | +0c | $37B | 116.49 | -1c |
47 | B-2 | 123.47 | $389 | 123.47 | +0c | $349 | 123.41 | -1c |
48 | C-3 | 130.81 | $356 | 130.83 | +0c | $319 | 130.87 | +1c |
49 | C#3 | 138.59 | $326 | 138.61 | +0c | $2ED | 138.55 | -1c |
50 | D-3 | 146.83 | $2F9 | 146.80 | +0c | $2C3 | 146.77 | -1c |
51 | D#3 | 155.56 | $2CE | 155.58 | +0c | $29B | 155.56 | +0c |
52 | E-3 | 164.81 | $2A6 | 164.74 | -1c | $275 | 164.94 | +1c |
53 | F-3 | 174.61 | $280 | 174.51 | -1c | $252 | 174.64 | +0c |
54 | F#3 | 185.00 | $25C | 184.89 | -1c | $231 | 184.90 | -1c |
55 | G-3 | 196.00 | $23A | 195.90 | -1c | $211 | 196.06 | +1c |
56 | G#3 | 207.65 | $21A | 207.53 | -1c | $1F3 | 207.83 | +1c |
57 | A-3 | 220.00 | $1FB | 220.20 | +2c | $1D7 | 220.15 | +1c |
58 | A#3 | 233.08 | $1DF | 233.04 | +0c | $1BD | 232.99 | -1c |
59 | B-3 | 246.94 | $1C4 | 246.93 | +0c | $1A4 | 246.82 | -1c |
60 | C-4 | 261.63 | $1AB | 261.36 | -2c | $18C | 261.75 | +1c |
61 | C#4 | 277.18 | $193 | 276.88 | -2c | $176 | 277.10 | -1c |
62 | D-4 | 293.66 | $17C | 293.60 | +0c | $161 | 293.54 | -1c |
63 | D#4 | 311.13 | $167 | 310.72 | -2c | $14D | 311.12 | +0c |
64 | E-4 | 329.63 | $152 | 329.97 | +2c | $13A | 329.88 | +1c |
65 | F-4 | 349.23 | $13F | 349.57 | +2c | $129 | 348.70 | -3c |
66 | F#4 | 369.99 | $12D | 370.40 | +2c | $118 | 369.80 | -1c |
67 | G-4 | 392.00 | $11C | 392.49 | +2c | $108 | 392.12 | +1c |
68 | G#4 | 415.30 | $10C | 415.84 | +2c | $0F9 | 415.65 | +1c |
69 | A-4 | 440.00 | $0FD | 440.40 | +2c | $0EB | 440.31 | +1c |
70 | A#4 | 466.16 | $0EF | 466.09 | +0c | $0DE | 465.98 | -1c |
71 | B-4 | 493.88 | $0E1 | 494.96 | +4c | $0D1 | 494.82 | +3c |
72 | C-5 | 523.25 | $0D5 | 522.71 | -2c | $0C6 | 522.18 | -4c |
73 | C#5 | 554.37 | $0C9 | 553.77 | -2c | $0BA | 555.68 | +4c |
74 | D-5 | 587.33 | $0BD | 588.74 | +4c | $0B0 | 587.08 | -1c |
75 | D#5 | 622.25 | $0B3 | 621.45 | -2c | $0A6 | 622.23 | +0c |
76 | E-5 | 659.26 | $0A9 | 658.00 | -3c | $09D | 657.68 | -4c |
77 | F-5 | 698.46 | $09F | 699.13 | +2c | $094 | 697.40 | -3c |
78 | F#5 | 739.99 | $096 | 740.80 | +2c | $08B | 742.24 | +5c |
79 | G-5 | 783.99 | $08E | 782.24 | -4c | $084 | 781.30 | -6c |
80 | G#5 | 830.61 | $086 | 828.60 | -4c | $07C | 831.30 | +1c |
81 | A-5 | 880.00 | $07E | 880.79 | +2c | $075 | 880.62 | +1c |
82 | A#5 | 932.33 | $077 | 932.17 | +0c | $06E | 936.15 | +7c |
83 | B-5 | 987.77 | $070 | 989.92 | +4c | $068 | 989.65 | +3c |
84 | C-6 | 1046.50 | $06A | 1045.43 | -2c | $062 | 1049.63 | +5c |
85 | C#6 | 1108.73 | $064 | 1107.53 | -2c | $05D | 1105.46 | -5c |
86 | D-6 | 1174.66 | $05E | 1177.48 | +4c | $057 | 1180.83 | +9c |
87 | D#6 | 1244.51 | $059 | 1242.90 | -2c | $052 | 1251.96 | +10c |
88 | E-6 | 1318.51 | $054 | 1316.01 | -3c | $04E | 1315.35 | -4c |
89 | F-6 | 1396.91 | $04F | 1398.26 | +2c | $049 | 1404.23 | +9c |
90 | F#6 | 1479.98 | $04B | 1471.85 | -10c | $045 | 1484.47 | +5c |
91 | G-6 | 1567.98 | $046 | 1575.50 | +8c | $041 | 1574.44 | +7c |
92 | G#6 | 1661.22 | $042 | 1669.56 | +9c | $03E | 1649.41 | -12c |
93 | A-6 | 1760.00 | $03F | 1747.83 | -12c | $03A | 1761.24 | +1c |
94 | A#6 | 1864.66 | $03B | 1864.35 | +0c | $037 | 1855.59 | -8c |
95 | B-6 | 1975.53 | $038 | 1962.47 | -11c | $034 | 1960.62 | -13c |
96 | C-7 | 2093.00 | $034 | 2110.58 | +14c | $031 | 2078.26 | -12c |
97 | C#7 | 2217.46 | $031 | 2237.22 | +15c | $02E | 2210.91 | -5c |
98 | D-7 | 2349.32 | $02F | 2330.43 | -14c | $02B | 2361.66 | +9c |
99 | D#7 | 2489.02 | $02C | 2485.80 | -2c | $029 | 2474.12 | -10c |
100 | E-7 | 2637.02 | $029 | 2663.35 | +17c | $026 | 2664.43 | +18c |
101 | F-7 | 2793.83 | $027 | 2796.52 | +2c | $024 | 2808.46 | +9c |
102 | F#7 | 2959.96 | $025 | 2943.71 | -10c | $022 | 2968.94 | +5c |
103 | G-7 | 3135.96 | $023 | 3107.24 | -16c | $020 | 3148.88 | +7c |
104 | G#7 | 3322.44 | $021 | 3290.02 | -17c | $01E | 3352.03 | +15c |
105 | A-7 | 3520.00 | $01F | 3495.65 | -12c | $01D | 3463.76 | -28c |
106 | A#7 | 3729.31 | $01D | 3728.69 | +0c | $01B | 3711.18 | -8c |
107 | B-7 | 3951.07 | $01B | 3995.03 | +19c | $019 | 3996.65 | +20c |
108 | C-8 | 4186.01 | $01A | 4142.99 | -18c | $018 | 4156.52 | -12c |
109 | C#8 | 4434.92 | $018 | 4474.43 | +15c | $016 | 4517.95 | +32c |
110 | D-8 | 4698.64 | $017 | 4660.87 | -14c | $015 | 4723.32 | +9c |
111 | D#8 | 4978.03 | $015 | 5084.58 | +37c | $014 | 4948.24 | -10c |
112 | E-8 | 5274.04 | $014 | 5326.71 | +17c | $013 | 5195.65 | -26c |
113 | F-8 | 5587.65 | $013 | 5593.04 | +2c | $012 | 5469.10 | -37c |
114 | F#8 | 5919.91 | $012 | 5887.41 | -10c | $011 | 5772.94 | -44c |
115 | G-8 | 6271.93 | $011 | 6214.49 | -16c | $010 | 6112.53 | -45c |
116 | G#8 | 6644.88 | $010 | 6580.05 | -17c | $00F | 6494.56 | -40c |
117 | A-8 | 7040.00 | $00F | 6991.30 | -12c | $00E | 6927.53 | -28c |
118 | A#8 | 7458.62 | $00E | 7457.39 | +0c | $00D | 7422.35 | -8c |
119 | B-8 | 7902.13 | $00D | 7990.06 | +19c | $00C | 7993.30 | +20c |
120 | C-9 | 8372.02 | $00C | 8604.68 | +47c | $00B | 8659.41 | +58c |
121 | C#9 | 8869.84 | $00C | 8604.68 | -53c | $00B | 8659.41 | -42c |
122 | D-9 | 9397.27 | $00B | 9321.73 | -14c | $00A | 9446.63 | +9c |
123 | D#9 | 9956.06 | $00A | 10169.16 | +37c | $009 | 10391.29 | +74c |
124 | E-9 | 10548.08 | $00A | 10169.16 | -63c | $009 | 10391.29 | -26c |
125 | F-9 | 11175.30 | $009 | 11186.08 | +2c | $008 | 11545.88 | +56c |
126 | F#9 | 11839.82 | $008 | 12428.98 | +84c | $008 | 11545.88 | -44c |
127 | G-9 | 12543.85 | $008 | 12428.98 | -16c | $007 | 12989.12 | +60c |
Code Friendly Tables
Here are the period values from the above table in ca65 syntax, split into low/high byte halves for convenient indexing.
Note: These include every MIDI index from 0-127. This means the first ~32 entries in the table contain nonsense values, as the equivalent periods are larger than the range of the 11-bit timer. Programmers may wish to trim these early entries to save space.
NTSC Periods
ntsc_period_low: .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $f1, $7f, $13, $ad, $4d, $f3, $9d .byte $4c, $00, $b8, $74, $34, $f8, $bf, $89 .byte $56, $26, $f9, $ce, $a6, $80, $5c, $3a .byte $1a, $fb, $df, $c4, $ab, $93, $7c, $67 .byte $52, $3f, $2d, $1c, $0c, $fd, $ef, $e1 .byte $d5, $c9, $bd, $b3, $a9, $9f, $96, $8e .byte $86, $7e, $77, $70, $6a, $64, $5e, $59 .byte $54, $4f, $4b, $46, $42, $3f, $3b, $38 .byte $34, $31, $2f, $2c, $29, $27, $25, $23 .byte $21, $1f, $1d, $1b, $1a, $18, $17, $15 .byte $14, $13, $12, $11, $10, $0f, $0e, $0d .byte $0c, $0c, $0b, $0a, $0a, $09, $08, $08 ntsc_period_high: .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $06, $06, $05, $05 .byte $05, $05, $04, $04, $04, $03, $03, $03 .byte $03, $03, $02, $02, $02, $02, $02, $02 .byte $02, $01, $01, $01, $01, $01, $01, $01 .byte $01, $01, $01, $01, $01, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00
PAL Periods
pal_period_low: .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff .byte $d1, $60, $f6, $92, $34, $db, $86, $37 .byte $ec, $a5, $62, $23, $e8, $b0, $7b, $49 .byte $19, $ed, $c3, $9b, $75, $52, $31, $11 .byte $f3, $d7, $bd, $a4, $8c, $76, $61, $4d .byte $3a, $29, $18, $08, $f9, $eb, $de, $d1 .byte $c6, $ba, $b0, $a6, $9d, $94, $8b, $84 .byte $7c, $75, $6e, $68, $62, $5d, $57, $52 .byte $4e, $49, $45, $41, $3e, $3a, $37, $34 .byte $31, $2e, $2b, $29, $26, $24, $22, $20 .byte $1e, $1d, $1b, $19, $18, $16, $15, $14 .byte $13, $12, $11, $10, $0f, $0e, $0d, $0c .byte $0b, $0b, $0a, $09, $09, $08, $08, $07 pal_period_high: .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $07, $07, $07, $07, $07, $07 .byte $07, $07, $06, $06, $06, $05, $05, $05 .byte $04, $04, $04, $04, $03, $03, $03, $03 .byte $03, $02, $02, $02, $02, $02, $02, $02 .byte $01, $01, $01, $01, $01, $01, $01, $01 .byte $01, $01, $01, $01, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00 .byte $00, $00, $00, $00, $00, $00, $00, $00