본문 바로가기
IT/python

음악 만들기(작곡까지는 멀었다.)

by 가능성1g 2024. 5. 25.
반응형

 

환경 :

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') # 재생!  악보보기는 오류발생한다..

반응형