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を生成できて、
自画自賛せざるを得ないです。

これはさておき、ちょっとやり残したことがあって、
それがこれらです。

  1. フィルターの実装
  2. 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