跳到内容

CPJKU/partitura公司

最新版本 Pypi包 单元测试状态 CodeCov状态 出资人公约

帕蒂图拉是用于处理符号音乐信息的Python包。支持从加载和导出到音乐XMLMIDI(MIDI)文件夹。它还支持从单调乏味内核教育与工业应用数学组织.

以下内容的完整文档分裂可在线访问阅读docs.org.

用户安装

安装软件包的最简单方法是通过pip(点阵)来自PyPI(Python包装索引):

pip安装部分

这将安装包的最新版本,并将自动安装所有依赖项。

快速启动

提供了一些实际操作MIR应用程序的详细教程在这里.

以下代码加载中包含的示例MusicXML文件的内容套餐:

进口 分裂 作为 pt(磅)
my_xml_文件 = pt(磅).示例_MUSICXML
分数 = pt(磅).load_score(加载核心)(my_xml_文件)

分裂load_score(加载核心)函数将把任何乐谱格式,即(Musicxml、Kern、MIDI或MEI)导入到partitura公司。分数对象。分数对象将包含分数中的所有信息,包括分数部分。以下是分数第一部分的内容:

部分 = 分数.部分[0]打印(部分.漂亮的())

输出:

部件id="第1页"姓名="钢琴"├─ 时间点t=0季度=12│   ││   └─ 启动对象│       ││       ├─ 0-48测量值=1│       ├─ 0-48笔记id=n01语音=1员工=2类型=全音高=A4│       ├─ 0-48页码=1│       ├─ 0-24休息id=r01语音=2工作人员=1类型=一半│       ├─ 0-48系统号=1│       └─ 0--时间签名4/4├─ 时间点t=24季度=12│   ││   ├─ 结束对象│   │   ││   │   └─ 0-24休息id=r01语音=2工作人员=1类型=一半│   ││   └─ 启动对象│       ││       ├─ 24-48音符id=n02声音=2人=1类型=半音高=C5│       └─ 24-48音符id=n03声音=2人=1类型=半音高=E5└─ 时间点t=48季度=12└─ 结束对象├─ 0-48测量值=1├─ 0-48笔记id=n01语音=1员工=2类型=全音高=A4├─ 24-48音符id=n02声音=2人=1类型=半音高=C5├─ 24-48音符id=n03声音=2人=1类型=半音高=E5├─ 0-48页码=1└─ 0-48系统号=1

如果百合香MuseScore博物馆安装在系统上时,使用以下命令将零件渲染为图像并显示它:

pt(磅).提供(部分)

评分示例

可以通过属性访问此部分中的注释零件注释:

部分.笔记
>[<分裂.分数.注释 对象  0x个...>,<分裂.分数.注释 对象  0x个...>,> <分裂.分数.注释 对象  0x个...>]

以下代码将音符的开始、结束和中音音高存储在numpy中数组:

进口 numpy公司 作为 净现值
钢琴 = 净现值.阵列([(n个.开始.t吨,n个.结束.t吨,n个.midi_开关)对于 n个 在里面 部分.笔记])打印(钢琴)>[[0 48 69]>[24 48 72]>[24 48 76]]

注释开始和结束时间以划分MusicXML文件的元素。此元素指定四分音符的持续时间。这个划分值可以在MusicXML文件,因此通常最好在中使用音乐时间跳动。

part对象具有以下属性:部分最佳映射转换时间轴的时间转换为节拍时间:

打_映射 = 部分.打_映射
打印(打_映射(钢琴[:,0]))>[0 2 2]打印(打_映射(钢琴[:,1]))>[4 4 4]

以下命令将部件保存到MIDI和MusicXML,或将其导出为WAV文件(使用添加剂合成)分别为:

#将Score MIDI保存到文件。
pt(磅).保存核心midi(部分,“mypart.mid”)#将Score MusicXML保存到文件中。
pt(磅).保存音乐xml(部分,“mypart.musicxml”)#使用加法合成另存为音频文件
pt(磅).保存wav(部分,'mypart.wav')

更详细的示例可以在文件<https://partitura.readthedocs.io/en/latest/index.html>_.

导入其他格式

对于音乐XML文件执行以下操作:

进口 分裂 作为 pt(磅)
my_xml_文件 = pt(磅).示例_音乐
分数 = pt(磅).加载音乐xml(my_xml_文件)

对于科恩文件执行以下操作:

进口 分裂 作为 pt(磅)
我的内核文件 = pt(磅).示例_KERN
分数 = pt(磅).加载内核(我的内核文件)

对于教育与工业应用数学组织文件执行以下操作:

进口 分裂 作为 pt(磅)
我的文件 = pt(磅).示例_MEI
分数 = pt(磅).载荷(_M)(我的文件)

您还可以通过以下方式导入上述任何格式:

进口 分裂 作为 pt(磅)
任意核心格式路径 = pt(磅).示例_MUSICXML
分数 = pt(磅).load_score(加载核心)(任意核心格式路径)

许可证

此包中的代码是根据Apache 2.0许可证授权的。有关详细信息,请参阅许可证文件。

引用Partitura

如果您觉得Partitura有用,我们将不胜感激!

@正在进行{partitura_mec,title={{Partitura:用于符号音乐处理的Python包}},author={Cancino-Chac\'{o} n个卡洛斯·爱德华多(Carlos Eduardo)和彼得(Peter)、席尔万·戴维(Silvan David)和卡里斯蒂尼奥斯(Karystinaios)、埃马努埃尔(Emmanouil)和福斯卡林(Foscarin)、弗朗西斯科(Francesco)和格拉赫滕(Grachten,booktitle={{音乐编码会议(MEC2022)}},address={加拿大哈利法克斯},年份={2022}}

致谢

该项目获得了欧洲研究委员会(ERC)的资助欧盟地平线2020研究与创新计划获得资助协议编号:101019375“音乐在哪里?”.

这项工作得到了欧洲研究委员会(ERC)的支持欧盟地平线2020研究与创新计划获得资助670035号协议项目《Con Espressione》和奥地利科学基金(FWF)拨款P 29840-G26(项目“赫伯特·冯·卡拉扬音乐指挥风格的计算机辅助分析”)