2017年6月22日木曜日

[PPTP]バッファの電源ノイズ削減のテスト

一回、回路の全体図をまとめたほうがいいような気がしてますが、
(実はブツッブツッと鳴る明らかに使用に堪えないマズいノイズが乗った際に、
各箇所のGNDを、電源の最上段のGNDにまとめて繋いでいるのです。。)
こちらの冒頭にてRaspberry Piのノイズ削減テストを実施しました。

【前回までのあらすじ】
積極的にパスコン等の対策で綺麗な電源を用意できるならばGPIOからの給電も良し。
でもパスコンの容量次第では心なしか原音も音が変わってる・・・?
とりあえずやたらに大きな容量のパスコンを入れても効果ない場合がある事は分かった気がする。


なんというド素人の実験!


・・・話は元に戻るのですが、あちこちでノイズが発生したら電源の最上段のGNDにまとめて繋いでいるので、
グラウンドループで酷くなっている?のか、スター型GNDでむしろノイズ減った?のか
よく分からない状態になっています。


インプット・アウトプットのバッファ回路も同じ状況で、
最上段のGNDに繋ぐとブツッブツッのノイズが消えているのでそのままにしてます。
・・・バッファの電源って絶縁型DDコンを使ってるのですが、
一次側のGNDに繋いでる今ではあんまり効果ないんでは?と思いました。
という事で、この部分の電源周りを触ってみました。

結果からいうともうDDコン、若干良いですが、でも劇的に変わらなかった。
なおGPIO給電は引き続き実施しています。

Buffers_PowerSupply(CleanTests).flac
ギターの腕前はご容赦ください。。
どちらかというと弾いてない時とのノイズの比較・参考程度に考えてください。
収録内容は、、

  1. DDコン有り→2200uFパスコン(これ、パスコンの使い方を知らなかったバカな時代のなごり)
  2. DDコン無し、パスコン無しの直でバッファに給電
  3. DDコン無し、1uFパスコンで給電
  4. DDコン無し、220uFパスコンで給電
  5. DDコン無し、470uFパスコンで給電
  6. DDコン無し、2200uFパスコンで給電
DDコンの有無で一番よく分かるのがブーンというノイズです。
でもこの手のノイズ、こっちで付けた秋月のキットのほうが除去は得意かもしれない。
入手して実験してみたいところです。



2017年6月12日月曜日

[Puredata]Pi The Effectors Set[Guitar]


今まで単発でサブパッチ形式でPuredataのエフェクターを公開していましたが、
すぐ使えるようにマルチエフェクター的な結線済み、
Puredataのインストールとオーディオインターフェースの設定さえしておけば
起動だけですぐ使えるようにエフェクターセットを組みました。
Windowsだとレイテンシーで苦しいかと思いますが、
雰囲気だけでもお楽しみください。


ノイズゲート
ブースター・歪みペダル4種
プリアンプ
キャビネットシミュレーター
がセットになっています。

※盛大な凡ミスしてました。すみません!
adcの右チャンネルが繋がってなかったので修正しました。
これですぐ音が出ます。


[Puredata]Pi The Preamp

今までリリースしたプリアンプをプログラム切り替え的な機能を盛り込み、
複数のプリアンプを切り替えて使えるよう改良しました。

既に公開済みの5種では少ないので、
Puredata with Pi The Pedalのデモで使った試作機のプリアンプも追加しました。
明らかに初期のものは最近のものと違い、出来が悪いです!

2017年6月8日木曜日

[Puredata]Uber Delay




日本語マニュアルの動画はこちら。

変なフォントの字幕は動画編集ソフトのせいです、すみません。怪しさ爆発。

[Puredata]Guitar Synth[試作品]

極めて初期に作った私的なPuredataパッチなので使い勝手などが洗練されていません。
でも何かのアイデアになればと思います。
GuitarSynth v2.zip
どちらかというとオルガン風サウンドを出すのに適しています。
もしうまく動かないときは
全てのスライダーを一度動かす(初期設定が未実装)。
パラメータのTriggerもしくはオーディオインターフェースの入力トリムを好感度にする。
を実行してください。

ギター以外にも発音の速い楽器(例えばピアノやAttack Timeの速いシンセサイザー等)ならTriggerの調整で同様に使えると思います。

2017年6月2日金曜日

[Puredata]PPTPサウンドサンプル 5[Tribass & V8custom]

V8andTriBassV1.flac
※素人レベルのミキシングで困ったら
EQ使わずに音量だけ合わせたほうがマシという常套手段を忘れてました。
凄まじいピーキーなミキシングしております。
本当はもっとギターは中音域出てます、、


FLACだからおうちでダウンロードしてね!
まだ作りかけのメモ程度なのですが!

ウチの現時点で一番頭悪そうな極悪な歪み方をするV8custom Preamp

サ○ズのベードラをコピーしようとしたら別物の何かになったTriBass Preamp
で録音しました。
ほとんどEQ掛けてないです。
ラインでオーディオインターフェースに突っ込んだら大体この音はすぐ出ます。

作っていて気づきましたが途中DAWでノイズゲート掛けたら
ベースの音が変な途切れ方してしまって録音し直しな予感。
そこに追い打ちをかけるが如くRaspbianのPuredataが起動しなくなって録音自体が頓挫しております。
Lead弾くどころの状態ではない。

・・・もうとりあえずアップしちゃえよ!

例によってウチのPuredataパッチは
大手メーカーの追加アップデートの如く太っ腹のフリーで使用できます!
ただし、Puredata鳴らすハードは自分で用意してください(最難関)

2017年5月25日木曜日

[PPTP]MICROE-506サウンドカードを使うテスト その2[WM8731]

【新型Fix】
いろいろアドバイス頂きまして、以下の構成でバッファを作成しました。
ただし、条件付き。
図に書いてあるRaspberry Pi向けのGND接続は、
もっと最上段に接続したほうがいいです(Pi The Headの構成だとRaspberry Piよりもはるか上位、ACアダプター直下のブリッジダイオードのマイナス側)
GND繋ぐ箇所によってブチブチ鳴るノイズが激減します。

とはいえノイズ出ますね。。
→新たに実験したので更新しました。
raspberry pi 3はUSB給電は止めてGPIOから直接5V送り込んで給電します。
具体的には、5Vを4ピン、GNDを6ピンに繋ぎます(逆接に気を付けてください)
更に、給電直前にデカップリングコンデンサを各種容量を変えてフィルタ掛けてます。
効果は良いか悪いかの好みがありますが、あります。
サンプル音源は以下の通り。
いずれもキャビネットシミュレータ掛けてますが
クリーン(ノイズゲート無し)
クリーン(ノイズゲート有り)
ハイゲイン(ノイズゲート無し)
で録音しました。
ハイゲインについては、フィルタの掛かる周波数をよく体感できるため収録しています。
また、いずれもクリーンとハイゲインは個別にノーマライズ掛けているので、
波形編集ソフト等で弾いてない部分のノイズ波形の大きさを見てみたほうが違いが分かります。
クリーン(ノイズゲート有り)でまだノイズがあるので、
原因っぽいバッファあたりの電源も見直ししてみようかと思います。
※ハイゲインでパコン!というノイズが入りますが原因不明で探っています。
この点についてはご容赦ください。
GPIO_power_supply(no cap).flac
これについては先日アップロードしたUSB給電の音源と同じです。
が、デカップリングコンデンサ無しでGPIO給電するのと大してノイズは変わりません。

GPIO_power_supply(101~105).flac

セラミックコンデンサ101~105までを並列(なので合成容量か、、ほぼ1.1uFやんw)
でフィルタ入れました。
容量小さい割には意外と効果ある。
が、USB給電のほうがブチブチのノイズが少ない。

GPIO_power_supply(101~105_pulus440u).flac
先ほどの合成容量にプラスして440uFの電解コンデンサを追加しました。

GPIO_power_supply(2200uOnly).flac
こちらは思い切って2200uFの電解コンデンサ1発をフィルタに使いました。

できるだけ同じ条件でパスコン替えても実験やってみました。
クリーントーンなのでボリューム上げないと
バックグラウンドのノイズは分かりづらいです。
なお、このパスコンの最終段のGNDをブリッジダイオードのマイナスに繋ぐと
うっすら掛かっていたブツブツのノイズが消えました。
とりあえず困ったら大元のGNDに全部繋いでるな(苦笑)
GPIO_PowerSupply(CleanTests).flac

  1. GPIO直、前述のGNDの対策も無し
  2. GPIO直、GND対策済。パスコン無し
  3. GPIO直、GND対策済。パスコン1uF
  4. GPIO直、GND対策済。パスコン220uF
  5. GPIO直、GND対策済。パスコン440uF
  6. GPIO直、GND対策済。パスコン2200uF

ダメだ、クリーンだと大して違いが分からん、
もしかしたらraspberry pi側は限界までノイズを取り切っていて、
バッファあたりの電源が汚いのかもしれないし、、






【以下、旧回路の古い情報】
こちらでプリアンプ側の作成を行い、大体調子よくなってきたので
WM8731のヘッドフォンアウト側からギターアンプに送るまでのオペアンプを付けました。
まだ試作品です。

【新型試作品。前段のHPFの定数を変更】
前段のハイパスフィルタをもう少し一般的なヘッドフォンアンプの定数に近づけました。
220μF→10μF
100Ω→10kF
今回、以下に置いてある音声サンプルでノイズが「大きく」軽減しているのは、
drugscore様よりアドバイス頂いて、オーディオ設定を全開で運用する方法を採用したからのような気がします。
全てZOOM U-22のギターインプットへ直で録音しています。

10u10k.flac
adc~
|
dac~
のパッチ構成で録音。


10u10kV8.flac
自分の作成したパッチで一番ハイゲインなパッチを使いました。
V8customPreamp
|
CabinetEQ
|
CabinetAir
|
NoiseGate

0:00 エフェクトOFF
0:13 V8custom On(Rythm mode)
0:38 V8custom On(Lead mode)
0:42 CabinetEQ Presense Half UP
1:13 NoiseGate On

今後はU-22の入力トリムが3~4程度と結構低い状態に設定してもクリップしそうな勢いなので、
最後段に2連ボリューム入れるか帰還の抵抗を少し小さくするかするといい感じになりそうです。


【旧型。前段のHPFがピーキーなパターン】

DCoutput_test.flac
全体的にバックグラウンドノイズが乗っています。
→よくよく考えるとノイズはオーディオ設定側の出力を全開にしたほうが
ノイズを小さくできます。

サンプルではバイパス音とV8customPreampを鳴らしているのでそれなりにノイズがのるのですが、
全般的に聞こえるチリチリしたノイズの原因はプローブで追う限り、
前段のBIAS直後で加わっているようなので、電源周りの問題かも。
ただ、オペアンプの電源を電池に変えても変化がないので悩ましい。。

2017年5月20日土曜日

[PPTP]MICROE-506サウンドカードを使うテスト その1[WM8731]

drugscore様に紹介して頂いたサウンドカードMICROE-506なのですが、
RaspbianにWM8731のドライバがありソフトウェア的な導入が楽、かつレイテンシーもかなり速いのです。

が、そんなに甘くなかった!
毎度の事ながら電源周りの原因と思われますがノイズに悩む事になります。
ここの記事ではその実験結果と打開方法を模索するページです。

【ここまでのまとめ構成】

電源は結局USBでPi、GPIOでWM8731へ供給にしました。
これで電源供給が安定しました(他の方法は起動が不安定になる場合あり)。
うすーくドドドドとノイズ乗りますが、ギターの弦触るとノイズが落ちるので、
まぁ現状はいいかなと妥協しました。
どうしても気になるなら図の場所にパスコンかフェライトコア入れようかと思います。

また、プリアンプの抵抗を小さくしました。
手元にパーツが無いのですが、ピックアップの出力が大きいベース等に
汎用的に使えるようにするなら2連ボリュームを入れたほうがいいです(後述)。

市販品のノイズと比べるために
ZOOM U-22にギター直で録音したものと、
WM8731で録音したもの(既に増幅率を小さくしている)を比べてみたのですが
発見したことがあります。
前半はU-22の綺麗なハムバッカーのサウンド。
一方後半のWM8731は図の通りクリップ・歪んでいます。
調べてみるとWM8731のライン入力で音が歪んでいる模様。
意外と歪んでいました。
オーディオ設定で入力をツマミの半分にすればほぼ音割れしませんが、
ピックアップの出力ごとにオーディオ設定弄るのも煩雑なので
一般的なオーディオインターフェースに習い、WM8731のライン入力の手前に
2連ボリューム入れたいところです。

これでプリアンプ側はだいたいFIXかなと思います。
後はアンプ出力側の回路か。。




以下、まとめまでの実験内容
*************************************************************
【パターン1:とりあえず最小構成でサウンドカードを繋ぐ】
図の通り、サウンドカードをそのままRaspberry Piに接続します。
ラインインを使用しましたがノイズが小さい!オーディオクオリティ!
が、ギターを繋ぐにはマイク端子なりラインインなり、それなりにプリアンプが要るのですよ。。



【パターン2:電池供給のプリアンプ】
こんな感じでデュアルオペアンプをステレオで使いました。
オペアンプなんかLM386をスモーキーアンプ回路でしか使ったことないので
ずいぶん苦労しましたが、いかにもテンプレ的な回路で鳴りました。
増幅しすぎてちょっとだけ歪んでますが、おいおい改良しよう。。
なお、プリアンプ自体は元気のあるサウンドですよ!

