如何使用音乐21检索钢琴曲的左右手

2024-04-25 21:59:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用两根棍子来提取一首钢琴曲的左右手音符,以便进行音乐分析,但我在实现这一点上遇到了很多困难。你知道吗

我用音乐21来做这个。在他们的文档中,似乎Part类对应于一个staff,所以我认为获取流对象的Part对象将检索左手(Part对象)和右手(Part对象)。你知道吗

curr_stream = converter.parse(str(file))
parts = curr_stream.getElementsByClass(stream.Part)
left_hand = parts[0]
right_hand = parts[1]

因为这首歌有两个小节,我希望有两个部分,但对于一些有两个小节的歌来说,情况并非如此。一些明显有两个音阶的歌曲在stream对象中只有一个部分。你知道吗


Tags: 对象文档stream音乐converterparts音符staff
1条回答
网友
1楼 · 发布于 2024-04-25 21:59:12

一切都取决于str(file)是什么。对于使用一个MusicXML part和多个stave编码的MusicXML文件,music21将创建两个PartStaff对象。PartStaff是流。部分,这样您的代码就可以工作了(curr_流部件). 例如,参见corpus.parse('cpebach')。但是有很多错编的钢琴曲。你知道吗

相关问题 更多 >