← Back

世界微分音系統研究

Microtuning Systems of the World: A Technical Analysis for Digital Implementation

MADZINE 2024-12 Version 1.0

Abstract

本論文研究世界各地傳統音樂中的微分音(microtuning)系統,分析其音程結構、文化背景,以及在數位音樂合成器中實現的技術考量。特別關注哪些系統需要兩個八度的獨立微分音設定,以及上行/下行音階的差異性。

1. 導論

1.1 什麼是微分音?

微分音(Microtone)指的是小於西方十二平均律(12-TET)半音(100 音分/cents)的音程。在世界各地的傳統音樂中,許多文化發展出獨特的音階系統,其音程並不符合西方標準。

1.2 音分(Cents)系統

音分是測量音程的對數單位:

計算公式:

cents = 1200 × log₂(f₂/f₁)

1.3 研究目的

本研究旨在:

  1. 系統性整理世界主要微分音系統
  2. 分析各系統的音程結構
  3. 確定哪些系統需要兩個八度的獨立設定
  4. 為 VCV Rack Quantizer 模組提供實現依據

2. 西方調音系統

2.1 十二平均律 (12-TET / Equal Temperament)

現代西方標準調音,將八度等分為 12 個半音。

音符Cents頻率比
C01.0000
C#1001.0595
D2001.1225
D#3001.1892
E4001.2599
F5001.3348
F#6001.4142
G7001.4983
G#8001.5874
A9001.6818
A#10001.7818
B11001.8877

特點:所有調性等效,便於轉調,但犧牲了純律的和諧性。

需要兩個八度:否

2.2 純律 (Just Intonation)

基於簡單整數比的調音系統,產生最和諧的音程。

音符頻率比Cents與 12-TET 差異
C1/100
C#16/15111.7+11.7
D9/8203.9+3.9
D#6/5315.6+15.6
E5/4386.3-13.7
F4/3498.0-2.0
F#45/32590.2-9.8
G3/2702.0+2.0
G#8/5813.7+13.7
A5/3884.4-15.6
A#9/51017.6+17.6
B15/81088.3-11.7

特點:和聲純淨,但不同調性間差異大。

需要兩個八度:否

2.3 畢達哥拉斯調音 (Pythagorean Tuning)

僅使用純五度(3:2)堆疊產生的調音。

音符頻率比Cents與 12-TET 差異
C1/100
D9/8203.9+3.9
E81/64407.8+7.8
F4/3498.0-2.0
G3/2702.0+2.0
A27/16905.9+5.9
B243/1281109.8+9.8

特點:五度完美,但三度偏高(畢氏音差 Pythagorean comma = 23.46 cents)。

需要兩個八度:否

2.4 四分音 (Quarter Tone / 24-TET)

將八度等分為 24 個四分音。

特點:常用於 20 世紀現代音樂,也是阿拉伯音樂的近似系統。

需要兩個八度:否


3. 中東音階系統

3.1 阿拉伯 Maqam 系統

3.1.1 概述

Maqam(複數 Maqamat)是阿拉伯音樂的調式系統,使用 24-TET 作為近似。傳統上,24 個音符跨越兩個八度,從 Yakah(低 G)到 Ramal Tuti(高 G)。

3.1.2 主要 Maqam 及其音程

Maqam Rast(拉斯特)

音符:C  D  E½♭  F  G  A  B½♭  C
音程:0  200  350  500  700  900  1050  1200

E½♭ 和 B½♭ 表示降低約 50 cents 的音符。

Maqam Bayati(巴亞提)

音符:D  E½♭  F  G  A  B♭  C  D
音程:0  150  300  500  700  850  1000  1200

Maqam Hijaz(希賈茲)

音符:D  E♭  F#  G  A  B♭  C  D
音程:0  100  400  500  700  800  1000  1200

3.1.3 兩個八度的差異

在某些 Maqam 中,上八度的音程可能與下八度不同

Maqam Sikah 示例

需要兩個八度:是(部分 Maqam)

3.2 土耳其 Makam 系統

3.2.1 概述

土耳其 Makam 系統使用 53-TET(53 等分律),將八度分為 53 個 comma(逗號)。

3.2.2 浮動音符概念