図に書いてあるGNDを結線しない場合、相当ノイズが乗ります。
結線した場合、改善されます。どこか浮いてたGNDが繋がっていい感じになったんだろうか?
ただ、この状態でも少しだけサーッとノイズが乗ります。
Puredataを
adc~
|
dac~
直結させたパッチで若干ノイズが乗っているので改善したほうがよさそうです。



【パターン3:プリアンプの電源を主電源から取る】
さて、このパターンでハマりました。
凄まじいノイズが乗ります!

こちらの藤本先生のページはeVY1シールドの場合ですが、
ほぼこの動画と同種のドドドドドドドというノイズが、動画より酷い爆音で鳴ります。
ページの解説と私の書いた図を眺めてみますと、
GNDが直接繋がって輪っかを描いている訳ではないのですが、
プリアンプ→降圧キット→Raspberry Pi→サウンドカード→プリアンプ
で確かに輪っかを描いています。
これ、絶縁型DC/DCコンバータでもどうにもなりません。
→パターン4で解決しました。


【パターン4:プリアンプの電源を主電源から取る(GND接続)】

drugscore様より助言頂きまして、プリアンプのGNDが浮いているので
Raspberry Pi側のGNDに繋ぎました。
見事にドドドドのノイズが消えました!
USB5V_GND.wav
前半がGNDを繋いだ状態のサウンド、後半がGNDが浮いたドドドドのノイズです。
改善して良かった。。
ちなみに原因はわからなかったのですが、このドドドドのノイズ、
Piに給電するUSBケーブルによっても出るときと出ない時があります。
ただ、いずれにしてもGNDが浮くとサーッとノイズは多くなるので繋いだほうがいいです。


【パターン5:Piの給電をGPIO直にする】
GPIO_5V.wav
一部で行われているPiの給電をUSBからではなく、
GPIOの
Pin4・・・5V
Pin6・・・GND
より給電する方法を使いました。
・・・あまり変わらない?
もしくは微かにドドドドのノイズが出ています。
→簡易的な対処方法でフェライトコアをプリアンプの電源の直後
(図だと12V DDコンの直後)に入れるとドドドドのノイズが消えました。
ただし、全体的に聞こえるサーッというノイズは消えません。



【パターン6:Piの給電をGPIO直にする(パスコン追加)】
パターン5の降圧キット~PiのGPIO間の5V・GNDに並列に
0.1μFと220μFのパスコンを入れました。
結論、ほぼ効果無し。
USB_GPIO_GPIOpascon.wav
前半・・・降圧キット→USB給電(Pi内部にレギュレータあり)
中盤・・・降圧キット→GPIO直(Pi内部のレギュレータをショートカット)
後半・・・降圧キット→パスコン→GPIO直(Pi内部のレギュレータをショートカット) 
です。この2200μFパスコン→降圧キット自体、
粗悪なUSB電源アダプターよりはノイズ対策の効果がありますが
降圧キット以降は大して変化はありません。

※以下、今後試してみようと思う事。
・降圧キットから直で取っているので大きな容量のパスコンを入れる。
・プリアンプの増幅前後にフィルタを入れてみる。





*********************************************************
【番外編1:サウンドカードの電源を主電源から直で取る】
よく見るとDC/DCコンバータで3.3Vにして供給ですが。
この状態、サウンドカードはRaspbianで認識するのですが音が鳴りません。
正確には、サウンドカードまでは音が来て鳴るのですが、
Raspberry Piには音が来ていない状態のようです。
オーディオのプロパティにある
Output Mixer Line Bypassをオンにするとヘッドホン端子から音が聞こえるのですが、
Puredataで音がエフェクト加工できていないあたり、
Output Mixer Line Bypassはラインインの音をそのままヘッドホンにダイレクトモニタリング的に返す機能の模様です。
という事で、MICROEのサウンドカードでは今のところ
電源をRaspberry Piから取るしか手段はなさそうです。
でも他のWM8731使ったサウンドカードなら上手くいくのかもしれない。う~ん。。

※サウンドカードのGNDをPiに直結しましたが、やっぱり鳴らず。そんなに甘くなかった。



【番外編2:プリアンプの電源をPiから取る】
昇圧パーツが絶縁型DC/DCコンバータしか手持ちになかったので上記のようになっています。
効果は目に見えてあり、グラウンドループのドドドドのノイズは無くなりました!
ただし、ドドドドに比べればまだマシですが、
かなり大きなザーッというノイズは残ります。
これについては絶縁型DDコンはGNDが分離されているようなのですが、
DDコンの前後のGNDを繋いだほうが若干ノイズが和らぎます。

