電音の歩み

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

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の強力な出力ポートから行うことで解決。



 

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

■完成品への課題

電子工作ガジェットのキットから完成した楽器に近づけるには課題がいっぱいあります。

(a) 楽器としての完成度

 当たり前のことですが、回路がむき出しや、ケース中の基板のスイッチを触るなどの仕様はNGでしょう。また強度が弱く壊れやすいなども。

(b) 製造の手間(コスト)を下げる

 今までのキットを製作するには、手作業で優に2時間/台くらいはかかります。

 いくら部品代を抑えてもこの工数では成り立ちません。

(c)部品の入手性

(d) 演奏しやすい

 演奏してもらうための完成品なので、UIが実際に使えるものにならないといけない

 

■ぼちぼち取り組んできたこと

ケースの製造も手間が多いのですが、レトロな感じで評判が良いのでとりあえずこの方向は継続するとして、この形態で、

・回路基板をケース内に収めつつ、UIはケース外に出す

・表面実装部品に変更する。このメリットは4つあって、

  ・将来基板発注と同時の部品実装サービスを使いやすくなる。

  ・部品の入手が容易

  ・実装面積が小さくなる

  ・基板の片面だけで実装できるので、頑張れば基板の裏を外装のパネルにできる。

   こうすると、パネルと回路基板が共用できさらに相互の接続も省略できるので、

   このメリットは大きい。

 

■開発中の実例1

なんとか試作にこぎつけたのがこれです。

 

基板の表面がパネルで裏面だけで回路を構成していることがわかると思います。

また、このような面積で実装できるのも表面実装の威力です。

スピーカーとボリュームへのケーブルは、AliExpressで圧着済みのものが購入できます。

 

回路そのものは、ほぼ従来と同じです。

ARM Theremin

AVRマイコン ATmega328のソフトで62.5KHzの高速PWMポートから直接スピーカーを駆動しています。十分大きな音を出すために必要な、32オームの特殊なスピーカーは、デジット以外に入手困難なので、まとめて在庫を確保しました。

 

まだ課題はあります。

電源スイッチは、パネルの左横にあるスライドスイッチですが、

表面実装で入手できるものは、小型で華奢であるので、無理な扱いをすると壊れやすそうです。他に使えそうな良いスイッチがないのが課題です。

 

これについては次回に。


 

 

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

■ARM_Thereminとは

アームテルミンは2015年ごろから開発を始めたオリジナル楽器です。鍵盤状のトーンサークルの上にアームを回転させ「テルミン」のようにポルタメントを主とした演奏ができる楽器です。

私のWebサイト( ARM Theremin )の方で、コンセプトや技術の紹介・デモなどをしていますのでご存じない方は見てください。

 

元々は、教育系の電子工作キットとして開発を開始したものですが、いつの間にかテルミン系の電子楽器として認識されてきました。

2017年くらいから色々なイベントで紹介し、マニア向けのキットを少量頒布(作るのに技術が必要なので)し、2019年、初心者でも作れる簡単バージョンキットを作り、今まで数10人の方が作られています。

      

  2019年にMakerFairなどのイベントで頒布しているキットの写真

 

ただ、興味を持たれる層が電子工作系のかたから、演奏サイドの方に広がりつつあり、

「作らないといけないの」という声が増え、完成品を検討しています。

 

実は、電子工作系の方は、「キット制作をされたあとそこで満足しておしまい」という傾向があり、「実際に楽器として演奏する」方はごく少数なので、

なんとかキットではなく完成して楽器に進化させる取り組みをしています。

 

続きは次回に

 

 

 

 

 

Synth Scope その3 内部構成について

Synth Scopeは、シンセの波形を手軽に表示するモジュールです。

測定器としての精度は重要でないので(と考えて)、マイコンのソフトで実現しています。

 

マイコンは、AliExpressで安価に買えるSTM32搭載のMaple互換(模倣)ボードであるBluePillを使っています。このボードは日本語の情報も豊富で、ブートローダを入れるとArduinoIDEで開発できます。STM32duinoと呼ばれています。

 

Displayは。0.96"の128*64画素のOLEDを使います。これもAliで購入。I2Cのは遅いのでSPIを選びました。 入荷に時間がかかったので複数ショップから購入したところ、わずかに形状・寸法が異なるものが何種類もありました。要注意です。SSD1306のライブラリ<Adafruit_SSD1306.h>が使えますので便利です。

 

信号入力は、AC入力はごく簡単なLPFを通して単電源OPアンプで受け、DC側もOPアンプで受け別のアナログ入力につないでいます。A/Dが豊富にあるのでアナログでの切り替えが省略できす。ラインレベル(1Vpp)とシンセレベル(10Vpp)の切り替えは、ソフトでゲインをかけて切り替えます。

EXTtrig入力はバッファリングも省略しています。

 

また、ミニジャックは、ステレオ/モノラルの両ケーブルを繋げるようにステレオジャックを使います。

 

mode SWは、オーデオ(lineレベル)、オーデオ(シンセレベル)、LFO(シンセレベル)、EG(シンセレベル)の4モードを切り替えます。

Trig SWは、Trigなし、内部Trig、外部Trigを切り替えます。

 

ソフトウエア構成は、Timer4で 70.312KHz ( 72MHz/1024 )のタイマー割り込みを構成し、

この中でオーディオ信号を128byte表示バッファへ取り込んでいます。サンプリングレートの変換やアンチエイリアシング、トリガ処理はタイマー割り込み内で行います。

 

OLEDディスプレイへの表示はAdafruitのライブラリを使います。

バッファをSSD1306へ転送するのに7msほどかかりますので、表示ループは10msで回します。

ここでの注意点は、analogRead関数の実行中にタイマー割り込みがかかり、その中で別のanalogReadをすると、analogReadがフリーズするようなので、排他制御を行っています。

 

低速が重要なLFOモードとEGモードは、10msのループ内でサンプリングしています。

 

またデモ用として、回路図の左上のコネクタにVRとSWを接続した小基板をつなぐと、ソフト的に発生する正弦波と、SWでゲートを与えて発生するEG波形を表示することができるので、

信号源につながなくても、SynthScopeの動作のデモが可能です。

 

f:id:hhh_yama:20200630214828p:plain

 

Synth Scope その2 機能モデルを作りました

一部の方からの期待が強い(?)モジュラーシンセ専用オシロスコープの機能モデルができました。

本来なら、MakerFairなどでの展示・頒布が目指でしたが、当面機会がないので、ブログで紹介します。

    f:id:hhh_yama:20200630162920j:plain

仕様は「Synth Scope その1」のマイナーチェンジで、UI が整理され、少し機能が強化されました。

また測定器ですので、信号源につながないと動作しないため、手軽にデモができないので、写真にある小基板を接続するとデモ用のモードになり、

内蔵オシレータやEGを使って、単独での機能デモができるようになりました。

 

スイープレンジは、画面に1波形表示させた場合の周波数と音名で調整します。

レンジは、C0(65Hz)からA7(14080Hz)までの7オクターブを、4分割/オクターブ 刻みで細かく切り替えられます。 C, D#, F#,A のディミニッシュスケールです。

音の確認が主用途ですので、音高を見失わないようにしました。

 

LFOモードは、同じく画面1波形のとき、約0.01Hzから約10Hz程度です。

 

f:id:hhh_yama:20200630162904j:plain

 

次回は、内部構成を紹介します。

なお頒布は、表面実装部品が多いのでキットには向かず完成品になるので、

外部に実装依頼できるところまでは、つらい実装作業になります。