今日
事務処理と論文書き.
特筆すべきことはなし.
午前中ゼミ.午後からはずっと論文書き.
ストーリーはまとまってきているものの,コレで本当に査読者を納得させることが出来るかどうか.
実際に楽器作る人にはものすごく褒められているのだが,それが工学系の査読者に通じるかは,また別の話.
SuperColliderのServerOptionをGUIで設定する方法.(tn8のSuperColliderブログより)
これはそのうち標準になってもらわないと困るな.
夕方にSuperColliderの授業のため,授業準備.
今日はクロスシンセシスなのだが,相変わらずSuperColliderでの記述が簡単すぎて泣けてくる.
リアルタイムで入力を取りながら,クロスシンセシスをかけるのを,SynthDefを使って記述した例.
////// リアルタイム録音とCrossSynthesis 直接playではなくSynthDefにまとめてみる ( f = Buffer.alloc(s, 44100 * 1.0, 1); // ノコギリ波を録音するバッファ 1秒分 g = Buffer.alloc(s, 44100 * 1.0, 1); // マイクインプットを録音するバッファ 1秒分 h = Buffer.alloc(s, 1024, 1); //FFT用のバッファその1 i = Buffer.alloc(s, 1024, 1); //FFT用のバッファその2 SynthDef(\sawBuf, {arg out=0, bufNum=0; // ノコギリ波を録音する var inSnd; inSnd = Saw.ar(440); RecordBuf.ar(inSnd, bufNum); }).play(s, [\out, 0, \bufNum, f.bufnum]); SynthDef(\recordBuf,{ arg out=0, bufNum=0; // マイクインプットをバッファに録音するSynthDef var inSnd; inSnd = AudioIn.ar(1); RecordBuf.ar(inSnd, bufNum); }).play(s, [\out, 0, \bufNum, g.bufnum]); ) ( SynthDef(\sawVocorder, { arg out=0, bufNum1=0, bufNum2=1, fftBufNum1=2, fftBufNum2=3; var inSnd1, chain1, inSnd2, chain2, outSnd, multChain; inSnd1 = PlayBuf.ar(1, bufNum1, BufRateScale.kr(bufNum1), loop: 1); inSnd2 = PlayBuf.ar(1, bufNum2, BufRateScale.kr(bufNum2), loop: 1); chain1 = FFT(fftBufNum1, inSnd1); chain2 = FFT(fftBufNum2, inSnd2); multChain = PV_Mul(chain1, chain2); outSnd = IFFT(multChain); Out.ar([0, 1], outSnd); }).play(s, [\out, 0, \bufNum1, f.bufnum, \bufNum2, g.bufnum, \fftBufNum1, h.bufnum, \fftBufNum2, i.bufnum]); ) ( f.free; g.free; h.free; i.free; )
調子悪い.
今日は実験.このテーマで何をどう実験すれば論文として正しいのか,正直自分でもよくわかってない.
というのも「素人にも使える楽器」がテーマではないからだ.
「素人にも使える楽器」をテーマにするのが一般的な工学の研究だが,「より良い音楽を求めて行くための楽器」でないと,自分はそれだけでは満足できない訳で.
一応工学的な実験を一つ盛り込んではみたものの,それが意味があるのかはよく分からないが…….
夕方から授業のため,授業準備.
夕方授業.
夜は土日から引き続き翌日のための実験準備……のつもりが,やたら疲れてたのかすぐに沈没.
今日授業でやったけど,Processing.jsはやっぱりすげぇ強い.
Processingで作っておいて,そのまま持って行けば使えるという使い勝手の良さに加え,Flashが動かないiPhoneやiPadでも簡単にインタラクティブなコンテンツを作れる.