问题标签 [music21]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1331 浏览

python - MIDI 文件中的“持续时间”和“偏移量”有什么区别?

我正在使用“music21”库来处理 MIDI 文件。不幸的是,对于那些不太了解音乐是如何创作的人来说,所提供的文档并不是那么清楚。“持续时间”和“偏移量”有什么区别?据我了解,第一个音符/和弦的偏移量为 0.0,假设它的持续时间为 1.0。然后,以下音符/和弦的偏移量为 1.0,持续时间为 0.5。然后,偏移 1.5 和持续时间 2,依此类推。但有时它具有相同的价值。我很困惑。代码:

0 投票
1 回答
662 浏览

python - 无法在 midi 文件中写入“休息”对象

我有一个包含几个 ' notes'、' chords' 和 ' rest' 对象的列表,并试图将它们写入一个 midi 文件。我正在尝试以下代码

在阅读创建的 midi 文件时,我发现 midi 文件中没有rest附加“”对象。

output_notes 变量的内容是:

创建的midi文件中的内容是:

0 投票
2 回答
380 浏览

python - SubConverterFileIOException - 音乐 21 show()

我刚刚安装了music21,我正在尝试开始使用它。我安装了 Musecore3,但我无法使 show() 函数工作。

我已经尝试更改路径,按照我在网上找到的一些说明,但无济于事

我正在尝试做一个简单的 show()

这是我得到的错误:

0 投票
1 回答
305 浏览

python - 如何使用 Music21 检索钢琴曲的左右手

我正在尝试检索带有两个五线谱的钢琴曲的右手和左手音符以进行音乐分析,但我在实现这一目标时遇到了很多麻烦。

我正在使用 Music21 来执行此操作。在他们的文档中,似乎 Part 类对应于人员,所以我认为获取流对象的 Part 对象将检索左手(Part 对象)和右手(Part 对象)。

由于这首歌有两个五线谱,我预计会有两个部分,但对于一些有两个五线谱的歌曲,情况并非如此。一些明显有两个谱表的歌曲在流对象中只有一个部分。

0 投票
1 回答
93 浏览

python - 什么决定了“.wav”文件的长度?

我目前正在使用music21midi2audio生成.wav文件以用于机器学习。我观察到一个非常奇怪的事实。

使用librosa.get_duration()我可以看到只有.wav2 个F注释的文件比.wav只有一个F注释的文件长约 50%。此外,这些比率与使用的音符无关,除非r使用。为什么这是真的?

0 投票
1 回答
689 浏览

python-3.x - 如何遍历 music21 和弦对象并将和弦的每个音符附加在一起,并将整个和弦作为一个元素存储到列表中?

所以我正在尝试使用 Music21 库解析一首 MIDI 歌曲。这首歌的音符有不同的持续时间、和弦和休止符。我希望能够解析歌曲并检查 MIDI 事件是否是音符,如果是,将其 MIDI 编号和持续时间(四分之一长度)存储到列表中。我还想检查它是否是和弦,如果是,则将和弦及其持续时间存储在列表中。

我决定和弦的格式基本上是组成它的所有 MIDI 音符,由“。”连接在一起。最后,我希望包含所有和弦、音符和持续时间的列表看起来像这样:

例如:

对此的任何帮助将不胜感激,或者对我的方法中出了什么问题的任何解释也将不胜感激。

这是我已经尝试过的。真正的问题在于 for 循环中的第二个 elif 语句。我得到了一些不受欢迎的时髦输出。

输出应该有已经遇到的音符或和弦的 MIDI 数字表示,但它似乎复制了很多相同的音符:

0 投票
1 回答
686 浏览

python - Music21 Python 库将只输出钢琴声音

我正在使用 Music21 库,并且希望听到乐器中的每首曲目都应该从我的 jupyter 笔记本(IPython)中播放。

我可以成功地将不同曲目上的音乐输出到 midi 文件并通过胆怯播放,但我无法从 IPython 播放器听到除钢琴 (midiProgram = 0) 以外的任何曲目。

我目前在 Ubuntu 18.04 上使用 music21 v5.7.0。我也能够在我的 Mac 系统上复制它。

我尝试将流写入 MIDI 文件而不是在笔记本中显示它,我只能听到生成的 MIDI 文件中调整后的乐器。

我希望在第二个 show() 调用中听到所有小号的声音,但仍然只能听到钢琴。但是,当我使用胆怯打开生成的 MIDI 文件时,我可以听到它们都是喇叭声。

挖掘一些源代码,我希望它与 javascript 生成的 midiPlayer 或 base64 编码的 midi 文件的解码有关,但我在这里没有任何专业知识。

任何帮助将不胜感激,我目前的解决方法只是使用

在我的笔记本中,以防其他人遇到此问题。

0 投票
1 回答
315 浏览

python - How to convert abc file to a musicxml file using music21?

I'm writing my thesis and I need some help to understand how I can convert using music21 a set of abc files to a set of musicxml files. I need to write a automatic stream that helps me to convert all the notthingam dataset into a set of musicxml file that I'll use to create a database.

I've found this class but I don't know how to manage with it:

0 投票
2 回答
194 浏览

python - 为什么插入后 stream.Parts 没有很好地形成?

我想将弦乐的乐谱(缪斯乐谱巴赫勃兰登堡协奏曲第 3 首乐章 BWV1048)转换为钢琴乐谱,这样我就可以在钢琴上演奏了。我能够得到单独的部分(小提琴、中提琴、大提琴和低音提琴)。我想把小提琴和中提琴部分放在一个单独的流中。右手的部分和另一个单独的流。左手的大提琴和低音提琴部分。尽管所有乐器的单独 stream.Parts 格式正确,但是当我尝试为左右手创建 to stream.Parts 时,在 de insert 方法后,stream.Parts 格式不正确。

谁能告诉我为什么会这样?

有没有其他方法可以使用 to stream.Parts 为左手和右手创建分数,然后我使用以下 python3 脚本?

当我在 contrabass1 = parts[9] 行之后添加以下行:

然后我可以改变谱号。现在我剩下的问题是,我怎样才能附加左手和右手的零件?

0 投票
0 回答
37 浏览

python - 如何向 music21 提交自定义特征提取方法?

我试图弄清楚我是否能够将我的任何自定义 music21 特征提取方法提交给 music21。

对于我在俄亥俄州立大学的本科研究职位,我必须创建自定义方法来为我的模型提取必要的特征。我必须创建所有这些方法,因为我无法在 music21 文档中找到它们。其中一些方法可能很重要,我觉得它们可能对使用 music21 提取音乐特征的其他人有用。