(わたしの音楽理論の理解が浅いため, オリジナルのメソッド名や変数名がいまいちわかりにくい. この点, 今後大幅に変更する可能性があるかもしれない)
---
## Usage
`examples/` ディレクトリ以下にあるサンプルプログラムを見ると, わかりやすいと思う. いかに主要なメソッド, 定数について紹介しておく.
### 重要なテーブル
`MusicSetTheory::WestTemp` コード, スケール, モードなど全てを含むテーブル.ここに問い合わせをすることで, 必要な情報を得たり処理をしたりする. 現状, ノートの情報を得ることを想定している.
### スケール
`MusictSetThoery.{def_scale, undef_scale, scales}` を新たに用意した. 定義するには以下のようにする.
`def_scale 定数名, name: "スケール名称", tment: Temperament, note_pos: <半音での位置の定義> [, modes: <モード>]`
定義の例.
```ruby
include MusicSetTheory # 必要に応じて.
def_scale :MajorScale, name: "Major", tment: 音律テーブル,
note_pos: CHROM_NAT_NOTE_POS, modes: MAJOR_MODES
:
:
# Pentatonic scales.
def_scale :MajorPentaScale, name: "Major Pentatonic", tment: WestTemp,
note_pos: MAJOR_PENTA_NOTE_POS
def_scale :MinorPentaScale, name: "Minor Pentatonic", tment: WestTemp,
note_pos: MINOR_PENTA_NOTE_POS
def_scale :RyukyuPentaScale, name: "Ryukyu Pentatonic", tment: WestTemp,
note_pos: RYUKYU_PENTA_NOTE_POS
# Hexatonic scales.
def_scale :BluesHexaScale, name: "Blues", tment: WestTemp,
note_pos: BLUES_HEXA_NOTE_POS
```
```
モードについては, 省略可能である.
*note_pos* は, たとえば一番最後の6音音階のブルーススケールの場合, `[ 0, 3, 5,6,7, 11]` となっている. 半音個数の配列で, 最初の音を0(基準)としたとき, 次の音は基準から半音3つ上, 次の音は基準から5つ上, ... という風な意味の配列である.
これは最初の音がCであったら, [C, D#, F, F#, G, A, B] ということになる.
---
0 件のコメント:
コメントを投稿
何かありましたら、どうぞ: