환경 :
windows11
python 3.10.6
1. 환경설정
1.1 폴더생성
mkdir ai-music
1.2 가상환경 생성
python -m venv .venv
.\venv\Scripts\activate.bat
1.3. 필요 모듈 설치
pip install music21
pip install jupyter
1.4 music21 설정을 위해 musicscore 프로그램을 설치한다.
현재, 허브를 설치한후에 musicscore studio 를 설치하면된다.
설치후, 파이썬 repl 에서 music21 을 설정해준다.
python # repl 진입
from music21 import *
configure.run() # musicscore studio 와 연결!
2. 음악 만들기
jupyter notebook # 주피터 노트북 실행
configure.run() 은 쥬피터 노트북에서 새로 실행했다.
근데 구성하더라도 최신버전 music score studio 의 위치를 못찾으므로 설정을 추가해야한다.
environment.set('musescoreDirectPNGPath', 'C:\\Program Files\\MuseScore 4\\bin\\MuseScore4.exe')
샘플입니다.
from music21 import *
s1 = stream.Stream()
s1.insert(0, metadata.Metadata())
s1.metadata.title='크로매틱 스케일 음악'
s1.metadata.composer='파이썬'
for x in range(12):
chromatic_melody = 60+x # 60이 도
n1 = note.Note(chromatic_melody)
n1.quarterLength=1 # 1이 4분음표
s1.append(n1)
s1.show() #악보보이기
s1.show('midi') #연주
3. 음악 표기 정보
4/4 박자 음길이
온음표 = 4
2분음표 = 2
4분음표 = 1
8분음표 = 0.5
16분음표 = 0.25
점8분음표 = 0.75
** 16분음표 기준으로 곱하기 해서 계산 하면 편함!
쉼표는 note.Rest(길이) 로 정의
반주와 리듬을 합치기 위해서는 2개의 스트림을 하나의 스트림으로 다시 합치면 된다.
s1 = stream.Stream()
s1.clear()
s1.append(노트추가)
....
s2 = stream.Stream()
s2.clear()
s2.append(노트추가)
twopart = stream.Stream()
twopart.clear()
twopart.insert(0, s1)
twopart.insert(0, s2)
twopart.show('midi') # 재생! 악보보기는 오류발생한다..