これはギターについての話で、実は上記構成でスマホのヘッドホン端子から繋ぐと
実用に耐えるノイズの少なさになります。
・・・ということはプリアンプがダメなのか?
ちょっとプリアンプを見直してみます。
→オペアンプの100kΩを22kΩに変更で入力レベルで音が歪むのを若干和らげます。
もっと小さい抵抗でもいいかも。

前述のザーッというノイズですがPuredataの簡易VUメーターでー50db程度なので
全く使えない訳ではない?ノイズゲート入れればもちろん気にはなりませんが、
やっぱりハイゲインで歪ませると気になりますか。。




2017年5月18日木曜日

[PPTP]Puredata with Pi The Expression Pedalの青写真


以下、妄想ですが、一つの可能性として記事にしました。
コンセプトは既にディスコンですがDigitech EX-7です。





Guitar-Extended様のArduino-based pedal ([pduino])って素晴らしいなと思います。
この動画は2012年で、外部のPC?のPuredataで音の操作をしてるみたいです。

その後Raspberry Pi Zeroが出た訳で、
PCも内蔵したワウペダル的なPPTPが作れるのではないかと考えた訳です。
こちらでVOXワウの中身のスペースを確認しながら、
既存のワウのケースやパーツを流用できるのか、どうしたもんかなと考えてます。

最低限ねじこむものは
・Raspberry Pi Zero w(フリスクサイズ)
・Arduino Microあたり
・Microe proteサウンドカード(プリアンプ回路付き)
・電源モジュール(これが一番やっかい)
・各種手動設定用の可変抵抗(3~4個)

設定の関係上、Wi-Fiは欲しいですが機能限定すればLCDも要らないでしょう。。
ケース自作の場合は最大の難関は可変抵抗の可動部だろうな。。

[機材]VOX Wah-Wah V847

中古で買った小汚いワウペダルを持っています。
ほとんど使っていませんが、久しぶりに火を入れたら使えました。
今回記事に取り上げたのは、この個体を使うかどうかは別として、
Puredata with Pi The Pedalに使えないかということで中身を調査しました。

以下、写真とPPTPで使えるかどうかの感想。







 ワウ上部が一番背が高いので基板を詰められそうなのですが、
可変抵抗があるので難しい。

 ジャックは流用できそうです。
 基板等を入れるにはこのスペースになりますが、
都合、
・Raspberry Pi Zero w(フリスクサイズ)
・Arduino Microあたり
・Microe proteサウンドカード
・電源モジュール(これが一番やっかい)
・各種手動設定用の可変抵抗
をねじ込みます、、、結構キッツいな、、


可変抵抗は取り換え難しそうな構造。

スイッチも流用できそうです。



2017年5月16日火曜日

[機材]KORG SUPER MULTI FX 411FX

KORGがこの辺をTONEWORKSで出していた時代が好きです。

このあたりの時代のものは他に
Distortion 104ds
初代PANDORA PX1T
を所有していました。
特に初代PANDORAのVALVEの音が好きで、
フットペダルで同じ音が出せないかなと思っていた時に
兄弟がこれを所有していたので貰ってきました。
ん~でも同じ音色が無いのでちょっと違う。

サイズの小さいマルチエフェクターというのがセールスポイント。
また、当時のデジタルエフェクターの中ではKORG、結構頑張っていて、
当時のデジタル臭と独特のザラついたクセはあるのですが、
なかなかハイゲインが使えるという一品でした。

[機材]Roland Analog Echo DC-20

いきなり骨董品の紹介です。
写真の通り状態が悪い。。
部室の大掃除の時に危うく廃棄される運命だったエフェクターが何台かありまして、
パクッて回収してきたもののひとつです。
長らく倉庫の奥に眠っていたので動くかどうか怪しかったのですが、
案の定、電源スイッチが取れかけており電源上がらず。
しかし諦めきれなかったので強引にスイッチを使えるようにすると鳴りました!
また、電源はよく見ると100VでACアダプタ的なものは無く、電源コードが直接筐体から生えています。

さて、肝心のサウンドというと、
最近のデジタルディレイのなんちゃってアナログ風のサウンドと違い、
結構エグく高音域が削れて籠った音がディレイ音で還ってきます。
また、意外とディレイ時間が長く設定でき、設定を追い込むと大変スペーシーなサウンドがします。
ただし、コンディションの問題なのか歪みのエフェクター経由でギターを繋いだのが問題なのか、
バックグラウンドでやたらサーッというノイズが多いのでセッティングを見直したほうがいいのかもしれない。

2017年5月13日土曜日

[機材]Boss Mega Distortion MD-2

