chromebookにmusic21を入れる


結構変わったことをやります。でも困ってる人は助かるとおもうので参考にしてください😉

Music21とは

pythonで音楽解析をするためにMITが作ったライブラリです。
公式ページ:http://web.mit.edu/music21/
※英語です。

MusicXMLという楽譜のデータをを保存するためのファイルを使います。また、lilypondやmusescoreなどの楽譜編集ソフトのインストールも必要となります。
MusicXMLとは:https://ja.wikipedia.org/wiki/MusicXML
lilypond公式ページ:http://lilypond.org/unix.ja.html
musescore公式ページ:https://musescore.org/ja

環境

  • HP Chromebook x360 14
  • Microsoft Visual Studio Code

pipでmusic21をインストール

pythonにmusic21をインストールします。

pip install music21

python3にインストールされているか心配な人、python3だけにインストールしてメモリーを節約したい人はこっち:

pip3 install music21

インストールされているかpythonインタプリタで確認

XXX@penguin:~$ python3 #今回はpython3(どっちでもいいが、、、)
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on Linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import music21
>>> #何も出てこなかったらOK

環境設定-Lilypondのダウンロード編

music21はこのままでは使えないので、環境設定をします。chromebook(debian)での環境設定のため、Windows、Macの人は他のサイトを見てください。

Lilypondのインストーラーをダウンロードします。
ターミナルにて

XXX@penguin:~$ wget http://lilypond.org/download/binaries/linux-64/lilypond-2.18.2-1.linux-64.sh

Lilypondのインストール

XXX@penguin:~$ sh lilypond-2.18.2-1.linux-64.sh

/home/XXX/に新たにbin、lilypondフォルダーができると思います。
binフォルダーに行ってlilypondがダウンロードされているかテストする。

XXX@penguin:~$ cd bin
XXX@penguin:~/bin$ ls
abc2ly      etf2ly    lilypond-book           lilypond-wrapper.guile   midi2ly  musicxml2ly
convert-ly  lilypond  lilypond-invoke-editor  lilypond-wrapper.python  mup2ly   uninstall-lilypond
XXX@penguin:~/bin$ sh lilypond
GNU LilyPond 2.18.2
Usage: lilypond [OPTION]... FILE...

Typeset music and/or produce MIDI from FILE.

LilyPond produces beautiful music notation.
For more information, see http://lilypond.org

Options:
  -d, --define-default=SYM[=VAL]      set Scheme option SYM to VAL (default: #t).
                                        Use -dhelp for help.
  -e, --evaluate=EXPR                 evaluate scheme code
  -f, --formats=FORMATs               dump FORMAT,...  Also as separate options:
      --pdf                           generate PDF (default)
      --png                           generate PNG
      --ps                            generate PostScript
  -h, --help                          show this help and exit
  -H, --header=FIELD                  dump header field FIELD to file
                                        named BASENAME.FIELD
  -I, --include=DIR                   add DIR to search path
  -i, --init=FILE                     use FILE as init file
  -j, --jail=USER, GROUP, JAIL, DIR   chroot to JAIL, become USER:GROUP
                                        and cd into DIR
  -l, --loglevel=LOGLEVEL             print log messages according to LOGLEVEL.  Possible values are:
                                        NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG.
  -o, --output=FILE                   write output to FILE (suffix will be added)
      --relocate                      relocate using directory of lilypond program
  -s, --silent                        no progress, only error messages (equivalent to loglevel=ERROR)
  -v, --version                       show version number and exit
  -V, --verbose                       be verbose (equivalent to loglevel=DEBUG)
  -w, --warranty                      show warranty and copyright

Report bugs via http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs
XXX@penguin:~/bin$ 

エラーが出てこなかったら正常です。

環境設定-musescoreのダウンロード編

musescoreの [.appimage] ファイルをダウンロード。
ここを押す:https://musescore.org/ja/download/musescore-x86_64.AppImage
このファイルを [Linuxファイル] に移す

インストールされているかcheck!
ターミナルにて
まず、.appimageファイルに実行権限をつけます

XXX@penguin:~$ chmod 777 ./MuseScore-3.4.2-x86_64.AppImage

ディレクトリは先程ダウンロードしたファイルのディレクトリにすること。

XXX@penguin:~$ ./MuseScore-3.4.2-x86_64.AppImage

すると...

こうなって

こうなる

使い方は知らなくてもいいですが、使い方はここを見てください:https://drumimicopy.com/musescore/

環境設定-music21編集

python3でmusic21にlilypondパスと、musescoreパスを設定します。

settings.py
from music21 import *

us = environment.UserSettings()
us.create() # us.create()は最初の一回だけ実行する
us['lilypondPath'] = '/home/XXX/bin/lilypond' # 先程実行したlilypondファイル
us['musescoreDirectPNGPath'] = '/home/XXX/MuseScore-3.4.2-x86_64.AppImage' # 先程実行したmusescoreファイル
us['musicxmlPath'] = '/home/XXX/MuseScore-3.4.2-x86_64.AppImage' # 上と同じ

これでOK!

動作確認

pythonで以下を実行:

test.py
from music21 import note,stream,corpus,chord,environment,converter,midi

note = note.Note("C4", quarterLength = 1)
note.show()

実行結果: