アドリブ練習をプログラムで楽しくできないか?
会社を退職して半年ほど経った2020年3月ごろ、何か自分のポートフォリオとなるサービスを作ろうと考えていました。
最近思うのは、考えていることを形に(アウトプット)しないと存在してないことになってしまうなあ、ということ。どんな良いアイディアでも知られていなければ価値にならない。
そして、作成の経過や、途中でぶつかった課題や解決方法などが誰かのアイディアに繋がることを期待し、ブログに書いて残していくことにしました。
(2020年6月現在までの経過を遡って記事に書いていきます。)
自分らしいサービスを作る
題材を決めるにあたり、自分が利用できるものでないと熱中できないので、楽器の練習に役立つツールにしようと考え始めました。
実際に練習していると何に詰まるのか?何があれば飽きずに練習が続けられるのか?をどんどんと深掘りしていきました。
コンピュータは、データが何であれ1対1で答えが決まっているものの計算が得意です。移調も簡単だし、パターンさえ入力すればフレーズの組み合わせも無限に作り出せます。
少し前に買って練習できていなかったこの本を元に、コードの解析、パターンからフレーズを作るツールにしようと思いました。
この本の著者は、バークリー出身のトロンボーン奏者で、現在はインプロヴィゼイションのカリキュラム指導もしているそうです。
構成は、コード・スケール・トライアドなどの音の話が7割程度、残り3割はフレーズのリズムパターンの練習例が載っています。コード→スケールの解釈が表でまとめられているのでそのままプログラミングできそうでした。
アドリブ(Improvisation)に関する本はたくさんありますが、内容が機能的にまとまっていて良書だと思います。少し高いですがオススメです。
とりあえずシンプルに動くもの
ちょうどpythonの学習を始めた所だったので、言語はpythonで始めることにしました。
pythonはライブラリが豊富で情報も多いため、その後のモジュール利用やサーバーへのデプロイなどもやりやすかったのは偶然にも助かりました。
まずは曲のコードをテキスト入力し、スケールを決定、構成音を表示させるところまで。
仕様
Input: 曲名、曲キー、コードをテキスト入力
Output: コード毎の演奏可能スケール
出力