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

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

信号処理

ボーカル抽出法一覧

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

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

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

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

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

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

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

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

【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で短時間フーリエ変換(STFT)と逆変換

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

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

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

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

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

Pythonでの信号処理とは

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