見出し画像

FoxDot audioinを使って入力を扱う話

FoxDotで外部入力を扱うにはaudioinというシンセを使用します。

PCの内蔵マイクやsoundflower(2ch)などを使用する場合、channel=2と記載する事で入力を取得することができます。

a1>>audioin(channel=2,dist=0.01,echo=0.05)

現在の入力デバイスを確認するにはSuperCollider側でFoxDot.start;やs.rebootなどを実行したタイミングでPostWindowにて下記のように確認できます。

"Built-in Microph" Input Device
  Streams: 1
     0  channels 2

"Soundflower (64ch)" Output Device
  Streams: 1
     0  channels 64

MacではデフォルトだとBuil-in Microphとなっています。

これは内蔵マイク入力になります。

このマイク入力に対してFoxDotで自由にeffectをかける事ができるので、例えばキーボードの打音を演奏に組み込む事ができます。

また、soundflowerなどのオーディオルーティングソフトを導入し、入力デバイスに指定する事で、内部的にフィードバックを起こす事が可能となりeffectを重ねてかける事が可能です。

以下はSuperCollider側のコードです。

FoxDot.start;
Server.default.options.outDevice_("Soundflower (2ch)");
Server.default.options.inDevice_("Soundflower (2ch)");
s.reboot;

出力音をモニターする為にはSoundflowerからの出力音をDAWやOBSなどのソフトを経由して聴く必要があります。

この状態でFoxDotで以下のコードを実行するとノイズが鳴ります。
少し大きな音が出るのでご注意ください。

a1>>audioin(channel=2,dist=0.4)

ここで何故ノイズが発生するかというと、FoxDotの出力をaudioinに入力している為、feedbackが発生していると思われます。

このfeedbackを使う事でeffectを多重にかけたり、feedbackシンセのような使い方が可能です。

ただし、feedbackは失敗すると過大入力になってしまい、最悪スパコやsoundflowerが落ちるので、ライブでの使用は十分に実験してから自己責任で使ってください。

distを控えめ(0.01-0.1あたり)に設定した上で、echoやformantのエフェクトをかけると結構面白い効果を得る事ができました。


この記事が気に入ったらサポートをしてみませんか?