ふすま日記

忘れたくないことを書きます

コード進行を作るクソ診断を作った

作った

コード進行を自動で(?)作ってくれるクソ診断を作りました。

shindanmaker.com

作ろうと思った理由は覚えてません。クソ診断にできそうだなと思ったからかな

今後誰かの参考になるように、作るときに考えたことをメモしておきます。

コード進行とは

ぼくはコード進行のことがよくわかっていません。 でもたぶんこんなかんじ

  1. コードとは和音のこと。和音には名前がついている。
  2. 終った感のあるコード進行はいい。終わってない感があるといまいち。
  3. コードはトニック(T)、サブドミナント(S)、ドミナント(D)に分けられる。T→S→D→Tだといい感じになりそう。

トニック、サブドミナントドミナントとは

これもよくわかっていないけど、こんな感じらしい

ローマ数字で書かれているものは、音程みたいな感じだったと思う。 IがCならIIがD、IIIがEみたいな。

実際にクソ診断を作っていく

完成像を想像する

自分がクソ診断を作るとき、まずは頭の中でどんな感じの診断結果を作ればいいか想像してみます。

たとえば、T→S→D→Tの順にランダムに結果が出ればいいので、

I → IVM7 → V7 → IV6 → Isus4

でIがCになるとき、

C → FM7 → G7 → F6 → Csus4

だなあみたいな。

T→S→D→Tをランダムに並べるのは簡単そうだなと思いました。いろいろなパターンを作りたいので、音程(?)はIがA~Gのランダムになるようにしたいと思っています。

音程(?)を抽選するリストを作る

Iに対してCとかDを代入する方法が良いかなと考えました。

今回作りたいクソ診断では、IがCになった場合、必ずIIはDだしIIIは必ずEになります。つまり、I~VIIは[C D E F G A B]になります。

IはA~Gのランダムなので、 [I II III IV V VI VII]は、

  • C,D,E,F,G,A,B
  • D,E,F,G,A,B,C
  • E,F,G,A,B,C,D
  • F,G,A,B,C,D,E
  • G,A,B,C,D,E,F
  • A,B,C,D,E,F,G
  • B,C,D,E,F,G,A

の7通りになりそうです。組み合わせの数が少ないので、1つのリストで収めることができます。

今回はリスト4をこのようにしました。

f:id:kjfsm4:20181022023945p:plain

1回の診断につき、LIST4は1回しか抽選されないことが大事です。例えば1つめの結果が選ばれた場合、[LIST4,1]には常にCが入り、[LIST4,2]には常にDが入ります。

トニック、サブドミナントドミナントを抽選するリストを作る

この方法で、トニックのリストを作ります。

f:id:kjfsm4:20181022024203p:plain

リスト4で[C,D,E,F,G,A,B] が選ばれた場合、[LIST4,1]にはCが入り[LIST4,3]にはE、[LIST4,6]にはAが入ります。

つまりこの場合のトニックは

  • C
  • CM7
  • C6
  • Csus4
  • Em
  • Am

が選ばれます。

同様にサブドミナントドミナントを作り、

f:id:kjfsm4:20181022024922p:plain

f:id:kjfsm4:20181022024941p:plain

これらを使って診断結果を生成します。

f:id:kjfsm4:20181022025230p:plain

できた診断結果はこれ!

診断結果の例はこのようになります。

f:id:kjfsm4:20181022025312p:plain

この例では、リスト4でGから始まるものが選択されています。

ランダムな音階から、いい感じになりそうな順番で4つのコードを表示する診断を作ることができました。

できたコードを聞いてみる

せっかくコード進行ができたので、実際に聞いてみたいです。でもコードを読んでどの音を出せばいいか調べて実際に演奏してみるのは大変です。MuseScoreならコード名から楽譜が作れそうだけどそれも面倒。

というわけでテキストからコードを再生するサイトを見つけました。最高。

rechord.cc

診断結果をこのページで使われているコード記法に合わせているので、コピペするだけでコードを聞くことができます。さきほどの例ではこうなりました。

今日の診断結果 | rechord - 演奏もできるコード進行共有サービス

よくわかんないけど変ではないかなと思いました。

まとめ

「リストの値をカンマで区切って分けて表示する」機能を使い、診断メーカーで配列を作りその結果を複数回再利用する方法を説明しました。

この診断については、コード進行について全くわからないまま診断を作ってしまったので、だれかにアドバイスをもらってトニックサブドミナントドミナントのパターンをより良いものに修正したいと思っています。

*1:I△7と書くこともあるらしいが今回は https://rechord.cc の記法に従う。

*2:2拍分Vsus4の後に2拍分V7という意味 Vsus4やるなら最後のトニックに行く前にV7がほしいって言われた