15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Piでアコギエフェクターを作ってみた

Last updated at Posted at 2016-11-28

Raspberry Pi(B+)でアコギ用のエフェクターを作ってみました。

YouTubeでStudioABTC検索してください

いずれ、SileShareできちんとスライドを作ります。とりあえず、メモ書きですみませんが…

機能としては下記の機能を備えています。

目的

もともと、デジタルエフェクターには興味はありました。「Raspberry Pi」で作ることにした経緯は以下の通りです。

  • Linuxが載っているボードで電子工作の実績が多いことである
  • エフェクトコントロールは物理的ノブでは無く、スマホ等の操作にしたかった
    (自分のエフェクターの使い方は、家で細かく音を作り外では絶対に触らない。
    物理ノブがあると、移動時にノブが回ってしまい、いちいちセッティングし直すのもいやだった)
  • 持ち歩くことを考え、消費電力の観点からPi2,Pi3ではなくB+を選択
    メモリ使用量を見てA+の選択も視野に入れる予定
  • Raspberry Pi Zeroがリソース的や取り回ししやすさから一番であるが、入手面を考えて今回は対象から外した

ソフトウェア構成

この投稿か別投稿で図示はするつもりですが、とりあえず箇条書きで。

  • ディストリビューション
    Raspberian(JESSIE)を使用。NOOBSではなくdebootstrapでイメージを作成
    参考:Raspbianをdebootstrapから作る
  • カーネル
    kernekl 4.4.28(PREEMPT_RTパッチは未使用。CONFIG_PREEMPT_VOLUNTARYでconfig作成)
  • サウンドサーバ
    JACK Audio Connection Kit
    ALSAドライバ使用
  • エフェクトプラグイン
    LV2インターフェースでC++で作成
  • OSCプロトコル制御、LV2プラグイン管理、Jackクライアント機能はC++で作成
  • Jack、プロトコル制御、プラグインは"-march=armv6 -mfloat-abi=hard -mfpu=vfp"オプションでコンパイル

PureDataでの事例はありましたが、

  • GUIレスで設定を含めて実現した
  • PureDataでOSCプロトコルでエフェクトコントロールができるか疑問だった

要は、新しくPureDataを覚えたくなかったため、全てC++で作成しました。

性能

  • JackはFrame/Period=256,Periods/Buffer=3,リアルタイムモードで実行
  • レイテンシーは5ms位で演奏での遅延は感じられない
  • 使用メモリは160~180MB位でA+でも行けそうな感じ
  • CPU利用率は70%弱。98KHzにはしたかったが、難しそう。もう一つくらいエフェクトは乗せられるか?

これから着手する機能

  • 電源断耐性向上
    /var以下をOverlayFSに持っていく予定
  • WIFI
    手持ちのWIFIトングルが標準でドライバがないため、標準でドライバがあるWIFIトングル入手中
  • 設定バックアップ
    バックアップが必要なファイルはbootパーティション(FAT)へ。ファイルコピーでバックアップできるようにする。
  • ハウジング
  • 使用方法を含めたドキュメンt(これが一番苦手…)
15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?