niszetの日記

10年目エンジニアが最近勉強したことを忘れないようにメモをする

第62回 TokyoRに参加してきました。

今回で2回目の参加です。

前回よく参加したな、自分…。しかし、そういう人も参加できる懐の深さがある、TokyoRです。

はじめに

単なる日記ですが、前回のTokyoRに参加する前の自分が知っていたら良かったと思ったことを書いてみます。
私の備忘録的なものということで、正確な情報は正しいルートから得るようにしましょう。まずはGoogle Groupに登録から!

参加申し込む方法

今回のATNDはこちらでした。 atnd.org

参加するにはATNDで登録すれば良いのですが、アカウントが必要。
twitterアカウントがあれば、それを使ってログインすることが可能です。自分はそのために公開用twitterアカウント作りました。
ちなみに、セキココというサービスがあり、それを使うと「この席にいるのは私です」とアピールできます。twitterアカウントと連動しているとフォローしたり返されたりします。
別にセキココしなくてはならないわけではないので、使うかどうかはお好きなように~

このページにある、Google Groupにも登録しておきましょう。次回のtokyoRの告知なども行われます。

ただ、twitterの里さんのアカウント@yokkunsをフォローしておくと、抜けがなくて良いかもです。大体のRおじさんがATND作成の通知をRTしている気がするので、どなたかをフォローしていたら気づく気がしますけど。

今回はキャンセル数が51もあるようです。当初の半分くらいの人数です。
なので、補欠として登録していても、ひょっとしたら当日には参加できるかもしれないので注意です。
補欠で行けなさそうだったから予定入れちゃった…な方は早めにキャンセルしておいた方が良いかもです。

行けないことがわかったら、早めにキャンセルを入れましょう~

集合場所とか

ATNDの方に書かれていますが、運営の方が30分前くらいから何回かピックアップしに来ますので、会場へ続くであろうエレベータ付近にたむろしていると良いのです。
これも書かれていますが、遅れて参加の場合、到着したらtwitter#tokyorとタグをつけて「到着しました」的なことを呟けば、運営さんが拾いに来てくれます。安心ですね。

雰囲気

初参加の方が三割~半分弱、という感じで常連さん、強者さんが2割くらい?かな。TokyoRは割と何でもありということで、気楽に参加すると良いのです。

@kashitanさんがtogetterにまとめてくださってます。当日の雰囲気はこちらでわかるかも。 togetter.com

資料のありか

これってどこかにまとまっているんでしたっけ?
togetterやtokyorタグでも探せますが、自分向けにリンク集作っておきます。

入門編

R言語データマイニング基礎

www.slideshare.net

整然データって何?

speakerdeck.com

初心者セッション2のもとになった記事はこちらで読めるようです。

book.mynavi.jp

応用編

mxnetで系列パターンマイニング

資料はまだないかと思います。セッション中、まだ結果が出きっていないというお話だったと思うので。

(タイトルメモするの忘れました…)

こちらもなさそうな。

{doAzureParallel}でお手軽クラウド並列処理

speakerdeck.com

LT

word prediction

speakerdeck.com

webshotパッケージでWebをキャプチャ

…の元になっている記事ですね。 webshotパッケージ

HijiyamaR

同日、広島市内の比治山大学で開催されたHijiyamaRの資料は下記にまとまっているそうです。 Hijiyama.R #6 発表関連資料

こちらの主催のkazutanさんはこれをやりつつ、TokyoRのLTに参加。凄すぎです…。

おわりに

そんなわけで、今回も楽しいTokyoRでした。ありがとうございました。
今回はなぜか2次回まで参加してしまいました。良かったのかな…

なんか勢いで書いてみましたが、何か問題あればご指摘ご連絡いただければと思います。twitterの方でも。

ArduinoとRを結びつけるものを探す

要するに:パッケージないかな?

探しました。
日本語だと、ここでpython経由でRに渡しています。

d.hatena.ne.jp

英語で調べると、ここがRでそのまま読んでいるような。ちょっと試してみようかな…

www.magesblog.com

githubに公開してみる

パッケージ化してみる。

この本を頼りに、パッケージ化してみました。

www.oreilly.co.jp

しかし、読んでから日が開いていたので、肝心のパッケージ化するコマンドがわからなかった。RStudioツールバーのBuildから、Buil&Reloadを実行すればよかったのですね。
こちらの記事のシリーズなどをざっと読ませていただきました。

qiita.com

yutaniさんにもアドバイスいただきました。いつもありがとうございます。。

githubに上げてみる。

しかし、gitの使いかたをすっかり忘れている。

gitまわりはこちら、 qiita.com

github上げる段階で詰まったところはこちらも参考にしました。 devtools: Rパッケージ作成支援 - Heavy Watal

remoteまわりはこちらも見つつでした。remote系は慣れないなぁ www.backlog.jp

アップしたもの

これです(小声)

github.com

注意点。

read_wavのとりあえず動く版、read_smfの途中でほったらかしてる版が入っています。
ぶっちゃけ、waveをRで扱いたいだけならば、tuneRとseewaveで良いのです。私はCsoundで生成したwavファイルが、ヘッダ中でサイズ0になっていて触れなかったので、勉強も兼ねて作ってみたものなので…

