我有一个项目用python3制作一种音乐合成器。我必须使用库存数据中的数字并使用我的音乐类创建一个播放器文件和一个文件,该文件将使用我的播放功能将注释输出到.rra文件。
m.play(D,3,2)在第三个八度音阶中演奏D为2节拍。
我仍然很困惑我的游戏功能如何运作。为了在八度音阶播放某个音符,我假设只要该音符应该播放,我会附加股票数据。我很困惑,因为我将其输入到代码中。
以下是我的音乐类文件和播放器文件的骨架:
我会用命令播放:“python3 player.py stock.dat | aplay”
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
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()
答案 0 :(得分:0)
命令:“python3 player.py stock.dat | aplay”表示您希望将文件流式传输到aplay实用程序,即ALSA声卡驱动程序的音频播放器。没有任何选项,输入默认为U8格式。
我找不到有关此类文件格式的任何详细信息,但这是您应该从哪里开始的。如果允许您为aplay选择一些选项(通过在命令行的末尾添加-options),那么您可以找到更容易使用的格式。
您项目的基本思想是采用一种“MIDI”格式,教师毫无疑问地指定了这种格式,其中给出了音符和节拍等,并以标准格式输出原始声音文件。您应该注意到类似Midi的压缩格式是一个小得多的文件。
答案 1 :(得分:0)