speakerdeck.com だいぶ大仰なタイトルでありますが掲題の内容を社内勉強会で話しました。 音楽を作る古典的な方法論 (機能和声) を取り上げ、その中でも和声 (harmony) をコアドメインと見据え、実際に和音進行の規則などを実装したという内容です。 和声と周辺の概念をScalaで表現したコードを交えながら、和音や調・音階をエンジニア向けにどういうパラメーターを受け取ってどのように導出できるか、といった観点で紹介しています。 端折ったりやや正確さに欠ける説明になっているところがあると認識していますが、プログラミングあるいは抽象的な構造とその生成規則を発見するという観点でおもしろさを感じてもらえるようなアレンジです。 紹介したコードは素朴なWebアプリケーションとして実装し、公開しています: GitHub - aereal/music-study きっかけ アカデミックな知識を