使用midi介面製作模擬電鋼琴

2021-06-13 13:43:17 字數 2121 閱讀 5879

既然是做計算機**,一些計算機知識是必不可少的,對二進位制熟悉的程式設計師可以跳過這一部分。

常用十六進製制與十進位制對照表

並非是記住這些,而是對這些常用的數有所熟悉,在看別人的程式的時候不要不知道這些數是做什麼的就行了。

midi檔案有很多資訊構成的指令。一些資訊,只由1位元組構成,有些有些有2個位元組,還有一些由3個位元組構成,還有由很多位元組構成。

所有的資訊有一點是共同的,那就是第乙個位元組的資訊是狀態。狀態位元組的0x80到0xef是可以在16個

midi通道的任何乙個出現的資訊。正因為如此,這些是所謂的聲音資訊。這些狀態位元組有8位

二進位制數,可以把8個二進位制位分成兩個 4位,即乙個高位和乙個低位 。例如,乙個狀態位元組的0x92可細分成9 (高位 )和2 (低位 ) 。高位告訴你是什麼型別的midi資訊,低位說明資訊操作的midi通道序號。以下是所有可能的高位值,每個代表的聲音資訊型別:

停止發聲

類別:聲音 目的

指出要應該停止的音。

0x80到0x8f而低位是midi通道。 資料

後續兩個資料位元組。

第乙個資料是音符號碼。有128個音符,對midi裝置,編號為0至127(其中,**c是60號)。

第二個資料位元組是速度,乙個從0到127的值。這表明,應該多麼迅速地停止發聲(其中127是最快的)。

開始發聲

類別:聲音 目的

指出要發出的聲音。

狀態位元組

0x90到0x9f而低位是midi通道。 資料

後續兩個資料位元組 注意

在理論上,每個音符最終應由各自的停止發聲資訊終了。 輪指

類別:聲音 目的

對已經發出的聲音連續再彈。

狀態位元組

0xa0到0xaf而低位是midi通道。 資料

後續兩個資料位元組。

第乙個資料是音符代號。有128可能的音符,對midi裝置,編號為0至127個(其中**c音符代號是60)。

第二個資料位元組是音量的值,從0到127(其中127是強音) 。 注意

控制器改變

類別:聲音 目的

設定了乙個特定控制器的值。狀態位元組

0xb0 ,到0xbf而低位是midi通道。 資料

後續兩個資料位元組。

第乙個資料是控制器的號碼( 0到127)。

第二個資料位元組的值是控制器應設定的值,從0到127 。

改變音色

類別:聲音

狀態位元組

0xc0,到0xcf而低位是midi通道。 資料

乙個資料位元組。這是樂器編號,從0到127 。 注意

對midi音色 ,定義了一套標準,以便更加相容。這個規範是所謂的通用midi標準。

通道演奏壓力

類別:聲音

狀態位元組

0xd0到0xdf而低位是midi通道。 資料

乙個資料位元組,值從0到127 (其中127是最響) 。 音高

類別:聲音

狀態位元組

0xe0到0xef而低位是midi通道。 資料

後續兩個資料位元組。這兩個位元組應結合在一起,形成乙個14位值。

系統專用資訊

類別:系統公用 目的

用來傳送一些資料,這是具體到乙個midi裝置。此外, sy***可能被用來傳遞資訊,就是特定的裝置。

狀態位元組

開始於0xf0 。結束於0xf7。 資料

可以有任何數量的資料位元組。

知道如何控制midi器件後還需要一些**來支援這些命令。

1.音色**:

音色**主要是介紹個中樂器的**。例如鋼琴,吉他,槍聲等的代號。

2控制器**:

這個主要是用來調節音量,調節平衡控制的等等。在調節**的優美程度很有用。

3.midi音符**表:

可以確定要演奏的是鋼琴還是吉他了,可以調節音量了,還差什麼呢?你的鋼琴不會就乙個鍵吧!猜對了,這張表就是選擇你按下的是哪個音符的,當然了,如果想知道按下的是哪個鍵還得參考琴鍵的分布了。鏈結位址為

至此,如果你完整的讀完了我的博文,你就可以自己製作個在電腦上模擬的鋼琴了。

使用mock http定製模擬介面

應用場景 mockhttp.cn為你提供這樣乙個服務 定製乙個http服務,url以及介面返回值由你決定。生成mock介面之後,你可以將你並不關心的外部依賴,替換成你定義在mockhttp.cn中的介面。媽媽再也不用擔心我的外部依賴了 demo 1 新建乙個介面 2 介面建好之後會自動跳轉到你的介面...

Mock模擬後台介面資料的簡單使用

在專案開發的過程中,有時候會出現後端資料還沒出來,而前端需要資料的情況。這時候,如果等著後端人員開發完再進行測試,聯調則會拖慢開發進度。這時候,mock就顯示出它的魅力。它可以進行生成隨機資料,模擬後端介面資料,從而實現開發時,前後端分離,提高效率。在使用mock之前,應該先和後端人員討論介面文件的...

使用HTML製作簡單的小公尺介面(部分)

最左邊展示最新手機 右邊併排展示銷售的手機介面 每個塊級元素併排 滑鼠移動到塊元素時出現陰影和向上彈起的效果 使用html的div標籤製作乙個一級大盒子,實現整體大框架 在大框架中設定兩個div標籤,作為兩個二級子盒子,分別放左邊的以及右邊的手機展示 在右邊的div盒子中製作出八個放置手機展示的 子...