首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用带有partitionByInstrument()的music21读取MIDI文件,以获取返回空列表的音符和和弦

music21是一个Python库,用于处理音乐数据。它提供了一些函数和工具,可以方便地读取、分析和操作音乐文件。

使用music21的partitionByInstrument()函数可以将音符和和弦按照乐器进行分组。这个函数会返回一个包含乐器和对应音符或和弦的列表。

在读取MIDI文件之前,我们需要安装music21库。可以使用以下命令在Python环境中安装music21:

代码语言:txt
复制
pip install music21

安装完成后,我们可以使用以下代码来读取MIDI文件并使用partitionByInstrument()进行分组:

代码语言:txt
复制
from music21 import converter

# 读取MIDI文件
midi_file = 'path_to_midi_file.mid'
score = converter.parse(midi_file)

# 使用partitionByInstrument()分组
instrument_groups = score.partitionByInstrument()

# 遍历乐器组
for instrument_group in instrument_groups:
    # 获取乐器名称
    instrument_name = instrument_group.getInstrument().instrumentName

    # 获取音符和和弦
    notes = []
    chords = []
    for element in instrument_group:
        if 'Note' in element.classes:
            notes.append(element)
        elif 'Chord' in element.classes:
            chords.append(element)

    # 打印结果
    print(f'乐器名称:{instrument_name}')
    print(f'音符列表:{notes}')
    print(f'和弦列表:{chords}')
    print('----------------')

这段代码会打印每个乐器的名称、音符列表和和弦列表。

music21对于音乐学习、音乐分析、音乐生成等方面非常有用。它可以帮助音乐爱好者、音乐学生、作曲家等处理和研究音乐数据。

关于腾讯云相关产品和产品介绍链接地址,由于题目要求不能提及具体的云计算品牌商,因此无法给出腾讯云相关产品的链接。如果需要了解腾讯云的相关产品和服务,可以通过搜索引擎或访问腾讯云官方网站获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【机器学习】音乐生成——AI如何创作个性化音乐与配乐

代码示例:使用LSTM生成音乐 我们将使用一个简单LSTM模型来生成音乐片段。假设我们有一个MIDI文件数据集,LSTM模型将学习这些音乐文件模式,并生成新旋律。...4.1 数据预处理 首先,我们需要将MIDI文件转换为可以输入到LSTM模型中格式。我们将使用music21库解析MIDI文件,并提取音符和弦信息。...import music21 import numpy as np # 加载MIDI文件 midi = music21.converter.parse("example_music.midi") #...将MIDI文件解析为音符和弦 notes = [] for element in midi.flat.notes: if isinstance(element, music21.note.Note...print(prediction_output) 4.5 将生成音符转换回MIDI文件 最后,我们将生成音符序列转换回MIDI格式,并保存为文件

