📄 sound.c
字号:
#define SOUND_CLEANDELAY 20
#define SOUND_CLEANTIME 100
#define SOUND_DELAYTIMES 100L
#define SOUND_GDUP 0
#define S1 600
#define S2 S1 / 2
#define S4 S1 / 4
#define S8 S1 / 8
#define S16 S1 / 16
#define SFN S1 * 4
enum FREQDEF{
L1 = 131, L2 = 147, L3 = 165, L4 = 175, L5 = 196, L6 = 220, L7 = 247,
N1 = 262, N2 = 296, N3 = 330, N4 = 349, N5 = 392, N6 = 440, N7 = 494,
H1 = 523, H2 = 587, H3 = 659, H4 = 698, H5 = 784, H6 = 880, H7 = 988,
I1 = 1047, I2 = 1175 ,I3 = 1319, I4 = 1397, I5 = 1568, I6 = 1760, I7 = 1976,
ZO = 0, FN = 32767
} song[]=
{
N2, S1, N2, S2, N3, S2, N1, S1, L5, S2, L5, S2, N2, S2, N1, S2, N2, S2,
N3, S2, N1, S1, N1, S2, N3, S2, N4, S2, N3, S2, N1, S2, N2, S2, N2, S1,
N2, S2, N3, S2, N4, S2, N3, S2, N1, S2, N1, S2, L7, S2, N1, S2, L7, S1,
N2, S2, N2, S2, N2, S2, N3, S2, N1, S1, L5, S2, L5, S2, N2, S2, N1, S2,
N2, S2, N3, S2, N1, S1, N1, S2, N3, S2, N4, S2, N3, S2, N1, S2, N2, S2,
N2, S1, N2, S2, N3, S2, N4, S2, N3, S2, N4, S2, N4, S4, N5, S4, N5, S1,
L5, S2, L6, S2, N1, S1, N2, S2, N3, S2, N5, S1, N3, S2, N5, S2, N6, S2,
N6, S4, N7, S4, N6, S2, N5, S2, N3, S1, N2, S2, N3, S2, N5, S4, N2, S4,
N3, S2, N3, S2, N3, S2, N2, S2, N3, S2, N2, S2, N1, S2, L5, S1, L5, S1,
L5, S1, L5, S2, L6, S2, N2, S1, N2, S2, N3, S2, N1, S1, L5, S2, L5, S2,
N2, S2, N1, S2, N2, S2, N3, S2, N1, S1, N1, S2, N3, S2, N4, S2, N3, S2,
N1, S2, N2, S2, N2, S1, N2, S2, N3, S2, N4, S2, N3, S2, N1, S2, N1, S2,
L7, S2, N1, S2, L7, S1, N2, S2, N2, S2, N2, S2, N3, S2, N1, S1, L5, S2,
L5, S2, N2, S2, N1, S2, N2, S2, N3, S2, N1, S1, N1, S2, N3, S2, N4, S2,
N3, S2, N1, S2, N2, S2, N2, S1, N2, S2, N3, S2, N4, S2, N3, S2, N4, S2,
N4, S4, N5, S4, N5, S1, L5, S2, L6, S2, N1, S1, N2, S2, N3, S2, N5, S1,
N3, S2, N5, S2, N6, S2, N6, S4, N7, S4, N6, S2, N5, S2, N3, S1, N2, S2,
N3, S2, N5, S4, N2, S4, N3, S2, N3, S2, N3, S2, N2, S2, N3, S2, N2, S2,
N1, S2, L5, S1, L5, S1, L5, S1, L5, S1, ZO, S1, ZO, S1, ZO, S1, ZO, S1,
ZO, S1, ZO, S1, ZO, S1, ZO, S1, ZO, S1, N6, S2, N5, S2, N5 ,S1, N2, S2,
N3, S2, N3, S1, N3, S1, ZO, S1, ZO, S1, ZO, S1, N6, S2, N5, S2, N5, S1,
N2, S2, N3, S2, N3, S2, N3, S2, N3, S4, N2, S4, N1, S4, N1, S4, N1, S1,
N1, S1, ZO, S1, N6, S2, N5, S2, N5, S1, N7, S2, N7, S2, N7, S1, N7, S2,
N7, S2, H1, S1, N7, S1, N7, S4, N6, S2, N6, S4, N2, S2, N3, S2, N1, S1,
L5, S2, L5, S2, N2, S2, N1, S2, N2, S2, N3, S2, N1, S1, N1, S2, N3, S2,
N4, S2, N3, S2, N1, S2, N2, S2, N2, S1, N2, S2, N3, S2, N4, S2, N3, S2,
N1, S2, N1, S2, L7, S2, N1, S2, L7, S1, N2, S2, N2, S2, N2, S2, N3, S2,
N1, S1, L5, S2, L5, S2, N2, S2, N1, S2, N2, S2, N3, S2, N1, S1, N1, S2,
N3, S2, N4, S2, N1, S2, N2, S2, N2, S1, N2, S2, N3, S2, N4, S2, N3, S2,
N4, S2, N4, S4, N5, S4, N5, S1, N5, S1,
FN, SFN
};
long soundgd_delay, soundgd_cur;
int flag_sound_clean, flag_gdon;
void sound_clean(){
int freq;
for (freq = 500; freq < 5000; freq += 500){
sound(freq);
delay(SOUND_CLEANDELAY);
}
nosound();
soundgd_delay += SOUND_CLEANTIME;
flag_sound_clean = 1;
}
void sound_gdserver(){
if (flag_sound_clean){
if (song[soundgd_cur] != FN) sound((song[soundgd_cur] + SOUND_GDUP) * flag_gdon);
flag_sound_clean = 0;
}
if (soundgd_delay >= (long)song[soundgd_cur + 1] * SOUND_DELAYTIMES){
nosound();
if (song[soundgd_cur] == FN) soundgd_cur = 0;
else soundgd_cur += 2;
soundgd_delay = 0;
sound((song[soundgd_cur] + SOUND_GDUP) * flag_gdon);
} else soundgd_delay++;
}
void sound_init(){
soundgd_cur = 0;
soundgd_delay = 0;
flag_sound_clean = 0;
flag_gdon = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -