我有一个项目需要用Python3制作一种音乐合成器。我需要使用股票数据中的数字创建一个播放器文件和一个包含我的音乐类的文件,该类将输出音符到.rra文件中,并使用我的播放函数。
例如:m.play(D, 3, 2) 表示在第三八度演奏D音符,持续两个节拍。
但是我仍然很困惑如何使我的播放函数工作。为了演奏特定的音符,我假设必须添加股票数据中的数字,直到音符演奏完成。但我不确定如何将其输入到代码中。
希望能够得到任何帮助或提示。
以下是我的音乐类文件和播放器文件的框架:
可以使用以下命令进行播放:"python3 player.py stock.dat | aplay"
music.py
class music:
例如:m.play(D, 3, 2) 表示在第三八度演奏D音符,持续两个节拍。
但是我仍然很困惑如何使我的播放函数工作。为了演奏特定的音符,我假设必须添加股票数据中的数字,直到音符演奏完成。但我不确定如何将其输入到代码中。
希望能够得到任何帮助或提示。
以下是我的音乐类文件和播放器文件的框架:
可以使用以下命令进行播放:"python3 player.py stock.dat | aplay"
music.py
class music:
def __init__(self, infile):
self.infile = infile
self.beats = 4
self.list = []
fp = open(infile, 'r')
for line in fp:
self.list.append(eval(line))
pass
def set_beat(self, x):
self.beats = x
def header(self):
print("RRA\n%%\n")
def play(self, note, octave, beats):
pass
def __str__(self):
s = "infile" + self.infile + ", Beats:" + self.beats
player.py
import sys
from music import Music
def main():
m = Music(sys.argv[1])
m.set_beat(0.25) # one beat is 0.25 seconds
m.header() #output the audio header
m.play("C",3,1) # play C in octave 3 for one beat
m.play("D",3,2) # play D in octave 3 for two beats
main()