Python:midiの楽譜を出力してトリミングしてから再生する

このサイトを参考にして、midiの楽譜を表示し、ファイルを最初の数十秒間にトリミングしてからmidiを再生させてみる。今回は、vivaldiの four seasons springとBeethovenのFür Eliseをサンプルとして使用する。

スポンサーリンク

midiの楽譜を表示する

先ず、前述の参考サイトに移動する。

cd musicautobot
/home/workspace/git/musicautobot
%reload_ext autoreload
%autoreload 2
%matplotlib inline

必要なモジュールをインポートする。

from musicautobot.numpy_encode import *
from musicautobot.config import *
from musicautobot.music_transformer import *
from musicautobot.multitask_transformer import *
from musicautobot.utils import midifile

このサイトからサンプルmidiファイルを適当に拾ってくる。

midi_file = Path('../vivaldi_spring.mid')
vocab = MusicVocab.create()
item = MusicItem.from_file(midi_file, vocab)

最初の100四分音符の楽譜を表示する。

item.trim_to_beat(100).show()

mifiファイルの再生

ヴィヴァルディの四季(春)を再生する。

item.trim_to_beat(100).play()

次にベートベンのエリーゼのためをフル再生する。

midi_file1 = Path('../elise.mid')
vocab = MusicVocab.create()
item1 = MusicItem.from_file(midi_file1, vocab)
item1.trim_to_beat(400).show()
item1.trim_to_beat(400).play()