たま日記

たまに書く

2号機を組み立てた

ウィンドシンセの2号機を組み立てを終えた。 使った部品 RGB OLEDモジュール(秋月) ESP32 DevkitC 32E(秋月) UDA1334A I2SステレオDAC(SwitchScience) MPR121 静電容量センサ(SwitchScience) GY-521 加速度ジャイロセンサ(amazon) LPS33HW 気圧セ…

基板を作った

ここしばらくウィンドシンセ2号機を作っていた。ようやく基板だけできた。初めてポリウレタン線を使ってみた。被膜を溶かすのは結構難しい。使った部品は右から順に RGB OLEDモジュール(秋月) ESP32 DevkitC 32E(秋月) I2S ステレオDAC(SwitchScience…

NimBLE + BLE MIDIで音を出した

今回の実験 M5Stackで次を調べてみた。 BLE MIDIで接続しながらcore0でリバーブ処理+I2S出力が可能か? core1とcore0をキューでつないで音を出したときに遅延などは有るか? 1つ目は処理能力の調査。esp32ではcore0とcore1でマルチタスクができる。「無線関…

BLE MIDIライブラリを使ってみた

以前BLE MIDIの記事を書いたのだけどVSCodeでは試していなかった。改めて、VSCode + PlatformIO + M5StackでBLE MIDIを使えるようにする方法を調べてみた。※マザーボード上のBluetoothを使って実験したのだが同梱されていたWi-Fiアンテナを付けないと、Bluet…

バイトセンサを作った

ピッチベンドを口でするために作った。まだ音を出していないが、シリアルプロッタの出力を見るといい感じで変化している。バイトセンサ(リップセンサ)については色々制作事例がある。この記事ではEWIのマウスピースに圧力センサを埋め込んでいる。「大改造…

年が明けた

そろそろウィンドシンセの自作を再開したくなってきた。気になっていたので改めてMAME周辺のYM2151エミュレータの実装について調べてみた。※間違えているかもしれない現在のMAMEプロジェクトでは、Aaron Giles氏の実装したYMFMが使われている。一方でVGMPlay…

アルトヴェノーヴァを手に入れた

ESP32によるWT11エミュレーションの実装は概ね終了した。実機と比較しても何となく同じような音が出ているような気がする。FM音源的?な音色を聴いているうちに、だんだんと物理モデリング音源を鳴らしたくなってきた。STKの実装を見ていると、それほど難し…

WT11が発声するボイスについて調べた

#div-1 pre { /* id="div-1" の中の PRE */ white-space: pre; } ウィンドシンセ用音源 Yamaha WT11はTX81Zと互換性がある。ただしWT11はTX81Zでいうパフォーマンスモードで動作する。音色の選択は96個あるパフォーマンスから1つを選択することで行う。1つの…

TX81Zを解析した(パフォーマンスモード編 追記)

TX81ZのPCEDの設定項目「Volume」について調査し忘れていた。パフォーマンスモードで設定できる8つの楽器ごとに音量を設定するためのパラメータである。VCEDのVolumeと同様に0~99の値を指定する。YM2414のTLレジスタにセットされる値に影響することも同様。…

TX81Zを解析した(パフォーマンスモード編)

TX81Zに搭載されているOPZは(OPMと同様に)異なる8音を同時に発声する能力を持つ。1つのNote on信号を受信するとシングルモードでは1音を発声するのに対し、パフォーマンスモードでは2つ以上の音を同時に発声することができる。どのように組み合わせるかはP…

WT11固有のパラメータ

#div-1 pre { /* id="div-1" の中の PRE */ white-space: pre; } WT11のエディットバッファ内のボイスデータ・パフォーマンスデータをTX81Z Programmerで取得する、という記事を前回書いた。その後マニュアルを眺めていたらTX81Zにはない固有のパラメータが…

WT11をゲットした

TX81Zを検索していると、ちょいちょいWT11のページも引っかかる。面白そうなので中古品を買ってみた。 WT11はYAMAHAから発売された音源モジュール。プリセットのほとんどが木管/金管楽器でWX11などのブレス入力MIDIコントローラーとつないで使う。Wikipedia…

リバーブつけた

今までのなんちゃってリバーブをFreeverbに変更した。ソースコードは以下のページからリンクされているページで入手できる。 prettoguitar.blogspot.comリンク先はFreeverb3というVSTの作者のページ。Freeverbより音質がよいらしい。ESP32で動くかどうかは分…

音色エディタを作った

ウィンドシンセの音色をPCから変更するための音色エディタを作った。 音色エディタよくありそうなFM音源音色エディタだけど、16進数を編集していたのに比べれば楽になった。ウィンドシンセとの通信はシリアル経由。そのうちBLE MIDIでやりとりしたい。PCでも…

音が出た

TX81Zのプリセットを発声させることができた。ESP32の2つのコアを使って、センサをcore1で、TX81Zエミュレータをcore0で動かしている。8音だしているがまだ余裕がありそう。音色のパラメータVCED(Voice Edit Parameters)・ACED(Voice Edit Additional Parame…

夜に駆けたい

TX81Zのシングルモードエミュレータがある程度動いた。今度は自作していたウィンドシンセで鳴らしたい。Windowsではmingw+Javaの環境でテストしていたので、これをESP32で動くように作業を進めている。タイミングのよいことに雑誌「インターフェース」2021.3…

導出方法を考えてみた

32個あるオペレータの出力値を決めるレジスタ(0x60~0x7f)に書き込まれる値は、次の式で求まる.このうち、表が巨大になった、、の値を導出するアルゴリズムを考えた。計測値とも一致した。:Level Scalingによる減衰量 VCEDのLevel Scaling(0~99)とMIDIノ…

TX81Zを解析した(ポルタメント編)

#div-1 pre { /* id="div-1" の中の PRE */ white-space: pre; } TX81Zはポルタメントの変化に要する時間を0~99の値で指定する。0の場合ポルタメントしない。音の高さは直線的に変化するわけではなく、以下のようなカーブで変化する。 C3->C5->C3のカーブポ…

TX81Zを解析した(LFO Delay編)

LFO Delayは音の出始めからどの程度遅延してピッチや音量を変化させるかを表す数値で、VCEDでは0~99で指定する。前述したようにPMD・AMDの0~99の値は0~127に変換されYM2414のレジスタに書き込まれる。LFO Delay=0の場合、音を出すのと同時にレジスタに書…

TX81Zを解析した(LFO Speed・PMD・AMD編)

TX81ZはLFOを3つ(ハードウェアで2つ、ソフトで1つ)持っている。シングルモードではハードウェアのLFO1が使われているようなので、それについて調べてみた。LFO信号の設定項目は(1)LFO Speed、(2)LFO Delay、(3)Pitch Modulation Depth、(4)Amplitude Modul…

TX81Zを解析した(ブレスコントロール編)

前回のの説明の続き。:ブレスコントロールによる減衰量 は次の3つの値で決まる減衰量。 BC EG Bias:ブレスコントロールの効き具合(0~99)全オペレータに共通の値。 EG Bias Sensitivity:ブレスコントロールの効き具合(0~7)オペレータ毎に設定できる…

TX81Zを解析した(Operator Output Level編)

TX81Zの音色はVCED(Voice Edit Parameters)で設定する.Attack RateやAlgorithmなどはYM2414のレジスタに書き込む値をほぼそのまま設定するのだが,Operator Output LevelやLFO Speedなどは0~99の値を設定する.この0~99の値は何らかの計算により0~127な…

TX81Zをゲットした

TX81Zのプリセットがym2151.c改でうまく鳴らせなかった問題は半分くらい解決した。音の高さによってオペレータのOutputLevelを小さくするLevelScalingという項目がプリセットにあって、勘で適当に実装したら何となくそれっぽい音が出るようになった。 でも正…

DeicsOnzeは無理だった

自作ウィンドシンセの内蔵ソフト音源として考えていたDeicsOnze、TX81ZなるFM音源モジュールのエミュレータなのだがESP32で動かすことはできなかった…残念! 波形?を保存するテーブルがメモリに入りきらず、Arduino環境ではコンパイルできなかった。Windows…

TX81Zエミュレーター

ウィンドシンセはブレスの強さによってピッチや音色を変える機能があるらしい。YouTubeのサックス動画を見ていても、確かに吹いている途中で音が変化している。表現力?の向上には必要だ。 現在使っているym2151.cにはnote onとoffの途中にピッチや音色をブ…

BLE MIDIの通信

ESP32とWindows10の間でBLE MIDI通信したときに,頻度がどうなるか調べてみた.参考にしたのは プログラム全体:ここからたどったこのプログラム タイムスタンプの付け方:このプログラム コネクションインターバルの設定方法:onConect()内で設定 結果 ESP3…

EWI USBからの出力

ふと気になって、手持ちのEWI USBからUSB経由で出力されるMIDIメッセージについて調べてみた。MIDI-OXを使うとMIDIメッセージを観察できる。メニューOptions->Data displayのHexを外してタイムスタンプの単位を10進数(ms)に。Logも有効にしてみる。息を吹き…

BLE MIDI

iPadやWindows10とESP32をBluetoothでつなげることができた。 ★ESP32のプログラム このページで紹介されているBLE MIDIのサンプルプログラムを利用。midiPacket[2,3,4]の3byteにMIDIメッセージを格納すればいいらしい。MIDIメッセージについては以下が詳しい…

試作完成

筐体に全部組み込んで形を作ってみた。ウィンドシンセらしくなった…! 長さはアルトリコーダーとほぼ同じ。重さは電池なしで200g。音量調整つまみとイヤホンジャック付き。運指はソプラノリコーダー準拠。#とかbとかは独自の抑え方。配線が収まらなくてモツ…

作り直してみた

ブレッドボードに部品を並べて動作確認した。 部品 価格 購入先 ESP32-DevKitC-32D 1,480 秋月 LPS33HW 【防水】気圧センサモジュール 1,780 Strawberry Linux Aideepen MPU-6050 GY-521 5個1,050 amazon UDA1334A搭載 I2S ステレオDACモジュール 990 スイッ…