土耳其音樂的關鍵特徵是「浮動音符」(floating notes):

Makam Rast 示例

上行:G - A - B(+1) - C - D - E - F#(Irak) - G
下行:G - F(Acem) - E - D - C - B(-1) - A - G

注意:上行使用 F#(Irak),下行使用 F(Acem)。

3.2.3 Seyir(旋律方向)

Makam 有三種旋律方向:

  1. Cinici(上行型):從主音開始向上
  2. Inici(下行型):從高音開始向下
  3. Inici-Cinici(混合型):結合兩者

需要兩個八度:是(上行/下行差異)

3.3 波斯 Dastgah 系統

3.3.1 概述

波斯音樂使用 Dastgah(調式系統),包含 7 個主要 Dastgah 和 5 個輔助 Avaz。

3.3.2 音程特徵

波斯音樂的特徵音程包括:

Dastgah Shur 示例

G - A(koron) - B♭ - C - D - E♭ - F - G
音程:0 - ~150 - 300 - 500 - 700 - 800 - 1000 - 1200

3.3.3 上行/下行差異

類似土耳其系統,波斯音樂也有上行/下行的微妙差異。

需要兩個八度:是


4. 南亞音階系統

4.1 印度 Raga 系統

4.1.1 概述

印度古典音樂使用 Raga(旋律模式)和 22 Shruti(微分音)系統。

4.1.2 七個基本音符(Swaras)

Swara名稱近似西方音符
SaShadjaC(固定)
ReRishabhD
GaGandharE
MaMadhyamF
PaPanchamG(固定)
DhaDhaivatA
NiNishadB

4.1.3 Shruti 系統

傳統上八度分為 22 個 Shruti(不等分):

ShrutiCents(約)對應
10Sa
290Komal Re
3112
4182Shuddha Re
5204
6294Komal Ga
7316
8386Shuddha Ga
9408
10498Shuddha Ma
11520
12590Tivra Ma
13612
14702Pa
15792Komal Dha
16814
17884Shuddha Dha
18906
19996Komal Ni
201018
211088Shuddha Ni
221110

4.1.4 Aroha 與 Avaroha

印度 Raga 最重要的特徵是 Aroha(上行)和 Avaroha(下行)可以使用完全不同的音符

Raga Yaman 示例

Aroha(上行):N S G M# D N S'
Avaroha(下行):S' N D P M# G R S

注意:上行省略 Re(R) 和 Pa(P),下行使用所有音符。

Raga Bhairav 示例

Aroha:S r G M P d N S'
Avaroha:S' N d P M G r S

使用 Komal Re(r) 和 Komal Dha(d)。

4.1.5 三個八度

印度音樂跨越三個八度:

需要兩個八度:是(Aroha/Avaroha 差異 + 不同八度可能有微妙差異)


5. 東亞音階系統

5.1 日本音階系統

5.1.1 上原六四郎的理論(1895)

明治時代,上原六四郎在《俗樂旋律考》中提出:

  1. 俗樂的音階是五音音階
  2. 分為含半音的陰旋和不含半音的陽旋
  3. 兩者都有上行形和下行形

5.1.2 主要音階類型與上行/下行差異

都節音階(Miyako-bushi)- 陰旋法

具有下行性格,上行時音符會改變:

下行形(基本):E - F - A - B - C - E
上行形(異向形):E - F - A - B - D - E
                              ↑
                     短6度(C)→短7度(D)

律音階(Ritsu)

同樣具有下行性格:

下行形:6度音使用 A♭
上行形:6度音上升為 B♭

陽音階(Yo Scale)

音符:D - E - G - A - B
音程:0 - 200 - 500 - 700 - 900

用於雅樂(Gagaku)。具有上行性格,較為穩定。

