音楽プログラミングの超入門(仮)

Python / 音楽情報処理 初心者が、初心者にも分かるような記事を書きたい。

【Python】 ぬるぬる動くスペクトルアナライザを作ろう!!

導入

スペクトルアナライザ

スペクトルアナライザというものを知っているでしょうか?かなり色々あると思いますが、ここでは単純に入力された音のスペクトルをリアルタイムで表示するシステムを考えます。Windows Media Player のエフェクトにもそれっぽいものがありますね(下図)。
f:id:yukara_13:20131204144931j:plain

続きを読む

【Python】 Constant-Q 変換 (対数周波数スペクトログラム)

関連記事

導入:対数周波数スペクトログラム

Pythonで短時間フーリエ変換(STFT)と逆変換 - 音楽プログラミングの超入門(仮)

上記の記事で,音響信号を周波数スペクトルの時間変化を表すスペクトログラムに変換する短時間フーリエ変換を扱いました.簡単にアルゴリズムを復習すると,音響信号を一定の幅で切り取ってフーリエ変換するという処理を少しずつずらして行っていくことでスペクトログラムを得ていました.

 ここで,音響信号を一定の幅で切り取ってフーリエ変換するということについて少し考えてみましょう.切り取られた信号が以下のようなものであることを考えます.

続きを読む

機械学習用Pythonライブラリ: mlpy

mlpy って?

mlpy - Machine Learning Python

機械学習アルゴリズムを扱うPythonライブラリで、主成分分析・サポートベクターマシン・重回帰分析などの基本的なものから、Dynamic Time Warping など色々と揃っています.
自分はまだ一度も使ったことがありませんが、いつか遊ぼうと思ってインストールだけしてみたので、その手順をのせておきます.

続きを読む

Latex の scrartcl.cls を使ってみた

 いつしか下の記事を発見して、色々ためになった。

使ってはいけない LaTeX のコマンド・パッケージ・作法 - Ichiro Maruta Homepage

出力結果が変わらなくても、こういう細かいところは注意しときたい。
 特に、Latex のクラスファイルは (j)article, jsarticle くらいしか知らなかったので、A4 前提で作られてるらしい scrartcl.cls ってどんなんだろうと思って使ってみた。

続きを読む

Pythonで短時間フーリエ変換(STFT)と逆変換

※ iSTFT の実装が間違っていました。というよりも、スペクトログラムをイジらない場合しか滑らかな再合成ができない不適切な実装となっていたので、まともな(ロバストな)実装に変えました。(今のところ)一番需要がありそうな記事で残念過ぎるミスを犯してすいません・・・。
(2014, 2/7)

周波数(スペクトル)の時間変化を見る

少し前に音響信号を周波数スペクトルに変換するフーリエ変換を扱いました。

Pythonでフーリエ変換(と逆変換) - 音楽プログラミングの超入門(仮)

 ここで、例えば市販曲などの3分程度の音響信号の周波数を分析することを考えます。この音響信号全体をフーリエ変換して得られたスペクトルはあまり意味がありません。このような長い音響信号では、ある時間ではドの音が鳴っていたり、別の時間ではラの音がなっていたりしますが、それらが全部ごちゃまぜで解析されてしまうからですね。各時刻のスペクトルを計算して、その時間変化を見たいですね。

続きを読む

【Python】 array(numpy.ndarray)型の操作いろいろ

Python の信号処理では、array(numpy.ndarray)型の配列を色々いじくりまわして難しい計算を行なっていくので、基本的な操作を知っておかないと不便です。このページは array 型配列に対する操作を羅列しくだけのページで,具体的には次のようなことを紹介しています。

  • numpy.ndarray の属性・メソッド
  • その他の便利な操作
  • よく使う(かもしれない) SciPy の関数

随時追加していくと思います。(多分)
色々抜けていると思うので、これが便利、などありましたら教えてください。

続きを読む

Pythonでフーリエ変換(と逆変換)

音響信号のフーリエ変換

ここでは、離散フーリエ変換のみを扱っています。
信号処理においてフーリエ変換というと、ほとんどの場合、離散フーリエ変換を指しています。

フーリエ変換は可逆変換なので、逆変換があります。フーリエ変換・逆変換の定義式はこんな感じです。


\begin{eqnarray}
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
  \ \ \ \ \ \ H(f) &=& \int_{-\infty}^{\infty} h(t)e^{-i2\pi ft}\;\;dt, \\
  h(t) &=& \int_{-\infty}^{\infty} H(f)e^{i2\pi ft}\;\;df
\end{eqnarray}

ここでは、 h(t) が入力音響信号ですね。

続きを読む