问题标签 [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.
lilypond - 更改 Lilypond 中的所有颜色
在 Lilypond 我可以用一条线改变一种对象的颜色
\override Staff.Clef #'color = #(rgb-color 0.4 0.5 0.6)
我希望所有东西都采用相同的(非默认)颜色,但我既没有找到我可以着色的所有对象的列表,也没有找到一次更改所有颜色的命令。有人可以指点我吗?
python - 乐谱库
我是一名 python 黑客,希望构建一个乐谱应用程序。我喜欢阅读/理解乐谱(弹钢琴多年)。这是我完整的新手问题..
是否有以数字方式表示笔记的标准?我不想重新发明任何轮子。
给定一系列音符和持续时间,是否有用于以活页乐谱格式显示这些的库?
基本上我正在寻找一个开始的地方。我不是很喜欢图形,所以现有的开源库会很棒。如果 Python 中不存在,我也能胜任 Java/Javascript/C。
谢谢
audio - 吉他和弦检测
虽然这里的大多数其他问题都是关于确定如何知道哪些音符构成和弦,但我提出的问题略有不同。
您如何确定播放的声音是单音还是和弦?我尝试搜索一些论文,但到目前为止,我只看到了解决如何检测和弦音符的论文,而不是区分产生的声音是单个音符还是和弦。
谢谢!
.net - 在 WPF 中创建吉他和弦编辑器(来自 RichTextBox?)
我在 WPF 中使用的应用程序的主要目的是允许编辑并因此打印带有吉他和弦的歌曲歌词。
即使您不演奏任何乐器,您也可能已经看过和弦。为了给你一个想法,它看起来像这样:
Times New Roman
但是,我想要为歌词和和弦(粗体的和弦)设置带有字距的字体,而不是这种丑陋的等距字体。我希望用户能够编辑它。
这似乎不受RichTextBox
. 这些是我不知道如何解决的一些问题:
- 和弦的位置固定在歌词文本(或更一般
TextPointer
的歌词行)中的某些字符上。当用户编辑歌词时,我希望和弦停留在正确的字符上。例子:
.
- 换行:在换行方面,2 行(第 1 行是和弦,第 2 行是歌词)在逻辑上是一行。当一个单词换行到下一行时,它上面的所有和弦也应该换行。同样,当和弦包裹它上面的单词时,它也会包裹。例子:
.
- 即使和弦彼此太靠近,和弦也应保持在正确的字符上。在这种情况下,一些额外的空间会自动插入到歌词行中。例子:
.
- 说我有歌词线
Ta VA
和和弦A
。我希望歌词看起来不像。V
第二张图片在和之间没有字距A
。橙色线仅用于可视化效果(但它们标记了放置和弦的 x 偏移量)。用于生成第一个示例的代码是<TextBlock FontFamily="Times New Roman" FontSize="60">Ta VA</TextBlock>
和用于第二个示例<TextBlock FontFamily="Times New Roman" FontSize="60"><Span>Ta V<Floater />A</Span></TextBlock>
。
关于如何RichTextBox
做到这一点的任何想法?或者有没有更好的方法在 WPF 中做到这一点?我会分类Inline
还是Run
帮助?欢迎任何想法、技巧、TextPointer
魔法、代码或相关主题的链接。
编辑:
我正在探索解决这个问题的两个主要方向,但都导致另一个问题,所以我提出了新问题:
- 试图
RichTextBox
变成和弦编辑器 - 看看如何创建内联类的子类?. 按照HB answer
Panel
中的建议,从单独的组件(如sTextBox
es 等)构建新编辑器。这将需要大量编码,并且还会导致以下(未解决的)问题:- 组件将根据它们的布局位置更改它们的宽度/高度(行开头的空白删除等)
- 必须在组件边界处手动插入字距调整。
- 如何使 RichTextBox 看起来像 TextBlock?(不知道优雅的黑客/解决方法)
编辑#2
Markus Hütter 的高质量回答向我表明,当我尝试根据自己的需要调整它时,可以做的事情比RichTextBox
我预期的要多得多。我现在才有时间详细探索答案。Markus 可能是RichTextBox
魔术师,我需要帮助我解决这个问题,但他的解决方案也存在一些未解决的问题:
- 这个应用程序将是关于“美丽”印刷的歌词。主要目标是从排版的角度来看,文本看起来很完美。当和弦彼此太近甚至重叠时,Markus 建议我在其位置之前迭代地添加附加空格,直到它们的距离足够。实际上要求用户可以设置两个和弦之间的最小距离。应遵守该最小距离,除非必要,否则不得超过该距离。空格不够细——一旦我添加了最后一个所需的空间,我可能会在必要时使间隙变大——这会使文档看起来“糟糕”,我认为它不能被接受。我需要插入自定义宽度的空间。
- 可能有没有和弦的行(只有文本),甚至可能有没有文本的行(只有和弦)。当为整个文档
LineHeight
设置为25
或其他固定值时,它将导致没有和弦的行在其上方有“空行”。当只有和弦而没有文字时,它们就没有空间了。
还有其他一些小问题,但我认为我可以解决它们,或者我认为它们不重要。无论如何,我认为马库斯的回答真的很有价值——不仅是为了向我展示可能的方法,而且作为与装饰器一起使用的一般模式的RichTextBox
演示。
audio - 如何区分和弦和单音?
我有点卡在这里,因为我似乎无法找到一些算法来尝试区分产生的声音是和弦还是单个音符。我正在研究吉他乐器。
目前,我正在尝试获取振幅最高的前 5 个频率,然后确定它们是否是基波的谐波(振幅最高的那个)。我正在研究单个音符比和弦包含更多谐波的理论,但我不确定是否是这种情况。
我正在考虑的另一件事是尝试添加谐波的各种幅度值,并将包含“假定和弦”的音符与 FFT 的结果进行比较。
你能帮帮我吗?这将不胜感激。目前,我只先处理大调和小调和弦。
非常感谢!
android - 如何在 Android EditText 中使 2 个字符相互重叠
我正在为我的一个学校项目制作一个适用于 Android 的音乐符号应用程序。
- 在这个应用程序中,我没有乐谱渲染机制。取而代之的是,我使用了一种字体,它具有不同高度的所有不同音符,并且乐谱线到位。这样,我需要做的就是将字符插入到 EditText 视图中。
- 最近,我发现用这种方法我不能同时演奏 2 个音符。
我想知道是否有办法让 2 个字符在 EditText 视图中相互重叠,以便可以在同一列中显示 2 个不同高度的注释。
或者,如果有人知道在 Android 上渲染音乐的库,请与我分享知识。
javascript - 如何使用 JavaScript 转置音乐和弦?
我想知道如何创建一个用于转置音乐和弦的 javascript 函数。
由于我不希望这里的每个人都是音乐家,所以我将尝试解释它在音乐理论中的作用。我希望我不会忘记什么。如果是,请音乐家纠正我。
1)简单的和弦
简单的和弦几乎和字母一样简单,它是这样的:
C、C#、D、D#、E、F、F#、G、G#、A、A# B
从 B 循环到 C。因此,如果原始和弦是E
并且我们想要转置 +1,则得到的和弦是F
。如果我们移调 +4,得到的和弦是G#
.
2) 扩展和弦
它们几乎像简单的和弦一样工作,但包含更多字符,在移调时可以安全地忽略这些字符。例如:
Cmi, C#7, Dsus7, Emi, Fsus4, F#mi, G ...
再说一次,就像简单的和弦一样,如果我们转置Dsus7
+ 3 =Fsus7
3) 非根低音
当贝司演奏的音调与和弦根音不同时,就会出现问题。这在和弦后用斜线标记,也需要移调。例子:
C/G, Dmi/A, F#sus7/A#
与示例 1 和 2 一样,一切都相同,但斜线之后的部分也需要转置,因此:
C/G
+ 5 =F/C
F#sus7/A#
+ 1 =Gsus7/B
我想这应该是全部,除非我忘记了什么。
所以基本上,假设你有一个名为的 javascript 变量chord
和 transpose value transpose
。什么代码可以转调和弦?
例子:
php - 在 PHP 中创建一个图像以显示吉他和弦
我有一个以文本格式显示吉他和弦/标签的网站。这是我当前显示的内容:
时间:
我了解到 GD 可以为此创建动态图像。但我是 PHP 新手,我不知道该怎么做。
在 PHP 中创建这样的东西来显示图像是否简单?
谢谢
c# - 如何将波信号分成帧
我正在做一个关于和弦识别的项目。我正在使用某人的期刊作为参考,但我对 DSP 领域的了解仍然很少。在她的参考资料中,第一件事是我需要将 wav 文件中的信号拆分为帧数。就我而言,我需要将每帧分割成 65 毫秒,每帧有 2866 个样本。
我已经搜索了如何将信号拆分为帧,但我发现它们不够清晰,我无法理解。到目前为止,这些是我在 WavProcessing 类中的一些代码:
我只是仍然不知道如何在 C# 中将信号拆分为每帧 65 毫秒。我是否需要拆分 FileStream 并将它们分成帧并将它们保存到数组中?还是别的什么?
fft - 从音频样本中识别单个吉他和弦
我意识到这里已经有一些关于和弦检测算法的问题。然而,其中大部分似乎更多地与将歌曲解释成和弦集或和弦转录有关。我的问题应该简单得多,因为我只对录制吉他和弦的单个弹奏感兴趣,然后对其进行分析以返回播放的和弦。并且,如果这被证明太难了,那么简单地能够判断一个特定的和弦是否被正确弹奏就足够了,例如,向用户展示一个尝试弹奏的和弦,并且在弹奏之后,应用程序会告诉他们他们是否演奏了正确的和弦(某种记忆游戏)。我认为第二个选项会更容易,因为应用程序已经知道期望什么和弦。
作为同一应用程序的一部分,我已经在吉他调音器中使用 FFT 和谐波乘积频谱,并且非常想获得一些关于如何分析 FFT 输出的频谱以识别吉他和弦的建议。我也愿意接受有关此事的任何其他建议,并且非常感谢我能得到的任何帮助。
谢谢