読者です 読者をやめる 読者になる 読者になる

Jupyter NotebookでMIDIファイルを再生したりする

本記事は、 NCC Advent Calendar 3日目の記事です。マジで書く人間が居なくて詰んでる。

ぼくは、Python簡易作曲ツール を作っている(1年以上まともに更新していない...)のですが、ターミナル上で作って聞くみたいな繰り返しをしまくるのはつらいです。Jupyter Notebookを使うと音声ファイルをシュッと再生することができます。

melete-coreでは作曲結果をMIDIで返してくれるので、Notebookで再生するには適当に変換してあげましょう。

# 音作る部分は省略

import os
os.system('timidity input.mid -Ow -o - | lame - -b 64 output.mp3')

import IPython
IPython.display.Audio('output.mp3')

便利すぎる。

作曲ツールを作るときにもう一つ困っていた点は、音を聞いただけではわからない点があるので、しばしばGarageBandで楽譜を表示してデバッグしていました。いちいち立ち上げるのが面倒くさかったのですが、abjad-ipythonを使うとLilypondで楽譜に変換してくれて便利そうです。便利そうなのでこの辺の音楽系のツールを追加した datascience-notebook Dockerfileを作ってサッと使えるようにしたい(すぐやるとは言ってない)

Embedding Abjad MIDI Output in IPython Notebooks

実は、REPLをあまり使わないので、Jupyter Notebookはグラフがplotできて便利くらいの印象しかありませんでしたが、これから積極的に使っていこうと思います。