midi - 使用在 MusicXML 中指定 MIDI 力度
问题描述
tl;dr:我如何使用该<sound dynamics="YOUR_VOLUME" />
元素以影响给定音符的MIDI力度?
背景:
MusicXML 有一个与 MIDI 兼容的部分(参见w3.org 规范),用于在将 MusicXML 转换为 MIDI 时指定 MIDI 值(例如速度)。
具体来说,有一个<sound>
元素具有属性dynamics
,应该转换为 MIDI 速度,如上面链接的规范页面底部所述。
但是,无论我将<sound>
元素放在哪里,当我在可以将其转换为 MIDI 的程序中打开这样的 MusicXML 文件时,它都不会影响 MIDI 速度。
可以读取 MusicXML 并播放和导出到 MIDI 的示例程序是 musescore.org(用于表示法)和 reaper.fm(一个 DAW),这两个程序都可以免费下载,任何有兴趣测试的人都可以下载。
用于测试的示例 MusicXML 文件:https ://www.musicxml.com/music-in-musicxml/example-set/ (不使用该元素)
我试过了...
- 将元素嵌套
<sound dynamics="40">
在给定<note>
元素中 - 将元素嵌套
<sound>
在 a之外的<direction>
元素中<note>
- 属性的各种值,
dynamics=
例如<sound dynamics="40">
<sound dynamics="100">
任何人都可以演示使用<sound>
MusicXML 文件中的元素在作为 MIDI 播放时影响给定音符的成功示例吗?
解决方案
我不知道为什么,但这在musescore中对我有用。我将这段代码放在一个<note>
块之后,随后音高的速度会相应改变。
<direction placement="below">
<direction-type>
<dynamics>
<other-dynamics/>
</dynamics>
</direction-type>
<staff>1</staff>
<sound dynamics="THE_DYNAMIC_YOU_WANT"/>
</direction>
似乎为了正确解析musicXML文件,<dynamics>
block和里面的一些内容是必要的。using<other-dynamics>
不会在乐谱上显示标记。
这是我使用的示例 xml:https ://www.w3.org/2021/06/musicxml40/musicxml-reference/examples/tutorial-apres-un-reve/
推荐阅读
- apriori - Apriori 算法 - 在生产数据中寻找关联
- multithreading - Spring Boot 在一个 ItemWriter 中使用多个线程
- python - SGD sklearn导数不为零?
- python - 简单的盒子游戏不移动蟒蛇
- javascript - Reactjs 使用 useState 导致 axios 请求循环
- react-native - 带有样式组件的 Nextjs 不通过主题
- flutter - 如何使滑入出动画颤动?
- javascript - Webpack 使用库的 ESM 部分,尽管它需要 CommonJS?
- c++ - ++中的gdb中断条件
- reactjs - 我怎样才能提高我的网页的速度?