17310
  • 用人工智能探索音乐生成世界

    一旦我们成功地获取了所需.mp3文件,我们就会将它们转换成MIDI文件MIDI文件数字格式表示音乐作品,使我们模型能够高效地进行分析生成。...在SpotifyBasic Pitch帮助下,我们上传所获取.mp3文件,启动转换过程。该工具利用先进算法来解析音频内容,提取关键音乐元素,如音符结构,生成相应MIDI文件。...然后,代码会遍历目录中每个文件,提取音符和弦,并将其存储以供进一步处理。music21 库中“converter”模块用于解析 MIDI 文件并检索音乐元素。...每个元素都是一个表示音符和弦数字。我们使用int_to_note字典将数字转换回其原始音符和弦字符串表示。 如果模式是一个和弦,可以通过存在点号或是数字来识别,我们将模式字符串拆分成单个音符。...最后,我们从音符列表中创建一个chord.Chord对象,表示和弦,并将其附加到output_stream中。

    29710

    如何运用深度学习自动生成音乐

    本文将讨论两种使用WaveNetLSTM(Long-Short-Term Memory)架构自动音乐创作方法。 2. 音乐构成要素是什么? 音乐本质上是由音符和弦组成。...让我从钢琴乐器角度来解释这些术语: 音符(Note):一个键发出声音叫做音符和弦(Chords):由两个或多个键同时产生声音称为和弦。一般来说,大多数和弦至少包含3个关键音。...MIDI是存储音乐文件标准格式(它代表乐器数字接口)。MIDI文件包含指令,而不是实际音频。因此,它占用很少记忆。这就是为什么在传输文件时通常首选它原因。...: 定义读取MIDI文件函数。...它返回音乐文件一组音符和弦

    2.3K00

    百首MIDI音乐数据集打造圣诞AI作曲家

    用户只要输入一个持续时间(秒为单位,作为生成歌曲时长),从三种乐器中选择一种(备选有钟琴、铃铛、单簧管),然后就可以等着收听AI作曲家大作。 ?...他们最终确定使用LSTM网络,这是一种能够学习长期依赖性递归神经网络。...为了训练这个网络,研究团队采用MIDI格式100首圣诞歌曲训练数据集,包含每个音符音高、长度响度文本文件,并使用Music21(一个开源库)来进行读取写入。...随着时间推移,当LSTM读取MIDI文件时,会通过复制音符和和和弦序列慢慢“学习”,生成相似的主题音乐。...据该团队称,在AWSGPU服务实例(使用Nvidia V100-SXM2)中,对该模型进行全面优化训练大约需要3个小时。

    1.1K30

    想用深度学习谱写自己音乐吗?这篇指南来帮你!(附代码)

    让我从钢琴角度来解释这些术语: 音符:单键发出声音称为音符 和弦:由两个或更多键同时发出声音称为和弦。一般来说,大多数和弦包含至少3个键音 八度:重复模式称为八度。...MIDI是存储音乐文件一种标准格式。MIDI代表乐器数字接口。MIDI文件包含说明而不是实际音频。因此,它只占用很少内存。这就是为什么它在传输文件时通常是首选。 1....#library for understanding music 2. from music21 import * 读取音乐文件: 我们直接定义一个函数来读取MIDI文件。...它返回音乐文件中存在音符和弦数组。 1....s2 = instrument.partitionByInstrument(midi) 14. 15.

    1.1K30

    使用机器学习创建生成音乐模型

    在这篇文章中,作者明确地说“假设…和弦是独立旋律无关”。基于此,作者构建了一个复杂多层RNN模型。旋律有自己层用于生成音符,它与和弦层无关。除了独立之外,这个特殊模型决定了旋律和谐。...他们视频显示了西方流行音乐一个典型特征:和声,或那四个和弦,基本决定了旋律是什么。用数据科学术语,我们可以说条件概率控制决定了和声与旋律之间统计关系。因为旋律音符自然取决于和声音符。...处理数据 对于这些数据,我使用了20种不同西方流行歌曲(midi格式,完整歌曲列表可以在这里找到:www.popmusicmaker.com)。...使用music21库,我主要(但不是完全)基于马尔科夫进程处理这些midi文件。这使我能够提取输入数据中不同类型音符之间统计关系。具体来说,我计算了我音符转换概率。...这基本上意味着当音符从一个转换到下一个时,我们可以获得转换发生概率。(下面有更深入解释) ? midi:歌曲数字化版本。 首先,我提取了和声音符旋律音符之间“垂直”转换概率。

    1.1K30

    使用LSTM-GAN为歌词谱曲

    系统接受了约12K带有歌词MIDI歌曲进行训练。它使用单词及其音节作为输入,并经过训练预测音乐音符,持续时间和静息持续时间作为输出。...该模型是GAN长短期记忆(LSTM)模型之间混合体,用来进行MIDI格式音符生成。 使用MITMusic21库[10]分析所得乐句,确定其所处音调。...然后将该乐句转换为C大调(或A Minor),并使用Music21量化为十六分音符。...生成所有音乐行之后,将生成MIDI文件输入到Music Transformer模型中,该模型添加一个伴随音乐声部,并以具有表现力键盘速度定时来营造人性化感觉。...最后,使用谷歌Magenta 库[11]对最终MIDI文件进行一些后处理,比如分配乐器声音。 在下一节中,我将详细介绍这些步骤,并显示为自定义处理编写Python代码。

    1.3K60

    打造专属BGM,​Python 深度学习教你

    模型建立 1.1 环境要求 本次环境使用是python3.6.5+windows平台,主要用库有: Argparse库是python自带命令行参数解析包,可以用来方便地读取命令行参数; glob...获取本地文件,在这里用来快速获取训练数据集; Pickle用在机器学习中,可以把训练好模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。...在这里我们用它来建立BLSTM模型 1.2 数据集处理 本项目使用了音乐文件midi文件,因为它们易于解析学习使用midi文件给我们带来了很多好处,因为我们可以轻松地检测到音符音高持续时间。...音乐重要组成部分是可变长度音符休止符动态创造性使用。比如先是发出长长音符,然后是平静停顿,可以在听我们听到演奏者心灵倾泻而出声音时,向听众发出一波情感。...(1)获取训练集所有的音符和弦 notes = [] for file in self.songs: print("Parsing %s" % file) try: midi

    73020

    mac音乐创作软件-Cubase Pro 12 mac版

    围绕 MIDI 远程脚本新概念构建,Cubase 将自动检测您设备并映射控件。如果您设备还没有脚本,您可以使用 MIDI 控制器表面编辑器轻松创建自己脚本。...只需设置音阶并跟随和弦轨道,或让音阶助手根据您录制音符建议音阶。然后,您可以立即量化录音音高或将 VariAudio 音高编辑捕捉到音阶。音高编辑从未如此简单!...音频到 MIDI 和弦你忘了你刚刚玩了什么吗?不用担心。只需将您录音拖到和弦轨道,Cubase 就会为您布置和弦进程。如果检测与您音阶不匹配,和弦助手可以根据以下和弦建议最接近替代方案。...Cubase 中新“从音频创建和弦事件”功能模糊了音频 MIDI 之间界限,让您专注于音乐。就像它应该那样。...我们通过新功能关键命令改进了编辑工作流程提供帮助。新微调网格选项让您可以独立于项目网格进行编辑。此外,我们还在范围选择工具中添加了关键命令,以便于导航。

    1.3K20

    KDD 2018 | 中科大、苏州大学与微软合作论文获最佳学生论文奖

    具体来说,通过设计了一个基于和弦节奏旋律交叉生成模型(CRMCG)来产生带有和弦进行旋律。然后,提出了一种多乐器联合编曲模型(MICA),它使用多任务学习来进行多轨音乐编曲。...▌数据描述 在本文中,我们在真实世界数据集上进行了实验,该数据集由超过五万个MIDI(数字分数格式)文件组成,并且为了避免偏差,那些不完整 MIDI 文件,例如没有声道音乐都被删除。...最后,我们数据集中保存了 14,077个 MIDI 文件。具体来说,每个 MIDI 文件包含各种类型音轨,如旋律, 鼓,贝司和弦乐。 为了保证实验结果可靠性,我们对数据集进行了如下预处理。...首先,我们将所有 MIDI 文件转换为 C 大调或 A 小调,保持所有音乐在同一曲调上。然后我们将所有音乐 BPM(每分钟节拍)设置为 60,这确保所有音符都是整数节拍。...基线方法选择Magenta(RNN)&GANMidi(GAN),除了提出 CRMCG 模型,我们还评估了模型两个变体,验证和弦进行交叉训练方法对旋律生成重要性:CRMCG(有/无和弦进行)&CRMCG

    66330

    gtp2023最新版吉他软件有哪些功能?怎么下载Guitar Pro8

    新版本增加了一些打印时针对个人用户设置;对吉他面板(操作区)播放时状态做了一些较大改进,可以选择播放时显示当前音符,下一个音符,当前和弦图表,当前小节音符;增加了对4弦乐器、5弦乐器、7弦乐器和弦图表支持鼓谱符号输入...另外,GP还支持多音轨模式,我们除了可以用它制作吉他音轨之外还可以制作贝斯音轨打击乐音轨,所以说GP完全是一个吉它为中心音乐制作系统,完全能够胜任你各种MIDI音乐制作要求!...在完成制谱后可以将吉他谱导成图片、音频、midi等格式文件,可以说是吉他制谱一大利器。...步骤三、使用左侧工具栏上按钮输入谱号拍号。步骤四、点击左侧工具栏和弦图按钮输入所需要和弦。...步骤五、使用鼠标键盘在乐谱中输入乐曲内容,乐句、歌词等等步骤六、点击方档菜单下导出命令,导出吉他谱,这里可以选择图片、pdf、gp等格式文件

    1.1K10

    Guitar Pro8先进指法和乐谱应用软件

    图片Guitar Pro是一个吉他六线谱编辑程序,它可以让你配置 8 个 Track,当然除了可直接输入音符编辑外,你也可以输入MIDI文件或是 ASCII Tab,Guitar pro会自动帮你转换成六线谱...虚拟乐器为视觉学习提供音符图形表示改进:为了使吉他Pro 8使用更加直观愉快,它在许多地方进行了优化。...导出调整 PDF 或 PNG 文件分辨率,并将歌曲导出为具有透明背景 PNG。声音库 在这一点上,声音库准确性动态性得到了改进提高。换位和弦现在与名称指法一起转置。...更多:编辑颤音条上四分音符- 显示额外随机和弦- 全音调换位- 显示打击乐和标准符号斜杠符号- 使用十进制速度标记- 提高整个程序性能支持语言:英语、法语、德语、意大利语、日语、韩语、波兰语、...Guitar Pro 是最强大、最直观指法编辑器之一,具有内置乐谱、MIDI 编辑器、播放器、和弦绘图仪、节拍器其他吉他手音乐家工具。

    1.3K00

    Steinberg Cubase Pro 12 mac(音乐创作软件)

    围绕 MIDI 远程脚本新概念构建,Cubase 将自动检测您设备并映射控件。如果您设备还没有脚本,您可以使用 MIDI 控制器表面编辑器轻松创建自己脚本。...只需设置音阶并跟随和弦轨道,或让音阶助手根据您录制音符建议音阶。然后,您可以立即量化录音音高或将 VariAudio 音高编辑捕捉到音阶。音高编辑从未如此简单!...音频到 MIDI 和弦你忘了你刚刚玩了什么吗?不用担心。只需将您录音拖到和弦轨道,Cubase 就会为您布置和弦进程。如果检测与您音阶不匹配,和弦助手可以根据以下和弦建议最接近替代方案。...Cubase 中新“从音频创建和弦事件”功能模糊了音频 MIDI 之间界限,让您专注于音乐。就像它应该那样。...我们通过新功能关键命令改进了编辑工作流程提供帮助。新微调网格选项让您可以独立于项目网格进行编辑。此外,我们还在范围选择工具中添加了关键命令,以便于导航。

    80730

    莫扎特、披头士随意切换,这个AI会用10种乐器演奏不同风格音乐

    Musenet 没有根据我们对音乐理解来显式编程,而是通过学习预测成千上万个 MIDI 文件下一个 token,来发现和弦、节奏和曲风模式。...ClassicalArchives BitMidi 为该项目贡献了大量 MIDI 文件,同时他们还在网上找到了爵士乐、流行乐、非洲乐、印度乐和阿拉伯乐等几种不同风格音乐合集。...他们尝试使用几种不同方法将 MIDI 文件编码成适用于本次任务 token。...首先,OpenAI 使用和弦方法,该方法将同一时间听到每个音符组合作为一个独立和弦」,同时为每个和弦指定一个 token。...接下来,OpenAI 为和弦每个音符添加了一个嵌入(这是在模仿相关注意力,因为这样可以让模型更容易学到:音符 4 需要回看音符 3,或者回顾前一个和弦音符 4)。

    59630

    程序员拯救乐坛?这个AI会用10种乐器演奏不同风格音乐

    Musenet 没有根据我们对音乐理解来显式编程,而是通过学习预测成千上万个 MIDI 文件下一个 token,来发现和弦、节奏和曲风模式。...ClassicalArchives BitMidi 为该项目贡献了大量 MIDI 文件,同时他们还在网上找到了爵士乐、流行乐、非洲乐、印度乐和阿拉伯乐等几种不同风格音乐合集。...他们尝试使用几种不同方法将 MIDI 文件编码成适用于本次任务 token。...首先,OpenAI 使用和弦方法,该方法将同一时间听到每个音符组合作为一个独立和弦」,同时为每个和弦指定一个 token。...接下来,OpenAI 为和弦每个音符添加了一个嵌入(这是在模仿相关注意力,因为这样可以让模型更容易学到:音符 4 需要回看音符 3,或者回顾前一个和弦音符 4)。

    56220

    让深度学习帮你创作爵士乐

    第一次尝试使用计算机作曲是伊利诺伊大学厄巴纳 - 香槟分校两位美国教授,Hiller Issacson。...获取数据 我们将会输入一段 MIDI 格式钢琴曲。MIDI 是乐器数字接口,它就像表示音乐数字字母表,里面包含许多信息。因为这些信息是一个序列,所以我们会把递归网络用做序列学习模型。...我们将会抽取每一个 MIDI 文件中旋律与和声节点流,和声和弦伴随着旋律单音,然后通过节拍数量将它们分类使每个节拍都有它自己一组和弦,这种节拍和弦对就是我们所说抽象文法( abstract...因此我们会一遍又一遍地预测序列中下一个音符,直到有了一系列生成音符。 5. 将输出保存为 MIDI 把这些音符译成 MIDI 格式然后写进文件里,这样我们就可以听了。...我们可以使用 LSTM 网络,预测音符序列从而生成音乐 LSTM 网络包含三个门:输入门,遗忘门输出门,我们可以把这些门看做阀门 这些阀门可以控制记忆在网络中储存解决梯度消失问题

    75180

    Guitar Pro8.1吉他打谱软件新功能支持编写简谱

    Guitar Pro在吉他和弦、把位显示、推算、查询、调用等方面,也异常方便、简洁、直观浩瀚,这是同类软件所根本无法与之相抗衡一大显著特点Guitar Pro是一款倍受吉他手喜爱吉他和弦、六线谱...新版本增加了一些打印时针对个人用户设置;对吉他面板(操作区)播放时状态做了一些较大改进,可以选择播放时显示当前音符,下一个音符,当前和弦图表,当前小节音符;增加了对4弦乐器、5弦乐器、7弦乐器和弦图表支持鼓谱符号输入...同时播放设置中也支持MIDI音源选择,克服了以前版本中只能使用系统默认MIDI音源毛病,可以快速地更换各种音源进行回放,十分方便!...另外,GP还支持多音轨模式,我们除了可以用它制作吉他音轨之外还可以制作贝斯音轨打击乐音轨,所以说GP完全是一个吉它为中心音乐制作系统,完全能够胜任你各种MIDI音乐制作要求!...在使用简谱功能时需要注意一点,在当前Guitar Pro 8.1版本中,简谱只能显示单音,不支持显示音程、和弦这类堆叠式布局。

    97210

    Studio One6更新哪些新功能?

    该版本内置补丁,用户可永久免费使用。无论你选择Studio One哪个版本,你都可以得到无限音轨、通道插件;业界领先拖放工作流程;以及一套完整音频编辑制作工具。...,自动滚动应该可以工作• 多次导入编辑同一个 MIDI 文件时出现错误结果• 无法在通道之间复制自动化数据• 在 Pool中右键单击视频文件时崩溃• 上下文菜单项“扩展文件夹轨道”在某些情况下被禁用...当您从最初创意灵感转移到完成、精通产品时,没有其他程序可以完成如此完美的过渡。2-点击速度排列。在编曲时忘记费力换位、剪切、粘贴移动。...当你陷入一成不变时,让Studio One Professional成为你创意合作伙伴。使用巧妙和弦选择器可以轻松试验新和弦模式想法。让和声编辑激发新想法。...从外部MIDI控制器实时更改和弦在飞行中尝试和弦进度。将和弦数据从音频或乐器音轨传输到和弦音轨,或从和弦音轨传输到其他音轨。可打印符号,这是真正值得注意

    72700

    程序员拯救乐坛?OpenAI用“逆天”GPT2.0搞了个AI音乐生成器

    首先需要说明是,MuseNet 并没有根据人类输入对音乐理解进行显式编程,而是通过学习预测成千上万个 MIDI 文件下一个 token 来发现和弦、节奏和风格模式。...生成音乐时,可以调整模型,如拉赫玛尼诺夫钢琴曲为前提,创建选定风格音乐。 研究人员还将 MuseNet 中嵌入进行可视化,深入了解模型所学到内容。...首先,研究人员采用 transformer 在序列数据上进行训练:给定一组音符,要求它预测其他即将出现音符。在尝试了几种不同方法后将 MIDI 文件编码为适用于此任务 token。...在这种其中,他们采用和弦方法,将每次听到音符组合视为单独和弦”,并为每个和弦指定一个 token。然后,通过仅关注音符开头压缩音乐模式,并尝试使用字节对编码方案进行近一步压缩。...他们采用了一种结合了表现力简洁性编码方式:将音高、音量以及乐器信息组合称一个 token。 在训练中, 通过提高降低音高来调换音符

    71520
    领券