c語言鋼琴
A. c語言 彈鋼琴程序
while((ch=getche())!='q') 改成
while((ch=getchar())!='\0')
error C2146: syntax error : missing ';' before identifier 'WCHAR'
語法錯誤,在'WCHAR'前丟失';'
但我在你的源程序里沒發現'WCHAR'
所以還有什麼問題,我就不太清楚了
B. 用什麼軟體編程能做個模擬鋼琴
很多很多軟體都可以啊,實現基本思想就是一個鍵對應一種聲音頻率。想做底層一點的東西,就用C語言(甚至於匯編都可以)直接控制主板的蜂鳴器,實現非常簡單,但是界面可能會很粗糙。另外也可以用C++或者C#實現,直接驅動PC的音效卡實現,windows下可以使用Directsound。用這兩種高級語言實現的界面相對來說會非常的友好。當然,Java或者其他語言也可實現,大同小異,不再一一細說。
C. 現在想用C語言畫一個簡易的鋼琴鍵盤
我的話,我會用mfc,你太有才了,畫東西,幹嘛不用別的,photoshop,各種繪圖軟體
D. 用c語言可以實現在電腦上編一個模擬鋼琴游戲嗎如果可以,請給點提示,怎麼讓電腦發音
鋼琴游戲的話音頻最好自己設定一下,自己製作好每個琴鍵的聲音,按下按鍵之後調用聲音文件。高端一點的話就要學音頻文件的製作了。比如按do,輸出的是10,那麼這個10進行一定的計算可以發出指定的聲音~
希望能幫到你~
E. c語言實現鍵盤鋼琴原理
原理很簡單,先在控制台中獲取按鍵事件,在按鍵事件中,開一個線程,這個線程就是專門用來播放鍵對應的音效mp3的。
為什麼要用線程呢,因為直接按鍵播放的話,如果不把mp3播放完,就無法再播放同一mp3,用線程就沒有這個問題了。
線程函數中,就是使用mciSendString函數,打開然後播放對應的mp3文件。
F. 用c語言編一個簡易電子琴程序,做課設!
這是有位網友寫的彈鋼琴,屬於轉載,不方便粘貼,你可以進去測試。
http://hi..com/%C7%A7%D3%EB%C7%A7%D1%B0%B5%C4%C9%F1%EBL/blog/item/9253248b033e26679f2fb437.html
G. 怎樣用C語言編一段鋼琴伴奏
看看這個吧...應該有用
#include<stdio.h>
#include<dos.h>
#include<bios.h>
#include<time.h>
#define N1 32 /*一拍*/
#define N2 16
#define N4 8
#define N8 4
#define N16 2
#define END 0
/*其中:N1,N2,N4,N6,N8,N16分別代表
一拍,二分之一拍,四分之一拍,
八分之一拍,十六分之一拍。*/
enum NOTES
{
C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,
/*低度音調分別是:1,2,3,4,5,6,7*/
C0=262, D0=286, E0=330, F0=349, G0=440, A0=440, B0=494,
/*中度音調分別是:1,2,3,4,5,6,7*/
C1=523, D1=158, E1=659, F1=698, G1=784, A1=880, B1=998,
/*高度音調分別是:1,2,3,4,5,6,7*/
C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976
/*高八度音調分別是:1,2,3,4,5,6,7*/
}
song1[]={
G0,N16,G0,N8,A0,N8,G0,N8,C1,N8,B0,N4,G0,N16,
G0,N8,A0,N8,G0,N8,D1,N8,C1,N4,G0,N16,G0,N8,G1,N8,
E1,N8,C1,N8,B0,N16,B0,N8,A0,N4,F1,N16,F1,N8,E1,
N8,C1,N8,D1,N8,C1,N4,END,END
/*以上是曲子代碼,你可以嵌入自己喜歡的歌曲代碼*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song2[]={
C10,N1,D10,N1,E10,N1,F10,N1,G10,N1,A10,N1,B10,N1,
C10,N2,D10,N2,E10,N2,F10,N2,G10,N2,A10,N2,B10,N2,
C10,N4,D10,N4,E10,N4,F10,N4,G10,N4,A10,N4,B10,N4,
C10,N8,D10,N8,E10,N8,F10,N8,G10,N8,A10,N8,B10,N8,
C10,N16,D10,N16,E10,N16,F10,N16,G10,N16,A10,N16,B10,N16,
C0,N1,D0,N1,E0,N1,F0,N1,G0,N1,A0,N1,B0,N1,
C0,N2,D0,N2,E0,N2,F0,N2,G0,N2,A0,N2,B0,N2,
C0,N4,D0,N4,E0,N4,F0,N4,G0,N4,A0,N4,B0,N4,
C0,N8,D0,N8,E0,N8,F0,N8,G0,N8,A0,N8,B0,N8,
C0,N16,D0,N16,E0,N16,F0,N16,G0,N16,A0,N16,B0,N16,
C1,N1,D1,N1,E1,N1,F1,N1,G1,N1,A1,N1,B1,N1,
C1,N2,D1,N2,E1,N2,F1,N2,G1,N2,A1,N2,B1,N2,
C1,N4,D1,N4,E1,N4,F1,N4,G1,N4,A1,N4,B1,N4,
C1,N8,D1,N8,E1,N8,F1,N8,G1,N8,A1,N8,B1,N8,
C1,N16,D1,N16,E1,N16,F1,N16,G1,N16,A1,N16,B1,N16,
C2,N1,D2,N1,E2,N1,F2,N1,G2,N1,A2,N1,B2,N1,
C2,N2,D2,N2,E2,N2,F2,N2,G2,N2,A2,N2,B2,N2,
C2,N4,D2,N4,E2,N4,F2,N4,G2,N4,A2,N4,B2,N4,
C2,N8,D2,N8,E2,N8,F2,N8,G2,N8,A2,N8,B2,N8,
C2,N16,D2,N16,E2,N16,F2,N16,G2,N16,A2,N16,B2,N16,END
/*以上是音符測試代碼,你可以通過系統發出的音調選擇你需要的音符*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song3[]= {
C0,N8,C0,N8,G0,N8,G0,N8,A0,N8,A0,N8,G0,N4,
F0,N8,F0,N8,E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,
G0,N8,G0,N8,F0,N4,E0,N8,E0,N8,D0,N4,G0,N8,
G0,N8,F0,N8,F0,N8,E0,N8,E0,N8,D0,N4,C0,N8,
E0,N8,G0,N4,A0,N8,C1,N8,G0,N4,F0,N8,F0,N8,
E0,N8,E0,N4,D0,N8,D0,N8,C0,N4,C0,N8,C0,N8,
G0,N8,G0,N8,A0,N8,A0,N8,G0,N4,F0,N8,F0,N8,
E0,N8,E0,N8,D0,N8,D0,N8,C0,N4,G0,N8,G0,N8,
F0,N4,E0,N8,E0,N8,D0,N4,G0,N8,G0,N8,F0,N8,
F0,N8,E0,N8,E0,N8,D0,N4,C0,N8,E0,N8,G0,N4,
A0,N8,C1,N8,G0,N4,F0,N8,F0,N8,E0,N8,E0,N4,
D0,N8,D0,N8,C0,N4,END
/*以上是曲子代碼,你可以嵌入自己喜歡的歌曲代碼*/
/*注意:數組中的偶數元素代表音符奇數元素代表拍長.*/
};
song4[]= {
C10,N4,B0,N4,G0,N8,A0,N4,E0,N16,D0,N8,C0,N8,
D0,N8,G0,N8,E0,N8,E0,N4,E0,N8,G0,N8,E0,N8,
D0,N8,D0,N4,A0,N8,A0,N8,G0,N8,A0,N8,B0,N8,
G0,N8,G0,N8,E0,N4,C10,N8,B0,N8,G0,N8,A0,N4,
E0,N8,D0,N8,C0,N8,D0,N8,G0,N8,E0,N4,C0,N8,D0,N8,
E0,N4,G0,N8,E0,N8,D0,N4,C0,N8,B10,N8,C0,N8,B10,N8,
A10,N4,A0,N8,A0,N8,A0,N8,C1,N8,D1,N8, E1,N8,E1,N8,
C1,N8,A0,N8,A0,N8,B0,N16,A0,N16,G0,N8,E0,N8,A0,N8,
A0,N8,C1,N8,D1,N8,E1,N8,E1,N8,C1,N8,A0,N8,A0,N8,
B0,N8,A0,N8,B0,N16,A0,N16,G0,N8,E0,N8,D1,N16,D1,N16,D1,N8,
D1,N8,A0,N16,B0,N16,A0,N8,G0,N8,E0,N8,D1,N16,D1,N16,D1,N8,
A0,N16,B0,N16,A0,N8,G0,N8,E0,N8,A0,N8,A0,N8,A0,N4,A0,N8,
A0,N8,A0,N4,C10,N8,B0,N8,G0,N8,A0,N4,E0,N16,D0,N16,C0,N8,
D0,N8,G0,N8,E0,N4,E0,N4,E0,N16,G0,N16,E0,N16,
D0,N16,D0,N4,A0,N16,A0,N16,G0,N8,A0,N8,B0,N8,
G0,N16,G0,N16,E0,N4,C10,N8,B0,N8,G0,N8,A0,N4,
E0,N16,D0,N16,C0,N8,D0,N8,G0,N8,E0,N4,C0,N16,D0,N16,
E0,N4,G0,N8,E0,N8,D0,N4,C0,N8,B10,N8,C0,N16,B10,N16,
A10,N4,END};
/*以下是播放程序代碼*/
void MusicPlay(int *song)
{
int note=0,fre,r,control;
clock_t goal;
while(song[note]!=0)
{
fre=song[note];
r=song[note+1];
if(kbhit())break;
/*int kbhit()函數返回最近所敲的按鍵*/
if(fre)
{
outportb(0x43,0xB6);
/*函數void outportb(int port,char byte)
將位元組byte寫入指定的輸出埠port*/
fre=(unsigned)(1193180L/fre);
outportb(0x42,(char)(fre>>8));
outportb(0x42,(char)(fre>>8));
control=inportb(0x61);
/*函數int inportb(int port)從指定的
輸入埠讀入一個位元組,並返回這個位元組*/
outportb(0x61,(control)|0x3);
}
goal=(clock_t)r+clock();
while(goal>clock());
if(fre)
outportb(0x61,control);
goal=(clock_t)0;
note=note+2;
}
}
/*以下是主函數其中包括異常處理*/
void main(void)
{ int n;
do{
printf("If you want to listen music please input a number(1-4):");
if(scanf("%d",&n))
{
if(n<=4&&0<=n)
switch(n)
{
case 1:MusicPlay(song1);break;
case 2:MusicPlay(song2);break;
case 3:MusicPlay(song3);break;
case 4:MusicPlay(song4);break;
}
else printf("\n\t\tYou can input '0' to exit!\n\n");
}
else {printf("\n\tInput error,please prass any key to exit!\n");break;}
}while(n!=0);
return ;
getch();
}
H. 怎麼在用c語言編一個模擬鋼琴的游戲,求解答
你可以調用Beep()函數進行發聲,請參考以下資料:
http://www.cnblogs.com/morewindows/archive/2011/08/15/2139544.html
I. C語言編寫簡單鋼琴
呵呵,挺好玩 ,還要回放啊。。。那還得用數組
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int main( )
{
char ch;
printf("Please play the piano! 121314151617111\n");
while((ch=getche())!='q')
{switch(ch)
{
case '1': Beep(262,300);break;
case '2': Beep(294,300);break;
case '3': Beep(330,300);break;
case '4': Beep(349,300);break;
case '5': Beep(392,300);break;
case '6': Beep(440,300);break;
case '7': Beep(494,300);break;
default:break;
}
}
system("pause");
return 0;
}