Mercurial > hg > Members > masakoha > seminar
changeset 7:0db5a6582d52
fix
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 16 Sep 2014 19:05:55 +0900 |
parents | 379b91b4f7b7 |
children | 92b977f183b8 |
files | Sep16th.html |
diffstat | 1 files changed, 51 insertions(+), 234 deletions(-) [+] |
line wrap: on
line diff
--- a/Sep16th.html Tue Sep 16 16:06:57 2014 +0900 +++ b/Sep16th.html Tue Sep 16 19:05:55 2014 +0900 @@ -2,7 +2,7 @@ <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> - <title>26th,August</title> + <title>seminar</title> <!-- Notes on CSS media types used: @@ -97,13 +97,13 @@ <table width="90%" height="90%" border="0" align="center"> <tr> <td><div align="center"> - <h1>マルチコアソフトウェアシンセサイザー(仮)</h1> + <h1>Cerium による正規表現の実装</h1> </div> </td> </tr> <tr> <td><div align="right"> - <name>Masataka Kohagura 26th June,2014</name> + <name>Masataka Kohagura 16th September,2014</name> </div></td> </tr> </tr> @@ -113,101 +113,69 @@ <div id="cover"> <h1>研究目的</h1> - <p> - コンピュータ上で作曲を行うときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 - </p> - <p> - ソフトシンセのマルチコア化は進んでいる。しかし、現状としてはマルチコアで駆動しているわけではなく、1つのコアだけに負荷がかかるものが多い。 - </p> - <p> - 作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。 - また、オシレーターの複数使用や Filter による波形編集を重ねると計算量が大きくなっていくため、ソフトシンセ単体の動作を軽量化する必要がある。<br> - </p> - <p> - また、実用的なシンセサイザーは入力に対するレスポンスが必須となるので、計算量が多くなっても入力から出力までの遅延を抑える必要がある。 - </p> - <p> - (軽量化しながら音を良くしたいが、抽象的すぎて評価する点がみつけづらい)<br> - 音がいいって何??<br> - 評価どうするの?? - </p> + <ul> + <li> + 当研究室では並列プログラミングフレームワーク Cerium にてプログラミングを行っている。 + </li> + <li> + Cerium で正規表現を実装して、既存の物よりも高速化する。 + </li> + <li> + Cerium が並列処理にとって有用であることを証明する。 + </li> + </ul> </div> <div id="cover"> - <h1>近況報告</h1> - <ul> - <li> - ゲームクリエイター就職大作戦に参加(-9/21) - </li> - <li> - Unreal Engine 4 の書籍を Epic 社河崎さんから頂きました。 - </li> - <li> - Unreal Engine 4 の動作環境について色々調べてみた。 - </li> - </ul> + <h1>これからやるべきこと</h1> + <ul> + <li> + 様々な grep を調べる(実装、速度 etc...) + </li> + <li> + grep の実装 + </li> + </ul> </div> <div id="cover"> - <h1>近況報告</h1> - <ul> - <li> - ゲームクリエイター就職大作戦に参加(-9/21) - </li> - <li> - Unreal Engine 4 の書籍を Epic 社河崎さんから頂きました。 - </li> - <li> - Unreal Engine 4 の動作環境について色々調べてみた。 - </li> - </ul> + <h1>様々な grep</h1> + <ul> + <li> + BSD grep (Mac OSX default) + </li> + <li> + GNU grep (ggrep) + </li> + </ul> </div> + <div id="cover"> - <h1>今週までの作業</h1> + <h1>とりあえず</h1> + <ul> + <li> + a*b を実装する。 + </li> + <li> + マッチングした行を結果として返す。 + </li> + </ul> + </div> + + +<!-- + <div id="cover"> + <h1>prog</h1> <ul> <li> - Cerium にて SDL_audio.h を使用して音を出せるようにした。(単音出力) - </li> - <li> - 三角波、矩形波の実装 - </li> - <li> - MIDI コントローラーからの入力を受け付ける(途中) - </li> - </ul> - </div> - <div id="cover"> - <h1>SDL</h1> - <ul> - <li> - SDL : Simple DirectMedia Layer<br> - マルチメディア関係のソフトウェアを開発するための、グラフィックやサウンド等の API を提供するライブラリ。 </li> - <li> - Windows, Mac OS X, Linux, iOS, Android をサポート - </li> - <li> - C,C++<br> - C#,Python もいけるみたい?? - </li> - </ul> - </div> - <div id="cover"> - <h1>SDL_audio.h(1/3)</h1> - <ul> - <li> - SDL に含まれている、オーディオ回りのライブラリ - </li> - <li> - オーディオ情報(音量、ステレオ、sampling rateなど)を SDL_AudioSpec(構造体)として持っている。 - </li> <pre> <code> typedef struct SDL_AudioSpec { - int freq; /** DSP frequency -- samples per second */ + int freq; /** DSP frequency samples per second */ Uint16 format; /** Audio data format */ Uint8 channels; /** Number of channels: 1 mono, 2 stereo */ Uint8 silence; /** Audio buffer silence value (calculated) */ @@ -220,161 +188,10 @@ </code> </ul> </pre> - </div> - - <div id="cover"> - <h1>SDL_audio.h(2/3)</h1> - <ul> - <li> - SDL_AudioSpec を SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);という関数に渡すことによって、音が再生される。 - </li> - <pre> - <code> -SDL_AudioSpec Desired; -SDL_AudioSpec Obtained; - -int main(int argc, char *argv[]) -{ - printf("Freq:%f\n",Frequency); - Desired.freq= 44100; /* Sampling rate: 44100Hz */ - Desired.format= AUDIO_S16LSB; /* 16-bit signed audio */ - Desired.channels= 1; /* Mono */ - Desired.samples= 8192; /* Buffer size: 8K = 0.37 sec. */ - Desired.callback= callback; - Desired.userdata= NULL; - - SDL_OpenAudio(&Desired, &Obtained); - SDL_PauseAudio(0); - SDL_Delay(200); - SDL_Quit(); - return 0; -} - </code> - </ul> -</pre> - </div> - - <div id="cover"> - <h1>SDL_audio.h(3/3)</h1> - <ul> - <li> - SDL_AudioSpecにSDLCALL 関数が含まれている。ここで、音の波形を生成しておき、 SDL_OpenAudioにて音を再生する。 - </li> - <pre> - <code> -void callback(void *userdata,Uint8 *stream,int len){ - - AudioDataPtr au = (AudioData*)userdata; - - char *waveform_name = au->waveform_name; - double frequency = au->frequency; - int volume = au->volume; - static unsigned int step = 0; - Uint16 *frames = (Uint16 *) stream; - int framesize = len / 2; - - if(strcmp(waveform_name, "tri")){ - - for (int i = 0; i < framesize ; i++, step++){ - frames[i] = tri(step * frequency / Obtained.freq) * volume ; - } - - }else if(strcmp(waveform_name, "sqr")){ - - for (int i = 0; i < framesize ; i++, step++){ - frames[i] = square(step * frequency / Obtained.freq) * volume ; - } - - } -} - </code> - </ul> -</pre> + <img src="./images/sqrWave.png" width="50%" height=""> </div> - <div id="cover"> - <h1>波形の生成</h1> - - <p>矩形波</p> - <pre> - <code> -double -square(double t){ - double decimal_part = t - abs(t); - return decimal_part < 0.5 ? 1 : -1; -} - </code> - </pre> - - <img src="./images/sqrWave.png" width="50%" height=""> - - </div> - - - - <div id="cover"> - <h1>波形の生成</h1> - - <p>三角波</p> - - <pre> - <code> -double -tri(double t){ - - double decimal_part = t - abs(t); - - if(abs(t) % 2 != 0){ - return decimal_part < 0.5 ? decimal_part : 1 - decimal_part; - }else{ - return decimal_part < 0.5 ? -decimal_part : 1 - decimal_part; - } -} - - </code> - </pre> - - <img src="./images/triWave.png" width="50%" height=""> - - </div> - - - - <div id="cover"> - <h1>波形の生成</h1> - - <p>のこぎり波</p> - <pre> - <code> -double -saw(double t) -{ - double decimal_part = t - abs(t); - return decimal_part; -} - </code> - </pre> - - <img src="./images/sawWave.png" width="50%" height=""> - </div> - - - - <div id="cover"> - <h1>いましていること</h1> - <ul> - <li> - MIDI I/O は PortMidi を使用して実装中である。 - </li> - <li> - Multi Platform 対応、 - Windows (MME)、 - Mac (CoreMIDI)、 - Linux (ALSA) - </li> - </ul> -</pre> - </div> +--> </div> <!-- presentation --> </body>