lynxeyedの電音鍵盤

組み込みとか電装とか

DL

PSoCのPWMを高速化・15bit化しましたよ

DACいらずのワンチップ構成 AN2246にはキャリア周波数を低下させないで、2つ(以上)の8bitPWMを連携させ高分解能化させる方法が述べられています。今回はこれを利用しました。外部にDACや分圧用の抵抗等を接続せずに~16bitの分解能PWMを生成し、音声出力とし…

PSoCの最終奥義

ダイレクト録音機能に対応しました。 イヤホン端子がそのままマイク端子になります。 PSoCはダイナミックリコンフィグレーション(以下DRC)という便利な機能があるので回路構成の動的変更にDRCを使いました。 録音フォーマットはraw PCM(8bit,12kHz,mono)です…

PC側エンコーダの修正

エンコーダの一部を修正しました。 しかし変換ロジックは変えてないので再変換の必要はありません。 相変わらずコマンドラインなので、フロントエンドを作りたいと思うのですが…なかなかそこまで時間が取れないのが現実です。使い方は以前に書いたのですがそ…

立て続けに更新

会社帰りにふと思いついたことがあり、デコードパラメータを改良してみました。 今まではC言語で10個の増分パラメータの配列を記述していました。これはiMageCraft Cで12kHz,stereoの音声を発音するのに時間的に限界のパラメータ数だったからなのですが… M8C…

バグ修正

twitterでバグの指摘を頂いたので修正しました。 【修正内容】 ファイル位置クラスタをルートディレクトリエントリから取得する際、下位8bitからしか取得しておらず、再生の挙動が不定になるバグを修正 ダウンロードはコチラから(プロジェクト全部)バージョ…

デコード関数を全てアセンブラ化

インラインアセンブラは便利ですが、コンパイラの変換ロジックが変更されてしまうとバグの原因となるだけでなく、ソースコード自体が見づらくなります。 そこで、ADPCMデコード関数を全てアセンブラで記述し、Cからも呼び出しができる様にしてみました。(ext…

iMageCraft向けにリリースしました

CY8C24123A向けのADPCMデコーダをリリースしました。 IMAGECRAFT CはHi-TECH Cに比べて処理が低速、容量が肥大しやすいので、 main関数以外の一部をインラインアセンブラで記述しています。 main関数内のソースコード変更は差し支えないですが、main以外のサ…

iMageCraft Cのフリー版をお使いの皆様へ

iMageCraft Cだと、現状のソースだと12kHz、ステレオの再生速度に追従できないようです。対処方法を以下に示します。(iMageCraft Cのみ) インクルードファイルadpcm_ima_dvi.c(main.cと同じフォルダにある)を開いて、28行目 dlevel =… をコメントアウト 29〜…

8pinのPSoCでもFAT

秋月で200円で売っているCY8C24123Aで簡易ADPCMプレーヤを制作しているわけですが、PSoCはCY8C29x66以外のデバイスはFATライブラリが用意されていないため、各自製作する必要があります。 結局FATライブラリーをフルスクラッチビルドで導入してみました。 と…

なんでだろ

firestorage.jpでファイルをUPしているのですがすぐ(1,2ヶ月)消されてしまいますね。 一応再アップしてみました。 今回はダウンロードが500回行われると終了になるらしいです。 どこか、おすすめの無料オンラインストレージってありませんか? 教えてくださ…

ADPCMデコーダ

解析ソフトとオシロスコープを使ってパラメータを調整してみました。 結構難しいですね…。 割り込みを使用すると再生スピードが追いつかないので使用していませんが、これは音程がぶれる大きな原因のようです。 デコードの過程で音声データ次第ではタイミン…

ADPCMエンコーダ、デコーダバグ修正

【PSoC側の修正】 ステレオ用のPSoC ADPCMデコーダ向けに書き直しました。アナロググラウンドを廃止し、全てグラウンドはVss共通になっております。 なお、ソースはIMAGECRAFTコンパイラ用です。Hi-Tech C Liteでもコンパイル可能ですが、再生速度が遅くなり…

使ってみた

いつもLiteバージョンでコンパイルしてると、英語で 「PRO版だと今のサイズの45%まで縮小できるよ」 的なむかつく自慢メッセージが出てくるので、実際に試してみました。 結果、今までと容量は半分のサイズになり、速さは2倍の速度になりました。ただ$1500.…

ADPCMステレオ化

いらねーって思われる方も多いかとw でもここまで作っちゃうとやってみたいと思うのが人情ですよ(ぇ?で、エンコーダはadpcm8s.exeとなります。 【使い方】 ステレオADPCMデータへのエンコード コマンドプロンプトにて adpcm8s.exe [入力ファイル名] [出力…