Cakewalk by Bandlab CALってどうよ

Cakewalk内部でちょっとしたプログラミング処理をしたいときに便利なCALというスクリプトがある。ただし、ずっと前に開発はストップしていて、存在していることが不思議なぐらいという状態になっている。

サンプルを見る限り、MIDIノートやその情報を操作するときに使うようだが、それ以外のこともできるようだ。あらかじめ入っているCALスクリプトは、単音を和音にしたりと、個人的にはほとんど使わないであろう内容ばかりだった。

スクリプト言語はLISP風の独自言語で、テキストエディタで書けば、インタプリタなので即実行できて手軽。しかしfloat等の型が扱えないという、まるで8bitマイコンか?という仕様には閉口する。それでも打ち込みの手間を軽減させる目的で、少しいじってみた。

バウンシングボール的な打ち込みの実現

ドラムロールやハープのグリッサンドでは一定間隔でない連打というものが頻繁に出てくる。そういうときに、手作業でやると大変なので、CALでなんとかしたい。

下記サイトを参考に独特の文法さえ理解してしまえば、数行で実現できた。

http://dgcardenas.fpmit.com/cal/tutorial/cwt-function.htm

1音を選択して、それを時間軸に沿ってコピーしていくのだが、その時間をコピーごとにパーセント指定で短くしたり、長くしたりできるようにしてみた。厄介だったのは基本tick単位で整数しか扱えないこと。そのまま計算してしまうと、誤差が大きすぎるので、とりあず100倍にして最終的に1/100に戻すという単純な方法を採用した。

だんだん遅くなる音をスネアに適用してみた。

スクリプトを組む際に計算値が見えないと作りにくいので、実際に実行しながらpause関数を使ってダイアログに表示させるようにして、値の確認をしながら作った。



使う?

Cakewalkが、いつサポートを切ってもおかしくなく、さらに他で利用も出来ないので、積極的にスクリプトを組むつもりはない。ただ、上記のようなMIDIノートのエディットは便利に思えたので、手作業を効率化する意味でCALでチートツールを作るのはありだと思っている。