音乐到底是什么
适用对象:音乐小白、程序员、想在一天内建立最小可用音乐认知的人
先给出一个对程序员最友好的答案:
音乐 = 时间轴上的声音事件集合
每个声音事件,至少有这些属性:
| 属性 | 英文 | 一句话 |
|---|---|---|
| 什么时候开始 | start | 时间位置 |
| 持续多久 | duration | 时间长度 |
| 发什么音 | pitch | 音高 |
| 多强 | dynamics / velocity | 力度 |
| 用什么音色 | timbre | 乐器质感 |
| 怎么发出来 | articulation | 演奏方式 |
亲手试一试
点击下面的格子放置声音事件,然后播放 — 看看时间轴和 JSON 数据如何对应:
你刚才做的事情,就是"在时间轴上安排声音事件"。这就是音乐的本质。
用 JSON 来表达:
json
{
"pitch": "C4",
"start": 0,
"duration": 1,
"velocity": 90,
"instrument": "piano"
}你只要先吃透这个框架,后面学术语、学 MIDI、学乐谱、学结构化表达,都会顺很多。
为什么先讲时间,不先讲音高?
传统教材一上来就教 C D E F G A B,但这其实跳过了一个更基础的问题:时间怎么流动。
想象一下:如果没有时间框架,音符往哪里放?节奏怎么组织?结构怎么建立?
所以我们的学习顺序是:
- 时间骨架 → 拍、速度、小节
- 重复性 → 什么在重复,什么不重复
- 节奏 → 强弱拍、节奏变化
- 音高 → 音符、音程、音阶
- 横向与纵向 → 旋律、和弦、和声
- 表达层 → 力度、音色、演奏法
- MIDI → 用数据结构理解音乐
先理解时间框架,再往里面填音高内容。
下一步
→ 时间骨架 — 拍、BPM、小节、拍号