製作モジュール一覧

2018年12月30日日曜日

MIX0401のジャックをRCAジャックから3.5φミニジャックに変更

MIX0401が不調で、ノイズの原因はこれかもしれません。

入出力にRCAジャックを使っていましたが、ロックタイトを使ってもゆるゆるでプラグの抜き差しが不安です。いきなり音がでなくなることもあります。

RCAは、据え置きオーディオなどずっとつないでいる場合はそれなりに信頼性が高いと思いますが、頻繁に抜き差しする音楽機材としての用途には不向きなのかもしれません。

ギターやキーボードなどでは6.3φのプラグが標準ですが、MIX0401の筐体に収めるには少し大きすぎます。

今やモジュラーシンセの標準と言ってもいい、DoepferのEurorackは基本的に3.5φのミニジャック/プラグを使っています。これを踏襲してMIX0401も3.5φのミニジャックを使うことにしました。

基板を剥がして、既存のジャックを取り外し、ミニジャックを取り付け


配線後、基板を両面テープでPOTの裏に貼り付け


ミニジャックに変更したバックパネル


RCAジャックのゆるみ止めのロックタイト243をつかっていたので、取り外しに苦労しました。一応「中強度」となっていますがそうは簡単にはナットが回りません。

ソケットレンチやらモンキーレンチやらラジオペンチやらいろいろ使って無理やり取り外したので、ケースが傷だらけになってしまいました。



3.5φのケーブルを何本か作らないといけないのですが、年末年始で部品屋さんの通販がお休みなので、本格的なテストは年明け以降になります。

ずっと前に作った「ミニ・ミキサー」にDASS01KIK01をつないでみると、なんと気になるノイズなく動作しました。


プラケースなのに不思議なものです。もしかするとプラの方がケースへの接地がややこしくなくていいのかも?

とりあえず、これでMIDI_CV_CONVの実験をしたいと思います。

非反転増幅回路の増幅率を決めるPOTの配線


回路図

回路図のIC2A周りの非反転増幅回路で、JP2につないだPOT(レオスタット)で増幅率を可変するようにしていますが、このつなぎ方は良くないそうです。


上図の「1) NG」の接続だとR2のワイパーの接触部分に電流が流れるため、経年変化による劣化に弱いようです。←確かにガリが目立つ気もします。

「2) OK」のように接続するとワイパーに電流が流れないため(オペアンプの入力はインピーダンスが高い)、接触抵抗が無視できます。

「2) OK」の場合は、R3のワイパーを左いっぱいに回すと増幅率が無限大になり(Av = R3 / 0)、出力がクリップして出力振幅いっぱいの矩形波になってしまうので、入力抵抗を入れる必要がありますが。

もしMIX0401を参考にされる場合はご注意ください。

上記については「新・低周波/高周波回路設計マニュアル」で取り上げられています。

2018年12月28日金曜日

MIDI-CV Converter MIDI_CV_CONVの構想 その3

下図のように接続してMIDI_CV_CONVをテストしました。


ありあわせのケーブルで途中で変換コネクタを使ったりして接続すると、おそらくグランドループに起因すると思われるノイズが出て途方にくれていましたが、専用にケーブルを作り直したりしているうちにノイズが気にならなくなりました。

やったことは、「ケーブルの途中で変換コネクタを使わなくする」ことと「オーディオ信号が通るケーブルは短くする」ことぐらいです。短くすると言っても2~3メーターのケーブルもあります。

ケーブルのグランド線を切ったりしてグランド線のループを切ると改善することもあるらしいですが、そういうことはやっていません。

このあたりのノイズは、苦手な電磁誘導が原因らしいので、後々経験を積んで理屈と照らし合わせて行きたいと思います。

CV/GATE信号を同期させるラッチ


MIDIチャンネルごとのGATEのずれを、Dフリップフロップで吸収することを考えて実験しました。

接続図


同期の方法として

1) ArduinoからGATE信号を出力してDフリップフロップが4回路入っている74HC175に入力

2) ArduinoからCV値をSPI経由で出力してDACのMCP4922に入力

3) Arduinoからラッチ信号を出力して(接続図のArduinoのD9から出ている青色のケーブル)、74HC175とMCP4922を同期させて出力

という手順を考えたのですが、うまくいきませんでした。

