研究について 大まかなテーマ
音楽への新しい入口を探す
勉強中のもの
言語
・C++(動作速度的にこれが一番理想的。エラー吐きすぎて死ねる)
・JAVA(リアルタイム操作に問題あり) ・C#(調べてるだけ。C++より理解しやすそうなイメージ。.netでのフォームアプリケーションが作りやすそう) その他 ・Unity(3DゲームやインタラクティブコンテンツのIDE。FPSが好きで自分でも作れそうなことが分かり歓喜)
研究の流れ
①音の加工、編集についての手法 ・リバーブやディストーションを初め様々なエフェクトのアルゴリズムについて理解を深める wavデータが一番扱いやすいため、wavデータを加工していく wavデータの大まかな構造 ①チャンネル数(モノラル:1 ステレオ:2) ②サンプリングレート(44.1khzなら44100。オーディオデータの場合44.1khzが一般的。) ③ビット数(16bitなら16。CDの一般的フォーマットは16bit。24bitで取ることもある。) メイン→④波形データ(実際の音となるデータが格納されている) ※波形データをbyte型で取ると算術演算子が使えなくなるためdouble型の配列で取る。 ・ミックス、マスタリングにおけるダイナミクスの調整方法 実際のオーディオデータの音量(db)と人間が感覚的に聞こえる音量(db)には差異がある。 レコーディングエンジニアやマスタリングエンジニアはこの差異を少なくし、ユーザーがより音圧の高い音楽が聞けるように調整している。
どうすれば音圧が上がるのか。 単純に音量があげただけではピークに達し音が割れてしまいます。いわゆる歪みというものが発生するが、マスタリング時に歪みが発生したのでは 話にならない。答えは時間軸上における波形の面積の平均値(RMS値)を上げることである。RMS値の求め方方については以下のURLを参照。 → http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1359701628 RMSの上げ方についてはいろいろと方法があるが、基本的には各楽器のメインとなる周波数帯域以外をバッサリとカットし、 コンプで十分に音圧を各トラックごとに稼いで上げることが大切である。(マルチバンドコンプレッサーを使っても良い。) →ピークに達してしまう成分をできるだけ減らし、RMS値と音量レベルをできるだけ近づける。
・さまざまな入力装置とシンセサイザとの組み合わせ Kinektを用いて動きを感知し、フィルターなど様々なエフェクトをコントロールするシンセなど。
②音楽アプリケーションの開発(Android)
Androidにおける音楽アプリケーションの数はiPhoneと比べ少ない傾向にある→前述の処理速度の問題のため JNIを用いてネイティブコードを使用すればネイティブコードを使用できる。→処理速度の向上 AndroidにおいてはAndroid NDKを使ってみる。
勉強中のため書く事が他に無かった・・・・。
③その他
Unityで3Dオブジェクトを動かす。FPSが好きなのでFPSが作れたらなー、と
作曲技術の向上(いい曲作りたい。)