问题标签 [music-notation]
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.
c# - 从 WAV 文件中检索振幅数组,不返回完整数据
我正在写一篇关于和弦检测的论文。经过努力,我发现问题的根源在于使用基于 C# 的程序获取 wav 文件的幅度。
我用这个代码来检索幅度:
代码起初运行良好,我将它与基于 delphi 的程序进行了比较,该程序也是一个和弦检测程序。但我没有注意到的是,我的代码实际上只检索了一半的振幅数组。
例如:我将 Chord C wav 文件加载到我的 C# 程序中,我得到了这样的振幅数组
你可以看到开始 361043-rd 数组,它只返回零......它大约只有完整流大小的一半(722128)
同时在某人的delphi程序中(我以此作为参考),其代码如下:
返回完整的振幅数组(相同的 wav 文件),例如:
在那个 delphi 程序中,返回完整的振幅数组,为下一次计算产生正确的值。
java - 如何在java中创建一个简单但结构良好的乐谱类(乐谱)?
我正在使用非常基本的声音合成在我的游戏中创建音频和效果。基本上,我有一些方法可以在给定频率、幅度和持续时间的情况下播放声音。
对于简短的短语和旋律,我想提出一个基本的符号,以便我可以轻松地重写或在代码中添加新的旋律(最后也许我可以从文件中读取,但这可能是矫枉过正)。
但是,我不确定如何实现这一点。
我首先创建了一个枚举 EqualTemperamentTuning,其中包含所有 88 个基本钢琴音符,带有一个 MIDI # 字段和一个频率字段。这至少意味着我可以处理音符名称而不是频率。
然后我开始创建更多对象,首先是一个包含 EqualTemperamentTuning、振幅和长度的 Note:
最后为了定义我想要演奏的旋律,我创建了一个 NotePhrase 类:
然后在我的音频生成类中,我有一个循环(带计数器),它从波形发生器生成样本。每次我需要一个新的样本来播放时,它都会根据上面的 NotePhrase.getFrequency(int counter) 方法设置波形的频率。这应该(我还没有实际测试过!)只是根据频率和幅度(待添加)播放NotePhrase旋律。
问题是,它看起来不是很优雅,更具体地说,很难以任何清晰的方式“写”出旋律。我必须编写一大堆新的 Note 对象,然后用它们的数组构造一个 NotePhrase 对象……对我来说,如何硬编码这些旋律然后在它们之间轻松切换对我来说并不明显。
真的我想创建一个旋律的枚举或类似的东西,我可以很容易地为每个不同的旋律硬编码一个人类可读的配置,然后当我想使用它们时,只需将枚举类型传递给音频播放器.. .
我得到的最好的是:
然后我会在运行时将其加载到 NotePhrase 对象中。这不太好,因为我必须为具有不同数量音符的旋律创建一个新的构造函数。如果我反过来用一系列音符构建枚举,那么我只是在别处和两部分“写”旋律,这似乎更令人困惑......
所以我不知道如何正确地构建它?即要创建什么类以及它们应该保存什么信息......我想得到这个“正确”,因为,我可能想在未来扩展符号以包括效果(回声等),我已经用我的非常很少的经验,正确的类、结构和关系(甚至名称)可以使我的程序非常容易或难以理解。
为这篇文章道歉,这可能不是一个很好的措辞(咳咳)问题,但作为一个 java 和 OOP 初学者,任何提示都会非常受欢迎!
编辑* *
感谢您的回答和建议,非常有帮助。考虑在这种情况下给出的答案让我重新考虑了我的一般音频实现,这现在非常不稳定。不确定我应该将谁标记为正确,因为我真的只是将所有建议都纳入其中,然后尝试从那里开始。
regex - 用于匹配音乐和弦的正则表达式
我正在尝试编写一个函数来解析音乐和弦的字符串表示。
示例:C 大调和弦 -> Cmaj(这是我要解析的)
为了清楚起见,和弦由三个不同的部分组成:
- 音符(C、D、E、F、G、A)
- 该音符的临时记号(#、##、b、bb)
- 和弦名称
对于那些精通音乐的人,我不考虑斜线和弦(故意)。
以下功能几乎可以正常工作。但是它仍然不适用于以下情况:
- "C#maj" # 匹配并且应该
- "C#maj7" # 匹配并且应该
- "C#maj2" #数学运算,不应该
我想如果我可以让chords
正则表达式部分被强制放在正则表达式的末尾,那就成功了。我试过$
在这个字符串之前和之后都使用它,但它没有用。
任何的想法?谢谢。
regex - 音乐和弦部分拆分正则表达式
这是这个问题的后续问题:Regex for matching a music Chord,由我提出。
现在我有一个正则表达式可以知道String
和弦的表示是否有效(上一个问题),我怎样才能有效地将和弦的三个不同部分(根音、临时记号和和弦类型)转换为单独的变量?
我可以做简单的字符串操作,但我想在前面的代码上构建并使用正则表达式会更容易,还是我错了?
以下是上述问题的更新代码:
谢谢。
css - 吉他和弦和歌词的降价
我正在尝试找出一种能够存储带有同步吉他和弦的纯文本音乐歌词的好方法。显示时,我希望看到歌词在相应单词上方的“空白”行中以双倍行距呈现。这是我自己的个人歌词书,因此最终渲染将最常见于死树和屏幕上,但这最终可能会改变。我想我会给 Markdown 一个机会,当与一些 CSS 结合以使 <a> 标记呈现为准上标时,我能够得到以下格式“某种”的工作。我有点喜欢使用 <a> 标签的效果,因为我可以在文件底部为任何包含的和弦提供参考链接:
CSS 和转换后的降价在这里:http: //jsfiddle.net/654ct/13/
我从这里借了很多 CSS: 样式化文本以使其出现在行上方(用于歌词上方的和弦) 我正在写一个新主题,因为这主要是为了寻求降价帮助。
到目前为止,这种格式的好处是和弦可以与歌词“内联”编写,因此无论使用什么字体,歌词和音乐都保持同步。此外,我还获得了降价本身相当易读的额外好处。
唯一的问题是:
- 如果有两个和弦需要播放而中间没有任何单词,则在 HTML 中呈现时,和弦字符会相互“重叠”。(我相信这是由宽度:0 引起的;但据我所知,这是在和弦变化时消除歌词中的间隙所必需的。)
- 在相同的场景中,除了最后一个和弦之外的所有和弦都需要在和弦字母之后有一个 [] ,否则第二个和弦将被解释为对第一个和弦的描述。这使得降价比我想要的更忙。
有没有一种好方法可以通过 CSS 或通过更改降价来解决这些问题中的一个或两个?如果没有,除了为此编写我自己的吉他和弦特定标记语言之外,是否有人知道完全不同的替代方案?(即使我确实为此编写了自己的标记语言,我仍然需要解决问题 1 的帮助。)我知道选项卡格式,并且我正在寻找一些不太复杂的东西,因为我需要的只是提醒何时每个和弦都不是我手指需要放在哪里的明确图表。
谢谢!
python - python循环索引
我正在尝试编写一个程序来获取音阶的音符。这就是我现在所做的,但它看起来非常复杂!我错过了什么?应该是这样吗?
我只需要增加root_i
每个“步骤”major
并在我到达末尾时重新启动notes
...
谢谢。
division - MusicXML 分区和持续时间
我有一个来自一些测试套件的 MXL 文件,其中第一个度量是 Division 是 8(即每四分音符 8 个单位)。
小节 4 在 3/4 拍内,其余部分如下:
我希望看到<dot/>
这里。由于 24 除以 8 是 3,我是否应该推断出这个音符应该是点状的?这是否意味着我必须为缺少的特殊情况编写代码,<dot/>
但该注释显然应该被点缀?
我对这种表示感到困惑。我希望他们自己将type
属性设为强制性...如果有人能解释应该如何表示虚线和连音持续时间,我将不胜感激。
android - 在 Android SDK 中生成吉他和弦图像
有什么方法可以在 Android SDK 中生成吉他和弦的图像,还是我需要在 Photoshop 等中为每个和弦创建图像?
python - 提取 MusicXML 中键变化的小节数
我正在使用 MusicXML 文件进行大量工作,并试图编译一个条形列表,其中有许多片段发生了关键变化。我需要一些帮助,使用 python 首先确定<key>
标签在 XML 文件中出现的位置,然后从<measure number ='*'>
上面的标签中提取数字。这是我正在使用的度量的示例:
我怎样才能提取'30'
位?有没有一种快速简便的方法可以用 music21 做到这一点?
c# - Playing chords as simultaneous sounds
I want to build a musical Ear Training program. I have samples of piano notes on mp3 or wav files, and i want to play them simultaneously to build musical chords.
What will be the easiest or the most successful way of playing sounds together?
Thanks :-)