回覆列表
  • 1 # 變餅檔

    什麼是MIDI

    說到用程式碼寫曲子,有一個東西大家一定要了解就是MIDI。MIDI是一種樂器數字介面,是編曲界最廣泛的音樂標準格式。MIDI並不是真正意義上的音樂檔案,大家可以把它理解成樂譜,需要有環境編譯MIDI檔案,才可以生成音樂。這個關係有點像程式碼和編譯器的關係。市面上可以解析MIDI檔案的軟體有很多種,本文將用到MuseScore2的軟體,以下就是這個軟體的截圖,介面中的五線譜就是MIDI檔案的呈現。這個樂譜是可以播放的,並且可以匯出為MP3格式的音樂檔案。

    下面我們就介紹下生成MIDI檔案所使用的Python庫。

    python-midi庫介紹

    市面上差不多有十多種python庫可以編寫MIDI格式的檔案,本文會推薦大家使用PYTHON-MIDI。我覺得python-midi的優勢是不光可以自己寫程式生成MIDI,而且還可以對MIDI檔案進行解析。這樣的功能配合機器學習演算法,或許可以幫助我們實現機器的自動編曲,當然這是後話。先來看下如何安裝python-midi。

    1.首先進入,將整個專案克隆下來。

    2.在程式目錄下執行以下命令安裝,

    python setup.py install11

    3.如果想執行某個以mid為字尾的MIDI檔案,只要執行以下命令即可:

    mididump.py test.mid11

    接下來介紹下如何寫程式碼生成midi檔案。

    實操

    在python-midi庫中,每個樂譜用Pattern物件表示,樂譜中的每個音軌(通常音樂都有很多軌道組成,每種樂器是一個軌道)用Track物件表示。每個音符的開端用midi.NoteOnEvent表示,結束用midi.NoteOffEvent表示,可以在引數中定義每個字元的音長和音高。

  • 中秋節和大豐收的關聯?
  • 在你心目中誰稱得上是零爛片的神級影帝?