電音の歩み

電子楽器を中心とし、ものづくり関係も含めて紹介していきます。

Synth Scope その4 設計完了しました。

大分間が空きましたが、やっと作り直した基板とソフトのデバッグが終了しました。

日々の進捗がとても遅いです。

■ 進歩したのは

・パネルがブルーに光る(明るさも変化)ようになりました。

・OLED Adafruit_SSD1306ライブラリのフォントが極小で見ずらい(私にとって)。サイズを2倍にすると大きすぎて汚いので、ほぼ1.5倍サイズ(6*11とドット)のフォントを作りました。

・性能的には、割り込みを最適化しサンプリングレートを70.3KHzから140.6KHzに上げた。

 波形の鈍りとジッタ減少

・UIも改善

 

■ 先行キット(少数)を用意

一部の人の間では、期待されている向きもあるので、

一度量産を考えたいと思います。

ただ、実装の難易度の高い表面実装(SMD)のパーツとスルーホール(足のある部品)のパーツが混在しているので、製品形態として、

  (a) SMDもスルーホール・パーツもはんだ付けするフルキット

  (b) SMDのみ実装済みで、スルーホール・パーツのみはんだ付けする簡易キット

  (c) 完成品

が考えられる。

ここで、半田付けの難易度が高いのでフルキット(a)は製品形態とし無いだろう。

かといって、形態(b)は、SMDパーツのみを事前に実装した状態では基板テストができないので、こちらの実装不良という不安がある。

というと、いきなり(c)しかないことになる。

 

まずは、この仕様でよいのかというリサーチが必要なので、

ごく少数になるが(a)の形態でテストしようと思います。

 

このブログ、FBとTwitterで作ろうと思う方を募集します。(用意できる数は数点ですが)

リサーチなので頒布価格は、7000円とします。

希望の方は、twitter : @hhh_yama      FB : /hhh.yama

で連絡願います。

 

youtu.be

ARM_Theremin_Live (光るアームテルミン) その5  コントローラのケースについて

コントローラのケースについて

コントローラの裏側は、左手で握り支える部位(ケース)が必要で、演奏のUIを担う重要なものです。

写真は、実際の演奏で使ってもらうためのサンプル用にikkei氏の協力で3Dプリンタで開発しているものです。(実際は、ikkei氏100%ですが)

 ケース側面には、ベロシティとビブラート用の圧力センサ(人差し指、中指)と、3個のスイッチ(薬指、小指)があります。

2回目の試作で一気に完成度が上がり、ほぼ演奏に使えるレベルに近づきました。

 

下の写真は、パネル裏の基板の様子です。

 

ARM_Theremin_Live (光るアームテルミン) その4  音源モジュール

音源モジュールについて

機能としては、3pinのステレオミニジャックでコントローラと接続し、

 ・電源(5V)の供給

 ・制御情報を受け取り発音

することにします。

 f:id:hhh_yama:20200714002247j:plain

マイコンは、32bitのBluePill (STM32duino)に格上げし、

3個の POTは、

 (1) 音量調整(アナログ処理)

 (2) リバーブとディレイの調整

 (3) 未決定

で、スイッチも3個ありますが、

コントローラ側のPOT2個、スイッチ3個との使い分けをどうするかはまだ決まっておらず

実際の演奏に使ってもらって決めてゆきたいと思っています。

 

ディスプレイには、オシロと同じSPI接続の0.96" OLEDを使います。

 

さすがにAVRより一桁速いので、随分やりたいことができます。

まずは、サンプリング周波数を31KHzから70KHz、音源分解能を8bitから16bitに上げ、

波形間の連続モーフィングをインプリしました。

モーフィングについては、別に紹介しますが、各ハーモニクスも位相が回らず同じ比率で変化します。

 

波形は、とりあえず以前に作ったものを並べています。

(1) SINE (2) テルミン波形 (3) シャープなテルミン波形 (4) 二胡(Erhu)  (5) SAW

これらの波形は、コントローラのTone POT で連続変化させます。この仕様のみFIXです。

 

エフェクトとしては、

(1) 3音ディチューン・ユニゾン (2) 6音ディチューン・ユニゾン

があり、

検討用に

ディストーションとスケール・フィティング(クロマティク。メジャスケール、ペンタトニック)を試しています。

スケール・フィティングは、画像処理でのポスタリゼーションのような処理で、

せっかく連続ピッチが出せる「テルミン系の音」とは一線を画す方向ですが、

ディレイと併用すると他の楽器にはない面白い効果があります。

 

後日、デモを紹介します。 

 

また、OLEDには、各波形やバランスだけでなく、波形そのものも表示します。

波形は、音源波形とエフェクトのかかった出力波形を切り替えられます。

 

 

 

 





 

 

 

 

