前提・実現したいこと
music21の楽譜を表示する機能を,リモートsshで利用したい.
発生している問題・エラーメッセージ
書籍「生成Deep Learning」7章にて紹介されているMuseGANのソースコードを実行したのですが,下記のようなエラーコードが表示されます.
--------------------------------------------------------------------------- SubConverterException Traceback (most recent call last) <ipython-input-26-f87767a09275> in <module> 2 gan.notes_to_midi(RUN_FOLDER, gen_scores, filename) 3 gen_score = converter.parse(os.path.join(RUN_FOLDER, 'samples/{}.midi'.format(filename))) ----> 4 gen_score.show(app = "/net/home/terunuma21/MuseScore/mscore3.txt") ~/.miniconda3/envs/comp_gan/lib/python3.7/site-packages/music21/stream/base.py in show(self, fmt, app, **keywords) 332 if self.isSorted is False and self.autoSort: 333 self.sort() --> 334 return super().show(fmt=fmt, app=app, **keywords) 335 336 # -------------------------------------------------------------------------- ~/.miniconda3/envs/comp_gan/lib/python3.7/site-packages/music21/base.py in show(self, fmt, app, **keywords) 2740 app=app, 2741 subformats=subformats, -> 2742 **keywords) 2743 2744 # ------------------------------------------------------------------------- ~/.miniconda3/envs/comp_gan/lib/python3.7/site-packages/music21/converter/subConverters.py in show(self, obj, fmt, app, subformats, **keywords) 374 helperFormat, 375 subformats=helperSubformats, --> 376 **keywords 377 ) 378 ~/.miniconda3/envs/comp_gan/lib/python3.7/site-packages/music21/converter/subConverters.py in write(self, obj, fmt, fp, subformats, makeNotation, compress, **keywords) 1072 and ('png' in subformats or 'pdf' in subformats) 1073 and not str(environLocal['musescoreDirectPNGPath']).startswith('/skip')): -> 1074 outFp = self.runThroughMusescore(xmlFp, subformats, **keywords) 1075 elif compress: 1076 archiveTools.compressXML(xmlFp, ~/.miniconda3/envs/comp_gan/lib/python3.7/site-packages/music21/converter/subConverters.py in runThroughMusescore(self, fp, subformats, **keywords) 916 raise SubConverterException( 917 "Cannot find a path to the 'mscore' file at " --> 918 + f'{musescorePath} -- download MuseScore') 919 920 if subformats is None: SubConverterException: Cannot find a path to the 'mscore' file at /usr/bin/mscore3 -- download MuseScore
該当のソースコード
python
1import os 2import matplotlib.pyplot as plt 3import numpy as np 4 5from music21 import midi 6from music21 import note, stream, duration 7from music21 import converter 8 9from models.MuseGAN import MuseGAN 10 11from utils.loaders import load_music 12 13from tensorflow.keras.models import load_model 14 15# run params 16SECTION = 'compose' 17RUN_ID = '001' 18DATA_NAME = 'chorales' 19FILENAME = 'Jsb16thSeparated.npz' 20RUN_FOLDER = 'run/{}/'.format(SECTION) 21RUN_FOLDER += '_'.join([RUN_ID, DATA_NAME]) 22 23BATCH_SIZE = 64 24n_bars = 2 25n_steps_per_bar = 16 26n_pitches = 84 27n_tracks = 4 28 29data_binary, data_ints, raw_data = load_music(DATA_NAME, FILENAME, n_bars, n_steps_per_bar) 30# data_binary = np.squeeze(data_binary) 31 32gan = MuseGAN(input_dim = data_binary.shape[1:] 33 , critic_learning_rate = 0.001 34 , generator_learning_rate = 0.001 35 , optimiser = 'adam' 36 , grad_weight = 10 37 , z_dim = 32 38 , batch_size = BATCH_SIZE 39 , n_tracks = n_tracks 40 , n_bars = n_bars 41 , n_steps_per_bar = n_steps_per_bar 42 , n_pitches = n_pitches 43 ) 44 45gan.load_weights(RUN_FOLDER, None) 46 47gan.generator.summary() 48 49gan.critic.summary() 50 51chords_noise = np.random.normal(0, 1, (1, gan.z_dim)) 52style_noise = np.random.normal(0, 1, (1, gan.z_dim)) 53melody_noise = np.random.normal(0, 1, (1, gan.n_tracks, gan.z_dim)) 54groove_noise = np.random.normal(0, 1, (1, gan.n_tracks, gan.z_dim)) 55 56gen_scores = gan.generator.predict([chords_noise, style_noise, melody_noise, groove_noise]) 57 58np.argmax(gen_scores[0,0,0:4,:,3], axis = 1) 59 60gen_scores[0,0,0:4,60,3] = 0.02347812 61 62filename = 'example' 63gan.notes_to_midi(RUN_FOLDER, gen_scores, filename) 64gen_score = converter.parse(os.path.join(RUN_FOLDER, 'samples/{}.midi'.format(filename))) 65gen_score.show()
試したこと
musescore3をダウンロードしろとエラーメッセージに書かれていたので,ローカルにダウンロードしてみましたが結果は変わりませんでした.リモートサーバーで動かしているから当たり前ですよね...
githubで公開されているmusescoreのコードをcloneしてはみましたが,結局その後どうすればいいか分からないです.
補足情報(FW/ツールのバージョンなど)
anacondaにてpython3.7の仮想環境を作って動作させています.
テキストエディタにはVScodeを使用しています.拡張機能のRemoteSSHを使ってリモートサーバー上でプログラムを動作させています.
回答1件
あなたの回答
tips
プレビュー