首页
学习
活动
专区
工具
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格式,并保存为文件。

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

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

    35710

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

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

    2.4K00

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

    用户只要输入一个持续时间(以秒为单位,作为生成的歌曲时长),从三种乐器中选择一种(备选有钟琴、铃铛、单簧管),然后就可以等着收听AI作曲家的大作。 ?...他们最终确定使用LSTM网络,这是一种能够学习长期依赖性的递归神经网络。...为了训练这个网络,研究团队采用MIDI格式的100首圣诞歌曲的训练数据集,包含每个音符的音高、长度和响度的文本文件,并使用Music21(一个开源库)来进行读取和写入。...随着时间的推移,当LSTM读取MIDI文件时,会通过复制音符和和和弦序列慢慢“学习”,以生成相似的主题音乐。...据该团队称,在AWS的GPU服务实例(使用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格式的音符生成。 使用MIT的Music21库[10]分析所得的乐句,确定其所处的音调。...然后将该乐句转换为C大调(或A Minor),并使用Music21量化为十六分音符。...生成所有音乐行之后,将生成的MIDI文件输入到Music Transformer模型中,该模型添加一个伴随的音乐声部,并以具有表现力的键盘速度和定时来营造人性化的感觉。...最后,使用谷歌的Magenta 库[11]对最终的MIDI文件进行一些后处理,比如分配乐器声音。 在下一节中,我将详细介绍这些步骤,并显示为自定义处理编写的Python代码。

    1.4K60

    打造专属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

    73620

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

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

    67030

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

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

    1.3K20

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

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

    1.1K10

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

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

    82130

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

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

    1.3K00

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

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

    60330

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

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

    56820

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

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

    76080

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

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

    1K10

    Studio One6更新哪些新功能?

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

    74800

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

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

    72620
    领券