最近闲在家里,有事没事就发篇博文
希望你能给点赞
好的,进入主题——如何用C++制作电子键盘呢?
相信大家也和我一样有着刨根问底的精神,和浓厚的好奇心想要跟我一探究竟
很简单,这是我们主要的一个头文件:
#include
它包含了我们的主角——Beep
音高表:
| 音符 | 对应音高 |
do 523
#do 554
re 578
#re 622
mi 659
fa 698
#fa 740
so 784
#so 831
la 880
#la 932
si 988
注:#代表将原音符音高升高半音
说真的这应该让音乐老师告诉你们
#include
using namespace std;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
int main(){
SetConsoleTitle("电子琴");
char p;
int i=0,a=523,ab=554,b=578,bc=622,c=659,d=698,de=740,e=784,ef=831,f=880,fg=932,g=988;
color(11);
printf("Input 1,2,3,4,5,6,7,w(up),s(down)\n");
color(10);
printf("Space to exit\n");
color(14);
printf("Shift up a half step");
color(12);
printf("(only 1,2,4,5,6)\n");
color(15);
while(i<100){
p=getch();
switch(p){
case '1':
Beep(a,250);
break;
case '!':
Beep(ab,250);
break;
case '2':
Beep(b,250);
break;
case '@':
Beep(bc,250);
break;
case '3':
Beep(c,250);
break;
case '4':
Beep(d,250);
break;
case '$':
Beep(de,250);
break;
case '5':
Beep(e,250);
break;
case '%':
Beep(ef,250);
break;
case '6':
Beep(f,250);
break;
case '^':
Beep(fg,250);
break;
case '7':
Beep(g,250);
break;
case 'w':
a*=2;ab*=2;b*=2;bc*=2;c*=2;d*=2;de*=2;e*=2;ef*=2;f*=2;fg*=2;g*=2;
break;
case 's':
a/=2;ab/=2;b/=2;bc/=2;c/=2;d/=2;de/=2;e/=2;ef/=2;f/=2;fg/=2;g/=2;
break;
case ' ':
return 0;break;
default:
break;
}
}
return 0;
}