1.0.2 • Published 2 years ago
ta-csa v1.0.2
Text-Alive Chord String Analysis
Text Alive のコード文字列を音の位置の配列に変換するプログラムです。
対応内容
対応コード
- 対応コード一覧 (括弧内は、分析対象の文字列。重要度分類については、「うちやま作曲教室」様のサイトを参照しました。)
- コードの種類:重要レベル☆☆☆
- メジャー(
M) / マイナー(m) / セブンス(7) - マイナーセブンス(
m7) / メジャーセブンス(M7) / 分散コード(/)
- メジャー(
- コードの種類:重要レベル☆☆
- コードの種類:重要レベル☆
- シックス(
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度のソが半音下がり、「ド、ミ♭、ソ♭、ラ」となるので、結果として、「ド、レ♯、ファ♯、ラ」と同じ音の位置が取得されます。
参照サイトの表記( C7-5 )と違うのは、当プログラムのフラットの扱いが、基本は b の文字としている為です。 - でもフラットファイブとして取り扱います。