スッキリと説明できないのですが、MIDIの通信速度が遅すぎてチャンネルごとのGATE/CVを同期させようと思うと数ミリ~数10ミリ秒キザミの精度になってしまいます。

メリットがはっきりしないので、Dフリップフロップによる同期は今回は保留します。

CV信号にかけるLPF


接続図のようにMCP4922の出力にパッシブのRLCローパスフィルタ(2次)をかけました。出力をドライブするために単電源OPAMPのNJM3404のボルテージフォロワを後段に入れています。

コンデンサーの容量を大きくすると波形がなめらかになってポルタメントがかかっているようになるのですが、定数を決めるのが難しいのでLPFも保留します。

トランジスタアレイによるLEDのドライブ


GATE信号を使ってLEDを発光させるためにトランジスタアレイのTD62003を使いました。これは入れておいた方が良さそうです。

メモ:


ノイズの改善と今回実験した回路の因果関係がはっきりしないので、もう少しテストする予定です。

2018年12月21日金曜日

MIDI-CV Converter MIDI_CV_CONVの構想 その2

MIDIのノートナンバーからCV(電圧)への変換


アナログシンセのCVはMoog以来、「Volts per octave」が標準だそうです。(参考:https://en.wikipedia.org/wiki/CV/gate)CVの電圧が1V上がると1オクターブ周波数が上がるものです。

Nucleo_DCOのMaster Frequencyは、POTで分圧した電圧をADCで読み取り、単純に周波数に変換しています。kを変換係数とすると
frequency = k * voltage
で、上記Wikiの記事よるとYamaha、Korg形式の「Hz per Volt」にあたると思います。

この方式だと周波数が高くなるほど1オクターブあたりの電位差が必要になり、基本的に3.3V系や5V系で動作させている自作の音源には厳しいものになります。

「Volts per octerve」のほうが使う電位差の節約ができるし、指数カーブをもった音階に沿った電圧値になります。

CVを5V系にするか3.3V系にするか


MIDI_TO_CVをArduino+MCP4922で実装するとすれば、5V系でも3.3V系でも出力できますが、受け側のNucleo_DCOが3.3V系です。一応5VトレラントなのでCVが5V系でも壊れはしませんが3.3V以上の値がADCで読み取れません。抵抗による分圧などで5V系→3.3V系にシフトする必要があります。


CVを3.3V系にすると3.3オクターブで、5V系にすると5オクターブとれて有利ですが、多少作らなければならないものが増えるので、まずは3.3V系で作ってみようと思います。

MIDIのノートナンバーをCVに変換するロジック


「Volts per octave」方式だと、これは簡単で
CV = ( NoteNumber - BaseNoteNumber )  / 12
です。BaseNoteNumberはCV=0Vとするノートナンバーです。

実際にスケッチを書いてテストすると、多少の誤差はありますがノートナンバーに対応する電圧が出力されました。

配線図

Arduinoのテストスケッチ
https://github.com/ryood/MIDI_CV_CONV/tree/master/Arduino/MIDI_CV_CONV_Test05

仕様案



「MIDI IN」はフォトカプラでMIDI信号を受け、「MIDI-THRU」にスルーします。

「Programing SW」は、「UART:RX」にMIDI信号(PullUpされている)を流したままだとArduinoに書き込めないので、それを切り替えるものです。

「DFF Latch」については「マイコンの非同期出力をデジタル回路でラッチして同期させるシミュレーション(メモ)」にあります。

GATE信号はArduinoのGPIOでドライブできると思いますが、同じ信号線でLEDをドライブするためにトランジスタ・アレイを使おうと思います。GATEのON/OFFでLEDがチカチカしたら目で見てわかるし楽しいと思いますし。

CVのLPFは、127段階しかないMIDIの値をなめらかにしたほうがいいかなという意味です。音階は離散していてもいいんですが、時定数の大きいLPFをかければポルタメント的につかえないかな~という妄想です。

メモ:


CVは0V以上の単電源波形。アクティブ・フィルタを単電源OPAMPで構成して動作するのか?パッシブフィルタ+出力バッファ?はてさて?

MIDIの音階はあまりにもトビトビなのでピッチベンドを拾って加算する?

Nucleo_DCOのファームウェアの改修が必要。