今回Modでも何でもないのですが、
Boss Mega Distortion MD-2の紹介です。

DistとGain Boostがついてます。
もちろん両方上げていくとハイゲインになるのですが、
自分で昔使っていたころはDistもしくはGain Boostどちらかフルテンにして片方はゼロにして使っていました。
実はこれだけでもなかなか適度に元気なサウンドが出まして、
今回記事にする際に回路図を見てみると

前段・・・トランジスタでGain Boost
後段・・・オペアンプでDist

となっているようです。
オペアンプonlyもしくはトランジスタonlyな歪みを自分は気づかず使っていたのかもしれない。


ちなみにトーンはBottomを低めにしてジャリジャリッとした音にして使っていました。
なお、ハイゲイン設定にすると普通低音がスポイルしがちなベースの低音もBottomでガッツを与えられるディストーションです(Boss公式で聴けます)

という感じで、
実はギターについてはカラッとした歪み~ハイゲインもカバーしつつ
ベースに至ってはリーサルウエポン的な歪みを提供するという
器用なエフェクター、という再評価の一品です。

[Puredata]ADDAcontrol[入力レベル微調整]

Adjust adc~改め、adc~とdac~で個人的に使う機能と統合したパッチを作成しました。
作るのは面倒だけど、個人的に毎回必要な機能を備えています。

ADDAcontrol_v3.zip
Ver2だとDSP LOOPのエラーが起きるという凡ミスをやっていたため、
再度adc~とdac~を分離しました。
あと、サイズがコンパクトになっています。




オブジェクトの上がdac~側、
下がadc~側になってます。
テレコに接続しないでください。

主な機能は
【adc~側】
inputボリューム調整


【dac~側】
outputボリューム調整
outputモノラルon、off
outputミュート
DSP on、off


2017年5月7日日曜日

[Pduino]ロータリーエンコーダーをPuredataで使うヒント

実は難しいのです!
PuredataのフォーラムでもC++やPyhon使ったほうが簡単ですと回答があります。
難しいと言われるとPuredataだけでどうにかしたくなります。

やってみました。
こんな感じで割とサクサク動きます。
※配線の誤記載があったので修正しました。
また、回転方向の誤検出のパターンについて付録につけました。






使ってみたロータリーエンコーダーはこちらです。
安い。
一般的なACBピン配列でプッシュすればモーメンタリーのボタンにもなるものです。

ピン配列は入手したものにより異なるのでデータシートを要確認ですが、
上記の物はこちら。


繋ぎ方と回路図的なものはこちら。



Arduinoとの繋ぎ方もテンプレ的な繋ぎ方です。
なお、デジタルピンは
A・・・53ピン
B・・・52ピン
で繋いでいますが、お好みで。

rotary_encorder_testV1.zip
同じ環境を再現しないと動作しないかと思いますが、使ったパッチをアップロードしました。
[arduino]オブジェクトは必須です。
一番最初にArduinoが出力したピンNo.を拾って右回転・左回転を検出するので、
残念ながら若干回転方向を間違える事がありますが、シビアなリアルタイム操作が不要な場合はまぁ支障無いかと思います。
Arduinoが出力した値を適宜削る方法には[route]オブジェクトがありますが、
今回は[unpack]を使用しました。こちらのほうが簡単です。
ロータリーエンコーダーを1個しか使わないなら[unpack]のほうが早いですが、
多数の可変抵抗等を繋ぐ際は[route]で出力を綺麗にデータ抽出するほうがいいです。

[moses 52]はたまにピンNo.が0や1といった予期しない値を出力したときがあったので削除するために保険で入れています。

【回転方向の検出について】
[t b b]
|
[timer]
|
[ float  ]
|
[moses 50]

ロータリーエンコーダーを回すと高速で多数の出力が始まるのですが、一番最初の値だけが欲しいので、
Bang版threshold~的な動作をするフローを作りました。
すなわち、bangとtimerを使って出力の間隔時間が短い時(ここではmoses 50 の50ms)
は次のspigotで出力を遮断します。


*汎用的にすぐ使えるようパッチを作りました。
rotary_encorder_forPduinoV1.zip
上記のように繋いでピン情報を送るとすぐ使えます。
ロータリーエンコーダーのAピンをArduinoの若番(例えば22)
ロータリーエンコーダーのAピンをArduinoの老番(例えば23)
に繋いで下さい。




2017年4月25日火曜日

[Pduino]タップテンポとテンポに合わせてLED点滅

