Skip to content

Instantly share code, notes, and snippets.

@suzukiplan
Created July 17, 2015 04:59
Show Gist options
  • Save suzukiplan/10ab71eee1e84fd31847 to your computer and use it in GitHub Desktop.
Save suzukiplan/10ab71eee1e84fd31847 to your computer and use it in GitHub Desktop.
ファミコンの音程($4002-$4003)に設定する値を算出する
/* ファミコンの音程 ($4002-$4003 に設定すべき値) */
#include <stdio.h>
#define S 44100.00
#define B 1.0594631
#define PI 3.1415926535897932
#define PI2 6.2831853071795864
#define CPU 1790000
int main(int argc,char* argv[])
{
const char* t[12]={
"A "
,"A#"
,"B "
,"C "
,"C#"
,"D "
,"D#"
,"E "
,"F "
,"F#"
,"G "
,"G#"
};
double hz[88];
int n=0;
double a=13.75;
double b;
short reg;
for(n=0;n<88;n++) {
if(n%12==0) {
a*=2.0;
hz[n]=a;
} else {
hz[n] = hz[n-1] * B;
}
b=PI2/(S/hz[n]);
reg=(short)(CPU/(hz[n]*32)-1);
printf("%s : %9.4fHz : $4002-$4003 = $%04X\n",t[n%12],hz[n],reg);
}
return 0;
}
@suzukiplan
Copy link
Author

A  :   27.5000Hz : $4002-$4003 = $07F1
A# :   29.1352Hz : $4002-$4003 = $077E
B  :   30.8677Hz : $4002-$4003 = $0713
C  :   32.7032Hz : $4002-$4003 = $06AD
C# :   34.6478Hz : $4002-$4003 = $064D
D  :   36.7081Hz : $4002-$4003 = $05F2
D# :   38.8909Hz : $4002-$4003 = $059D
E  :   41.2034Hz : $4002-$4003 = $054C
F  :   43.6535Hz : $4002-$4003 = $0500
F# :   46.2493Hz : $4002-$4003 = $04B8
G  :   48.9994Hz : $4002-$4003 = $0474
G# :   51.9131Hz : $4002-$4003 = $0434
A  :   55.0000Hz : $4002-$4003 = $03F8
A# :   58.2705Hz : $4002-$4003 = $03BE
B  :   61.7354Hz : $4002-$4003 = $0389
C  :   65.4064Hz : $4002-$4003 = $0356
C# :   69.2957Hz : $4002-$4003 = $0326
D  :   73.4162Hz : $4002-$4003 = $02F8
D# :   77.7817Hz : $4002-$4003 = $02CE
E  :   82.4069Hz : $4002-$4003 = $02A5
F  :   87.3071Hz : $4002-$4003 = $027F
F# :   92.4986Hz : $4002-$4003 = $025B
G  :   97.9989Hz : $4002-$4003 = $0239
G# :  103.8262Hz : $4002-$4003 = $0219
A  :  110.0000Hz : $4002-$4003 = $01FB
A# :  116.5409Hz : $4002-$4003 = $01DE
B  :  123.4708Hz : $4002-$4003 = $01C4
C  :  130.8128Hz : $4002-$4003 = $01AA
C# :  138.5913Hz : $4002-$4003 = $0192
D  :  146.8324Hz : $4002-$4003 = $017B
D# :  155.5635Hz : $4002-$4003 = $0166
E  :  164.8138Hz : $4002-$4003 = $0152
F  :  174.6141Hz : $4002-$4003 = $013F
F# :  184.9972Hz : $4002-$4003 = $012D
G  :  195.9977Hz : $4002-$4003 = $011C
G# :  207.6524Hz : $4002-$4003 = $010C
A  :  220.0000Hz : $4002-$4003 = $00FD
A# :  233.0819Hz : $4002-$4003 = $00EE
B  :  246.9417Hz : $4002-$4003 = $00E1
C  :  261.6256Hz : $4002-$4003 = $00D4
C# :  277.1826Hz : $4002-$4003 = $00C8
D  :  293.6648Hz : $4002-$4003 = $00BD
D# :  311.1270Hz : $4002-$4003 = $00B2
E  :  329.6276Hz : $4002-$4003 = $00A8
F  :  349.2282Hz : $4002-$4003 = $009F
F# :  369.9944Hz : $4002-$4003 = $0096
G  :  391.9955Hz : $4002-$4003 = $008D
G# :  415.3047Hz : $4002-$4003 = $0085
A  :  440.0000Hz : $4002-$4003 = $007E
A# :  466.1638Hz : $4002-$4003 = $0076
B  :  493.8833Hz : $4002-$4003 = $0070
C  :  523.2511Hz : $4002-$4003 = $0069
C# :  554.3653Hz : $4002-$4003 = $0063
D  :  587.3296Hz : $4002-$4003 = $005E
D# :  622.2540Hz : $4002-$4003 = $0058
E  :  659.2551Hz : $4002-$4003 = $0053
F  :  698.4565Hz : $4002-$4003 = $004F
F# :  739.9889Hz : $4002-$4003 = $004A
G  :  783.9909Hz : $4002-$4003 = $0046
G# :  830.6094Hz : $4002-$4003 = $0042
A  :  880.0000Hz : $4002-$4003 = $003E
A# :  932.3275Hz : $4002-$4003 = $003A
B  :  987.7666Hz : $4002-$4003 = $0037
C  : 1046.5023Hz : $4002-$4003 = $0034
C# : 1108.7305Hz : $4002-$4003 = $0031
D  : 1174.6591Hz : $4002-$4003 = $002E
D# : 1244.5080Hz : $4002-$4003 = $002B
E  : 1318.5103Hz : $4002-$4003 = $0029
F  : 1396.9130Hz : $4002-$4003 = $0027
F# : 1479.9778Hz : $4002-$4003 = $0024
G  : 1567.9818Hz : $4002-$4003 = $0022
G# : 1661.2189Hz : $4002-$4003 = $0020
A  : 1760.0000Hz : $4002-$4003 = $001E
A# : 1864.6551Hz : $4002-$4003 = $001C
B  : 1975.5332Hz : $4002-$4003 = $001B
C  : 2093.0046Hz : $4002-$4003 = $0019
C# : 2217.4611Hz : $4002-$4003 = $0018
D  : 2349.3182Hz : $4002-$4003 = $0016
D# : 2489.0159Hz : $4002-$4003 = $0015
E  : 2637.0206Hz : $4002-$4003 = $0014
F  : 2793.8260Hz : $4002-$4003 = $0013
F# : 2959.9555Hz : $4002-$4003 = $0011
G  : 3135.9637Hz : $4002-$4003 = $0010
G# : 3322.4378Hz : $4002-$4003 = $000F
A  : 3520.0000Hz : $4002-$4003 = $000E
A# : 3729.3101Hz : $4002-$4003 = $000D
B  : 3951.0665Hz : $4002-$4003 = $000D
C  : 4186.0091Hz : $4002-$4003 = $000C

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment