ライトニングトーク
自己紹介所属:Hokkaido.pmTwitterID:@techno_neko職種:組み込み系
背伸びした LT は疲れました。
そろそろ perl で LT がしたいデス。
今日は、等身大の LT をお送ります。
等身大って?
等身大って?自分らしさって?
TwitterID にtechno が入ってるくらいテクノミュージックが好き!
今日は、perl で音楽やります!
題して、perl meets beats!
でも、音楽ソフト作るとかムリ!
WAV ファイルを書き出そう!
WAV ファイルのフォーマット
WAV ファイルのフォーマットGoogle で検索がオススメ。
WAV ファイルのフォーマット・サンプリング周波数・量子化ビット数・音の長さ・モノラル or ステレオ
WAV ファイルのフォーマット・サンプリング周波数・量子化ビット数・音の長さ・モノラル or ステレオ あとは、書き出すだけ!
例)ラの音 (440Hz) を出す サンプリング周波数 : 44,100Hz 量子化ビット数 : 8(-128〜+127) 音の長さ : 1 秒 モノラル       44,100 / 440          1 周期  データの長さ = サ...
perl meets beats!          こんな感じで宣言して、beats を WAV ファイルに書き出したい!my $bpm = 138;my $beats = {   kick => [ 1,0,0,0,1,0,0,0,1,0,...
perl meets beats!波形を作る ・のこぎり波 ・sin 波 ・矩形波 ・ノイズ
perl meets beats!単発の波形を作る my $wav_kick = create_oneshot( 50, 0.1, $osc_saw ); my $wav_snare = create_oneshot( 1000, 0.05, ...
perl meets beats!ビートを刻むmy $ch_kick = to_wav( $beats->{kick}, $wav_kick );my $ch_snare = to_wav( $beats->{snare}, $wav_snar...
合体
perl meets beats!波形の合成my $val = $ch_kick->[$i];$val   += $ch_snare->[$i] * 0.8;$val   += $ch_hat->[$i] * 0.4;       これがシンセ...
まとめ
まとめ・比較的まともな音が出せる
まとめ・比較的まともな音が出せる・音楽を perl で生成できる
まとめ・比較的まともな音が出せる・音楽を perl で生成できる・デジタル信号処理が学べる
まとめ・比較的まともな音が出せる・音楽を perl で生成できる・デジタル信号処理が学べるもし、興味を持っていただけたなら・・・
続きは Web で!https://github.com/techno-cat/NeSynth/
ご清聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

テーマ「perl meets beats」

1,139 views
1,057 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,139
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

テーマ「perl meets beats」

  1. 1. ライトニングトーク
  2. 2. 自己紹介所属:Hokkaido.pmTwitterID:@techno_neko職種:組み込み系
  3. 3. 背伸びした LT は疲れました。
  4. 4. そろそろ perl で LT がしたいデス。
  5. 5. 今日は、等身大の LT をお送ります。
  6. 6. 等身大って?
  7. 7. 等身大って?自分らしさって?
  8. 8. TwitterID にtechno が入ってるくらいテクノミュージックが好き!
  9. 9. 今日は、perl で音楽やります!
  10. 10. 題して、perl meets beats!
  11. 11. でも、音楽ソフト作るとかムリ!
  12. 12. WAV ファイルを書き出そう!
  13. 13. WAV ファイルのフォーマット
  14. 14. WAV ファイルのフォーマットGoogle で検索がオススメ。
  15. 15. WAV ファイルのフォーマット・サンプリング周波数・量子化ビット数・音の長さ・モノラル or ステレオ
  16. 16. WAV ファイルのフォーマット・サンプリング周波数・量子化ビット数・音の長さ・モノラル or ステレオ あとは、書き出すだけ!
  17. 17. 例)ラの音 (440Hz) を出す サンプリング周波数 : 44,100Hz 量子化ビット数 : 8(-128〜+127) 音の長さ : 1 秒 モノラル 44,100 / 440 1 周期 データの長さ = サンプリング周波数 × 音の長さ
  18. 18. perl meets beats! こんな感じで宣言して、beats を WAV ファイルに書き出したい!my $bpm = 138;my $beats = { kick => [ 1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 ], snare => [ 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 ], hat => [ 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 ]};
  19. 19. perl meets beats!波形を作る ・のこぎり波 ・sin 波 ・矩形波 ・ノイズ
  20. 20. perl meets beats!単発の波形を作る my $wav_kick = create_oneshot( 50, 0.1, $osc_saw ); my $wav_snare = create_oneshot( 1000, 0.05, $osc_noise ); my $wav_hat = create_oneshot( 5000, 0.05, $osc_noise );キック、スネア、ハイハットを用意しました。
  21. 21. perl meets beats!ビートを刻むmy $ch_kick = to_wav( $beats->{kick}, $wav_kick );my $ch_snare = to_wav( $beats->{snare}, $wav_snare );my $ch_hat = to_wav( $beats->{hat}, $wav_hat ); あとは、一緒に鳴らすだけ!
  22. 22. 合体
  23. 23. perl meets beats!波形の合成my $val = $ch_kick->[$i];$val += $ch_snare->[$i] * 0.8;$val += $ch_hat->[$i] * 0.4; これがシンセサイズだ!
  24. 24. まとめ
  25. 25. まとめ・比較的まともな音が出せる
  26. 26. まとめ・比較的まともな音が出せる・音楽を perl で生成できる
  27. 27. まとめ・比較的まともな音が出せる・音楽を perl で生成できる・デジタル信号処理が学べる
  28. 28. まとめ・比較的まともな音が出せる・音楽を perl で生成できる・デジタル信号処理が学べるもし、興味を持っていただけたなら・・・
  29. 29. 続きは Web で!https://github.com/techno-cat/NeSynth/
  30. 30. ご清聴ありがとうございました。

×