五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python生成音樂(lè) 之 讀取midi轉(zhuǎn)換為數(shù)組

2021-01-24 15:21 作者:GXTon_阿通  | 我要投稿

這一章,我們進(jìn)行到了下圖中這一關(guān)卡.


上一節(jié)我已經(jīng)實(shí)現(xiàn)了通過(guò)mido的庫(kù)讀取midi文件.

并且打印出來(lái)運(yùn)行結(jié)果.

我們可以看到每個(gè)音符,對(duì)應(yīng)與音軌(track)中的信息.

但是這樣的一條一條不成系統(tǒng)的結(jié)果并不是很好用程序進(jìn)行處理.

要想對(duì)midi文件進(jìn)行處理,就需要建模.

音樂(lè)是一系列的音符,而且每個(gè)音符都有他自己的屬性: 時(shí)間長(zhǎng)短,音量高低,音調(diào)高低...

目前我們先不考慮很復(fù)雜的問(wèn)題,也不考慮太復(fù)雜的數(shù)據(jù)結(jié)構(gòu),就只用程序中的序列表示一首曲子.一首曲子里我們先只考慮音符部分,其他的音量,時(shí)長(zhǎng),先不做考慮.

那么,我們重新看一下midi文件,就是一系列的音符組成,

我們把midi文件的每個(gè)音符轉(zhuǎn)換成Python序列中的一個(gè)數(shù)字.這樣音符和數(shù)字就被對(duì)應(yīng)起來(lái)了.

最終達(dá)到的效果就是,一首midi對(duì)應(yīng)一個(gè)Python中的序列.

還有個(gè)問(wèn)題:

上面圖中我們可以看到,

第一個(gè)時(shí)間段:有一個(gè)音符;

第二個(gè)時(shí)間段:有一個(gè)音符;

第三個(gè)時(shí)間段:有一個(gè)音符;

第四個(gè)時(shí)間段:有兩個(gè)音符,(這里就不同于以前了);而且有時(shí)候會(huì)出現(xiàn)更多的音符出現(xiàn)的情況;

這個(gè)時(shí)候用一維的數(shù)組就不好表示了,所以改成用二維的數(shù)組:

這里只是第一步,把midi文件中的音符摘出來(lái),變成Python中的二維數(shù)組;

以后還有很多的路要走呀...

以后的事以后再說(shuō),

目前講一下如何把midi文件中的音符,變成Python中對(duì)應(yīng)的二維數(shù)組(也可以叫做二維序列)

先粘貼一下代碼:

最后生成的note_list_ex_sort就是最后的音符的二維數(shù)組.

實(shí)現(xiàn)的方式是:

一條一條查看mido庫(kù)讀取出來(lái)的動(dòng)作.

遇到note_on就說(shuō)明按鍵按下,遇到note_off就說(shuō)明有鋼琴鍵松開(kāi).

當(dāng)然還要考慮上一次是note_on還是note_off,這樣就有4中組合方式.

這里還是有些不太完整,但是基本可以用了,日后再去修改...

Python生成音樂(lè) 之 讀取midi轉(zhuǎn)換為數(shù)組的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
陵水| 云梦县| 禄丰县| 策勒县| 葫芦岛市| 玉田县| 东源县| 新野县| 宣恩县| 阳信县| 彭阳县| 宜君县| 平罗县| 云和县| 赣州市| 嘉鱼县| 蚌埠市| 安乡县| 闽清县| 湘阴县| 哈尔滨市| 定南县| 柘荣县| 舞阳县| 扎鲁特旗| 朝阳县| 金寨县| 聊城市| 石林| 普宁市| 巴林右旗| 南康市| 汝南县| 新乐市| 吉木乃县| 水富县| 滨海县| 赤峰市| 玛纳斯县| 南澳县| 神木县|