2016/07/26(Tue)angelic rays (Kanonより残光)

2016/07/26 22:40 音楽::リミックス つーさ

原曲には勝てない。


MP3(5.22MB) / SMF(66KB)

2010年に作った angelic rays のトラックの音篭もりがなんとなく気になってたので、
ミキサーを色々いじって録音し直した後に、Stereo Tools 通した

原曲出展: Key / Kanon より 残光
使用機材: YAMAHA MU2000 EX + PLG-150PF

201607262310.png

2016/07/18(Mon)双2次フィルタでLPF (他)

LPFがほしくて。

工学部だけど、アナログな信号処理とかぜんぜん勉強したことなくて、
解析学とかもまったく苦手だった情報系出身なので、
なんかLPFのサンプルプログラムとか見ても、パラメータをどう求めればいいかよくわかんなくて、
つまりどうすれば目的の関数が得られるだってばよ? 状態だったんだけど、

色々情報を探してさまよううちに↓のページを見つけて
http://www.g200kg.com/jp/docs/makingvst/04.html

RBJ Audio-EQ-Cookbook っていう つよい文書があって、つまりこれでLPFが作れるってことらしい。
理解度はやはりイマイチだけど、とりあえず低音が取り出せるようになった。
リンク先を見るに、HPFとかBPF、EQとかも作れるっぽい。便利。
今回は目的が別のところにあるので、勉強はここまでにして先に進めよう。

以下、とりあえず試したくて即席で書いたソース。

続きを読む

2016/07/13(Wed)ゆかたまつり見てきた

去る7月10日、広島大学の夏季大学祭である ゆかたまつり に行ってきた。
ゆかたまつりの日はいつも天気悪いのに、珍しくすごく晴れてた。
が、やはりじめじめもしててちょーあつかった。

実際のところ自分がもと在籍してたサークルであるGSD 以外、
全然見てなくて、ゲーム展の様子を2時間くらいずっと眺めていた。結構不審者だな。

3階の奥地という悪立地にも関わらず、お客さん結構入ってて、待ち時間が結構あった。
今、部員は20人くらいいるらしいからタイトル20本くらい出てるかと思ってたけど、さすがにそんなことはなかった。
自分たちの頃はUnityはなくて、C#でGameSDKを作って使ってて、それをサークルのメンバーで共有してた。
熱意もあったと思うけど、学祭といえば1人1本! だったので、今振り返ってみるとこれは結構生産性はよかったのだなぁ……。
その後の予定もあってあんまり時間がなかったので、大学祭も楽しみにしつつ、昼過ぎには退散してしまったが、
クオリティは粗削りながら各人の「好きなもの」「作りたいもの」が表現されている様も見れて濃ゆい展示だったと思う。
謎解き面白かった。

人にはそれぞれペースがあるからと、自分には言い聞かせつつ、現役生にはどうしても期待してしまう、
はやる気持ちを抑えられない自分も確実にいて、なんか、これはこれで自分にとって刺激になった。。
半面、寝不足もあって、あんまりまともな会話もできなくて、
現役には要らぬ気を使わせてしまっただけになってしまったと思う。
くそOBだな。すまなんだ。

展示を後にして、次の予定のため広島市内に移動しながら、自分たちが活動してたあのころに思いをはせていた。
まつりの1週間前の土日と、当日までの睡眠不足になりながら出展作品を作っていたあの頃。
ゆかたが終わると次は夏コミに一直線だった。毎年、アツかったなぁ。

こういう場で展示して、お客さんの様子を見て、何を思うかで、
クリエイターになるかエンターテイナーになるかが分かれていくのかなと、最近思う。
自分はエンターテイナーになりたくなって、今の仕事をしてるけど、
クリエイターになりたいと思ってたとしたら、きっと同人のフィールドにいたかもなーって。

昔語りばっかりで、ああ、わたしもとしをとってしまったんだなって思った。
そういう大人になりたくないと思っていたわけではないけれど、未来に夢見続ける大人でありたい。

久しぶりになんか、創作意欲がわいてて、しかし体力が……。
Quest of Feena は完成する日が来るのだろうか。
To be continued...

2016/07/09(Sat)CYGWIN x64にarm-none-linux-gnueabi-gccクロスコンパイラとdistcc 3.1で快適ビルド環境を用意する

2016/07/01(Fri)GTmetrixびふぉーあふたー

2016/07/01 2:03 サイト運営 つーさ

GTmetrix っていうサイトで、PageSpeed ScoreとYSlow Scoreをランク付けしてくれるらしいのでやってみた。

ばーん。

