LoginSignup
4
3

More than 3 years have passed since last update.

logue SDK のサンプルコードを macOS 上でコンパイルして KORG NTS-1 で動かすまで

Last updated at Posted at 2019-12-29

表記について

KORG が公開した logue SDK ですが、prologue SDK, logue-sdk など表記が様々です。ひとまずここでは "logue SDK" を採用します。

環境

logue SDK のセットアップ

SDK のセットアップは NuTekt NTS-1 digital SDK Source and Template Projects で説明されているステップそのままですが、最初に作業用のディレクトリを掘っておくのが良いでしょう。

ディレクトリの作成

 $ cd ~
 $ mkdir -p dev/logue-sdk
 $ cd dev/logue-sdk

logue SDK のセットアップ

 $ git clone https://github.com/korginc/logue-sdk.git
 $ cd logue-sdk
 $ git submodule update --init

コンパイル環境のセットアップ

logue SDK を使ったコードのコンパイルに使用するコンパイラをセットアップします。macOS 標準の開発環境 Xcode との関係性は詳しく調べてはいませんが、logue SDK のコンパイル環境を構成するファイル群は作業ディレクトリ以下にインストールされるようなので、Xcode とのコンフリクトはなさそうに見えます。少なくとも手元の環境では特に問題なく Xcode 共存できています。

 $ cd logue-sdk/tools/gcc
 $ ./get_gcc_osx.sh

サンプルコード(オシレータ)のビルド

環境が整えば make 一発でサンプルコードをビルドできます。 logue-sdk/platform/nutekt-digital/demos/waves 以下にカスタムオシレータのサンプルコードがあるのでこれをビルドしてみます。

 $ cd logue-sdk/platform/nutekt-digital/demos/waves
 $ make

エラーが出なければ、カレントディレクトリに waves.ntkdigunit が出来上がっているはずです。

ライブラリ管理用 CLI ツールのセットアップ

ビルドしたオシレータを NTS-1 の実機で動かすには、出来上がった waves.ntkdigunit を MIDI 経由で本体に転送する必要があります。モジュールの管理や転送を行うための GUI のライブラリ管理ツールも提供されていますが、SDK にはコマンドラインツールも同梱されています。make でビルドしたりしていると、GUI よりもコマンドラインのほうが楽なケースもあるので、ここではコマンドラインツールをセットアップして使ってみます。

 $ cd logue-sdk/tools/logue-cli
 $ ./get_logue_cli_osx.sh

NTS-1 を接続して CLI で叩いてみる

NTS-1 を USB ケーブルで接続してから、先程セットアップした logue-cli を以下のように叩いてみます。

$ cd logue-cli-osx-0.07-2b

# NTS-1 実機の情報
$ ./logue-cli probe
> Device: nutekt digital
> System version: 1.02
> Logue API version: 1.01-0
> Available modules:

Modulation FX: [ slot_count: 16, max_payload_size: 8180, max_load_size: 6144 ]
Delay FX: [ slot_count: 8, max_payload_size: 16368, max_load_size: 12288 ]
Reverb FX: [ slot_count: 8, max_payload_size: 16368, max_load_size: 12288 ]
Oscillator: [ slot_count: 16, max_payload_size: 36848, max_load_size: 32768 ]

# NTS-1 実機上のオシレータの情報
$ ./logue-cli probe -m osc
> Device: nutekt digital
> System version: 1.02
> Logue API version: 1.01-0
> Oscillator status:
[0]: "waves" v1.00-0 api:1.00-0 did:00000000 uid:00000000
# これ以下 Qiita では何故か空行として表示されますが実際は [1]: free. - [15]:free が表示されます。
[1]: free.
[2]: free.
[3]: free.
[4]: free.
[5]: free.
[6]: free.
[7]: free.
[8]: free.
[9]: free.
[10]: free.
[11]: free.
[12]: free.
[13]: free.
[14]: free.
[15]: free.

サンプルオシレータを NTS-1 に転送する

先程コンパイルした waves.ntkdigunit を転送してみます。-s は転送先のスロット番号を示します。

$ ./logue-cli load -u ../relative/path/to/waves.ntkdigunit -s 1
> Parsing nutekt digital unit archive
> Parsing manifest
> Parsing unit binary payload
> Handshaking...
> Target platform: "nutekt digital"
> Target module: "Oscillator"
size: c84 crc32: ae821cd5

$ ./logue-cli probe -m osc
> Device: nutekt digital
> System version: 1.02
> Logue API version: 1.01-0
> Oscillator status:
[0]: "waves" v1.00-0 api:1.00-0 did:00000000 uid:00000000
[1]: "waves" v1.00-1 api:1.01-0 did:00000000 uid:00000000
# これ以下 Qiita では何故か空行として表示されますが実際は [2]: free. - [15]:free が表示されます。
[2]: free.
[3]: free.
[4]: free.
[5]: free.
[6]: free.
[7]: free.
[8]: free.
[9]: free.
[10]: free.
[11]: free.
[12]: free.
[13]: free.
[14]: free.
[15]: free.

鳴らしてみる

NTS-1 を OSC モードにして TYPE ノブを右目いっぱいに回すと、転送したカスタムオシレータ waves が選択されます。デフォルトでスロット0に入っているオシレータと同名なので分かりづらいですね。これを選択した状態で NTS-1 のリボンコントローラを触るとカスタムオシレータが呼ばれ、生成された音がスピーカから鳴ります。

まとめ

ここまでで logue SDK の開発環境を macOS 上に構築し、サンプルコードをビルドしてそれを NTS-1 実機で動かすことができました。次はオシレータの中身をいじりたいところですが、色々と暗黙の前提があるようで、サンプルコードを読むだけでも意外とすんなりとはいかないようです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3