未分類」カテゴリーアーカイブ

【Pure Data】Raspberry Pi でギターエフェクターを作る その1

この動画に触発されてラズパイでギターのエフェクターを作ってみました。(動画ほど本格的じゃないです)

PureDataというリアルタイムでの音声信号処理が得意なツールをラズパイ上で動かして実装しています。

機器は以下のようにつながっています。
ギター---シールド---ステレオ標準⇔ステレオミニ(3.5mm)変換プラグ---サウンドカード---Raspberry Pi---サウンドカード---スピーカー

参考サイト

https://guitarextended.wordpress.com/

ラズパイエフェクターだけでなくArduinoでフットスイッチまで自作してしまった人のサイト。
PureDataの様々なtipsからラズパイのセットアップまで幅広く丁寧に解説しているので英語が得意な人はこちらを参考にした方がいいかも。

https://github.com/doitnowlabs/rpieffectbox

さっき紹介した動画のプロジェクト。
詳しい人は中身をクローンして自分用に書き換えちゃいましょう。

Raspberry Piの準備

私はRaspberry Pi2 modelBを使用しましたが、参考サイトではRaspberry Pi Type Aを使用していたので旧型でも問題なさそうです。

OSはRaspbianです。セットアップ方法はググればいくらでも転がってるのでそちらを参照してください。

OSのバージョンが古いと必要なツールのインストールが出来なくなるので以下のコマンドで最新の状態に保っておくことをお忘れなく。

サウンドカードの準備

ラズパイには音声入力用の端子が無いためUSBサウンドカードを用意しましょう。

今回は以下の商品を購入しましたが、E-MU 0404 USBなどのもっと本格的なオーディオI/Fも利用できるようです。

ただし相性があるらしいので動作確認済みのサウンドカードを購入するのが無難です。(手持ちのTASCAM US 144-mk2は動作しませんでした。)

サウンドカードが用意できたらラズパイに差し、入力端子にギターのシールドやマイクを、出力端子にヘッドホンやスピーカーを接続します。

ギターのシールドは一般的に6.3mmの標準プラグであり今回用意したサウンドカードの端子とはサイズが合わないため、3.5mmミニプラグへ変換するをかませました。

 

 

 

Pure Dataのインストールとオーディオ設定

まずはターミナルで以下のコマンドを打ってPureDataとライブラリをインストールしましょう。

インストールが終了するとGUIメニューの『サウンドとビデオ』のところにPureDataが追加されるのでクリックして起動します。

Media > Audio Settingsを開き、【Input device】と【Output device】を『USB Audio Device(hardware)』に変更します。

setting

これで音声の入出力をサウンドカードで行えるようになりました。

きちんと動作しているかを確認するために Media > Test Audio and Midi を開きます。

TEST TONESの60または80にチェックを入れるとサウンドカードに接続されているスピーカーから440Hzのサイン波が再生されます。

また、入力デバイスから正常に音を拾えていればAudio Inputの値が小刻みに変化します。

両者とも問題なければPure Dataでのサウンドカードの設定は完了です。

test

Pure Dataのパッチを作る

Pure Dataの基本的な使い方についてはこちらのサイトが参考になります。かの有名なこじ研です。

こじ研(小嶋研究室) Pure Data 入門
http://www.myu.ac.jp/~xkozima/lab/avmed-pd1.html

PureDataのメニューバーからFile > Newを選ぶと真っ白なキャンバスが現れます。

Ctrl+1をして長方形のオブジェクトを作成し、その中に「adc~」と入力します。
もう一度オブジェクトを作り今度は「dac~」と入力。

「adc~」オブジェクト左下の小さな四角をクリックし、そのまま押し下げて「dac~」オブジェクト左上の小さな四角につなぎ合わせます。

2016-06-25-130305_1776x952_scrot

「adc~」はサウンドカードからの信号入力、「dac~」はサウンドカードへの音声出力を意味しており、このパッチでは入力された音声をそのまま出力しています。

Pure Dataを用いたエフェクタは基本的には「adc~」と「dac~」の間に様々な処理を挟むことで実現しています。

以下のサイトではファズ、ディレイ、ワウワウのパッチを公開しているので眺めてみたり、ダウンロードして実際に使ってみるとPureDataとはどんなものかがなんとなく理解できると思います。

パッチはメニューバーの File > Openをクリックすると開けます。

Pure Data Lesson
http://puredatalesson.blogspot.jp/2014/05/5.html

他のエフェクトもググればパッチが見つかるので必要に応じてダウンロードしましょう。

自分だけのオリジナルエフェクタ作りに挑戦するのも面白いですね。

おわりに

ラズパイを使ってギターの音に対してエフェクトを掛ける方法についてご紹介しました。しかし、これだけでは毎度毎度GUIからPureDataを起動しパッチを開く作業が必要なため、実用性に乏しい上に面倒です。

そこで、次の記事ではボタンを押すだけでエフェクトを切り替えてディスプレイ無しでも操作できるように改良したいと思います。

Windows7→10にアップデートしたらPCの電源がつかなくなった

Windows10への無償アップデート期間終了が約二か月後に迫ってきたのでデスクトップPCのOSをWindows7から10に更新することにしました。

OSのダウンロードが始まるとPCを放置して就寝。次の日PCをのぞいてみると、なんと電源が落ちていました。

慌てて電源ボタンを長押ししてみるとLEDが一瞬点きましたが電源は入らず、その後は反応なし。