[Pduino]エフェクトOnOffを物理スイッチで制御&LEDの点灯・消灯
こちらの記事で紹介した、
上記の物理的な回路ですが、
少し工夫を加えれば、
モーメンタリースイッチのタップでテンポ計測し、
テンポに合わせてLEDを点滅させることができます。
エフェクターでいうとタップテンポのディレイ等に応用できます。
※モーメンタリスイッチはクリック感の少ない、軽快に押せるものがオススメです。
深くしっかり押さないといけないタイプだと苦しいです。


タップテンポの計測方法はこちらのフォーラムを参考にしました。

Puredata側はこのようなパッチになっています。
一番左のフローは急造で作ったディレイ回路なのでスルーするとして、
ポイントは右側の[arduino]に繋がるフローです。

左上の[receive Tempo]から[arduino]に繋がるまでの回路は、
LEDをテンポに合わせて点滅させる回路です。
[metro]で点滅させますが、消灯処理が必要になるため、
[delay 10]
|
[digital 13 0(
で消灯させます。
また、[metro]の手前にBangボタンがあるのは、
 テンポが変更した際にLED点滅の挙動がおかしくなるため、
テンポの数字が変更した際に合わせて[metro]をリセットするようBangしています。

[arduino]から下のフローはモーメンタリスイッチのタップでテンポを検出する回路です。
[change]の直後はタップする度に
押した瞬間:1
離した瞬間:0
を吐き出すため、
[moses 1]で1だけを抽出し[trigger b b]に送ります。
後のタップテンポの仕組みはPuredata Forumの通りです。
ここで得たテンポをそのままLED点滅の回路とディレイタイムの回路へ送れば完成です。

※まだ、[trigger]の使い方が自分はヘタクソです。理解が足りない、精進せねば。


[Pduino]エフェクトOnOffを物理スイッチで制御&LEDの点灯・消灯

[Pduino]Lチカと応用(エフェクトOnOffのLED点灯)
[Pduino]物理スイッチでのエフェクトOnOff

まとめとして書きますが、上記2つの記事の内容を合わせれば、
エフェクトのOnOffを物理スイッチで切り替え、更にその状態をLEDで点灯・消灯して表現できます。


右側がエフェクトOnOffの回路で、左側がLED点灯・消灯の回路になります。

[Puredata]スライダーのliner増減をlog増減へ変換する[Pduinoでも可]

今回の記事はPuredataのスライダーの増減量をlinからlogに似非変換するTipsです。


上の写真のとおり、スライダーは増減量をlinとlogで選べます。
スライダーのプロパティから変更できますが、
以下の場合では使いづらい場合があります。

・物理的なポテンションメーターは付けてしまえばlogとlinを変更できないが、
エフェクトに合わせてlinとlogを切り替えたい場合

・Puredata内のスライダーについてもスライダー自体は共用にして
複数のエフェクトに合わせてlinとlogを切り替えたい場合

さてこの場合、どう対処するかですが、
ひとまず物理的なポテンションメーター、Puredata内のスライダーを問わず、
Bカーブ(lin)を使ってください。
ポテンションメーター等の変化の範囲が
0≦x≦1
0≦y≦1
の範囲限定になりますが、
以下のカーブのようにそれっぽくではありますが簡易に変換できます。

Bカーブ(liner)
Y=X

Aカーブ
Y=X^3

Dカーブ
Y=X^2

Cカーブ
Y=1 - (X-1)^2


これで可変抵抗を買うときに困ったら、ひとまずBカーブ(liner)で対応できます。

※ただ、Puredataの実際のlogの増減のカーブは
Dカーブよりももっときつい増減な気がするので改良が必要かも。

[Pduino]物理スイッチでのエフェクトOnOff

※完全に自己流のため、他に上手いやり方がありましたら是非ご連絡ください。

物理スイッチには色々種類がありますが、今回は単純に1回路をOnOffするスイッチで
エフェクターの機能を再現できるか考えてみました。


スイッチには
オルタネート(押すたびにOn・OFFが入れ替わる)
モーメンタリ(押している間だけOn。離すとOff。)
の2種類があります。
それぞれPuredataでエフェクトのOnOffをする際には工夫が必要です。

今回は

5V

スイッチ

アナログインプットA0(pinMode 54)

で接続してテストしました。
Puredata側のエフェクト回路の部分はいつもの簡易ディストーションに自作のspigot~です。


【オルタネートスイッチの場合】

フットスイッチやスライドスイッチ、トグルスイッチで入手が容易です。
押しボタンタイプもまぁ、無くはないです。

さて、考えた回路はこちらです。
まず、いつも通りポートを
[open 3(
で開けまして、
[pinMode 54 analog(
でアナログ入力 A0(arduino Megaの場合)を使えるようにします。

この状態でスイッチをOnOffすると
[arduino]
からメッセージが「常に」出力されます。
試しにprintでコンソールへ出力してみます。

Offの場合、
print:analog 0 0.2前後


Onの場合、
print:analog 0 0.9前後

analog は アナログ入力
0 は 端子番号
その後の数字は物理的な回路の状態により0~1までの間で変化・受信した値です。

※注意すべき点は、
端子を使えるようにするときは、すべての端子から数えた順番の
[pinMode 54 analog(
だったのに対し、
出力されるメッセージでは
analog 0 0.99
とアナログ端子内での順番に代わる点です。
上手く出力できない場合は見直してみてください。


必要な値は最後の0~1の値なので、他の不要な情報は
[route]
で削除します。
(入力された値にrouteで指定した文字があれば削除して左インレットから出力)
更に、値が常にフラフラ揺れるため、
>= 0.5
で値を1 or 0に置き換えて、EffectOnを制御するトグルボタンに送ります。
これでオルタネートスイッチの場合のエフェクトの切り替えはできます。

※もし、常に値がトグルボタンへ送られるのが気になる人は後述の
[change]
を使ってみてください。




【モーメンタリスイッチの場合】
押している間だけONになるスイッチです。
押しボタンタイプだと入手が容易ですが、
フットスイッチタイプは強度的なものもあり、
なかなか見つけづらそうではあります。

さて、モーメンタリースイッチの場合のPuredataの回路はこちら。
[>=5]
まではオルタネートスイッチと同じですが、
常にBangを打つが如く、フラフラ1 or 0の値がトグルボタンに向けて飛ぶため、
エフェクトOnOffの動作が不安定です。
このため、
[change]

[bang]
を間に挟みました。
これで動作が安定します。

※解説しますと、
[change]
は違う値が飛んでくるまでは、同じ値が飛んできても「何も出力しない」オブジェクトです。
違う値が飛んできて初めてその値を「1回だけ出力」します。

そしてこの後ろに
[bang]
を置きます。
エフェクトonのトグルボタンはbangが打たれる度にOnOffを切り替えするためです。

2017年4月24日月曜日

[Pduino]Lチカと応用(エフェクトOnOffのLED点灯)

この記事では定番のHello World!的なLチカを扱いますが、
それだけではつまらないので、実用的なエフェクトのOnOff用のLED点灯を考えてみます。


基本的なArduinoの接続と端子の指定方法
【Arduinoとの接続ポートを調べる】
arduinoオブジェクトにメッセージで
[devices(
を送ってください。
コンソール画面に接続されているポートの番号がでます。


【ポートを開く】

先ほど分かったポート番号を使います。
更にメッセージ
[open ポート番号( 
を送って下さい。
これでPuredataからArduinoを使う準備ができました。


【Arduino側で使う端子を指定する】
[pinMode 端子番号 output(
のメッセージを送ります。
上記は「端子番号」の「Output(アナログ出力)」を使うという意味です。




LチカでHello World!

物理的なつなぎ方の回路図は後程UPします。
物理的なつなぎ方は以下の通りです。
アナログ出力の13番端子

LED

抵抗

GND
の順に繋ぎます。
LEDを使う際は100~1kΩ程度なら何でもいいので必ず抵抗を入れてください。



メッセージで
[digital 13 $1(
と書いて、トグルボタンを接続します。
そしてメッセージをarduinoに接続します。
トグルスイッチはOnで「1」、Offで「0」を出力します。
$1は変数。トグルスイッチの1or0が入ります。
トグルスイッチを操作する度に [digital 13 $1( のメッセージがarduinoオブジェクトに飛んでいきます。
これで1のときに電流が端子から流れ、0のときに電流が止まります。
なお、
[digital 13 $1(
の13は
[pinMode 13 output(
で指定した端子番号13です。



エフェクトOnOffでLEDを点灯消灯させてみる


上のようにシンプルなディストーション回路でエフェクトOnOffをします。
[pd spigot~]はPd-extendedにある[spigot~]と機能的に同じで私が作成したものです。
作り方の記事についてはこちら
トグルスイッチOnでLED点灯と共にディストーションがOn、
トグルスイッチOffでLED消灯と共にディストーションがOffになります。

[PPTP]バッファの電源ノイズ削減のテスト

一回、回路の全体図をまとめたほうがいいような気がしてますが、 (実はブツッブツッと鳴る明らかに使用に堪えないマズいノイズが乗った際に、 各箇所のGNDを、 電源の最上段のGNDにまとめて繋いでいる のです。。) こちら の冒頭にてRaspberry Piのノイズ削減テス...