棚からへそくり

働きません、勝つまでは。

コード進行分析補助ソフトの完成を目指して

授業でかじったC言語をつかって、コード進行分析補助ソフトを開発しようというこの企画。

 

先日は製作に着手したという話をしていましたが、今日はせっせとこれの改良をしてました。

↓今日の成果

f:id:tanaheso:20150214213806p:plain

前回のプログラムでは、とりあえず4536の並びになっていたら王道進行だと見なすようにしてありましたが、今日の改良でセブンスやメジャー・マイナーを区別できるようになりました。こうすることで、例えばコード進行の中で同じ4536進行(いわゆる王道進行)を発見した場合でも、IV△7-V7-IIIm7-VImという最も王道なパターンとそうでないパターンを判別することができます。

いやいやそんな改良せずとも、とりあえず4536進行は全部王道進行だと判定しときゃいいじゃん!実際多くの人が途中で代理コードを使おうが何しようが4536進行のことを王道進行と呼んでるじゃん!そう思われる方もいるでしょう。

たしかにその通りなのですが、今回の変更にはもっと別の目的があります。というのが例えばC-CM7-C7-C6みたいなコード進行があった場合に、今までの仕様のままだとプログラムは「1111進行だ!」としか判定してくれませんでした。しかし、今回の改良を用いれば、この進行を「I-IM7-I7-I6進行だ!つまりこれは一度ずつ音が下降するクリシェだ!」と判定できるようになるのです。

 

ただですね、このまま作業を進めていくと条件分岐が膨大なことになって、発狂する羽目に陥る気がするんですね。なので、ちょっとここらでアルゴリズムを再考するか、Cについてもっとしっかり勉強するか、はたまた別の言語に移るか・・・。どこまでを補助させるのかも含めて、もう一度よく考え直そうと思います。

 

関連記事