(ある程度制約をつけつつ)自動で作曲するプログラムをゲームボーイで開発したら面白いんじゃないかという記事です。具体的には実装に取り掛かっておらず、まだメモ程度の内容です。
ゲームボーイ音楽でDJしたい、その際にテッキーな要素も組み込んで、チップチューンやってる先輩から褒められてみんな(誰?)にちやほやされたいという目標があります。
発端
ある程度C言語を用いたゲームボーイプログラミングを行えるようになりましたが、そこからどう音楽に繋げるかは全く考えられていませんでした。
それでずっと悩んでいたのですが、この間M3の帰りに本屋に寄ったときに『数学から創るジェネラティブアート』という本を見つけ、さっき「同じようなことを音楽でできないか」と思い至り調べてみることにしました。
数学から創るジェネラティブアート - Processingで学ぶかたちのデザイン
- 作者: 巴山竜来
- 出版社/メーカー: 技術評論社
- 発売日: 2019/04/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
あとファミコンやレトロPCのファンであれば、同様にファミコンでVJをすることもできそうです(ひとまずコンパイラを用意して放置しています)。
よく考えたらジョン・ケージとかがやってそう…と思ったら、Wikipediaによるとこんな記述がありました。
ジョン・ケージやブライアン・イーノといった作曲家は、ジェネレーティブな手法とシステムで作品を作ったことがある。イーノは、SSEYO の Koan というジェネレーティブミュージックシステムの開発に関わり、このシステムをアルバム Generative Music 1 の製作に活用した。
調べた結果
とりあえずいろいろググってメモ残しておきます。
ジェネラティブアート論
東京工芸大学の講義のカリキュラムのようです。「セルオートマトン音楽」という項目があります。
リンクが生きているのはこれくらいか。
オープンソースのジェネラティブミュージック発生機
Muze from Adam Kumpf on Vimeo.
セル・オートマトンを使ったフラクタルなオンライン・ループシーケンサー : Otomata
音階が Hang Drum と同じ並びで D A Bb C D E F A C (G がない C ミクソリディアン?)になっているので、適当にセルを置いてもそれっぽいフレーズが出来上がります。
これは真似できそうだし、工夫次第で面白いものできそうです。UIも実機上でもインタラクティブに操作できるでしょうし。ただ、ゲームボーイでやるには同時発音数を意識する必要がありますね。
数学で音楽を作る実験「セル・オートマトン ミュージック」
今後の方針
Otomataを参考にして実装してみたいと思います。同時発音数と、音階の制約(〇〇スケール)をどうするかがネックになりそうですね。
単純なものが多そうですが、自分がやりたいのはDJなので、「ある程度人が操作する」ことを許容できるのは有利そうです。
その他の案
ゲームボーイをMIDI経由で操作して、PC側で音楽を生成する
勝手に「ディープラーニングでリアルタイムで音楽生成してDJ(に近い何か)をする時代が来る」と思っているので、それをゲームボーイに繋げて音楽を鳴らしたいです。
冬のコミケでふぁみみっでぃを手に入れたので、まずは「Pythonでmidiを出力してファミコンで音を鳴らす」みたいなタスクをやってみようと思います。