n度あることはn+1度ある

憶測が多いブログなので鵜呑みにしないこと

RAMの重要性

黒い砂漠という要求スペックが無料の癖にえげつないゲームのためにZOTACのGTX970を中古で買った。前のグラフィックボードは6年前の代物で当然黒い砂漠の最低限のスペックすら満たしていなかった。なのでテクスチャ、画質を最低にしていても当然街にはいればオブジェクトの数や人の数でフリーズは当たり前で落ちることもよくあった。また道を馬で走っていれば地面のテクスチャを読み込めずにフリーズすることもあった。FPSも1280*720の解像度で20FPSを常に下回っていた。これらの問題も偏差値23の自分からすればグラボを買えれば全て解決するとおもっていた。しかし現実は厳しくテクスチャ、画質共にmiddle設定で解像度は1600*900にしてようやくFPS50くらいで安定したもののやはり街に行けばFPSは落ちてテクスチャが読み込まれずにフリーズすることが多々あった。しかし同じGTX970なのに最高設定(β)でヌルヌル動いてる人もいた。これはおかしいとおもってグラボの不良品を掴まされたとおもったが自分のマシンはRAMが4GBだった。一応黒い砂漠の基準は満たしているしメモリ如きでそこまでならんだろとはおもったが今時4GBは少ないだろうとアマゾンで売ってるアレを買った。

これで一応フルHDでテクスチャ、画質をhighにしてもFPSが40~60で安定するようになった。しかしこれはウィンドウモードの場合であってフルスクリーンにすると同じ解像度でもFPSが20を下回るようになる。ウィンドウモードだとゲーム以外の描画もしなくてはならなくて処理が多くなると聞いたことがあるが今回ウィンドウモードのほうがFPSがでている。ソフト側でフルスクリーンのFPS規制でもかかっているんだろうか。

 

nucleo boardとmbedでギターエフェクターを作る 3.完成品

とりあえず完成した。外装はこんな感じ

f:id:benntann:20160205005750j:plain

 

100均で買った道具箱に無理矢理ぶちこんである。フォンジャックの穴ははんだごてで溶かして開けた(臭い)

上から黒いのでてるけど上がペダルワウ(違う)の周波数調整用で下がエフェクター切り替え用のフォトリフレクタ。手とかを近づけると切り替わる。エフェクターの音は↓見たいな感じ

エフェクターなし

オーバードライブ

オートワウ

ペダルワウてきなやつ

 ワウみたいな周波数を見るエフェクターでも畳み込みで実現できるからデジタルフィルタを作った人は偉いですね

nucleo boardとmbedでギターエフェクターを作る 2.プログラム

前のやつの続き

ワウをやりたかったのでワウを作った。

C言語ではじめる音のプログラミング」を読んでたらワウのアルゴリズムがあったのでそれを利用させてもらって作った。多分製品とかのワウはこんな感じのアルゴリズムで実装されてるんだとおもうけど周波数の調整とかが絶妙すぎてBOSSみたいな音色は全く出せない。それでもワウワウ言うので面白いので結果的によしとしよう

音のサンプルはのちほど・・・

archの日本語入力について

archを使うとき大体の人がmozcやらを使うと思うのだがインストール後の設定がUSキーボードだからかよくわからなかったので一応メモ(Xfceの場合)

1.アプリケーションから設定を開き、入力メソッドを選択

2.全体設定から使用可能にする入力書式の一覧を見てbaiduがあったら除外する

3.変わってmozcの設定からKeyboard type for kana input methodをUSにする

4.Mozc key bindingsからmozcのオンオフキーを好きなように設定する

3の工程をしていなかったからずっと使えなかったのかな

archインストール後のUSBメモリ

USBメモリでarchインストールしたのだけれどもう使わないし普段使いのUSBメモリに戻そうとしてコンピュータのストレージ一覧から右クリでフォーマットしても元々のUSBメモリの容量に戻らなかった。

どうしたものかなって調べてたらWindowsの場合、GUIからのフォーマットでは容量が正常なものに戻らないらしくCUIからフォーマットしなくてはならない。

このページにやり方が書いてあるのでその通りにやりもう一度フォーマットしなくてはならなくなったのだがWindowsのフォーマットからでは何故かできなかった。

