PSoCでWAVEファイルを再生する
前回の実験(ここの下のほうの文章)で
PSoCのSDカードモジュールでは読み取り速度が遅すぎてだめだったので、
WAVEデータをPSoCのROMに書いてDA変換するだけのプログラムを書いてみました。
スピーカの接続は以下のような簡易的なものです。

↑P0_5にDA変換した結果を一定間隔で出力する
今度はちゃんと動きました。
問題は読み取り速度だけのようで、再生自体は簡単でした。
ROMのサイズの関係上(今回使用したCY8C29466は32KBです)
8bitモノラル、8kHzのWAVEファイルを再生しました。
再生の際、WAVEファイルを読み取り、一度テキスト(以下のようなC言語のソースコード)
に変換するプログラムをC#でつくり変換しました。
SDカードが使えないと不便です。
変換例)
const unsigned char wave_table[] = {
128,128,128,128,127,125,125,126,129,130,129,129,135,137,138,137,132,121,110,108,
114,119,120,116,120,132,137,141,136,135,134,126,124,130,142,131,121,117,125,139,
・・・(略)・・・
};
後はこれを適当な間隔で読み取り、DA変換してあげるだけです。
以外にもあっさりと鳴りました。
当然ながら音質はかなり悪いですが、一応鳴ったので良しとします。
(でもなんかすごいくやしいorz)
◆リンク
参考にさせていただきました。
H8で音声データを扱ってみよう
WAVEファイルについて
WAVE形式のファイルフォーマット
◆おまけ
今回作成したWAVE→テキストの変換プログラムを載せておきます。
本当はこんなもの作るつもりなかったのに(SDカードが使えれば・・・)
http://www.bird-soft.net/download/WaveTextConv.zip
応援お願いします(人気blogランキングへ)
コメント
間隔で読み取るってなぁに?
投稿者: BlogPetのWhiteRabbit | 2007年02月02日 16:20
こんにちは、いつも楽しんで拝見しております。
事後承諾で恐縮ですがリンクさせて頂きました。
よろしくお願いします。
投稿者: edy | 2007年02月04日 12:33
こんにちは。
リンクありがとうございます。
こちらこそよろしくお願いします。
投稿者: BIRD | 2007年02月04日 14:28