O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
2016/01/23
オーディオ用レベルメーターを

作ってみよう
@hotwatermorning
1
はじめに
✤ 勉強会の紹介ページにかっこいいUIを作って

みようとか書いてあるんですが、
✤ 僕自身UI作るの苦手でかっこいいUI作れません
✤ このスライドではせめて、3種類のレベルメーター
の実装方法を紹介します
2
自己紹介
✤ @hotwatermorning
✤ C++やったりDTMやったりしてます
✤ C++ポケットリファレンス(共著)
3
レベルメーターについて
4
レベルメーター
✤ このスライドでは、

単になにか音量を表示するメーター
✤ Sound Level Meterだと騒音計に

なってしまいます。
5
レベルメーターの意義
✤ サウンドプロダクションの時に、耳で聞くだけじゃ
なく、音の大きさの情報を計測して表示
✤ 音の大きさを調整するために必要
✤ また、

オーディオデータは、耳で聞くだけじゃなく、

その音量の情報を可視化して表示すると...
レベルメーターの種類
✤ VUメーター
✤ ピークメーター
✤ スペクトルアナライザー
✤ ラウドネスメーター
7
VUメーター
✤ いわゆる音量メーターっぽい見た目のアレ

動画: https://www.youtube.com/watch?v=f6Pi2TBdMhI













8From wikimedia Commons/FileVU_...
VUメーター
✤ Volume Unit(音量感)を計測するためのメーター
なので、VUメーター
✤ ただしこの音量感は、かならずしも人間の聴覚の特性
には一致しない。
✤ 後述する、ラウドネスメーターを使用する必要がある。
9
VUメーターの特徴
✤ 音量感を表すメーターのため、信号の瞬発的なピー
クには反応しない
✤ VUメーターは規格上-20dB付近に表示の下限が
あるので、小さい音量には反応しない
✤ 細かい音量変化を読み取るのは難しい
10
ピークメーター
✤ 正式名称は、Peak Programme Meter(PPM)
✤ 瞬間瞬間の波形のピークを表示する。













11
ピークメーター
✤ 信号のピークは、刻々と変化するので、そのまま
ではピークを目視しにくい
✤ そのため、ピークホールド機能が実装されている
こともある
12
ピークメーターの種類
✤ True Peak Programme Meter
✤ Quasi Peak Programme Meter
✤ Sample Peak Programme Meter
✤ Over-sampling Peak Pro...
ピークメーターの特徴
✤ その瞬間の音量を表示するため、音量変化に

非常に敏感
✤ メーターの変化が激しいので、目が疲れる
✤ 反面、人間が感じるようなスムーズな音量変化の
度合いを読み取るのは難しい
14
スペクトルアナライザー
✤ 入力された波形を周波数毎に分解し、周波数帯域
ごとの信号の強さを表示するメーター

動画: https://www.youtube.com/watch?v=vWpC5PtNE6E











15https...
スペクトルアナライザーの特徴
✤ 周波数ごとの音の強さがわかるので、低音域から
高音域まで、どの部分の音が強いかが分かる
✤ それぞれの音域での音の強さの変化を読み取れる
16
ラウドネスメーター
✤ 入力される波形を、人間の聴覚の特性に合わせて
補正を行い、人間が感じる音の大きさを表すよう
に作られたメーター
✤ 役割的にはVUメーターの上位互換
✤ 現在のテレビのデジタル放送なんかは、このラウ
ドネスメーターで計測...
レベルメーターの実装
18
サンプルプログラム
✤ https://github.com/hotwatermorning/
LevelMeter
19
レベルメーターの実装
1.ピークメーター
2.VUメーター
3.スペクトルアナライザー
20
レベルメーターの実装
1.ピークメーター
2.VUメーター
3.スペクトルアナライザー
21
ピークメーターの実装
✤ Sample PPMを実装する
✤ 入力されたオーディオ信号を走査して、もっとも

dB値が大きなサンプルを記録する
✤ その時のdB値をdBスケールで表示する
22
dB(デシベル)とは?
✤ 人間が感じる音量の変化は、音の強さの変化に対
して対数的
✤ ウェーバー・フェヒナーの法則で検索
✤ 音の強さの変化を、そのままのスケールで表現す
るよりも、対数スケールで表現した方が、感覚に
合う。
23
ピークメーターの実装
✤ 実際にコードを見てみましょう
24
レベルメーターの実装
1.ピークメーター
2.VUメーター
3.スペクトルアナライザー
25
VUメーターの実装
✤ 実際のVUメーターと同じ挙動を再現するのは難
しい
✤ VUメーターの規格では、VUメーターの針がど
のように動かなくてはいけないかまで細かく指
定されている
26
VUメーターの実装
✤ なので、今回はVUメーターと同じような特性を
もつRMSメーターで代用する。
✤ ただし、一般的にRMSメーターの方がVUメーターより
も数値が大きくなる傾向があるらしい

参考: http://jp.residenta...
RMSとは?
✤ Root Mean Squareの略
✤ 信号の各サンプルを2乗して平均をとり、その平
方根をとる操作
✤ 時間とともに変化する信号の実効値が得られる。

参考: http://www.g200kg.com/jp/docs/d...
VUメーターの実装
✤ 入力された信号を2乗して、300ms分のサンプル
の平均値をとり、その平方根をとる
✤ 得られたRMS値を、角度にマッピングしてVUメー
ター状のUIに表示
29
VUメーターの実装
✤ 実際にコードを見てみましょう
30
レベルメーターの実装
1.ピークメーター
2.VUメーター
3.スペクトルアナライザー
31
FFTメーターの実装
✤ 設定したFFTの次数でのバッファサイズに達する
まで、オーディオデータをキャッシュする
✤ キャッシュしたオーディオデータをFFTで周波数
成分に分解する
✤ 各周波数帯域の成分(複素数)の絶対値を算出し、
これをdB...
FFTメーターの実装
✤ パワースペクトルが得られたら、

そのスペクトルのピークホールドを表示したり、

フレームごとのスペクトルの移動平均をとって、

周波数ごとの音の強さの変化を表示できる
33
FFTメーターの実装
✤ 実際にコードを見てみましょう
34
おわりに
35
おわりに
✤ オーディオデータを複数の方法で計測して、

音の大きさの情報をいくつかの側面から

分析/表示できる
✤ 表示したい情報に合わせたメーターを実装しよう
✤ かっこいいUIを作るのは難しい
36
参考になる発表
✤ CEDEC 2015の

CRI 増野さんによるセッション

「イカすビジュアライザー天国 -音楽と同期した
イケてる映像表現とその設計手法-」

https://cedil.cesa.or.jp/cedil_session...
ありがとうございました
38
Próximos SlideShares
Carregando em…5
×

オーディオ用レベルメータを作ってみよう

7.545 visualizações

Publicada em

http://edge.connpass.com/event/20910/

Publicada em: Engenharia
  • Login to see the comments

オーディオ用レベルメータを作ってみよう

  1. 1. 2016/01/23 オーディオ用レベルメーターを
 作ってみよう @hotwatermorning 1
  2. 2. はじめに ✤ 勉強会の紹介ページにかっこいいUIを作って
 みようとか書いてあるんですが、 ✤ 僕自身UI作るの苦手でかっこいいUI作れません ✤ このスライドではせめて、3種類のレベルメーター の実装方法を紹介します 2
  3. 3. 自己紹介 ✤ @hotwatermorning ✤ C++やったりDTMやったりしてます ✤ C++ポケットリファレンス(共著) 3
  4. 4. レベルメーターについて 4
  5. 5. レベルメーター ✤ このスライドでは、
 単になにか音量を表示するメーター ✤ Sound Level Meterだと騒音計に
 なってしまいます。 5
  6. 6. レベルメーターの意義 ✤ サウンドプロダクションの時に、耳で聞くだけじゃ なく、音の大きさの情報を計測して表示 ✤ 音の大きさを調整するために必要 ✤ また、
 オーディオデータは、耳で聞くだけじゃなく、
 その音量の情報を可視化して表示すると、
 かっこいい! 6
  7. 7. レベルメーターの種類 ✤ VUメーター ✤ ピークメーター ✤ スペクトルアナライザー ✤ ラウドネスメーター 7
  8. 8. VUメーター ✤ いわゆる音量メーターっぽい見た目のアレ
 動画: https://www.youtube.com/watch?v=f6Pi2TBdMhI
 
 
 
 
 
 
 8From wikimedia Commons/FileVU_Meter.jpg 05:15, 12 August 2006 (UTC) License=CC BY 2.5
  9. 9. VUメーター ✤ Volume Unit(音量感)を計測するためのメーター なので、VUメーター ✤ ただしこの音量感は、かならずしも人間の聴覚の特性 には一致しない。 ✤ 後述する、ラウドネスメーターを使用する必要がある。 9
  10. 10. VUメーターの特徴 ✤ 音量感を表すメーターのため、信号の瞬発的なピー クには反応しない ✤ VUメーターは規格上-20dB付近に表示の下限が あるので、小さい音量には反応しない ✤ 細かい音量変化を読み取るのは難しい 10
  11. 11. ピークメーター ✤ 正式名称は、Peak Programme Meter(PPM) ✤ 瞬間瞬間の波形のピークを表示する。
 
 
 
 
 
 
 11
  12. 12. ピークメーター ✤ 信号のピークは、刻々と変化するので、そのまま ではピークを目視しにくい ✤ そのため、ピークホールド機能が実装されている こともある 12
  13. 13. ピークメーターの種類 ✤ True Peak Programme Meter ✤ Quasi Peak Programme Meter ✤ Sample Peak Programme Meter ✤ Over-sampling Peak Programme Meter 13
  14. 14. ピークメーターの特徴 ✤ その瞬間の音量を表示するため、音量変化に
 非常に敏感 ✤ メーターの変化が激しいので、目が疲れる ✤ 反面、人間が感じるようなスムーズな音量変化の 度合いを読み取るのは難しい 14
  15. 15. スペクトルアナライザー ✤ 入力された波形を周波数毎に分解し、周波数帯域 ごとの信号の強さを表示するメーター
 動画: https://www.youtube.com/watch?v=vWpC5PtNE6E
 
 
 
 
 
 15https://www.flickr.com/photos/electriksuicide/2284349103
  16. 16. スペクトルアナライザーの特徴 ✤ 周波数ごとの音の強さがわかるので、低音域から 高音域まで、どの部分の音が強いかが分かる ✤ それぞれの音域での音の強さの変化を読み取れる 16
  17. 17. ラウドネスメーター ✤ 入力される波形を、人間の聴覚の特性に合わせて 補正を行い、人間が感じる音の大きさを表すよう に作られたメーター ✤ 役割的にはVUメーターの上位互換 ✤ 現在のテレビのデジタル放送なんかは、このラウ ドネスメーターで計測した音量の基準を満たすよ うに番組が作られている ✤ 現代のサウンドプロダクションの世界では、
 ラウドネスメーターとOver-sampling PPMを使用 17http://www.soundonsound.com/sos/jul13/articles/qanda-0713-2.htm
  18. 18. レベルメーターの実装 18
  19. 19. サンプルプログラム ✤ https://github.com/hotwatermorning/ LevelMeter 19
  20. 20. レベルメーターの実装 1.ピークメーター 2.VUメーター 3.スペクトルアナライザー 20
  21. 21. レベルメーターの実装 1.ピークメーター 2.VUメーター 3.スペクトルアナライザー 21
  22. 22. ピークメーターの実装 ✤ Sample PPMを実装する ✤ 入力されたオーディオ信号を走査して、もっとも
 dB値が大きなサンプルを記録する ✤ その時のdB値をdBスケールで表示する 22
  23. 23. dB(デシベル)とは? ✤ 人間が感じる音量の変化は、音の強さの変化に対 して対数的 ✤ ウェーバー・フェヒナーの法則で検索 ✤ 音の強さの変化を、そのままのスケールで表現す るよりも、対数スケールで表現した方が、感覚に 合う。 23
  24. 24. ピークメーターの実装 ✤ 実際にコードを見てみましょう 24
  25. 25. レベルメーターの実装 1.ピークメーター 2.VUメーター 3.スペクトルアナライザー 25
  26. 26. VUメーターの実装 ✤ 実際のVUメーターと同じ挙動を再現するのは難 しい ✤ VUメーターの規格では、VUメーターの針がど のように動かなくてはいけないかまで細かく指 定されている 26
  27. 27. VUメーターの実装 ✤ なので、今回はVUメーターと同じような特性を もつRMSメーターで代用する。 ✤ ただし、一般的にRMSメーターの方がVUメーターより も数値が大きくなる傾向があるらしい
 参考: http://jp.residentadvisor.net/feature.aspx?1473 27
  28. 28. RMSとは? ✤ Root Mean Squareの略 ✤ 信号の各サンプルを2乗して平均をとり、その平 方根をとる操作 ✤ 時間とともに変化する信号の実効値が得られる。
 参考: http://www.g200kg.com/jp/docs/dic/rms.html 28
  29. 29. VUメーターの実装 ✤ 入力された信号を2乗して、300ms分のサンプル の平均値をとり、その平方根をとる ✤ 得られたRMS値を、角度にマッピングしてVUメー ター状のUIに表示 29
  30. 30. VUメーターの実装 ✤ 実際にコードを見てみましょう 30
  31. 31. レベルメーターの実装 1.ピークメーター 2.VUメーター 3.スペクトルアナライザー 31
  32. 32. FFTメーターの実装 ✤ 設定したFFTの次数でのバッファサイズに達する まで、オーディオデータをキャッシュする ✤ キャッシュしたオーディオデータをFFTで周波数 成分に分解する ✤ 各周波数帯域の成分(複素数)の絶対値を算出し、 これをdBスケールで扱うことで、パワースペクト ルを生成する 32
  33. 33. FFTメーターの実装 ✤ パワースペクトルが得られたら、
 そのスペクトルのピークホールドを表示したり、
 フレームごとのスペクトルの移動平均をとって、
 周波数ごとの音の強さの変化を表示できる 33
  34. 34. FFTメーターの実装 ✤ 実際にコードを見てみましょう 34
  35. 35. おわりに 35
  36. 36. おわりに ✤ オーディオデータを複数の方法で計測して、
 音の大きさの情報をいくつかの側面から
 分析/表示できる ✤ 表示したい情報に合わせたメーターを実装しよう ✤ かっこいいUIを作るのは難しい 36
  37. 37. 参考になる発表 ✤ CEDEC 2015の
 CRI 増野さんによるセッション
 「イカすビジュアライザー天国 -音楽と同期した イケてる映像表現とその設計手法-」
 https://cedil.cesa.or.jp/cedil_sessions/view/1280 37
  38. 38. ありがとうございました 38

×