2014-01-12 7 views
4

장르 분류 및 분류가 포함 된 기계 학습 프로젝트를 준비하기 위해 music21 라이브러리를 실험하고 있습니다. 나 그리고 사용할 수있는 자습서를 따라 here. 내 MusicXML 프로그램으로 MuseScore을 사용하고 있으며 iPython에서 모든 것을 실행하려고합니다.iParthon 노트북/Enthought Canopy를 사용하여 music21, musicXML PNG 개체 표시

터미널에서 일부 turtorial을 실행할 수도 있지만 일부 요소는 iPython 내부에서 제대로 실행되지 않는 것 같습니다. 예 :

In [3]: sBach.show() 
Out[3]: <music21.ipython21.objects.IPythonPNGObject at 0x10da0aa10> 

위의 내용은 PNG 개체가 만들어졌지만 표시되지 않았 음을 보여줍니다. 위의 3에 대한 예상 출력은 다음과 같습니다.

enter image description here 다음 iPython 명령을 사용하여 실험했지만 이미지가 아니라 자리 표시자가 나타납니다.

In [6]: %load_ext music21.ipython21.ipExtension 
In [7]: sBach.show() 

내 MusicXMLPath에서 아무런 문제를 찾을 수 없습니다. 이 tutorial은 아나콘다와 함께 musc21을 사용하지만 내 모든 개발은 Enthought로 수행되므로 iPython에서 music21을 사용하기 위해 다른 가상 환경을 실행하지 않는 것이 좋습니다.

Enthought/iPython 노트북에서 music21을 실행할 수있는 방법이 있습니까?

enter image description here

답변

1

이것은 iPython music21 문서의 어딘가에 있습니다. 내 사과 : music21의 iPython은 Lilypond를 설치해야 노트북 내부에서 이미지를 생성 할 수 있습니다. MusicXML을 사용하여 점수의 PNG 이미지를 직접 생성하는 방법 (MuseScore 2.0이 출시 될 때까지)이 없었습니다.

편집 : 2015 July; music21 2.0은 MuseScore가 설치된 경우 MuseScore가 설치된 PNG 이미지를 생성하고 설치되지 않은 경우 Lilypond로 대체합니다.

+0

MuseScore 세트를 찾으려면 설정하십시오 us = environment.UserSettings(); us [ 'musescoreDirectPNGPath'] = "/ Applications/MuseScore 2.app/Contents/MacOS/mscore"(또는 어디에 있든) –

2

아직 시도하지 않은 경우, 몇 가지 단계가 문제의 원인 분리하기 :

이 에게

1) 최신 캐노피 (편집으로 업데이트 : 현재 1.4.1) (이 도움이 될 수도, 도움을 일반적으로 상처를 입지 않습니다).

2) Canopy의 IPython 쉘에서 Pylab 백엔드를 Preferences/Python을 통해 "Inline (SVG)"으로 변경하십시오. (쉘의 기본 Qt 백엔드는 music21이 tkinter 라이브러리를 사용하는 것과 충돌합니다.) 3) 노트북이 아닌 쉘에서 스크립트를 테스트하십시오.

4) here과 같이 Canopy User Python이 터미널 창에 기본 파이썬인지 확인하십시오.

5) 일반 ipython 터미널 (터미널의 경우 ipython)에서 스크립트를 테스트하십시오.

6) ipython 터미널에서 pylab 모드 (ipython qtconsole --pylab=inline)로 테스트하십시오.

7) 일반 브라우저 (터미널에서및/또는 ipython notebook --pylab=inline을 입력)에서 실행중인 ipython 노트북 내부에서 스크립트를 테스트하십시오.

+0

감사합니다. Jonathan. 점 1-5는 Canopy 1.2가 현재 버전이고, Pylab 백엔드가 SVG로 바뀌었고, Canopy가 기본 파이썬이되었다는 것을 의미합니다. 그럼에도 불구하고, 점 6 (ipython --pylab = inline)에 대해 다음과 같이 나타납니다 : WARNING : '인라인'대신 '자동'을 사용하는 파일러 백엔드로 사용할 수 없습니다. 여전히 PNG가 보이지 않습니다. 아마 - 필라프는 문제의 일부일뿐입니다. –

+0

미안하지만, 내 슬리프 야. 물론 텍스트 콘솔에서는 인라인 그래픽을 사용할 수 없습니다. 'ipython qtconsole --pylab = inline'으로 수정되었습니다. 그러나 "Points 1-5 is fine"이라면 스크립트가 모든 스크립트에서 작동한다는 것을 의미합니다. 실제로 테스트 할 필요는 없습니다 (6), (7)로 이동하십시오. 어떤 유사 콘텐츠가 귀하에게 적합한 지 확인할 수 있습니까? –

+0

나는 아직도 iPython이나 노트북에서 PNG를 얻지 못한다. 1 점 내지 5 점은 모든 나의 설정이 정확하다는 것을 의미하고 5 점은 나에게 노트북과 같은 이슈를 부여했다. 이걸 좀 더 조사해야하는데 문제는 iPython 밖에 있다고 생각합니다. –

2

나는이 문제에 관해 직접 고심하고있다. ...music21에 musicxmlPath를 설정 했습니까? 그렇지 않은 경우 environment.set(key, value)을 통해 이루어집니다. environment.keys()으로 사용 가능한 키를 쿼리 할 수 ​​있습니다. 이 답변이 너무 단순하지 않기를 바랄뿐입니다.하지만 문제가 해결되었습니다.

0

이전에 유사한 문제가있었습니다. 사람들이 plot 기능을 ipython/jupyter 노트북에 사용하려고 할 때와 같은 문제입니다. 전화해야합니다

%matplotlib inline