まだ購入者向けの開発版としてしか公開されていないのだけど、Renoise 2.6betaに新しく追加されたRenoise Scriptingが興味深い。Luaを使ってRenoiseの機能を外部スクリプトから呼び出せるようにしようというもので、xrnxというプロジェクトがgoogle code上にオープンソースで公開されている。 https://code.google.com/p/xrnx/
これを使って作られたツールはrenoise toolsというサイトで公開される(できる?)らしいのだけど、既に外部MIDIコントローラをRenoiseに接続するツールなど、なかなかクールな物がある。
Luaをいじったことは一度もないのだけど、どうせ難しくはないだろう。しかしこれで今まで書いたC#のコードを流用できるようになったら、楽しいことになりそうな気もする。というわけでLuaがC#から叩けないものか眺めてみることにした。
それで分かったのは、LuaにはLuaInterfaceというプロジェクトがあって、これにはC#のLuaラッパーが含まれている、ということだ。しかし、外部の説明を見ると、これはP/Invokeしているというのだけど、Lua 5.1を含むLuaInterface 2.0.1をダウンロードして見てみると、どうやらDllImportではなくC++ mixed mode assemblyを使っている。これでは移植性のない残念なコードだ。
もっとも、Lua自体はCで書かれたランタイムをdllとして公開しているので、これをP/Invokeするラッパーを書けば、Lua自体は使い回すことが出来る。Tao Frameworkには(旧公式サイト?はもはやドメイン屋が転売している有様だが)、Tao.Luaというラッパーライブラリが存在するらしい。しかし、そこまで回りくどいのであれば、Luaだけで完結するコードを書いて、手持ちのコードは移植してしまった方が早いような気もしてくる。
いずれにしても、なかなか面白いので、これは機会を見て何か作ってみたい。
Leave a comment