超かっこいいサウンドライブコーディング環境 "ORCA" であそぼう
メモリダンプを彷彿とさせるサイバーな画面のなかを、たくさんの文字が躍り音楽を奏でる―――ライブコーディング環境「ORCΛ」 (ORCA) は、特有の機能を持ったアルファベットたちを画面に配置することで音楽を作ることができるソフトウェアです。
I've finally built my absolute dream music software.
— Devine Lu Linvega (@neauoire) April 7, 2019
Here's #ORCΛ(livecoding language) & PILOT(Synthesizer).https://t.co/GCLJM0ZvONhttps://t.co/aiGQ8YlAmi pic.twitter.com/AQy9ezBGu1
Download link for #ORCΛ-native 32 Steps Sequencer.https://t.co/oUMqxeTHfo pic.twitter.com/dnf1pM0ZOO
— Devine Lu Linvega (@neauoire) April 18, 2019
あっ……好き……(絶命)
ダウンロード
ORCΛは標準でMIDI出力に対応してるので、デスクトップで鳴らすならLoopMIDIとVSTHostで鳴らすのが普通というところなのでしょうが、実は同じ作者がORCΛで使える音源ソフト「Pilot」を公開しており、圧倒的に簡単に音を鳴らせるので今回はそちらを使います。
やってみる
ダウンロードできたらOrcaとPilotの両方を起動します。
ORCA側の画面にコードを入力していきます。
ORCAでは大文字アルファベットそれぞれが特有の機能を持っており、それらを組み合わせることでコードを構築していきます。詳しい機能の一覧はGitHubにあります。
では早速入力してみましょう。
まずは「D」を配置してみます。Dの真下が点滅しているのがわかるでしょうか。Dは「Delay」という命令で、一定間隔でDの下側に信号(bang)を配置します。bangはほかの命令を実行するトリガーとなるもので、例えばbangの右側に音を鳴らす命令を並べると……
bangの間隔に合わせて音が鳴りました。
セミコロンは、Pilotで音を鳴らすための記号です。セミコロンの右に、チャンネル番号、オクターブ、音名を並べます。この場合は「Pilotのチャンネル0の音色でオクターブ4、C(ド)を鳴らす」という意味になります。(余談:MIDIで音を鳴らす場合はセミコロンではなくコロンになります)
たとえば、Pilotにはチャンネルが0~Fまであるので、この部分を変更することで音色が指定できます。
こういう感じで、ORCAの命令はその左右や上下に入力値や出力値を持ちます。
また、D (Delay)の左右がハイライトされてますが、ここはDelayの入力値です。例えばDの右を2に変更すると……
音の鳴る間隔が短くなりました。Dの右側の値を変更すると、bangを生成するフレーム間隔を指定できます。
ORCAでは処理がフレームという単位で実行され、音の再生、画面や処理の更新はこのフレームごとに行われます。このフレームが全体のリズムをつかさどっており、拍のようなものと考えてOKです。画面下部にテンポと現在のフレーム数が表示されています。
また、Dの入力値を別の命令の出力値で書き換えることも可能です。
乱数を生成する命令の「R」(Random)はRの左に乱数の最小値、右側に最大値を置くと、Rの真下に生成した乱数を配置します。
このコードではRの出力した乱数がDの入力値(フレーム間隔)となっており、結果、音が不規則に鳴るようになりました。
雑まとめ
……とまあ、こんな感じで、命令ごとの入力値や出力値をつないでいくことでコーディングができるという寸法なのです。
ほかの命令を利用して組み合わせることで、もっと複雑な動作をさせることもできます。こちらの動画で主要なものが紹介されています。
この動画内のORCAはバージョンが古いようで、一部の命令の入力・出力値の配置場所が異なりますが、基本は同じです。
また、Twitterではハッシュタグ #ORCΛ でたくさんの作例が投稿されています。こちらを見ながら、どこがどうやって動いているのかを観察するのも面白いです。
サウンドライブコーディング環境「ORCΛ」の紹介でした!
余談
公式が「ORCA」と「ORCΛ」と「Orca」と記法揺れしまくっているので(特殊な文字なのでしょうがない)、どう書くべきか悩んだ結果全部混ざりました。ゆるして。