Ich habe einen Code erstellt, der zufällig eine Punktzahl generiert. Verwenden Sie diese Option, um einen Datensatz mit Ergebnissen für maschinelles Lernen zu erstellen.
--chromebook debian9 (strecken)
Python-Bibliothek:
Sanft:
randomScore.py
import music21 as m21
from numpy.random import choice
def makeScore(symbleNum=200, scoreNum=20, noteRange=[3, 4, 5, 6, 7],
noteRangeProbs=[0.05, 0.4, 0.4, 0.1, 0.05], sharpProb=0.1,
restProb=0.2, exportDir='/home'):
'''
symbleNum:Wie viele Noten und Pausen pro Notenblatt
scoreNum:Wie viele Punkte müssen generiert werden?
noteRange:Wie viele Oktaven, zu denen Noten vorhanden sind (Standard ist C3 bis B)#Bis zu 7)
noteRangeProbs:Eine Liste der Wahrscheinlichkeiten, wie viel jede Note pro Oktave erscheint
sharpProb:Wahrscheinlichkeit des Schärfens von Noten
restProb:Wahrscheinlichkeit der Ruhe
exportDir:Wo soll die Ausgabedatei gespeichert werden?
===========================
Standardmäßig lautet der Dateiname 1, 2, 3, ...Es ist geworden.
.Es gibt verschiedene andere Dateien als die PNG-Datei, aber Sie können sie löschen.
'''
quarterLengths = [4, 2.5, 2, 1.5, 1, 0.75, 0.5, 0.25]
notes = ['C', 'D', 'E', 'F', 'G', 'A', 'B']
noteRange = list(map(lambda x: str(x), noteRange))
typeProbs = [1 - restProb, restProb]
sharpProbs = [sharpProb, 1 - sharpProb]
chooseThese = [True, False]
for i in range(scoreNum):
noteList = []
measure = m21.stream.Measure()
for j in range(symbleNum):
if choice(a=chooseThese, p=typeProbs):
if choice(a=chooseThese, p=sharpProbs):
pitchName = choice(notes) + '#' + choice(a=noteRange, p=noteRangeProbs)
else:
pitchName = choice(notes) + choice(a=noteRange, p=noteRangeProbs)
n = m21.note.Note(pitchName, quarterLength=choice(quarterLengths))
noteList.append(n)
else:
n = m21.note.Rest(quarterLength = choice(quarterLengths))
noteList.append(n)
measure.append(noteList)
fileName = exportDir + str(i)
measure.write('lily.png', fileName)
if __name__ == "__main__":
makeScore()
etc
Recommended Posts