民謠音階(Min'yo)

具有上行性格,中間音浮動較少,上行/下行差異不大。

5.1.3 小泉文夫的理論

小泉文夫將日本音階分為:

核心概念是テトラコルド(四度音列),完全四度內的中間音會根據旋律方向浮動。

5.1.4 微分音特徵

箏(Koto)調音傾向使用純律:

需要兩個八度:是(都節/律音階有上行/下行差異)

5.2 琉球音階(Ryukyu Scale)

5.2.1 結構

五聲版:C - E - F - G - B
音程:0 - 400 - 500 - 700 - 1100
結構:大三度 - 小二度 - 大二度 - 大三度 - 小二度

六聲版:C - D - E - F - G - B
音程:0 - 200 - 400 - 500 - 700 - 1100

5.2.2 上行/下行差異

根據研究,琉球音階在下行時會加入經過音「レ」(D)

上行:C - E - F - G - B - C(五聲)
下行:C - B - G - F - E - D - C(加入 D 作為經過音)

「てぃんさぐぬ花」等樂曲中,「レ」多用於下行時使旋律更滑順

5.2.3 特徵

需要兩個八度:是(下行時加入經過音)

5.3 中國音階系統

5.3.1 五聲音階(宮商角徵羽)

宮:C - D - E - G - A
音程:0 - 200 - 400 - 700 - 900

5.3.2 微分音

中國傳統音樂主要使用純律,特別是古琴音樂中有複雜的泛音系統。

需要兩個八度:否


6. 東南亞音階系統

6.1 印尼甘美朗(Gamelan)

6.1.1 Slendro 音階

五聲音階,音程接近等分(約 240 cents 每級):

近似音程:0 - 240 - 480 - 720 - 960

但實際上每組甘美朗樂器都有獨特的調音,沒有標準化。

6.1.2 Pelog 音階

七聲音階,音程不均:

一種常見形式:0 - 120 - 270 - 540 - 670 - 800 - 1050

特徵是包含非常窄和非常寬的音程混合。

6.1.3 微分音特徵

需要兩個八度:否(但高度個別化)

6.2 泰國音階

6.2.1 七平均律

泰國傳統音樂使用 7-TET(七等分律):

音程:0 - 171 - 343 - 514 - 686 - 857 - 1029
每級約 171 cents

需要兩個八度:否


7. 技術實現分析

7.1 需要兩個八度的系統總結

系統需要兩個八度原因
Arabic Maqam上下八度音程可能不同
Turkish Makam浮動音符(上行/下行差異)
Persian Dastgah類似 Turkish
Indian RagaAroha/Avaroha 完全不同
Japanese 都節/律上行時短6度→短7度
Ryukyu下行時加入經過音
Japanese 陽/民謠上行性,較穩定
12-TET八度等價
Just Intonation八度等價
Pythagorean八度等價
Chinese八度等價
Gamelan個別化但無上下行差異
Thai 7-TET八度等價

7.2 實現方案比較

方案 A:24 個微分音參數(兩個八度)

enum MicrotuneParam {
    // 第一個八度
    C1_MICROTUNE, CS1_MICROTUNE, D1_MICROTUNE, ..., B1_MICROTUNE,
    // 第二個八度
    C2_MICROTUNE, CS2_MICROTUNE, D2_MICROTUNE, ..., B2_MICROTUNE,
};

優點

缺點

方案 B:12 + 12(上行/下行分開)

struct MicrotunePreset {
    float ascending[12];   // 上行微分音
    float descending[12];  // 下行微分音
};

優點

缺點

方案 C:混合方案(推薦)

struct MicrotuneSystem {
    float base[12];        // 基本微分音(一個八度)
    float octave2[12];     // 第二個八度(可選)
    bool useTwoOctaves;    // 是否啟用兩個八度
    bool useAscDesc;       // 是否區分上行/下行
    float ascending[12];   // 上行修正(可選)
    float descending[12];  // 下行修正(可選)
};

優點

7.3 預設值建議

中東系統預設(需要兩個八度/上下行)

Turkish Makam Rast

// 上行
float rast_asc[12] = {0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 8};
// 下行(F# → F)
float rast_desc[12] = {0, 0, 0, 0, 8, 0, -100, 0, 0, 0, 0, 8};

Arabic Maqam Bayati

float bayati[12] = {0, 0, -50, 0, 0, 0, 0, 0, 0, -50, 0, 0};

印度系統預設

22 Shruti 近似

float shruti[12] = {0, -10, 14, -16, 14, 2, -10, -2, -14, 16, -18, 12};

7.4 音高方向追蹤算法

class PitchDirectionTracker {
    float lastPitch = 0.f;
    bool ascending = true;

    void update(float currentPitch) {
        if (currentPitch > lastPitch + threshold) {
            ascending = true;
        } else if (currentPitch < lastPitch - threshold) {
            ascending = false;
        }
        lastPitch = currentPitch;
    }

    float getMicrotune(int note, const MicrotuneSystem& sys) {
        if (sys.useAscDesc) {
            return ascending ? sys.ascending[note] : sys.descending[note];
        }
        return sys.base[note];
    }
};

8. 結論與建議

8.1 主要發現

  1. 中東和南亞系統需要兩個八度或上行/下行區分
  2. 東亞系統(日本、中國、琉球)不需要兩個八度
  3. 實現複雜度:混合方案可以同時滿足簡單和複雜需求

8.2 建議實現步驟

  1. Phase 1:保持現有 12 個微分音參數
  2. Phase 2:新增「Two-Octave Mode」開關和第二組 12 個參數
  3. Phase 3:新增「Ascending/Descending」模式和音高方向追蹤
  4. Phase 4:實現完整的預設庫

8.3 預設庫建議

優先實現

  1. Equal Temperament(12-TET)
  2. Just Intonation
  3. Pythagorean
  4. Arabic Maqam Rast
  5. Arabic Maqam Bayati
  6. Turkish Makam Rast(含上下行)
  7. Indian Shruti(22 音近似)
  8. Gamelan Slendro
  9. Gamelan Pelog
  10. Japanese In/Yo
  11. Ryukyu
  12. Quarter Tone

9. 參考資料

學術資源

線上資源

技術參考


附錄 A:完整微分音數據表

A.1 Just Intonation(純律)

音符比率Cents與 12-TET 差
C1/10.000.00
C#16/15111.73+11.73
D9/8203.91+3.91
D#6/5315.64+15.64
E5/4386.31-13.69
F4/3498.04-1.96
F#45/32590.22-9.78
G3/2701.96+1.96
G#8/5813.69+13.69
A5/3884.36-15.64
A#9/51017.60+17.60
B15/81088.27-11.73

A.2 Pythagorean(畢達哥拉斯)

音符比率Cents與 12-TET 差
C1/10.000.00
C#2187/2048113.69+13.69
D9/8203.91+3.91
D#32/27294.13-5.87
E81/64407.82+7.82
F4/3498.04-1.96
F#729/512611.73+11.73
G3/2701.96+1.96
G#6561/4096815.64+15.64
A27/16905.87+5.87
A#16/9996.09-3.91
B243/1281109.78+9.78

A.3 22 Shruti(印度)

Shruti #名稱Cents
1Chandovati0
2Dayavati90
3Ranjani112
4Ratika182
5Raudri204
6Krodha294
7Vajrika316
8Prasarini386
9Priti408
10Marjani498
11Kshiti520
12Rakta590
13Sandipani612
14Alapini702
15Madanti792
16Rohini814
17Ramya884
18Ugra906
19Kshobhini996
20Tivra1018
21Kumudvati1088
22Manda1110

附錄 B:預設實現代碼參考

// Microtuning preset data structure
struct MicrotunePreset {
    const char* name;
    float cents[12];
    bool needsTwoOctaves;
    float cents_octave2[12];  // 第二個八度(如需要)
};

// 預設定義
const MicrotunePreset PRESETS[] = {
    {"Equal Temperament", {0,0,0,0,0,0,0,0,0,0,0,0}, false, {}},
    {"Just Intonation", {0,11.7,3.9,15.6,-13.7,-2.0,-9.8,2.0,13.7,-15.6,17.6,-11.7}, false, {}},
    {"Pythagorean", {0,13.7,3.9,-5.9,7.8,-2.0,11.7,2.0,15.6,5.9,-3.9,9.8}, false, {}},
    {"Arabic Bayati", {0,0,-50,0,0,0,0,0,0,-50,0,0}, false, {}},
    {"Turkish Rast", {0,0,0,0,8,0,0,0,0,0,0,8}, false, {}},
    // ... 更多預設
};

文件結束

本研究為 MADZINE VCV Rack Quantizer 模組開發的基礎資料。

© 2025 MADZINE. 保留所有權利。