日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

键盘钢琴发音原理

發布時間:2023/12/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 键盘钢琴发音原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信很多喜歡音樂的小伙伴都玩過一款軟件,叫做鍵盤鋼琴,這款軟件的確做得很棒,這時,可能有一些會開發的小伙伴就要想這個鍵盤鋼琴軟件是如何開發的呢?可以這么說,想要開發這款軟件需要對樂理有一定的了解,并且對MIDI要非常的熟悉,本篇文章,我們主要介紹一下這個鍵盤鋼琴的發音原理,如果我們要讓計算機發聲,那么我們需要使用midi設備,所以,我們需要選擇要打開的midi設備,然后向設備輸出消息,就可以讓計算機發出聲音,我們主要介紹發音原理,其它的功能,同學們感興趣可以去看MIDI消息格式。

MIDI發音主要使用了兩條命令,一個打開音符,一個是關閉音符,它們的命令如下:

打開音符和關閉音符都是3個字節,但是我們的程序只使用了打開音符,關閉音符和打開音符用法一樣,所以,我們就只演示了一種。

打開音符的命令格式:

1000 xxxx 0nnn nnnn 0ppp pppp

其中4位xxxx代表使用的通道號,除了10號通道,1-9,11-16,都可以使用,因為10號通道是打擊類樂器的通道,通道的編號從0開始,比如通道1對應的索引就是0。

音符一共有128個,也是從0開始,所以它的值是0-127,因此第2個字節的最高位是0。

第3個字節代表按鍵力度,也是從0-127。

音符表如下:

CC#DD#EFF#GG#AA#B
01234567891011
121314151617181920212223
242526272829303132333435
363738394041424344454647
484950515253545556575859
606162636465666768697071
727374757677787980818283
848586878889909192939495
96979899100101102103104105106107
108109110111112113114115116117118119
120121122123124125126

127

現在舉個例子:

比如我們要讓midi設備發音,可以這么發送消息:

01000000 00111100 10010000

這里一共有3個字節,這里第一個字節代表力度,第二個字節代表音符,第3個字節代表打開音符,并且使用第一個通道輸出。

這里的表示形式和midi消息的格式順序正好相反,這里一定要注意,否則你寫的代碼沒有辦法發音,對應代碼如下:

midiOutShortMsg(m_hMusic, 0x00403C90);

這里的0x00403C90就是上面的3字節的十六進制表示。

至于打開設備,關閉設備,查詢設備,同學們可以自己看代碼,因為很簡單,所以不介紹了。

程序運行界面如下:

選擇一個設備,打開,然后點擊1-7可以發音,不用了可以關閉。

喜歡的小伙伴可以從這里下載

https://download.csdn.net/download/u011711997/13106889

總結

以上是生活随笔為你收集整理的键盘钢琴发音原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。