「機能追加案」の編集履歴(バックアップ)一覧はこちら
「機能追加案」(2012/07/16 (月) 19:00:23) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
***OPNのSSG(PSG)オクターブの追加
PC88互換のSSGを真似しようとしたとき、オクターブ9の装飾音が曲中で使われるのですが、FlMMLのオクターブ範囲が8までなので悲しい状況です。オクターブ9まで音階サポートしていただけないでしょうか。
(2011/11/15)
→(その1)o8 ns12 cdefg
→(その2)#WAV13 0,FF00FF00 と言う波形を作ってo8で演奏する
→と言うかそもそもo9だとまともに音階が鳴らないかと。FlMMLの仕様上ね。
***OPNのSSG(PSG)ノイズ周波数互換のモード追加
現状、FCノイズやGBノイズがサポートされていますが、SSGノイズ周波数はFCやGBとは周波数テーブルが結構異なっているため、追加でサポートお願いできませんでしょうか?
SSGノイズ:32段階の2値ノイズ。
SSGノイズ周波数=マスタークロック/(8*SSGプリスケール*ノイズ設定値)
マスタークロック=3993600(PC88互換)
SSGプリスケール=4
ノイズ設定値=0~31。ただし0のときは1で計算。
|ノイズ設定値|SSGノイズ周波数概算|(参考)GBノイズ周波数概算|(参考)FCノイズ周波数概算|
|0|124800 |524288|894886|
|1|124800 |262144|447443|
|2|62400 |131072|223721|
|3|41600 |87381|111860|
|4|31200 |65536|55930|
|5|24960 |52428|37286|
|6|20800 |43690|27965|
|7|17829 |37449|22372|
|8|15600 |32768|17720|
|9|13867 |26214|14092|
|10|12480 |21845|9419|
|11|11345 |18724|7046|
|12|10400 |16384|4697|
|13|9600 |13107|3523|
|14|8914 |10922|1759|
|15|8320 |9362|880|
|16|7800 |8192||
|17|7341 |6553||
|18|6933 |5461||
|19|6568 |4681||
|20|6240 |4096||
|21|5943 |3276||
|22|5673 |2730||
|23|5426 |2340||
|24|5200 |2048||
|25|4992 |1638||
|26|4800 |1365||
|27|4622 |1170||
|28|4457 |1024||
|29|4303 |819||
|30|4160 |682||
|31|4026 |585||
(2011/11/09)
***付加情報関連コマンドの拡張
現状では、#COMMENTは、その行の最後までをコメントとして認識しますが、多くのコメントが必要となる場合、それを毎回書くのは面倒なので、バックスラッシュ等で複数行に渡って記述できるようにするのはできませんか?
(2011/10/20)
***バージョン番号の呼び方について
coderepos.org から codeplex.com への移転に伴い、revision番号が改定されていると思います。
coderepos.org の「Rev. 38826」と codeplex.com の「Change Set 1122」は同一ですよね。
今後はChange Set番号でFlMMLの版を特定することになると思いますが、これまでのRev.番号との区別のため、「c.s.1122」のように版を表記してはいかがでしょうか?
(2011/5/8)
***FlMML全体を網羅するリファレンスにつきアナウンス希望
現状、MMLのリファレンスや、マクロ機能、その他
http://dic.nicovideo.jp/u/934152
こちらで紹介されているデフォルト値の情報や、#WAV関係の情報など、
仕様に関わる情報が、統合的にまとまってリファレンスとして確認できる
ドキュメントがあると非常に助かるのですが・・
***エイリアスノイズの少ない基本波形
今用意されている基本波形(@1~3)は高音域でエイリアスノイズが目立つため。
→高いサンプリングレートでの波形演算(192kHz等)するモードを追加してはどうでしょうか。
処理は重くなりますが…
→FMで生成された波形には使用できませんが、基本波形に関してはある程度の周波数帯ごとに波形テーブルを持つ方式あたりが無難じゃないかと思います。
***エクスプレッション(@xコマンド)の相対指定の追加と、リバース指定(#)
FM音源ドライバなどでは相対音量がエクスプレッションを兼ねていて部分的なフェードアウト等を行う際、音符を「&」でつなぎつつ相対音量をかけるのですが、FlMMLではこういう場合エクスプレッション表現が必要です。このときエクスプレッションにだけ有効になる相対指定があると助かります。(2010/11/21新規追加)
#asciiart(){ →使える記号が無いので考えます。 @x+、@x-、@x+8、@x-10見たいな感じでもいいのかな?}
#asciiart(blockquote){@x+ @x- @x+8 @x-10 という定義方法ならリバース指定も不要なので良いですね◎(2011/5/24提案者)}
***LFO機能の排他制御を緩和し、複数のLFO機能を受付可能にして欲しい
音量LFOと音程LFOの双方を同時にかけたい場合があります。
実装案(1)
destの異なるLFOは排他制御せず、複数同時にシーケンスする方法。
単純発想では、LFOシーケンサをdestの種類分(最大5回)まわす。
内部ではLFO5種類分のパラメータ管理とシーケンスが必要だが、
5種類はそれぞれ音量のみ、音程のみなど、dest固有のシーケンスだけを行う。
実装案(2)
3種類(最大個数がdest種類より少ない)の独立したLFOシーケンサを固定で用意し、
@l1、@l2、@l3などの指定で好きなdestをあてがう方法。
3つという根拠は、音量、音程、パルス幅の3つは最低限確保したいため。
これの問題点は、3つとも音量LFO、みたいな無意味が可能な点。
できれば実装案(1)を希望(2011/5/8更新)
***エンベロープモードの拡張案(ノートオフ後の多節とデューティー比エンベロープ)
DQ2などで見られる手法ですが、VCAエンベロープに同期して、矩形波の波形パルス幅をかえて音の装飾を施す表現を行いたいです。
これを行うには、現在の多節エンベロープを拡張して、さらにデューティー比の指定も可能なインターフェースが必要と思われます。
(a)現状の「多節」エンベロープはキーオン中に限られているところ、キーオフ後にも多節で動作する拡張
(b)デューティー比を変更するエンベロープのサポート
(c)(a)と(b)は独立でも融合でもOK。独立の場合は排他制御せず(a)と(b)同時に有効になって欲しい
→デューティ比のエンベロープとノートオフ後の多節を別々に考えたほうがよさそうな気がします(フィルタEGでも多節リリースが扱えるなど)。
ノートオフ後の多節の表記法を考える必要はありますが……
→デューティ比のエンベロープとノートオフ後の多節が別々でも全く問題ありません
デューティ比のエンベロープもノートオフ後の多節に追従できると嬉しいです(11/19更新)
***エンベロープモードの拡張案2
エンベロープの変移時間の単位は 1/127sec に固定されていますが、アタック部分のエンベロープをつけるときにもっと細かい時間単位で設定できたらいいなと思うことが結構あります。また、特殊な用途ではありますが、1/60secを割り切れる秒数(1/60,1/120,1/180など)を単位時間に設定したい場合もあります(1/60周期で動くシーケンサのソフトエンベロープを真似たい場合)。
そこで、エンベロープの時間単位をユーザー定義できるようにすることは可能でしょうか?
たとえば、エンベロープのシーケンス周期を1秒間に何回行うかのシステムコマンドを
#asciiart(){#ENVELOPECYCLE 127}
のように設けるのはいかがでしょうか。未指定時のデフォルトがこれまでと互換の127(時間単位1/127sec)で、60~1200くらいまでの範囲を受け付けるようなイメージです。1000は単位時間が1msとなり計算しやすいので少なくとも1000までは受け付けてくれると嬉しいです。。
***コメントアウト
1行コメントアウトが欲しいです。//でも#でも何でもいいんですが。
→# はマクロ行との判断、// はループコマンドとの判断がつかないため別のを考えます。
***相対デチューン
100セント単位の相対ノートシフトはサポートされていますが、1セント単位の相対デチューンも対応して欲しいです。
FM音色定義した後で、シーケンサ側でさらにデチューンをかけるときに手動計算が辛いためです。
もしくは引数付きマクロ内で計算できると助かりますが、これ以上マクロ展開が重くなると厳しいので・・
***ローパスフィルタの特性
@fによりローパスフィルタをかけた時、オクターブが低いほどフィルタがよく掛かり、
オクターブの高い音ではほとんどローパスが掛かっていないかのような印象を受けます。
FDSを真似ようと#WAV13で64サンプル定義し、ローパスをかけてみるのですが
高いオクターブでフィルタが掛からないような音質になり困っております。
音程やオクターブによらず一定してフィルタを掛けられるようにはできませんでしょうか?
----
*提案保留・却下事項
***テンポ変更時の @l LFO周期・ディレイタイム再計算機能
>曲のデバッグをしようとテンポを高速に設定し、聞きたいところの直前で通常テンポに戻すようなことをするのですが、速いテンポの中でLFO設定すると、遅いテンポに戻してもLFO周期やディレイが速いテンポの中で時間計算したまま引き継がれてしまうようです。テンポ変更時に再計算していただくことは出来ないでしょうか?
すでに投稿されているデータが作成者の意図と違うように演奏される恐れがあるから。
例えば T150 L30,48,0,96 L2 cdefg T120 cdefg と言うデータを意図的に記述している場合に再計算すると後者の cdefg のLFOの係り具合がおかしくなる為。
***adpcmのサポート
>昨今dpcmの利用がFC音源の模倣の枠を超え、PCM音源の代替的な利用が増えてきていると思いますが、
>音質が音質ですので、なかなか利用が難しいと思います。そこであらたにadpcmのサポートを追加するのはいかがでしょうか。
>http://www.oki.com/jp/rd/ss/adpcm.html
>adpcmであればdpcmよりは音質的には大きく改善が見込めて、コーデックも単純ですので使いやすいのではと思いました。
>予測値を管理すればループ再生も可能だと思います。(2011/3/11提案者)
PCMデータ垂れ流し防止の為、協議の結果見合せとなりました。ご了承ください。
***FMモジュール、音色番号の最大値
>現在(cs7800)音色番号の最大値は127だと思うのですが、mxdrv時代など過去資産を使おうとした際に、音色番号は255まで使用できたために番号の引っ越しが必要な場合があり、この引っ越しが地味に苦しいです・・。255まで音色番号を使えるようにはなりませんでしょうか?(最大個数は現状のままでもいいのですが、番号が使えないのが厳しい)
音色番号変更で対応願いたいと思います。メモリ節約にご協力ください。
----
*実装済み
***オクターブ同様、相対音量記号 ( ) のリバース機能
#VOLUME REVERSE
など。
→実装しました! Rev.38520~ #VELOCITY REVERSE
***テンポ指定の高分解能化
beat per minuteの指定だと粗すぎて、T90.5 とかやりたくなってしまいます。
小数点2桁くらい受付できませんでしょうか?
もしくは、beat per hour(bpm90 → bph5400)での受付というのはいかがでしょうか。
→実装しました! Rev.38599~ t90.5
***相対デチューン(ノートシフト)
転調などを書きやすくするために。
→相対ノートシフト@nsを実装しました! Rev.38636
***PSGのMIX出力モード
AY-3-8910にあるMIX出力モードを実装して欲しい。
→実装しました! Rev.38672~
@w-50 等でMIX出力モードになります。
***正弦波(@0)の全波整流・半波整流
正弦波(@0)に全波整流や半波整流を出力できるモードを追加して欲しい。
→実装しました! Rev.38672~
@0-1で半波整流、@0-2で全波整流になります。(LFOでも利用可)
***ポルタメント
→実装しました! Rev.38695~
c*<c4 で4分音符の長さで音程が滑らかに変化します。
http://sketch.txt-nifty.com/blog/2008/07/the_flash_movie.html#comment-33041131
↑の案を採用しています。
また別途要望のあったMIDIライクなポルタメントも同時実装しています。
@Uコマンドですが詳細は[[FlMMLコマンド一覧>http://coderepos.org/share/wiki/FlMML/Reference]]を参照してください。
***LFOのウェーブフォームで、三角波とのこぎり波は、現在変位MAXから位相スタートする仕様ですが、変位0から位相スタートする三角波とのこぎり波が欲しい。
>現在の仕様(三角波)
>#asciiart(){_____\ /\ /\
> ̄ ̄ ̄ ̄ ̄ \/ \/ }
>現在の仕様(のこぎり波)
>#asciiart(){_____\ \ \
> ̄ ̄ ̄ ̄ ̄ \ \ \}
>この仕様ですと、ディレイ後のLFOスタート時にどうしても違和感があり、また、ピッチベンドにも利用が困難です。しかし、ディレイ0で、あらかじめ変位最大の分だけMML側でノートシフトさせて対応させたMML投稿が既に複数見られるため、互換性の観点から、この仕様を廃止するのは躊躇しています。
>そこで・・・
>改めて対応して欲しい仕様(三角波)
>#asciiart(){_____ /\ /\
> ̄ ̄ ̄ ̄ ̄\/ \/ }
>改めて対応して欲しい仕様(のこぎり波)
>#asciiart(){_____ \ \ \
> ̄ ̄ ̄ ̄ ̄\ \ \ \}
>新たに対応して欲しいLFOの三角波とのこぎり波は、上図のような、変位0から位相スタートするものですが、互換性を考慮し既存のものとは別に、新たな波形番号で用意していただくことはできますでしょうか?
→実装しました! Rev.38797~
@1のとき、@1-1とすると変位0から始まるノコギリ波になります。
@2のとき、@2-1とすると変位0から始まる三角波になります。
@6のとき、@6-1とすると変位0から始まるFC三角波になります。
***相対音量指定のまとめ表記
>現在相対音量の指定は変更段階の個数分カッコを表記すると思いますが、
>段階数が多くなると表記が読みにくくなります。
>)5 ←5段階変更
>このように数字を添えて何段階変更するか指定できるようにできませんでしょうか。
→実装しました! cs7800~
***波形定義上限個数の拡張
>現在、#WAV13も#WAV10も#WAV9も、最大定義個数が16個くらいだったと思います。
>当面欲しいのは#WAV13ですが、定義個数上限を256個くらいまで拡張お願いできませんでしょうか?
>MSX-SCCのシミュレートでは#WAV13を使いますが、結構いっぱい波形定義の切り替えがあり、種類も多いので、16個だとちょっと窮屈な感じです。。
>せっかく増やすなら#WAV13だけというのも勿体無いような気がしたので・・
→一部実装しました! cs7800~
WAV10とWAV13の最大数を16→32に変更しました。(0~31が使えます)
PCM垂れ流しデータも見受けられるので協議の結果この数です。ご了承ください。
WAV9については今までどおり16個です。
----
***付加情報関連コマンドの拡張
現状では、#COMMENTは、その行の最後までをコメントとして認識しますが、多くのコメントが必要となる場合、それを毎回書くのは面倒なので、バックスラッシュ等で複数行に渡って記述できるようにするのはできませんか?
(2011/10/20)
***エイリアスノイズの少ない基本波形
今用意されている基本波形(@1~3)は高音域でエイリアスノイズが目立つため。
→高いサンプリングレートでの波形演算(192kHz等)するモードを追加してはどうでしょうか。
処理は重くなりますが…
→FMで生成された波形には使用できませんが、基本波形に関してはある程度の周波数帯ごとに波形テーブルを持つ方式あたりが無難じゃないかと思います。
***コメントアウト
1行コメントアウトが欲しいです。//でも#でも何でもいいんですが。
→# はマクロ行との判断、// はループコマンドとの判断がつかないため別のを考えます。
----
*提案保留・却下事項
***テンポ変更時の @l LFO周期・ディレイタイム再計算機能
>曲のデバッグをしようとテンポを高速に設定し、聞きたいところの直前で通常テンポに戻すようなことをするのですが、速いテンポの中でLFO設定すると、遅いテンポに戻してもLFO周期やディレイが速いテンポの中で時間計算したまま引き継がれてしまうようです。テンポ変更時に再計算していただくことは出来ないでしょうか?
すでに投稿されているデータが作成者の意図と違うように演奏される恐れがあるから。
例えば T150 L30,48,0,96 L2 cdefg T120 cdefg と言うデータを意図的に記述している場合に再計算すると後者の cdefg のLFOの係り具合がおかしくなる為。
***adpcmのサポート
>昨今dpcmの利用がFC音源の模倣の枠を超え、PCM音源の代替的な利用が増えてきていると思いますが、
>音質が音質ですので、なかなか利用が難しいと思います。そこであらたにadpcmのサポートを追加するのはいかがでしょうか。
>http://www.oki.com/jp/rd/ss/adpcm.html
>adpcmであればdpcmよりは音質的には大きく改善が見込めて、コーデックも単純ですので使いやすいのではと思いました。
>予測値を管理すればループ再生も可能だと思います。(2011/3/11提案者)
PCMデータ垂れ流し防止の為、協議の結果見合せとなりました。ご了承ください。
***FMモジュール、音色番号の最大値
>現在(cs7800)音色番号の最大値は127だと思うのですが、mxdrv時代など過去資産を使おうとした際に、音色番号は255まで使用できたために番号の引っ越しが必要な場合があり、この引っ越しが地味に苦しいです・・。255まで音色番号を使えるようにはなりませんでしょうか?(最大個数は現状のままでもいいのですが、番号が使えないのが厳しい)
音色番号変更で対応願いたいと思います。メモリ節約にご協力ください。
----
*実装済み
***オクターブ同様、相対音量記号 ( ) のリバース機能
#VOLUME REVERSE
など。
→実装しました! Rev.38520~ #VELOCITY REVERSE
***テンポ指定の高分解能化
beat per minuteの指定だと粗すぎて、T90.5 とかやりたくなってしまいます。
小数点2桁くらい受付できませんでしょうか?
もしくは、beat per hour(bpm90 → bph5400)での受付というのはいかがでしょうか。
→実装しました! Rev.38599~ t90.5
***相対デチューン(ノートシフト)
転調などを書きやすくするために。
→相対ノートシフト@nsを実装しました! Rev.38636
***PSGのMIX出力モード
AY-3-8910にあるMIX出力モードを実装して欲しい。
→実装しました! Rev.38672~
@w-50 等でMIX出力モードになります。
***正弦波(@0)の全波整流・半波整流
正弦波(@0)に全波整流や半波整流を出力できるモードを追加して欲しい。
→実装しました! Rev.38672~
@0-1で半波整流、@0-2で全波整流になります。(LFOでも利用可)
***ポルタメント
→実装しました! Rev.38695~
c*<c4 で4分音符の長さで音程が滑らかに変化します。
http://sketch.txt-nifty.com/blog/2008/07/the_flash_movie.html#comment-33041131
↑の案を採用しています。
また別途要望のあったMIDIライクなポルタメントも同時実装しています。
@Uコマンドですが詳細は[[FlMMLコマンド一覧>http://coderepos.org/share/wiki/FlMML/Reference]]を参照してください。
***LFOのウェーブフォームで、三角波とのこぎり波は、現在変位MAXから位相スタートする仕様ですが、変位0から位相スタートする三角波とのこぎり波が欲しい。
>現在の仕様(三角波)
>#asciiart(){_____\ /\ /\
> ̄ ̄ ̄ ̄ ̄ \/ \/ }
>現在の仕様(のこぎり波)
>#asciiart(){_____\ \ \
> ̄ ̄ ̄ ̄ ̄ \ \ \}
>この仕様ですと、ディレイ後のLFOスタート時にどうしても違和感があり、また、ピッチベンドにも利用が困難です。しかし、ディレイ0で、あらかじめ変位最大の分だけMML側でノートシフトさせて対応させたMML投稿が既に複数見られるため、互換性の観点から、この仕様を廃止するのは躊躇しています。
>そこで・・・
>改めて対応して欲しい仕様(三角波)
>#asciiart(){_____ /\ /\
> ̄ ̄ ̄ ̄ ̄\/ \/ }
>改めて対応して欲しい仕様(のこぎり波)
>#asciiart(){_____ \ \ \
> ̄ ̄ ̄ ̄ ̄\ \ \ \}
>新たに対応して欲しいLFOの三角波とのこぎり波は、上図のような、変位0から位相スタートするものですが、互換性を考慮し既存のものとは別に、新たな波形番号で用意していただくことはできますでしょうか?
→実装しました! Rev.38797~
@1のとき、@1-1とすると変位0から始まるノコギリ波になります。
@2のとき、@2-1とすると変位0から始まる三角波になります。
@6のとき、@6-1とすると変位0から始まるFC三角波になります。
***相対音量指定のまとめ表記
>現在相対音量の指定は変更段階の個数分カッコを表記すると思いますが、
>段階数が多くなると表記が読みにくくなります。
>)5 ←5段階変更
>このように数字を添えて何段階変更するか指定できるようにできませんでしょうか。
→実装しました! cs7800~
***波形定義上限個数の拡張
>現在、#WAV13も#WAV10も#WAV9も、最大定義個数が16個くらいだったと思います。
>当面欲しいのは#WAV13ですが、定義個数上限を256個くらいまで拡張お願いできませんでしょうか?
>MSX-SCCのシミュレートでは#WAV13を使いますが、結構いっぱい波形定義の切り替えがあり、種類も多いので、16個だとちょっと窮屈な感じです。。
>せっかく増やすなら#WAV13だけというのも勿体無いような気がしたので・・
→一部実装しました! cs7800~
WAV10とWAV13の最大数を16→32に変更しました。(0~31が使えます)
PCM垂れ流しデータも見受けられるので協議の結果この数です。ご了承ください。
WAV9については今までどおり16個です。
----