gtmetrix_before.png

うわっ……私の(サイトの)評価、低すぎ?

説明書きを読んで、簡単にできそうなやつを試した。
具体的には、
jsとcssとはgzip encodingするようにした。
画像とかのリソース類にはExpiresヘッダをつけるようにした。
アイコンにしか使ってない画像は実際の表示サイズx2にリサイズした。

ばーん。

gtmetrix_after.png

なるほどなー。

2016/06/23(Thr)WinampのDSPプラグインをC#から使う

2016/06/23 0:43 プログラミング::C# つーさ

Winamp をしっていますか……。

DSPプラグインの作り方は、WinampのPluginのSDKが公開されてるので、
それとおんなじ様に呼んであげれば、できる? と思ったのと、
Winampのプラグインって関数ポインタを内部の構造体に入れてその構造体へのポインタを返してくるような形してて、
それらのAPIのP/Invoke・マーシャリングの仕方に興味がわいたのでやってみてた。

標準でついてるプラグイン dsp_sps.dll だけは、ロードしたとたんに落ちちゃう。実装を追いかけて調べてみたところ、
Winampには親ウィンドウにWM_USERを投げて関数ポインタの詰まった構造体をもらって、そこからいろんなAPIを呼ぶ機能があることと、
その子には「非対応だぜエラー!」値を返しても、それをそのままポインタとしてメモリアクセスして死んじゃうらしいことがわかった。
このAPI群を実装する気はまったく起こらないので、とりあえずいったんあきらめていつもの SA Stereo Tool を動かしてみた。

インストール済みのプラグインの名前が取得できた。SA Stereo Tool から音が出た。

satoolssharp.png

ソース
https://github.com/ttsuki/ttsuki/blob/e421ad0a3f6e1a51f72aa2d58b231263c7f87d2d/DllPInvoke/WinampDspPlugin.cs
関数ポインタを入れた構造体を返してくるようなAPIはあんまりないけど、マーシャリングしたい場合は、
関数ポインタに戻り値・引数・Calling Conventionもあわせた delegate を宣言して、
それを構造体のメンバとして宣言した状態で、マーシャリングすれば、勝手に関数ポインタからデリゲートを作ってくれる。
が、その方法だと、どうもNULLチェックができないっぽい? ので、今回は構造体のメンバはIntPtrとして受け取った後に、
関数ポインタをラップするデリゲートを手で作っている。

使い道……?
音ゲーとか作ったときに、Winampのプラグインを(VSTがわりに)エフェクターとして使えるかもしれないなとは思う。
SA Toolsなんかは、ヘボいスピーカでもそれなりに映えるような音に変えてくれるし。
レイテンシの問題はあって、それを回避するには、鳴らした場合の音と鳴らしてない場合の音を両方作っとくみたいな手もあるんだけど、
そもそもWinampのDSPは、(DLLファイルを物理的に複製でもしない限り)設計からして複数インスタンス生成できないし、
フィードバックがあるエフェクタは内部状態を再現するのが無理ゲーなので、1インスタンスでちょっと前に戻ることもできなくて、
リアルタイムにミックスする必要のあるゲームアプリケーション*1では、いまいち使えないかも。

他、自作アプリからDSPがドライブできれば、
自分のミュージックライブラリの中の曲を、外出先の自分の携帯電話から好みのDSP通して聴けるのでは、というのは、ちょっと思う。
上で試してるSA Stereo Toolの場合は、パイプで波形処理してくれるコマンドラインツールがあるのでそれを使った方がいいんだけど。
最近コメントがついてた、HSPで作ってたパイプ使ったプロセス間通信のラッパーみたいなのが要る。

余談だけど、コミットと本記事の公開に時差があるのは
ソースコミットの後に記事書こうと思って先のスクリーンショットをブログにあげたらなぜかサムネイルが作れなくて、
調べたらブログを動かしてるサーバのImageMagickのバージョンをあげたときから PNG 読めなくなってたらしく、
ここ2日ばかりあれこれ苦労して、ようやく再インストールできたからである。。
nice make 中に突然再起動しはじめたりとかして、ちょっとこのサーバもなんとかしたい。

あと、最近このブログがページの表示に2秒とかかかる激重状態になってたのは、
サーバが貧弱だからかなーとか思ってたけどいくらなんでもと思って調べたら、
データディレクトリとキャッシュディレクトリのオーナーとパーミッションがおかしいせいだった。
なおしたのでさくさく動くようになった。わーい。

ぐぅ

*1 : いわゆるキー音のある何か

OK キャンセル 確認 その他