タグ

ブックマーク / blog.livedoor.jp/sce_info3-craft (9)

  • C++によるオーディオ信号処理(1) ---環境構築とサンプルプログラム動作確認--- : 工作と競馬

    コメント一覧 (5) 5. hany 2013年11月06日 09:38 ありがとうございます!おかげさまでできました泣 libフォルダまで移動して作業しなかったのが原因ですね。 dllファイルが32bitだったらしく、アプリケーションエラーが出ましたが新しく64bitをダウンロードしたことで解決できました。 次はフーリエ変換をやる予定です(^O^) 4. ブログ管理者 2013年10月29日 22:43 とりあえず、やり方を自分でおさらいしてみました。 まず、以下のURL http://www.mega-nerd.com/tmp/ に移動し、libsndfile-1.0.26pre3-w64.zipをダウンロードしてください。それを解凍すると、フォルダとファイルが出てくるので、それらをlibsndfileというフォルダを作成してそこに入れます。そして、libsndfileをCドライブ直下

    C++によるオーディオ信号処理(1) ---環境構築とサンプルプログラム動作確認--- : 工作と競馬
  • Web Audio APIで、音を鳴らしてみる(iPhoneやAndroidでも鳴るようにしてみる) : 工作と競馬

    まず、ユーザーの画面タッチに反応できるように、ボタンを付ける。Onclickイベントに反応して、後述するplaySound関数が呼ばれるようにしておく。 <body> <div>web上のwavファイルを再生</div> <input id="play" onclick="playSound()" type="button" value"音を鳴らす"/> </body> 図2.1 画面レイアウト スクリプトは、successcallback関数を修正する。具体的には、関数の最初で定義しているsourceという変数を、scriptタグ内直下でグローバル変数として定義し、最後のsource.startメソッドを削除し、再生スタートしないようにする。 // ファイル読み込み成功時の処理 var successCallback = function(audioBuffer) { // AudioB

    Web Audio APIで、音を鳴らしてみる(iPhoneやAndroidでも鳴るようにしてみる) : 工作と競馬
  • 高速フーリエ変換(FFT)プログラムをVBAで実装する : 工作と競馬

    アルゴリズムは、最も有名なCooley-Tukey型アルゴリズムとする。実装にあたっては、手元にあった『C言語ではじめる音のプログラミング』という(図1)の2.3節を参考にする。要するに、C言語で書かれたサンプルをVBAで書き直すようなものである。 図1 『C言語ではじめる音のプログラミング』という 『C言語ではじめる音のプログラミング』を参考に、以下のようなプログラムを実装した。基的な構成としては、 ・バタフライ演算をデータサイズに合わせて繰り返し実行するループ ・アルゴリズム上順序がばらばらになってしまう計算結果データを並び替える処理 を行っている。 入力は、xという変数として出力は参照渡しの引数y_reとy_imにそれぞれ実部、虚部を戻している。また、引数Nはデータサイズで、2のべき乗でなければ処理をしないようにした。また、窓関数をかけるオプションも考えたが、FFT処理関数の中

    高速フーリエ変換(FFT)プログラムをVBAで実装する : 工作と競馬
  • Pythonでリアルタイム信号処理(2) --- ASIOで録音 --- : 工作と競馬

    概要 Pythonでのリアルタイムオーディオ信号処理に関する記事。前回の再生に引き続き、録音ができることを確認した。 背景と目的 前回、ASIOデバイスを使って再生ができる環境を整備できた。これに引き続き、録音もできるか確認する。 詳細 作製したプログラムは以下のとおり。再生の時と異なるのは、 wavファイルを書き込みモードで開く callback関数の引数in_dataをwavファイルに書き込む streamをinput = trueで開く といったあたり。 import pyaudio import wave import time import numpy # open wave file wf = wave.open('song.wav', 'w') wf.setsampwidth(2) # 16bit wf.setframerate(44100) # 44.1kHz wf.set

    Pythonでリアルタイム信号処理(2) --- ASIOで録音 --- : 工作と競馬
  • 4.6 Python : 工作と競馬

    概要 kerasで、MNISTのサンプルを実装し、動かしてみた。 背景と目的 kerasを初めて使ってみる。手始めに、MNISTの手書き文字判別のNNを実装してみる。 詳細 0.環境 Jupyter Python3 1.インポート import os import keras from keras.models import Sequential from keras.layers import Dense 2.ネットワーク 784ニューロンの入力層、中間層は128, 64, 出力層は10の全結合NNを定義 model = Sequential() model.add(Dense(units=128, activation='relu', input_dim=784)) model.add(Dense(units=64, activation='relu', input_dim=128))

    4.6 Python : 工作と競馬
  • Pythonでリアルタイム信号処理(7) --- FIRフィルタをリアルタイム処理してみる --- : 工作と競馬

    概要 FIRフィルタの畳み込んで、リアルタイム再生するプログラムを作成、動作を確認した。 背景と目的 前回、FIRフィルタの係数と入力信号との畳み込みを高速で行う方法を調べた。今回は、その方法を使ってリアルタイムにFIRフィルタを畳み込むプログラムを作成する。 詳細 畳み込み部分は、前回最も高速だったfftと逆fftを使う方法で実装した。func_FIRconvは、以前作成した録音と再生を同時に行う独自のクラスにから、一定サンプルを再生するごとに呼び出されるようにしてある。(ただし、その詳細は割愛。)つまり、一定間隔で読出したデータであるplayDataに対しFIRフィルタをかけ、その結果をoutDataとして出力し、それが再生される。 Tap = 1023 # タップ数 fc = 300. Fs = 44100. M = Tap + 1 # ブロックのサイズ # FIRフィルタの設計 h

    Pythonでリアルタイム信号処理(7) --- FIRフィルタをリアルタイム処理してみる --- : 工作と競馬
  • Pythonでscipyを使ってディジタルフィルタを作ってみる : 工作と競馬

    フィルタの仕様は、以下の通り。(サンプリング周波数は設計仕様としてはいらないのだが、規準化周波数だと馴染みづらいので) 2次IIRフィルタ バターワースローパスフィルタ カットオフ周波数1000Hz(サンプリング周波数44100Hz) コードは以下の通り。Import文でscypiをインポートしている。フィルタを設計する関数は、iirfilterでscipy.signalというところに入っている。Freqzは、伝達関数を計算する関数。MATLABにも同じ名前のやつがあった気がする。Matplotlibは、グラフを扱うライブラリ。これもMATLABっぽい。 import numpy as np from scipy import signal import matplotlib.pyplot as plt Fs = 44100.0; # サンプリング周波数 N = 65536; # サンプリ

    Pythonでscipyを使ってディジタルフィルタを作ってみる : 工作と競馬
  • Python環境にオーディオI/Oライブラリ pyaudioを導入する : 工作と競馬

    コメント一覧 (3) 3. 記事執筆者 2015年08月09日 02:01 すみません。追加で役に立つかわかりませんが。 64ビット版のPythonでPyAudioを使うのはダメだと思います。 PCは64ビットでもOKです。私の環境は、PCが64ビット、OSがWin8の64ビット、Pythonは32ビット版のv2.7です。 2. 記事執筆者 2015年08月09日 01:55 meguro42さん ブログ閲覧ありがとうございます。 私の環境(Window8.1とWindows7)では、その問題が起こらなかったので解決の役に立てるかわかりませんが、一つ気になることは、 入手元サイトのDownloadの項にあるWin、Mac向けにはIncludes: PortAudio v19 [SVN r1919]、つまりportaudio同梱で、Unix系向けには記述がないことです。もし、貴殿がUnix系

    Python環境にオーディオI/Oライブラリ pyaudioを導入する : 工作と競馬
  • Pythonでリアルタイム信号処理(1) --- ASIOが使えるpyaudioの準備と再生テスト --- : 工作と競馬

    概要 Pythonでのリアルタイムオーディオ信号処理に関する記事。手始めとして、ASIOデバイスによる再生ができる環境を整え、無事再生できることを確認した。 背景と目的 以前環境を整えたオーディオ入出力モジュールpyaudioは、実はASIOデバイスが使えなかった。そこで、今回はASIOデバイスが使えるように環境を整備し、再生できることを確認する。 詳細 以前の記事でインストールしたpyaudioは、 import pyaudio pa = pyaudio.PyAudio() hostApiCount = pa.get_host_api_count() for i in range(0, hostApiCount) print pa.get_host_api_info_by_index(i) などと打ってみると、私の環境ではAPI数が1となり、MMEしか検出されなかった。 そこで、ASIO

    Pythonでリアルタイム信号処理(1) --- ASIOが使えるpyaudioの準備と再生テスト --- : 工作と競馬
  • 1