SyntaxHighlighter

2011-08-29

KinectでFFT

注)β時代のSDKを使っていた頃の記事です。最新版では動かないと思います。。。

KinectのマイクロフォンからのデータをFFTできたら面白いかなあと思った続き。

いろいろあって、すごく時間が空いてしまったような気がするけど、とりあえず、kinectのマイクロフォンのデータを取得する関数からの出力を使って、FFTができるようになった。

いろいろ変なところもあろうが、該当部分のソースを晒してみることにした。

  • FFTの本体
const int fftLength = 1024;
byte[] rawData;
const int rawDataLength = 1024 * 2;
AForge.Math.Complex[] fftBuf;

public void doFFT(Stream audioStream)
{
  int recordLength = rawDataLength;
  while (recordLength > 0)
  {
    int count = audioStream.Read(rawData, 0, recordLength);
    recordLength -= count;
  }
  for (int i = 0; i < fftLength; i++)
  {
    fftBuf[i].Re = (rawData[2 * i + 1] << 8 | rawData[2 * i]);
    fftBuf[i].Im = 0;
  }
  AForge.Math.FourierTransform.FFT(fftBuf, AForge.Math.FourierTransform.Direction.Forward);
}
  • 使う側
using (var source = new KinectAudioSource())
 {
   source.SystemMode = SystemMode.OptibeamArrayOnly;
   using (var audioStream = source.Start())
   {
     while (true)
     {
       doFFT(audioStream);
     }
   }
}

ぶっちゃけ、これだけ。あとは枝葉末節(AForgeライブラリに関しては、以前の記事を参照のこと)。


スピードは、FFTの処理自体は付いてきてくれているはずだけど。。。この後、前回記事のように、FFTの結果をスペクトルっぽく表示しているのだけど、ちょっと遅れているように感じる。。。どこか悪いのだろうか??
あと、関数から取得できるデータって、1入力だけなのかしら。マイク4つあるはずだから、4入力取得できる方法があるのかしら(しっかりマニュアル読んでないだけだけど)。


しかし、慣れてないせいもあって、C#、というよりWindowsで図とか表示するの難しいなあ。KinectやらFFTで悩んでいる時間より、画面に図形とかを表示する方法が分からなくて悩んでいる時間のほうが長いや。。。


2011-08-21

勉強会2連戦

この土日に勉強会と言うか、カンファレンスと言うか、に連続して参加してみた。これこれ(全くアクセサビリティのない書き方。。。)。普段の会社の仕事よりも頭使ったんじゃないかなあとすら思えます。。。

どちらも、熱い内容で(天候は寒いくらいだったけど)、大いに刺激を受けました。

Javascriptが今流行ってるということで、ちゃんと勉強して、技術をキャッチアップしていく必要があるなあと改に思いました。

HTML5に関して思ったことが、まだ勧告という形で標準化されていないから様子見、ではなくて、まだ標準化に至ってないからこそ、どんどん使って広めていくべきものなのかなあと。。。多分、積極的に使用しているところはそんな心意気でやっているのかも??

技術面だけでなく、コミュニケーションとか、考え方とか、それ以外の部分も大切だなあと思う次第です。どちらか一方が欠けても駄目なんだろうなあ。。。とか言って経験とかないうちに思想とか語っても空しいだけだけど。

普段、サーバ管理とかのインフラ寄りの仕事をしている人間が、Javascriptとかの開発系のイベントに行くのは、とってもアウェー感漂って、参加している方と話す時に、話があうのかなあと尻込みしてしまうのが、いつも思うことなんだなあ。。。どうなんだろう。でも開発楽しそうなんだよねえ。。。

あとは、色々勉強会とか行くとどれも面白そうで目移りしてしまって、結局何れも中途半端になりがちなので気をつけないと。

なんかとっても日記っぽいブログになった。多分理解できる人はいない。(未来の自分も含めて)

2011-08-13

横浜トリエンナーレ

に行ってきました。暑かった。

前回(2007年?っだったけ?)に比べると、会場が集められているためかどうかは分からないが、こぢんまりした印象を受けた。ただ、個人的には、前回は全く意味が分からなくて、置いていかれている感満載だったったのに対して、今回はぶっとんてる感は小さいけど、あまりアートとか分からない自分でも楽しめました、と思います。

本展は回れたけど、特別共催部分は全く見てないので、涼しくなったらまた行こうかしら。。

2011-08-08

バイオリン発表会

8月6日にバイオリンの発表会で発表してきました。2回目です。
今年は、葉加瀬太郎のエトピリカを弾きました。会社で得意先でプレゼンしたり、普段人前で話したりとかが全くないので、かなり緊張しました。ただ、去年の足がガクブルというような最悪状況に比べれば、今年は手の震えだけで済んだので、まだましかなあ、、、と。
緊張なんて場数を踏むしかないのでしょうね。

曲自体は、最初は2ページだけの短い2分ぐらい(になるように編集された)の譜面を渡されたのですが、その後、1枚追加(アドリブ部分でこれがとっても難しかった!!)されてしまいました。。。。
そこで、何とか譜面を2枚に収めようと、MuseScoreというフリーの楽譜作成アプリを使って譜面を清書しました。このアプリ、所々バギーな部分はあるにせよ、なかなか便利で、PDFやサウンドファイルとして保存が出来ます。これをiTunesのライブラリに登録して、毎日通勤途中でイメージトレーニングしてました(保存形式にmp3もあったらより便利なのに。。。)。
クラスの人たちとあわせる時も、ピアノは弾けないけど、このサウンドファイルがあることで合わせる練習がスムーズに進めることができました。音源自体は、YouTubeとかにごまんと転がっているけど、同一のアドリブ分なんて見つからないので、重宝です。
なんかとっても現代風な練習っぽい???

ただ、過信は禁物で、本番は当然生ピアノが伴奏にありますし、弾いている人は当然人間(しかもピアノの先生)。楽譜通り弾いてたまるもんですか的なところがあったり、バイオリンを弾いている人達のレベルや曲の難易度に合わせて、スピードを変えて下さるのでした。
機械的に作った音で練習する時は、参考程度に留めよう、というのが教訓です。。。


その打ち上げの席で、ビブラートが出来るようになるにはまだ、一年くらいかかると言われてしまいました、まだ先は長い。。。
Related Posts Plugin for WordPress, Blogger...