汎用性がありそうなので、先日の曲作りのために作成したPythonとmusic21ライブラリを使ったプログラムをGithub公開しました。
https://github.com/delphinus1024/voicing_explorer
簡単に書くと、パラメータで与えられたルート音とスケールから音数とルールに適うすべてのボイシングの可能性を列挙、その結果を与えられた条件でソートして譜面表示するもの。
内容は上の記事で書いたLine Writingに準拠しているが、普通にボイシング探索に使えるので名前をVoicing Explorerと銘々。
使用方法はGithub参照。
Pythonのライブラリにitertoolsという要素を渡すと順列・組み合わせを自動的に計算してくれる非常に便利なものがあってこれをありがたく使用。
今回に限らずmusic21とitertoolsを組み合わせてすべての可能性を自動計算させる技は普段からよく使っているが、吐き出された膨大な生成物の中から思いがけないアイデアを時折投げかけてくれる。
例えばE Combination of Augumentという一風変わったスケール(Chick Coreaがよく使っているが…)で試してみると。
上は冒頭抜粋だけれども、これだけでも180ほどのボイシングができて10ページほどになってしまう。
膨大な生成物からいい響きのものを取り出していく作業が必要だが、人手で全部やるよりずっと時間短縮になると思う。
ちなみに探索対象をスケールからPitch Class Setに変えるともっと刺激的なことになりますが、その辺はまた気が向いたら書きます。