Windows7と一緒にUnuntuも入れてたのが悪いのか、周辺機器を取り外さなかったのが悪いのか、思い当たる節がありすぎて原因を絞り込めません。

バックアップもブートディスクも用意してなかったので復旧はもちろん、起動すらままならないです。

最悪の場合初期化すれば大丈夫だろうと高をくくっていたのですがそれすらできない状況になってしまいました。

OSのアップデートは慎重に、注意事項をよく読んでから行うべき、という当たり前のことの重要性を痛感した一件でした。

【Skype】エラー:このコンピュータですでにサインインしています。サインアウトしてから、再度お試しください。

久しぶりにSkypeを起動したらログインができない状況に陥ったのでその対処法をメモしておきます。

症状

Skype起動後以下のメッセージが表示される。

「Skypeが開けませんでした。このコンピュータですでにサインインしています。サインアウトしてから、再度お試しください。」

無視してIDとパスワードを入力すると「サインインしています。」のメッセージが延々と表示されサインイン出来ない。

対処

エラーメッセージ中から察するに、前回のSkype終了時にきちんとサインアウトできていなかったためロックが掛かった状況になり、再度サインインができないのだと思います。

こちらの知恵袋によれば、\Users\ユーザ名\AppData\Roaming\Skype のフォルダを削除すればいいらしいです。(必要ならバックアップをとっておく)

ところが「live#3"アカウント名"」というフォルダだけは「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません」というメッセージが表示され削除できません。

タスクマネージャからSkypeを終了させても状況は変わらずで、バックグラウンドでSkypeのプロセスがまだ動いているようです。このプロセスを止める方法がわからなかったので、面倒ですがSkypeをアンインストールして再起動しました。再起動しないと残党プロセスを殲滅できないので注意。

すると先ほどのフォルダをが開放されるので削除し、Skypeを再度インストール。

ところがダウンロードページに置いてあるインストーラを使うと途中で処理が一向に進まなくなりました。そこでこちらのリンク先から「フルインストーラ」をクリックしてダウンロードします。文章中に約24MBとありますが実際には45MBありました。(2015.3)

無事インストールが終わりSkypeを起動。するとそこには待ち焦がれていたログイン画面が。エラーメッセージが無いって素晴らしい!
 

つなぎなぎ

塵屑と粒子の端 つなぎ合わせて♪

ハイ、前回の記事投稿から5日が経ってしまいました。あれから進展はないのですが新参ブログは定期的に更新しないとSEO的によろしくないっぽいのでつなぎの記事を書きます。

Google Cloud Visionの存在を知ってからと使ってみたくてウズウズしています。ところがGoogle Platformを利用するにはクレジットカードの登録が必要になります。

AWSと違って一度登録したカード情報は削除ができないらしく、Vプリカの利用は好ましくありません。利用する側としても月額払いをプリペイドカードで行うと残高が足りなくなる恐れがあったり、買い足す際に手数料がかかったりと不便ですのでこれを機にクレジットカードを申し込みました。

クレジットカードの魔力とは恐ろしいもので、申し込み直後、気づいたら音楽のダンロード販売サイトやAmazonのKindleストアを巡回していました。人は支払手段を得ると購買意欲を刺激されてしまうんですね。

カードが手元に届いたら利用状況をモニタリングする手段を考えて自制する必要がありそうです。

アプリ開発 打ち切りの危機

インターネッツ巡りをしていたらこんなニュースを見つけてしまいました。

Google、機械学習で向上していく画像認識Google Cloud Vision APIがβ版

内容はタイトル通り。googleから画像認識/分類APIである「Cloud Vision API」がβ版として公開され、利用者登録さえすれば誰でも使えるようになりました。

ここ数日でCloud Visionに関する日本語サイトがポンポン上がっておりエンジニアたちの関心の的になっているようです。

で、何故このブログで取り上げたかというとCloud Visionは現在開発中のアンドロイドアプリの上位互換になってしまうからです。

そもそも開発中のアプリでは、

①アンドロイド端末上で、写真撮影/ギャラリーから画像選択してサーバにアップロード

②サーバ側で画像分類ソフト「Caffe」を用いて画像を分類する

③結果をアンドロイド端末で表示する

を行おうと考えていました。

今日では様々な機械学習のライブラリや画像分類ツールがオープンソース化されています。しかしどれも専門的知識を要したり、導入が面倒だったり、動かせる環境が限られたりと何かしらの難点があるように思えます。

誰もがスマホで手軽に画像分類を試せるようになってほしい。沢山の人に機械学習の凄さを知ってほしい。あわよくば一儲けしたい。

そう思ってこの画像分類アプリの開発に着手しました。

ところが今述べたことは数日前に公開されたCloud Visionのサンプルプロジェクトで実現できてしまうんです。ダウンロードしたサンプルプロジェクトをAndroid Studioにインポートし、取得したAPIキーの名前をコード中に書き込むだけで画像分類可能。そのうちCloud Visionを用いたアプリがPlayストアに並ぶことでしょう。

このまま開発を進めてもGoogleのAPIに太刀打ち出来きるとは思えません。Cloud VisionはGoogleが提供する学習データを使うのに対しCaffeは自分でデータを用意する事ができるため、分野を限定してより精細な分類をすることができれば差別化出来るのでしょうが、果たして現実味があるかどうか。

とにかく今後の方針を考えなおさなければいけないですね。ここで開発を放り投げるのか突き進めるのか。それともCloud Visionを使ってまた別のことに挑戦するのか。

これは現実逃避してないで就活に専念しろってことですかね…。