今私は小さな魚だけれど

ちょっぴり非日常な音楽を紹介するブログです

【GB】ゲームボーイでジェネラティブミュージックを実装したい

(ある程度制約をつけつつ)自動で作曲するプログラムをゲームボーイで開発したら面白いんじゃないかという記事です。具体的には実装に取り掛かっておらず、まだメモ程度の内容です。

ゲームボーイ音楽でDJしたい、その際にテッキーな要素も組み込んで、チップチューンやってる先輩から褒められてみんな(誰?)にちやほやされたいという目標があります。

発端

ある程度C言語を用いたゲームボーイプログラミングを行えるようになりましたが、そこからどう音楽に繋げるかは全く考えられていませんでした。

それでずっと悩んでいたのですが、この間M3の帰りに本屋に寄ったときに『数学から創るジェネラティブアート』という本を見つけ、さっき「同じようなことを音楽でできないか」と思い至り調べてみることにしました。

数学から創るジェネラティブアート - Processingで学ぶかたちのデザイン

数学から創るジェネラティブアート - Processingで学ぶかたちのデザイン

あとファミコンやレトロPCのファンであれば、同様にファミコンでVJをすることもできそうです(ひとまずコンパイラを用意して放置しています)。

よく考えたらジョン・ケージとかがやってそう…と思ったら、Wikipediaによるとこんな記述がありました。

ジョン・ケージブライアン・イーノといった作曲家は、ジェネレーティブな手法とシステムで作品を作ったことがある。イーノは、SSEYO の Koan というジェネレーティブミュージックシステムの開発に関わり、このシステムをアルバム Generative Music 1 の製作に活用した。

調べた結果

とりあえずいろいろググってメモ残しておきます。

ジェネラティブアート論

東京工芸大学の講義のカリキュラムのようです。「セルオートマトン音楽」という項目があります。

www.kuhalabo.net

リンクが生きているのはこれくらいか。

tones.wolfram.com

オープンソースのジェネラティブミュージック発生機

makezine.jp

Muze from Adam Kumpf on Vimeo.

セル・オートマトンを使ったフラクタルなオンライン・ループシーケンサー : Otomata

sothis.blog.so-net.ne.jp

音階が Hang Drum と同じ並びで D A Bb C D E F A C (G がない C ミクソリディアン?)になっているので、適当にセルを置いてもそれっぽいフレーズが出来上がります。

www.youtube.com

これは真似できそうだし、工夫次第で面白いものできそうです。UIも実機上でもインタラクティブに操作できるでしょうし。ただ、ゲームボーイでやるには同時発音数を意識する必要がありますね。

数学で音楽を作る実験「セル・オートマトン ミュージック」

karaage.hatenadiary.jp

今後の方針

Otomataを参考にして実装してみたいと思います。同時発音数と、音階の制約(〇〇スケール)をどうするかがネックになりそうですね。

単純なものが多そうですが、自分がやりたいのはDJなので、「ある程度人が操作する」ことを許容できるのは有利そうです。

その他の案

ゲームボーイMIDI経由で操作して、PC側で音楽を生成する

勝手に「ディープラーニングでリアルタイムで音楽生成してDJ(に近い何か)をする時代が来る」と思っているので、それをゲームボーイに繋げて音楽を鳴らしたいです。

www.h-style.net

冬のコミケでふぁみみっでぃを手に入れたので、まずは「Pythonmidiを出力してファミコンで音を鳴らす」みたいなタスクをやってみようと思います。