HarmonyOS 2 音频处理:基于整数序列生成 MIDI 文件
介绍了 HarmonyOS 2 平台上,使用整数序列生成 MIDI 文件的方法。
音高整数表示法
系统采用音高类 (Pitch Class, PC) 整数表示音符,范围为 0-11,对应关系如下:
| 音符 | C♮ | C♯ | D♮ | D♯ | E♮ | F♮ | F♯ | G♮ | G♯ | A♮ | A♯ | B♮ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PC | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
例如,C♮ 大三和弦表示为 {0, 4, 7},D♮ 小三和弦表示为 {2, 5, 9},F♮ 大七和弦表示为 {5, 9, 0, 4}。
注意: PC 整数表示法不区分音高所在的八度,例如 C4 和 C5 的 PC 值均为 0。
Wolfram 语言函数
系统使用 Wolfram 语言函数进行音频处理,常用函数如下:
Range[n]
:生成从 1 到 n 的整数序列。Table[f, n]
:生成包含 f 函数返回值的 n 元素列表。
示例
(* 生成 C 大调音阶 *)
cMajorScale = {0, 2, 4, 5, 7, 9, 11};
(* 将音阶转换为 MIDI 音符 *)
midiNotes = Table[cMajorScale[[i]] + 60, {i, 1, Length[cMajorScale]}];
(* 将 MIDI 音符写入 MIDI 文件 *)
Export["c_major_scale.mid", midiNotes, "MIDI"];
以上代码将生成一个包含 C 大调音阶的 MIDI 文件 “c_major_scale.mid”。
3.48MB
文件大小:
评论区