gpt4 book ai didi

python - 从 Musicxml 中提取信息

转载 作者:太空狗 更新时间:2023-10-29 22:27:12 24 4
gpt4 key购买 nike

我是编程和 Python 的新手,但我目前的很多研究都涉及从 musicxml 文件中提取数据。我有一段音乐,想提取一首曲子中不构成调号一部分的临时记号的数量。我不知道该怎么做,有人可以帮忙吗?这是我正在查看的 musicxml 文件中的一个度量示例:

<measure number='19'>
<print new-system='no'/>
<note>
<rest/>
<duration>768</duration>
<voice>1</voice>
<type>quarter</type>
<staff>1</staff>
</note>
<backup>
<duration>768</duration>
</backup>
<note>
<pitch>
<step>E</step>
<octave>4</octave>
</pitch>
<duration>2304</duration>
<tie type='start'/>
<voice>2</voice>
<type>half</type>
<dot/>
<staff>1</staff>
<notations>
<tied type='start'/>
<slur type='stop' number='1'/>
</notations>
</note>
<backup>
<duration>1536</duration>
</backup>
<note>
<pitch>
<step>E</step>
<alter>3</alter>
<octave>3</octave>
</pitch>
<duration>1536</duration>
<voice>1</voice>
<type>half</type>
<staff>1</staff>
</note>
<note>
<chord/>
<pitch>
<step>G</step>
<alter>4</alter>
<octave>3</octave>
</pitch>
<duration>1536</duration>
<voice>1</voice>
<type>half</type>
<staff>1</staff>
</note>
<backup>
<duration>2304</duration>
</backup>
<note>
<pitch>
<step>E</step>
<octave>2</octave>
</pitch>
<duration>2304</duration>
<voice>5</voice>
<type>half</type>
<dot/>
<staff>2</staff>
</note>
</measure>

问题转化为搜索 musicxml 文件并计算次数

<pitch>
<step>*</step>
<alter>**</alter>
...

发生在 * 不是(F 或 C)的地方,并且还找到 * 是 F 或 C 并且后面没有跟上 <alter> 的次数标签。

如有任何帮助或建议,我们将不胜感激!

最佳答案

我无法提供有关 Python 细节的帮助,但我有两个与 MusicXML 相关的建议:

1) 你的问题是用临时记号来表达的,但你的代码侧重于 alter 元素。 alter 元素用于改变音高;意外元素是用于书面意外的元素。你要找哪一个?声音的多少和它在乐谱中的显示方式之间的二元性在 MusicXML 中很常见,理解它对于使用 MusicXML 文件进行研究很重要。

2) 如果您是编程和 Python 的新手,我建议您使用专为音乐学设计的具有良好 MusicXML 支持的高级工具包。您会将问题域提升到更高级别,这应该会让您更快地取得进展。显而易见的选择是 music21 工具包,它也是用 Python 编写的。在 http://web.mit.edu/music21/ 上有更多信息.

祝你研究顺利!

关于python - 从 Musicxml 中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com