问题标签 [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 投票
3 回答
1585 浏览

python - music21:挑选旋律音轨

我正在处理大量使用music21 为现有流行歌曲制作的midi 文件。

虽然通道 10 是为打击乐保留的,但旋律轨道遍布不同的通道,所以我想知道是否有一种有效的方法来挑选主旋律(人声)轨道。

我猜一种方法是选择由单个音符而不是重叠谐波(和弦)组成的曲目,以及在整首歌曲中播放的曲目,但还有其他有效的方法吗?

0 投票
1 回答
757 浏览

python - 使用music21库从midi文件中提取原声低音鼓

我从这里下载了 midi 文件:Taylor Swift - You Belong With Me.mid

然后我只想提取原声低音鼓部分,这意味着我想要这首歌的输出原声低音鼓.mid。

我使用music21库来解析midi文件,下面是我的代码:

然后输出是

我不知道哪个是打击乐...在我知道哪个部分是打击乐之后,我想提取该部分中的原声大鼓并将其输出为原声大鼓.mid文件。谁能告诉我该怎么做?谢谢

[编辑] 我用下面的代码,

那么输出是14,也就是说mf.tracks[14]是打击乐器,那么我需要提取音高为35或者36的部分。

然后我使用了下面的代码:

然后有很多输出。我正在考虑下一步我应该做什么。

0 投票
1 回答
855 浏览

python - music21:按音符位置将音符写入 MIDI 文件

我正在使用 music21 从音符值写入 MIDI 文件。

以下代码顺序写入三个音符。

但是,如何在注释之间插入“空白”空间?

如果我可以通过它们的“位置”插入音符,那将非常容易,这样我就不必计算每个无声间隔的位置/长度。用music21可以吗?

0 投票
1 回答
2192 浏览

python - music21:读取 MIDI 文件的 BPM 和乐器信息并将其写回文件

我正在尝试实现一个读取 MIDI 文件并将其写回的代码。

我有以下代码来解析持续时间、音高和位置。

然后我进行一些转换并将其写回文件,如果音高为-1('isRest')则扩展 t(所有音符的速度设置为 90):

但是,读取部分不包含 MIDI 文件的整体速度/BPM 或特定乐器源(“bestName”似乎只是猜测),因此,写入部分不强制执行任何 BPM 或乐器源信息。

有没有办法为新的 midi 文件读取/解析和写入/执行相同的速度和乐器?

我查看了文档 ( http://web.mit.edu/music21/doc/moduleReference/moduleMidi.html#midifile ) 中的 MidiFile 和 MidiTrack 部分,但只能找到有关频道或 ticksPerQuarterNote 的信息,这与我不太一样正在寻找。

**************编辑**********

我找到了一种获得曲目 BPM 的方法,尽管这是一种非常笨拙的方法。

除了最初的问题,我还需要弄清楚每个轨道的通道号,这样我就可以区分打击乐和非打击乐轨道。

0 投票
1 回答
594 浏览

music21 - 如何替换 music21 乐谱中的音高

我正在尝试用另一个音高替换乐谱中的一个音高(最终目标是生成和声部分)。

我该怎么办?


更新:我在这里发布了我的“test.mid”文件。

0 投票
0 回答
197 浏览

ironpython - IronPython - KeyNotFoundException

我正在尝试从 C# 运行 Python 脚本。这个 Python 脚本需要使用 music21 模块。单独运行脚本(将分数设置为某个值)工作正常,但我从 IronPython 获得 KeyNotFoundException 消息 = "abcFormat" 和 StackTrace =

这是 C# 代码:

这是 Python 脚本 getkey.py:

music21文件夹的目录布局为:

0 投票
1 回答
5003 浏览

python - Music21:从 MIDI 文件中获取每个乐器的所有音符

我正在按照此处的说明解析 MIDI 文件。我的代码如下所示:

components列表现在包含如下数据:

我的目标是根据标签中列出的每种乐器来分隔音符,<music21.instrument.Instrument Electric Guitar>例如. 我如何实现这一目标?

0 投票
3 回答
407 浏览

xml - music21 格式流为 ABC+ 并保存为文件

我正在尝试将整个巴赫语料库(mxl 文件)转换为 abc 文件。这在music21中可能吗?

谢谢!v

0 投票
2 回答
2112 浏览

python - 如何使用 python 获取 midi 轨道乐器名称?

我发现的唯一方法是使用music21

但它的输出不正确:

空的地方也是一个乐器名称,它只是无法读取它,但问题不在文件中,因为我可以将它正确导入到tuxguitar。此外,music21 无法粘贴大的 MIDI 文件并卡住。我尝试了 mido 库,但没有办法获取轨道乐器,我找到了一个属性,但不知道如何使用它。

如何使用 python 解析 midi 轨道乐器?

0 投票
2 回答
1599 浏览

python - Python——如何重命名music21包中的Musescore路径?

我尝试安装 Python 包 music21,但在 Windows 中运行它时遇到问题。基本上,当我尝试运行他们作为示例给出的简单命令时

我有一个错误

这是因为 Musescore.exe 不再存储在文件夹“MuseScore 2”中,而是现在位于名为“bin”的子文件夹中。因此需要将路径设置为“C:\Program Files (x86)\MuseScore 2\bin\MuseScore.exe”才能访问Musescore。

我该如何改变?

完全错误