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のエフェクトをかけると結構面白い効果を得る事ができました。
この記事が気に入ったらサポートをしてみませんか?