ARM_Theremin_Live (光るアームテルミン) その3  コントローラについて

コントローラについて

コントローラと音源モジュールに分離したシステムで、今回は「コントローラ」を紹介します。

コントローラ側の基本的な役割は、

音源側からパワーをもらう。

・発音はせず、演奏情報をデジタルで音源側に送る

・LEDイルミネーションはコントローラ単独で行う

 

具体的には

 ・トーンアーム 12bitADCで読み取り、キャリブレ・アンチログをかけ15bitCVに変換

 ・ベロシティ圧力センサ 非線形チューニング後、15bitCVに変換

 ・モジュレーション圧力センサ 非線形チューニング後、15bitCVに変換

 ・その他、POTとスイッチの一部を、15bitCVに変換 

 ・発光パターン処理は、コントローラで完結

 とします。

 

圧力センサ

 秋月のを使っています。

指での押す感覚と音量との関係が重要です。

ストロークを稼ぐため柔らかなシートの上に設置し、電気的にはリニアライズ関数を試行錯誤で決めています。

今後、さらにチーニングすることとし、現状はまあまあで妥協しています。

 

他には、POTを2個(Tone,Func)とプッシュスイッチ3個を設置しています。

 Toneは、今の実装では例えば5つの波形とその間の波形を連続的に作り出す波形モーフィングのコントロールです。

Funcには、色々なエフェクトを切り替えて実験する予定です。

どちらにらよ、これらの機能を決めるのは音源モジュール側の実装できまります。

プッシュスイッチは、オクターブシフト、ディチューンユニゾン、発光パターン変化の予定です。

 回路

f:id:hhh_yama:20200710212202p:plain

 

マイコンは、ATmega328、ADCとしてISP接続の12bit MCP3201を使用します。

マイクロチップのMCP3201は、AliExpressで購入したところ、偽物を掴まされました。中が空でした。12bitのADCは製品も少なく他に適当なものがないので貴重です。

https://twitter.com/hhh_yama/status/1169154156130648065/photo/1

 

音源モジュールから送る電源の大半はLED駆動に使われるので、大きなノイズが乗るので、マイコンやADCへの電圧供給のためにクリーン化が必要です。

当然ケーブルで送るので、5Vから電圧降下がありノイズも乗るので、低ドロップレギュレータで4Vを作ります。4Vの低ドロップ可変レギュレータで良いのを(NJM11100を)見つけたので使用しました。

 

マイコンにはブートローダを書き込みコネクタP4にUSBシリアル変換をつなぐと、直接ArduinoIDEから書き込めます。

 

 

 ・

ARM_Theremin_Live (光るアームテルミン) その2  本システムの検討

ARM_Theremin_Liv

前回のコンセプトモデルで方向は決まったので、具体的なシステム検討に移ります。

 ARM_Theremin_Liveは、最初から楽器として開発するので、

ガジェット・キットからスタートした ARM_Thereminをゼロから見直します。

 

現時点で改善すべき必須の課題を優先度の高い順にあげると

(1) 光らせたことにより新たに発生した課題

 ・多数のLEDをPWM制御の影響で、アナログのノイズレベルがアップする

 ・バッテリー消費が増加し、演奏中にバッテリー残量に気を使う

(2) トーンアームのA/D分解能10bitでは精度不足

(3) Soundエンジンのパワー不足

 

以上を踏まえた仕様として、 構成を、「コントローラ」と「音源モジュール」に分離する

 ・「コントローラ」のバッテリをなくし、電源は「音源」→「コントローラ」

   バッテリー残量から開放!

 ・「コントローラ」の発音処理をなくし、サウンドデータは「コントローラ」→「音源」

   アナログノイズから開放!

 ★「コントローラ」は、AVR ただし12bitA/Dを追加

 ★「音源モジュール」は、8bitAVRに限定する意味もないので、同じArduinoIDEで開発できるBluePill(STM32マイコン)に移行する

 ★「コントローラ」「音源モジュール」間のインターフェースは、ステレオミニ互換とする

  3線で電源とサウンドデータを送受する。

  サウンドデータは、2msec周期で垂れ流し。

    CVは15bitシリアル(小数点以下8bit付きのMIDEのようなもの)

    他はPOTとスイッチの情報

 

 左がコントローラ   右が音源モジュール

 

ARM_Theremin_Live (光るアームテルミン) の方もまとめてみました その1

■ARM_Theremin_Live (光るアームテルミン)とは

従来のアームテルミンはガジェットから楽器に一歩前進したものなのに対し、

最初から、ステージでの演奏用に開発している楽器です。

こちらもスタートは2018年で、何段階化の進化を遂げていますので、忘れないようにまとめてみます。

 