仕方ないのでIOデータのフォーマッタを用いてフォーマットしたら容量が元々のものに戻った。

どうしようもない記事だった

archのデュアルブート

ノートを買ったので既存のwin7デュアルブートしてみた。

linuxもシェルもデュアルブートも初めてだったがとりあえず色んなサイトを参考にしながらやったらできた。

躓いたりしたのが

インストール後のwifi-menuが使えない

→エラーにでてるパッケージをインストールする。違うエラーメッセージ(忘れた)がでたらdhcpのサービスを無効にする(競合してるらしい)

lightdmが有効にできない

→他のDMが有効になってるらしいのだがどれを有効にしたか忘れたので-fオプションを使い強制的にlightdmを有効化した

GUIも適当にいれてみたのだがなぜかlightdm?のログイン画面でコモンユーザーがログインできない。rootはできるのに

あとyaourtが使えない。とりあえずこの二点はどうにかしたい

yaourtはrootで使えないことを知らずにずっとやっていたので一般ユーザーから使用することで解決。

lightDMからログインできなかったのでGDMにしたのだがこちらもダメだった。原因がさっぱり分からなかったのでコモンユーザーからstartxしてみたら

timeout in locking authority file /home/username/.xauthority

とか言われた。.xauthorityというファイルはどこを探してもみつからないのでファイルを作って見ようにもドットがはいっているため?rootでも作成不可能だった。調べているとどうにもこの.xauthorityが作成できないためXが起動できないらしい。コモンユーザーの~/のパーミッションを調べてみたところroot以外書き込みが不可能になっていた。パーミッションを訂正したところ、ログインできるようになったので~/のパーミッションがおかしかったことが原因であった。手順どおりホームディレクトリを作ったのになぜなんだ・・・

日本語化とかは全くできていないのだが用途としては別に日本語化されなくても使っていける範囲なので後回し。

 

nucleo boardとmbedでギターエフェクターを作る 1.入出力回路

マイコンでデジタルエフェクターを作ってみたかったのでとりあえず安いnucleo boardのF446を購入して作ってみることに(nuleo boardの中ではCPUクロックが最高であり、coretexのM4なのでDSPが搭載されていることからこれにした)

まず入出力の回路なのだが音声信号はノイズ処理がかなり重要になってくるため自分の能力の範疇を超えるため他の方のものを参考した

今回は「mbed ギターエフェクター」と検索するとトップに出てくるプロトタイパーズさんの回路を使わせてもらった。他の製作者の方もこの回路をよく使用しているようであった。この回路は一見複雑そうに見えるがコンデンサは全てローパスフィルタなどに使われているだけであり実際は反転増幅などのシンプルな回路となっている。

まず初めに秋月で部品覧に書いてある通りに購入し、そのまま組み立ててギターの直接の入力と、mbedへの入力をオシロスコープで確認してみたところ3Vでオペアンプを動作させているのにも関わらずなぜかバイアスの1.5Vで頭打ちになってしまった。そのため第一の変更点としてオペアンプを5V動作にし、R4を2倍の20kΩとすることによって大体3Vくらいで出力信号が頭打ちするようになった。

次にmbedの出力をオシロスコープで観察してみたところなぜか波形の直流分(バイアス)が存在していた。電解コンデンサによってこれは消えるはずなのだが消えるどころか1.5Vのバイアスから2.5Vくらいのバイアスに増幅されていた。なので第二の変更点としてC6を余っていたフィルムコンデンサに交換することによって直流分を消すことができた。コンデンサの種類によって何が異なるのかよくわからないのだが一応波形上では入力波形とほぼ同じになっていたのでよしとする。

実際にエフェクターをかけずそのまま出力してみたものをアンプに繋げて聞いてみたところ素人耳には普通のギターの音がリアルタイムに出力された。入出力回路はこれで完成である。

F446のanalogoutの周波数はいくつか知らないし検索しても全く情報がでてこないがanaloginとanalogoutを∞ループさせているだけでこのような結果になったのでaruinoのようにクロックの分周を設定したり割り込みを設定したりとしなくていいのはF446を使用してよかったと思える点であった。あとはエフェクターを搭載するだけであるが今考えているのがオーバードライブとワウである。オーバードライブは簡単に作れそうなのだがワウは共振フィルタを用いたりしなければならないようなので手間がかかりそうだ。