周波数変調を使った音合成の2回目として、今回はKORG Nu:Tektブランドの製品、NTS-1を使いました。
前回はPC上でPythonを実行しましたが、この製品は本格的なシンセモジュールで、C言語でコーディングできます。
ルックスとサイズ、それから一万円もしない価格帯からかなり過小評価していました。(同じように見えるガジェット音源が多数あるため)これは本格的なシンセサイザーの音源コア部分の開発評価ボードと思った方がいいです。エフェクタも内蔵していて音がかなり良いです。
それが普通に市販されているのもさすがKORGといったところです。さらに開発環境まで公開されています。これからのプロダクトのトレンドなのかもしれないですね。
https://www.korg.com/jp/products/dj/nts_1/
https://www.korg.com/jp/products/dj/nts_1/sdk.php
https://github.com/korginc/logue-sdk
https://korginc.github.io/logue-sdk/
このSDKを使って、前回と同様シンプルな2オペレータのシンプルFM音源を使ってみました。
ユーザ定義のバラメータを3つ使って音を変調させてみました。
ソースコードは単体を紹介しただけでは意味がありませんので、環境丸ごと下記githubに公開しましたので参照ください。
https://github.com/systemsblue/NTS-1/blob/master/sine.cpp
つまみをコントロールして変化できる未定義のパラメータは6つあり、それぞれs_state.p1からp6まで使用できます。このコードをベースとしてさらに改造していくつもりです。
オシレータというのは音源の心臓部分なのですが、このアルゴリズムの開発環境を公開することによってだれでも本格シンセサイザの部品を作ることができるという、とても興味深い製品です。
下記にパラメータ操作による音の変化を動画にしました。