Cassisを作った時の話
Advent Calendar的なアレです。
Cassisについて書こうと思います。
1. Cassisとは?
簡単に言うと、音を生成するPerlモジュールなんだけど、
これ作って、最初に発表したのは、
こないだのHokkaido.pm#31のときで、これがそのスライドです。
http://www.nekonotechno.com/slide2/perl_casual_31
2. 歴史的経緯
これを使って何ができるの?っていう話の前に、
ちょっとだけ、おさらいをします。
まず、最初はArduino実装があって、
これじゃカジュアルに人に見せられないってことでiOS実装を作って、
それが確か、この記事ですね。
全然、そのことについて触れてないけど、
Arduino実装って言ってるのはこちらです。
https://github.com/techno-cat/NeSynth
で、その後にHokkaido.pmでやって、さらにYAPCに続く訳ですね。
「Perl meets beats」 in YAPC::Asia Tokyo 2011
http://www.slideshare.net/technocat/perl-meets-beats-9696162
先にお詫びしなければならなくて、
YAPCで発表した、「Perl meets beats」は実用的ではなかったです。
本当にゴメンなさい。
そして、転機が訪れる訳ですが、
Perl Hackers Hubで、この話を書くことになって、
そこにコードを掲載するべくリファクタリングをして、
1枚っぺらのスクリプトが完成します。
これについては、非常にポータブルで満足しています。
このスクリプトに音色を定義したファイルを入力するとか、
バージョン管理もできて、必要な時だけwavを生成できて、
自画自賛せざるを得ないです。
これはさておき、ちょっとやり残したことがあって、
それがこれらです。
- フィルターの実装
- PortAudioとの親和性
そして時は経ち、iPhone用のゲームをリリースします。
TriShoot
https://itunes.apple.com/jp/app/trishoot/id871816879?mt=8
その際の効果音を加工する際の面倒臭さったらないですね!
何パターンか音程別のピコ!って音を作って、
さらに長いだの、短いだの、BGMに埋もれるからやり直しだの、
発狂しそうになりました。
そこから、すごい勢いでフィルターのお勉強して、
Cassisに着手しました。(あと、Imager::LineTraceも同じ理由)
あとは、アレです。
Hokkaido.pm#31に間に合わせようと決めたので、
wavファイルの読み込みだったり、そういうのは後回しにして、
今に至ると言ったところです。
ちなみに、今回は非常に実用的かつ自由度の高いものになっており、
自由度が高すぎる故に、ドキュメントやサンプルコードの下書きを、
Advent Calendarっぽくやってみようと思います。
明日からは、さっそくサンプルコードを書く予定です。
連日更新は無理でも、計25個は達成したいです。
おしまい。
Leave a Comment