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

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

Python

Python スクリプトのスタンドアロン化【bbfreeze】

photo by Ryan Johnson 関連記事 Python スクリプトのスタンドアロン化 - 音楽プログラミングの超入門(仮)

ボーカル抽出法一覧

photo by Grantボーカル抽出世の中に存在する多くの楽曲は歌声(ボーカル)と伴奏から構成されています。例えば、普段街中で聴くJポップなどはほとんどがボーカル入りの楽曲です。このボーカルと伴奏を分離するタスクを、一般的にボーカル抽出であったり歌声…

【Python】SciPyの特異値分解ともうちょっと速い特異値分解【SVD】

photo by Jared Tarbell特異値分解とは? 特異値分解 - Wikipedia

Python スクリプトのスタンドアロン化

photo by Ryan Johnson自分がググり倒した成果を書き連ねています。 この記事では、主にLinux環境を前提としているので注意してください。 WindowsやMacでも同じような感じでいけるかも知れないです。

『AM』(Arctic Monkeys) のジャケットの解析

『AM』昨年、Arctic Monkeys の5thアルバム『AM』がリリースされましたが、無茶苦茶格好いいですね。全体的に落ち着いた雰囲気の曲が多く、渋めのアルバムとなっています。例えば、アルバム1曲目はこんな感じの曲です。 Do I Wanna Know?

matplotlibでかっこいいスペクトログラム表示

スペクトログラム表示短時間フーリエ変換を行うことで、スペクトルの時間変化を表したスペクトログラムを得ることができます。Pythonで短時間フーリエ変換(STFT)と逆変換 - 音楽プログラミングの超入門(仮)この記事で、スペクトログラムを matplotlib.py…

(2)音のタイムストレッチとピッチシフト:【波形領域】

音のタイムストレッチとピッチシフト (1)リサンプリング (1)音のタイムストレッチとピッチシフト:【リサンプリング】 - 音楽プログラミングの超入門(仮) (2)波形領域 この記事 (3)フェーズボコーダ [Flanagan & Golden, 1966] 予定 (4)反…

(1)音のタイムストレッチとピッチシフト:【リサンプリング】

【Python】 主成分分析(PCA)

導入:データの次元削減 主成分分析の目的 主成分分析(principal component analysis,PCA)とは一体何でしょうか?PCA には大きく分けて二つの目的があります。(表していることは同じですが) データの特徴をよく表す新しい指標を見つける 大きな次元のデ…

Pythonで疎行列を保存する方法

Python のライブラリである SciPy には、疎行列を扱うためのパッケージ scipy.sparse が入っていますが、これに pickle とかが対応してないっぽいです。なのでこれをファイルとして保存する/読み出す方法を書いときます。 scipy.io にある mmwrite, mmread …

【Python】 高速な Constant-Q 変換 (with FFT)

関連記事 Constant-Q 変換 【Python】 Constant-Q 変換 (対数周波数スペクトログラム) - 音楽プログラミングの超入門(仮) 疎行列の保存:カーネル行列を保存するのに必要です Pythonで疎行列を保存する方法 - 音楽プログラミングの超入門(仮) Constant-Q…

【Python】時間変化するサイン波を作る

サイン波まずは一定なサイン波について考えてみます。 周波数が F [Hz]、振幅が A のサイン波は下式で表現されます。

【Python】 大聖堂の響きを再現!! : インパルス応答の畳み込み

導入:インパルス応答と残響 インパルス応答(英: Impulse response)とは、インパルスと呼ばれる非常に短い信号を入力したときのシステムの出力である。インパルス反応、重み関数 (weighting function) とも。インパルスとは、時間的幅が無限小で高さが無限…

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

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

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

関連記事 高速な Constant-Q 変換 【Python】 高速な Constant-Q 変換 (with FFT) - 音楽プログラミングの超入門(仮) 導入:対数周波数スペクトログラムPythonで短時間フーリエ変換(STFT)と逆変換 - 音楽プログラミングの超入門(仮)上記の記事で,音響…

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

mlpy って?mlpy - Machine Learning Python機械学習アルゴリズムを扱うPythonライブラリで、主成分分析・サポートベクターマシン・重回帰分析などの基本的なものから、Dynamic Time Warping など色々と揃っています. 自分はまだ一度も使ったことがありませ…

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

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

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

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

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

音響信号のフーリエ変換ここでは、離散フーリエ変換のみを扱っています。 信号処理においてフーリエ変換というと、ほとんどの場合、離散フーリエ変換を指しています。 式 フーリエ変換は可逆変換なので、逆変換があります。フーリエ変換・逆変換の定義式はこ…

PythonでWAVファイルを読み込む

音声信号処理を行う場合、大抵、数値列をWAVファイルから読み込むことになると思います。Python でそれを行う方法を2つ紹介します。waveモジュールを使うwave モジュールはその名の通り、WAVファイルを扱うためのモジュールです。WAVファイルの読み込みはこ…

Pythonでの信号処理とは

Pythonを使うメリット Pythonは簡単 Pythonはスクリプト言語の中でも、特に覚えるのが簡単な言語だと思う。全く触ったことがない人でも、1週間くらいで小さいプログラムなら大体書けるようになるんじゃないかな。Pythonしか触ったことのない筆者がいうのだ…