多機能デコーダ VS1053b (4) -- 音は出た、しかし

回路図/写真/演奏の録音等は後日ということで、今日は文章だけです。
リアルタイム MIDI モードの回路が出来上がったのですが、最初は音が出ませんでした。
UART RX 端子 (ピン 26) での波形をオシロで見ると「0」レベルが 0 V まで下がらず、中間のレベルになっていました。
VS1053b を実装した変換基板を抜き、MIDI インターフェース回路だけにしてみると、ちゃんと 0 V まで下がっています。
結局、ピン 27 の UART TX 端子との間、パッケージに近い部分のリードにハンダブリッジがあり、それを除去すると、何とか、音は出ました。
しかし、与える MIDI データによっては、途中で音が止まり、それ以降、リセットするまで回復しません。
調子が良ければ数分間は音が出続けますが、運が悪いと、ほんの数秒で音が出なくなってしまいます。
音が停止するまでの時間はランダムに思えたので、最初は、DSP コアの暴走を疑い、バスコンの強化、グラウンドの強化などの対策を施しましたが、あまり改善しませんでした。
そのうちに、音がぷっつりと切れる場合と、何か少し音が残りながら切れる場合とがあることに気が付きました。
音が残る場合は、おそらく、リバーブ・エフェクトの「ウェット音」ではないかと思い当り、エフェクトが効いているなら、DSP コアは動作を続けているはずに違いないと思いました。
DSP コアが動いているのに発音が停止するなら、「MIDI デコード部」あるいは「MIDI 音源部」のバグというか不具合によるものと推察されます。
そこで、曲ごとに詳しく動作を観察してみました。 
すると、MIDI プレーヤで1曲リピート再生を何十回も、時間にして1時間くらい続けても停止しないデータがあることが分かりました。
また、発音が停止するデータでも、停止する位置はランダムではなく、場所が限られていることがわかりました。
リピート再生で、1回目は大丈夫なのに、2回目の再生で特定の場所で停止するという不可解な現象を示す場合もありますが、再現性は高く、DSP コアは暴走しておらず、発音停止は MIDI データに依存した現象であると結論付けました。
実際の問題として、どのデータによって発音停止になるのかは、まだ詳しくは調べていません。
チップ 内部に大容量のウェーブ・データを持っているとは思えないので、PCM 方式ではないだろうと思っていましたが、「音」を聞いてみると、やはり、PCM 録音/再生ではなく、「アルゴリズム」的な方法によるものと感じられます。
しかも、アナログシンセ的な高調波を豊富に含む源波形をフィルタリングして高調波を強調/減衰させる「減算方式」ではなく、いわゆる「FM音源」のような、波形の発生時に高調波成分を作り出す方式のような気がします。
また、リズム音源のインストゥルメント配置も GS 音源準拠で、メロディ音源とリズム音源の音量バランスも GS 音源風で、XG 音源用のデータを演奏させると音量バランスが悪くなります。
その他、まだ詳しくは調べていないのですが、演奏を聴く限りでは

  • ポルタメントはサポートしていない
  • CC#1 のモジュレーションによってビブラートの量は変化しない
  • RPN#0 のピッチベンド・センシティビティはサポートされている
  • GM/GS/XG リセットによる音源の初期化はしていない

ように感じます。