cat2151 / MML-chord-generator

コード進行(テキスト)からMMLを生成して演奏 http://cat2151.github.io/MML-chord-generator/
MIT License
0 stars 0 forks source link

非FLASH環境で、FM音色を鳴らせるようにする #61

Open cat2151 opened 6 years ago

cat2151 commented 6 years ago

※非FM音色は、もう鳴らせている。Sionic.js を用いている。

案いくつか。Sionic.js がよさそう。

  1. Sionic.jsにMMLを渡す前にプリプロセスし、@3,@4,@5,@6を当てはめる
  2. Sionic.jsに外部音源と外部MMLコンパイラを追加する
    1. Sionic.jsに機能追加。registerToneGenerator() 関数(名称は仮)。現在 Sionic.js 内にある、FMSynthBass() などの関数と同形式の関数を、外部ライブラリとして追加可能にする。これによりSionic.jsと音源ライブラリとを疎結合にし、音源ライブラリ単体での頻繁なアップデートをしやすくする。と書いてみたものの実現可能性が不明。
    2. Sionic.jsに機能追加。registerToneMmlCompiler() 関数(名称は仮)。MML内の音色定義部分のみをわたし、外部音源ライブラリにわたすための関数。これも疎結合化の一環。同様に実現可能性が不明。
    3. さておき実現可能であれば、そこで音源 TGfm2151like1() と音色MMLコンパイラTCfm2151like1() (名称は仮)を外部ライブラリとして用意して、SiONでのOPM音色定義を読み込んで鳴らせるようにする。注意点としてはMML互換性で、そこは基準としては「SiONのサブセット」、そしてあとは適宜プリプロセスでMML変換をしてゆく、という考え方が現実的でわかりやすそう。
cat2151 commented 6 years ago

現在は、取り急ぎ、

  1. Sionic.js で鳴らす場合かつ@0を指定している場合は、@6 のMMLを生成する としています。 目指したいのは 2. です。