728x90 반응형 코딩/기타 리스트형 [Music21] 4. Music21 가이드 ( Chords ) Music21 라이브러리 가이드 4 from music21 import * #Music21 User Guide 7 레퍼런스 정리 cMinor = chord.Chord(["C4","G4","E-5"]) #다음과 같이 코드를 만들 수 있다. #코드는 여러 피치 오브젝트를 하나로 결합하여 만드는 객체이다. #가장 간단한 방법은 다음과 같이 코드 객체 안에 여러 피치 이름으로 이루어진 리스트를 전달하는 것이다. #코드와 노트는 모두 GeneralNote 의 서브클래스 이므로 다음과 같이 공유하는 부분이 존재한다. cMinor.duration.type = 'half' print(cMinor.quarterLength) #하지만 cMinor.pitch 는 불가능 하다. #cMinor.pitches 는 가능하다. pr.. 더보기 [Music21] MuseScore 3 에러 해결 및 경로 처리 Music21을 show()를 통해 MuseScore 3로 열려고 하는데 오류가 난다. 경로상에서 파일을 찾을 수 없다고 하는 것 보니 , MuseScore 3 프로그램 위치를 이상한 곳으로 알고 있나 보다. xml 파일을 MuseScore 3로 사용하기로 기본 설정을 했는데도 에러가 난다면 코드 위에 다음과 같은 코드를 추가해보자. # --- musescore 3을 이용하기 위한 path 설정 us = environment.UserSettings() us['musicxmlPath'] = '내가 설치한 MuseScore 3.exe path ( 대부분 programfiles -> MuseScore3 -> bin 안에 있음 )' us['musescoreDirectPNGPath'] = '내가 설치한 MuseS.. 더보기 [Music21] 3. Music21 가이드 ( Stream : Hierarchies, Recursion, Flattening ) Music21 라이브러리 가이드 3 from music21 import * #Music21 User Guide 5,6 레퍼런스 정리 # 2차원 , 3차원 리스트 #User Guide 5는 2차원 , 3차원 리스트에 대해 설명한다. #아마 스트림과 리스트를 비교하려는 듯 하다. note1 = note.Note("C4") note1.duration.type = 'half' note2 = note.Note("F#4") note3 = note.Note("B-2") stream1 = stream.Stream() stream1.id = 'some notes' stream1.append(note1) stream1.append(note2) stream1.append(note3) biggerStream = stream... 더보기 [Music21] 2. Music21 가이드 ( Stream ) Music21 라이브러리 가이드 2 import music21 #Music21 User Guide 4 레퍼런스 정리 # 다수의 오브젝트를 리스트로 처리 note1 = music21.note.Note("C4") note2 = music21.note.Note("F#4") note1.duration.type = 'half' print(note1.duration.quarterLength) #음표의 옥타브 없이 음 자체만을 알려면 step 속성을 확인한다. print(note1.step) print(note2.step) #악보는 음의 시퀀스로 구성될텐데 , 리스트를 활용해서 표현하고 음을 다룰 수도 있다. noteList = [note1, note2] print(noteList) #객체로 표현되는 것이 보기 그렇.. 더보기 [Music21] 1. Music21 가이드 ( Note , Pitch , Duration ) Music21 라이브러리 가이드 1 import music21 #Music21 User Guide 1 ~ 3 레퍼런스 정리 # midi 파일 불러오는 법 #music21.converter.parse(datapath) 로 music21 객체 생성 datapath = "...Canon_in_D.mid" midi = music21.converter.parse(datapath) # midi 파일의 키 알아내기 print(midi.analyze('key')) #Canon의 경우 D 메이저 # note (음표) 객체 만들기 f = music21.note.Note("F5") #F5 즉 5옥타브의 파 음을 만들었다. 따라서 f.name은 F(파)를 octave는 5옥타브를 보여준다. print(f) print(f.na.. 더보기 [기타] 블로그에 Jupyter notebook 올리기 그동안 Jupyter notebook으로 작업을 하면서 다양한 Jupyter notebook 파일들을 티스토리 블로그에 올려야 했다. 인터넷을 통해 여러 가지 방법들을 찾았지만 , 뭔가 다들 내 블로그에 적용하기에는 2% 부족했었다. 지금까지 시도한 방법을 정리해 소개하고 혹시 다른 사람들도 나와 같은 문제점이 있다면 이 글을 읽고 해결하기 바라면서 글을 올린다. 방법 1 가장 기본적이고 찾아보면 첫 번째로 등장하는 방법이다. Jupyter notebook에서 File -> Print Preview -> Ctrl+U로 전체 html 소스코드 열기 -> Ctrl+A와 Ctrl+C로 전체를 복사해 내 티스토리 블로그 html 편집창에 그대로 붙여 넣기 위의 방법이 Jupyter notebook의 html 자.. 더보기 이전 1 다음 반응형