ta-csa
v1.0.2
Published
Text-Alive Chord String Analysis
Downloads
11
Maintainers
Readme
Text-Alive Chord String Analysis
Text Alive のコード文字列を音の位置の配列に変換するプログラムです。
対応内容
対応コード
- 対応コード一覧 (括弧内は、分析対象の文字列。重要度分類については、「うちやま作曲教室」様のサイトを参照しました。)
- コードの種類:重要レベル☆☆☆
- メジャー(
M
) / マイナー(m
) / セブンス(7
) - マイナーセブンス(
m7
) / メジャーセブンス(M7
) / 分散コード(/
)
- メジャー(
- コードの種類:重要レベル☆☆
- マイナー・セブン フラット・ファイブ(
m7(b5)
) / ディミニッシュトライアド(dim
) [^1] / ディミニッシュ(dim7
) [^2] - サスフォー(
sus4
) / セブンサスフォー(7sus4
) [^3] - オーギュメント(
aug
) / マイナーシックス(m6
) - テンションコード (
(b9)
/(9)
/(#9)
/(11)
/(#11)
/(b13)
/(13)
) - アドナインス(
add9
)
- マイナー・セブン フラット・ファイブ(
- コードの種類:重要レベル☆
- シックス(
6
) / マイナーメジャーセブンス(mM7
) / セブン フラット・ファイブ(7(b5)
) [^4]
- シックス(
- コードの種類:その他、上記参照したサイトには記載が無いが、対応しているコード
- ナインス(
9
) / サスツー(sus2
) / フラットファイブの扱いについて
- ナインス(
- コードの種類:重要レベル☆☆☆
- 対応コードのテスト一覧
これから対応予定の事
- 分散コードの「
on
」の文字列への対応- Text Alive では、分散コードが「
/
」の為、優先度低
- Text Alive では、分散コードが「
- 「
omit
」への対応- 「
sus2
」と「add9(omit3)
」が、ほぼ同義、かつ、「sus2
」対応済みの為、優先度低- Csus2 : C D G
- Cadd9(omit3) : C ~~E~~(omit3) G D(add9) > C G D
- 「
- 音楽知らない人が、当プログラムを作っているので、「この解釈間違っている」「こんなコードも対応して欲しい」等ありましたら、Issueを書いていただければ、対応します。
使用方法
インストール
npm install ta-csa
プログラム上での利用方法
- まずはインポートを行います。
import ChordController from "ts-csa";
- クラスを初期化します。
const chordCtrl = new ChordController();
- コンソールログに、デバッグログを出力したい方は、フラグを設定します。
chordCtrl.setIsDebug();
- コードの文字列から、音の位置を示す配列を、数値化して取得する場合には、
analysisChord
を使用します。- 下記の例だと、
[4, 7, 10, 14]
が取得できます。
- 下記の例だと、
const chordArray = chordCtrl.analysisChord("Em7(b5)");
- コードの文字列から、1オクターブに収まる数値化した配列を取得する場合には、
getOctaveChord
を使用します。- 下記の例だと、
[2, 4, 7, 10]
が取得できます。
- 下記の例だと、
const chordArray = chordCtrl.getOctaveChord("Em7(b5)");
補足
フラットファイブの扱いについて
- 当プログラムでは、単純に
b5
(-5
) が存在した時、5度の音を半音下げる、とします。- 括弧があろうがなかろうが、
b5
(-5
) の文字列だけで判定します。 - ただし、♭がありえるコードの場合は、必ず括弧をつけてください。
- 括弧があろうがなかろうが、
- 以前記載していた「マイナー・セブン フラット・ファイブの「
m7(-5)
」「m-5
」「m(-5)
」の文字列への対応」も含め、以下の様に扱います。- 「
m-5
」「m(-5)
」を「マイナー・セブン フラット・ファイブ」として取り扱うには、コードが複雑になる為、セブンスとして扱わない事にしました。
- 「
- 取扱例)
m7(-5)
: マイナー・セブン フラット・ファイブm-5
: マイナー フラット・ファイブm(-5)
: マイナー フラット・ファイブB(b5)
:B
の フラット・ファイブBb5
:B♭
(先頭から、Bbが有効となる為、5だけになるので、フラットファイブとは見做さない)DM7b5
:D
の メジャー・セブン フラット・ファイブDbb5
:D♭
の フラット・ファイブDmb5
:D
の マイナー フラット・ファイブ
文中の注釈
[^1]: dim
で四和音のディミニッシュとしているサイトもありますが、当プログラムでは三和音と四和音を分ける為に、 dim
は三和音のディミニッシュ・トライアド(減三和音)として扱います。
[^2]: m6(b5)
の様な記述は、以下理由で、ディミニッシュとして同様に解析されます。m6(b5)
: m6
が作成され、 (b5)
で5度の音が半音下がるので、 dim7
の表記と同様の解析結果となります。
※Cm6(b5)
の場合、 Cm6
の「ド、ミ♭、ソ、ラ」が作成され、5度のソが半音下がり、「ド、ミ♭、ソ♭、ラ」となるので、結果として、「ド、レ♯、ファ♯、ラ」と同じ音の位置が取得されます。
[^3]: 当プログラムでは、「セブンス」と「サスフォー」の組み合わせで作成しています。
[^4]: 当プログラムでは、「セブンス」と「フラットファイブ」の組み合わせで作成しています。
参照サイトの表記( C7-5
)と違うのは、当プログラムのフラットの扱いが、基本は b
の文字としている為です。 -
でもフラットファイブとして取り扱います。