ARM_Theremin_Live (光るアームテルミン)は、基本コンセプトとして、

・机に向かって演奏する従来のアームテルミンは、ステージ映えしない。 

 → 立って演奏できる形態とし、

   Euro Synthのパネルで行っていた、光るアクリルパネルの技術を用い

   暗い環境でもステージ映えする。

・ベロシティが自由につけられ表現力が増す。

 

からスタートしました。

 

■第1段 コンセプト開発モデル

 コンセプト検討用なので、機能評価が主眼です。発音システムは写真の右の基板(従来の8bitAVR構成)のままです。

 

 ●光るトーンサークル

ステージ映えを目指した少し大きめのトーンサークルを5mm厚のアクリルで作り、電飾看板の原理で光らせています。中央から外に向かって照明しています。

下の写真が中央でVRを保持する基板で、VRの周りを14個のマイコン内臓のサイド型フルカラーLEDが取り囲んでいます。データラインは一本のシリアル信号をデイジーチェーンで結んでいます。

ライブの曲調に合わせて発光パターンを変化させる目論見です。

f:id:hhh_yama:20200703220229j:plain

 

●ユーザーインタフェース

左手で持ち右手でアームを操作することを想定しています。

立って演奏することが可能なので、光るトーンサークルは両面から見えるので、暗いステージでは目立ちます。

人差し指と中指が押さえているのは、圧力センサーです。

人差し指のセンサーはベロシティーで、中指のセンサーはビブラートレベルです。当面は。

単なるスイッチと比べて、表現力が異次元に拡大します。(今までが乏しかったのですが)

他のスイッチの役割は仮ですが、

・オクターブシフト  ・音色  ・コーラス  ・リバーブ  ・発光パターン変更

などが考えれます。

 

●結果

圧力センサーのベロシティカーブをチューニングすることで、大幅に表現力が高まりましたので、このコンセプトは継続し、残留課題である、

・オーディオ的な音質の向上

・楽音波形の改善

・音色のコントロール方法

・コーラス、リバーブ

・その他、エフェクト

に向けてすすめる。

ARM_Theremin (アームテルミン) はその後どうなっているか その3

■電源スイッチの改良

表面実装のスライドスイッチは、いくら探しても極小サイズの華奢なものしか見つからず、

トグルスイッチなど他のスイッチはスペースを取りすぎるなどで使いづらい。

 

そこで比較的堅牢で設置が容易なタクトスイッチを使った電源の入切を検討しました。

具体的には、長押しをすることで入切するイメージです。

マイコン以外にボリューム他にも電源が供給されるので、電子スイッチによる方法を検討しました。私のメモです。

 動作としては、

・電源on PUSH ONでマイコンに電源が供給され、PUSH OFFでも入り続ける。入力ポートでスイッチの長押しを監視し、長押しでなければ自分でOFFする。

・電源off  PUSH ONの長押しを検出し、自分で電源を遮断する。

いくつか検討しました。

(A)はスイッチonでハード的に電源が供給され、スイッチの状態も検出でき、出力ポートからスイッチonの継続とoffも可能であるのですが、

マイコンに電源が入っていないときに、入力ポートの保護ダイオードを通じての電流リークがあるのでボツ。

 

(B)は入力ポートの惚れ電流は改善されたが、PNPのベース電流をこの値よりかなり増やす必要があり、電源on時の消費電流が増加します。

 

(C)は仕様を満たすもので、PchMOSを使いもれ電流を減らしています。NPNのベース電圧の検出にA/Dを使います。

 

実際、これで基板設計をしていたのですが、

AVRのDeepSleepを利用すればソフト的に数uAまで消費電流を抑えられる(はず)であることを思い出し、少し難易度が高い方向の検討に入りました。これに成功すればこのようなハードは無しで済ませます。

実は、大学のイベント用に開発したLEDバッジでATtiny85のソフトで実現しています。(このソフトはikkei氏の作のものです)

このソフトを参考にすれば、ATmega328でも実現できそう。ネットで調べると、いろいろなI/O,A/DをすべてoffにしてDeepSleepに入れば数uAが実現できることがわかりました。

 

ただ、アームテルミンのソフト構成はすでに相当複雑になっている。ところが、DeepSleepからの復帰で行うべきシステム初期化処理はメインループ内の処理になるのに対し、同じ処理のはずのパワーon時の処理はループ外になり、構成を大きく変えねばならず避けたいところです。

そこで、出力ポートから自分自身にリセットかける接続を追加し、DeepSleepから復帰したとき自分をリセットすることで回避しました。

また、ボリュームなどの外部機器へのVDDの供給はAVRの強力な出力ポートから行うことで解決。