このリポジトリは作業用なのでいずれ消しちゃう気がします。

TODO

マニュアルもコメントもないし、作業内容そのままな感じですね…。時期尚早感ある。 とりあえず、大体の関数を隠しました。0.0.0.9001なので仕方なし。

tuneRとseewaveについては、

ここ
CRAN - Package tuneR と、

ここ
CRAN - Package seewave です。

Rで音声解析している方々(先行研究?調査…)

探すとちらほらありました。今後のためにリンク集…。

qiita.com

d.hatena.ne.jp

pingpongpangpong.blogspot.jp

Rによる信号処理tamosblog.wordpress.com

R Note/音響解析データの統計解析 - Miyazawa’s Pukiwiki

こちらは奥村先生のページ。

こちらはpdfですね。 http://ornithology.jp/katsudo/Letter/no32/files/gakko-2010-text.pdf

音声解析等々はRに限定しなければもっとあると思います。が、自分、音声は別にいいかな…音楽作りたいので…

そんなわけで、githubにupするデビューを果たしたのでした。ちゃんと完成させよう。

Arduinoを始めました。

Arduinoをはじめよう

ハードウェアも触らなくては…と思いまして、Arduinoをはじめることにしました。

www.oreilly.co.jp

Amazonに、Arduinoをはじめように書かれているプログラムを実行するために必要な部品セットがある程度そろったキットがあったのでこちらを使って試しています。

Amazon CAPTCHA

とりあえず4章まで終了しました。思った以上に簡単に試せて良いですね。
自分なりの改良は、ひとまず全部サンプルをテストしてからかな。

Csoundでエイリアシングの確認

久々にCsound小ネタ

サンプリング定理とエイリアシングについて、Csoundで実際に音を出して確認してみます。
サンプリング定理とエイリアシングについては、TIの記事があったのでとりあえず貼っておきますね。

サンプリング定理/エイリアシング - DSP の基礎・トレーニング - TI

書いてみる。

44.1kHzのサンプリング周波数なので、折り返し前を440Hzと設定した場合、行って帰って0Hzに戻る手前440Hzを引くので、

44100Hz*2-440Hz = 87760Hz で同じ音になるはずです。
以前のサンプルコード中のinstrを少し修正し、パラメータとして周波数を受け取れるようにしています(p4で4番目の引数という意味らしい)

<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>
instr 1
aSin      poscil    0dbfs/4, p4
          out       aSin
endin

</CsInstruments>
<CsScore>
i 1 0 1 87760
i 1 2 1 440
</CsScore>
</CsoundSynthesizer>

いかがでしょう?確かに同じ音がしてる気がしますね。しかし本当に87.76kHzが出力されているのでしょうか…?確かめようがないですねぇ。

そして、read_wavで読んでplotしたらread_wavのバグに気づきました…修正修正…

read_smfを作ります。

read_wavも完成していないのに…

まぁ、いつかは完成するさ…

さて、いつものように先人のお知恵を拝借なのです。ありがとうございます。しかし、ちゃんと仕様の原著を読む癖をつけないといけませんね。すぐgoogleで検索しちゃう。。。

maruyama.breadfish.jp

sites.google.com

意外?とwikipediaも情報量が多い スタンダードMIDIファイル - Wikipedia

SMFの初歩

sites.google.com

DTM技術情報 - 2.MIDIコントロールチェンジ一覧 | g200kg Music & Software

MIDI講座

MIDI(SMF)の作り方

現状

骨格だけ作って、あとは時間のあるときに追加できるようにしているので、時間さえあれば出来そうな感触です。SMFは命令の数が多いので、なかなか時間かかりそう。

まぁ、まずは動くものを…というところで。

ggplot2に自作geomを作る方に一旦時間を割く予定です(smf -> 楽譜や周波数-時間プロット向きなもの、スミスチャートなどを作っておきたいのです。geomちょっと難しい…。)

平日はしばらくはあまり時間がとれないので、土日にコツコツやっていくのです。。。

rsoundに機能を追加するときに参照する予定のメモ

rsoundがwavファイルを出力するために、csoundの機能を理解する

ということで、read_wavは細かいところを無視すれば一旦完成ということで、こんどはrsoundにwav出力機能を入れていきたいです。

read_wavはrsoundと一旦分離して、rsound_helper的な感じで、こっちだけで公開できるようにしておこうかなと思ってます。rcppの勉強に時間がかかりそうなので。

rsoundからcsoundを呼ぶ

rcppで書かれたソースを読むと、中ではこんな感じでcsound側を呼んでいるようですね…。

  csound->SetOption((char*) options.get_cstring());

今、自分のPCではCsoundはc:/の直下に置いてあるので

C:/Csound6_x64/include/csound/csound.hpp

を見てみる。
すると、以下のようになっています。

  virtual int SetOption(char *option)
  {
   return csoundSetOption(csound, option);
  }

結局、csound.hpp は csound.hを呼び出しているだけのようなので、調べるときは上記の例ならcsoundSetOptionの方を調べる必要がある。

探す場所は下記である。

Csound API: Main Page

ちなみに、上で上げたcsoundSetOptionは、こちらに書いてある。

Csound API: Attributes

あとは頑張って書いてデバッグして…である。コツコツ行きましょう。