Skip to content

Instantly share code, notes, and snippets.

@tatmos
Last active November 19, 2023 00:16
Show Gist options
  • Save tatmos/09b7ad3efb609fd4a739e570f94be646 to your computer and use it in GitHub Desktop.
Save tatmos/09b7ad3efb609fd4a739e570f94be646 to your computer and use it in GitHub Desktop.
指練習的なスコアを生成するMusic21サンプル
import random
import copy
from music21 import *
def f_major(melo, baseNote):
fn = note.Note(baseNote)
fn.quarterLength = 1 / 6
melo.append(fn)
fn = fn.transpose(2)
melo.append(fn)
fn = fn.transpose(3)
melo.append(fn)
fn = fn.transpose(4)
melo.append(fn)
fn = fn.transpose(-3)
melo.append(fn)
fn = fn.transpose(-4)
melo.append(fn)
def init():
# get environment
env = environment.Environment()
# check the path
print('Environment settings:')
print('musicXML: ', env['musicxmlPath'])
print('musescore: ', env['musescoreDirectPNGPath'])
# set path if necessary
env['musicxmlPath'] = 'C:/Program Files/MuseScore 4/bin/MuseScore4.exe'
env['musescoreDirectPNGPath'] = 'C:/Program Files/MuseScore 4/bin/MuseScore4.exe'
def make_hanon():
melo = stream.Stream()
for num in range(16):
f_major(melo, 60 + num)
melo.show()
if __name__ == '__main__':
init()
make_hanon()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment