实现方法
使用
abcjs
库渲染 ABC 记谱法为五线谱,并支持音频播放。
创建 Hugo Shortcode
在 layouts/shortcodes/abc.html 中创建 shortcode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <div id="abc-paper"></div>
<div id="abc-audio"></div>
<script src="https://cdn.jsdelivr.net/npm/abcjs@6.4.1/dist/abcjs-basic-min.js"></script>
<script>
var visualObj = ABCJS.renderAbc('abc-paper', abcNotation, {
responsive: 'resize'
});
// 播放功能
var synthControl = new ABCJS.synth.SynthController();
synthControl.load('#abc-audio', null, {
displayPlay: true,
displayProgress: true,
displayWarp: true
});
synthControl.setTune(visualObj[0], false);
</script>
|
最后修改 css 样式。
使用方法
在 Markdown 中使用 shortcode,play="true" 启用播放控件:
1
2
3
4
5
6
7
8
| {{< abc play="true" >}}
X:1
T:小星星
M:4/4
L:1/4
K:C
C C G G | A A G2 |
{{< /abc >}}
|
播放测试
仅高音谱号(Treble Clef)
仅低音谱号(Bass Clef)
高音+低音谱号(大谱表)
常用音符与乐谱标记
附点与时值
休止符
延音线与连音线
三连音与多连音
常见调式
力度记号
速度记号
反复记号
演奏记号
装饰音
八度记号
ABC 记谱法速查
基础语法
| 语法 | 说明 | 示例 |
|---|
X: | 曲目编号 | X:1 |
T: | 标题 | T:小星星 |
M: | 拍号 | M:4/4, M:3/4, M:6/8 |
L: | 默认时值 | L:1/4 (四分音符) |
K: | 调号 | K:C, K:G, K:Am, K:F |
Q: | 速度 | Q:1/4=120 |
C: | 作曲者 | C:Mozart |
音符与八度
| 语法 | 说明 |
|---|
C D E F G A B | 低音区音符 |
c d e f g a b | 高音区音符 |
C,, D,, | 低两个八度 |
C, D, | 低一个八度 |
c' d' | 高一个八度 |
c'' d'' | 高两个八度 |
时值与附点
| 语法 | 说明 |
|---|
C2 | 两倍时值 |
C4 | 四倍时值 |
C/2 或 C/ | 一半时值 |
C/4 | 四分之一时值 |
C3/2 | 附点(1.5倍) |
C7/4 | 双附点 |
休止符
| 语法 | 说明 |
|---|
z | 休止符(时值同 L:) |
z2 | 二分休止符 |
z4 | 全休止符 |
z/2 | 八分休止符 |
临时升降号
| 语法 | 说明 |
|---|
^C | 升 C (C#) |
^^C | 重升 C (Cx) |
_C | 降 C (Cb) |
__C | 重降 C (Cbb) |
=C | 还原 C |
连音与延音
| 语法 | 说明 |
|---|
C-C | 延音线 |
(CDE) | 连音线(圆滑线) |
(3CDE | 三连音 |
(4CDEF | 四连音 |
(6CDEFGA | 六连音 |
小节线与反复
| 语法 | 说明 |
|---|
| | 小节线 |
|] | 结束双线 |
|: | 反复开始 |
:| | 反复结束 |
|1 | 第一结尾 |
|2 | 第二结尾 |
:: | 前后反复 |
力度记号
| 语法 | 说明 |
|---|
!pp! | 很弱 |
!p! | 弱 |
!mp! | 中弱 |
!mf! | 中强 |
!f! | 强 |
!ff! | 很强 |
!sfz! | 突强 |
!fp! | 强后弱 |
演奏记号
| 语法 | 说明 |
|---|
!staccato! | 断奏(顿音) |
!accent! | 重音 |
!tenuto! | 保持音 |
!fermata! | 延长记号 |
!trill! | 颤音 |
!mordent! | 波音 |
!turn! | 回音 |
!upbow! | 上弓 |
!downbow! | 下弓 |
装饰音
| 语法 | 说明 |
|---|
{g}C | 前倚音 |
{ag}C | 多个倚音 |
{/g}C | 短倚音(一条斜线) |
{//g}C | 短倚音(两条斜线) |
和弦与歌词
| 语法 | 说明 |
|---|
"Am"C | 和弦标记 |
[CEG] | 和弦音符 |
w: | 歌词行 |
Reference
[1]
https://docs.abcjs.net/