Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

MGSDRV:識者のみなさんのテクニック集と資料集

【2022.5.4更新】FM音源音声合成データ変換ツールを追加しました。

 MSXのミュージックドライバ「MGSDRV」で音作りのレベルが向上するテクニックをまとめました。

https://p.gigamix.jp/mgsdrv/cg/technique.png

 ちなみにMGSDRVの概要・ダウンロードは、こちらのリンクからどうぞ。 www.gigamix.jp

音色の作り方(FM音源

タイトルOPLLにおける音色の作り方講座[OPLLの概要 / パラメータ解説篇]
概要 「OPLLにおける音色の作り方講座[OPLLの概要 / パラメータ解説篇]」を以下のURLで公開します。平文テキストですが、ご容赦ください。なお、タイトルの通り、まずは概要説明・パラメータ解説のみとしています。#OPLL #YM2413 https://t.co/sMrbFDDW9t — らいきんぐ! (@liking_birds) 2020年12月13日
作者らいきんぐ!(twitter@liking_birds)
リソース https://twitter.com/liking_birds/status/1338006446210830336
タイトルFM音源のブラスの音色だけを集めた「プチ・プラスだけ・音色集」
概要  FM音源のブラスの音色だけを集めた音色集。らいきんぐ!さん(twitter@liking_birds)の解説。
今年に入ってうちがtwitter上で公開したMSXplayの曲データから、FM音源のブラスの音色だけを集めた「プチ・プラスだけ・音色集」というのを作りました。なにかの参考になれば幸いです。https://t.co/Ycmfqpbts7#MSXplay #OPLL #YM2413 #BrassSelection — らいきんぐ! (@liking_birds) 2020年11月21日
作者らいきんぐ!(twitter@liking_birds)
リソース https://twitter.com/liking_birds/status/1330178064056279046
タイトルYM2413の内蔵ROM音色15種類を一気にプレビューする動画
概要  FM音源の内蔵ROM音色15種類を波形付きで見られる動画。MGSDRV・FM-BIOSMSX-BASICで音色番号が違う件にもフォローあり。
YM2413の内蔵ROM音色15種類を一気にプレビューする動画を作りました。YM2413は自作音色が1つしか作れず、後はROM音色を使うしかないという話はよくききますが、ROM音色は実際どんな音がすべてなのか、というと実はそれほど知られていないのでは?という気がして作成しました。https://t.co/udMVOFvFP8 — DSA (@ym2413) 2020年12月5日
作者DSA(twitter@ym2413)
リソース https://twitter.com/ym2413/status/1335365589880119297

FM音源:yコマンドの各機能の説明

FM音源:FM9音モードでリズム音を鳴らす方法

 YM2413のyコマンドを利用することで、9音モードでありながらリズム音源を出力できる特殊な動作モードを構築できます。一部では「9音リズムモード」と呼ばれています。通常のドラム音では満足できない識者の方々がクオリティアップを目指し日夜試行錯誤されています。

らいきんぐ!さん(twitter@liking_birds)の解説

 MSXplay.comによるMMLソースコード付き!

「MGSDRVのFM9音モードでリズム音を鳴らす方法」のその1を公開します。最終的にやりたいことまでを分割して話す必要があるので、まずは「音を鳴らすだけ」に絞って説明しています。その2以降は今後徐々に書いていきます。#MSXplay #MGSDRV #YM2413 https://t.co/Od2yYkihKo — らいきんぐ! (@liking_birds) 2020年9月21日
 MML上ではFM9音モードを指定したのちYコマンドでFM6音+リズムモードに切り替えてリズム音を鳴らすと音に変化を付けられます。

「MGSDRVのFM9音モードでリズム音を鳴らす方法」のその2を公開します。ここでは、バスドラムをシンセドラム(ナムコドラム)っぽく鳴らすまでを順番に説明しています。#MSXplay #MGSDRV #YM2413 https://t.co/M8bSGQl5Fh — らいきんぐ! (@liking_birds) 2020年9月21日
 FM9音モードではサスティンONによるリリースの伸びをリズムに持たせることが可能。バスドラムがシンセドラムになる!

「MGSDRVのFM9音モードでリズム音を鳴らす方法」のその3を公開します。FM9音モードでのリズム制御で鳴らしている「(you're)SO NICEの冒頭のリズム部分」のコードを紹介するとともに、Yコマンドでリズムモードに切り替える際の補足を示しています。#MSXplay #MGSDRV #YM2413 https://t.co/Nec7IdS9s6 — らいきんぐ! (@liking_birds) 2020年9月21日
 このサンプルではバスドラム・スネドラム・タムを使い、リズムモードでは出せないような様々なパーカッションを発声。

「MGSDRVのFM9音モードでリズム音を鳴らす方法」のその4(ひとまず完了)を公開します。楽曲を鳴らしながらリズムモードを切り替える際、リズムパートから鳴る雑音を抑制するための方法を紹介しています。#MSXplay #MGSDRV #YM2413 https://t.co/q4SVN2DR6E — らいきんぐ! (@liking_birds) 2020年9月22日
 リズムモードへの切替時に発生する雑音をできるだけ抑えるサンプル。

レジスタ構成の関係でHチャンネルはvがシンバルの音量、音色番号がタムの音量(14,13,12...,0,15の順で音が大きくなります)になります。例えば H y14,32 q8 v8@14 c4 でシンバルが音量8、タムが音量0で鳴ります。G チャンネルだとvがスネアの音量、音色番号がハットの音量になります。 — DSA (@ym2413) 2021年2月23日

DSAさん(twitter@ym2413)の解説

y14,32でリズムモードにした場合 F → バスドラム G → スネアとハイハット H → シンバルとタム が発音しますが、周波数は バスドラム → F スネア → G ハイハット → GとH シンバル → GとH タム → H なので、狙った音を鳴らすのはなかなかパズルです。 — DSA (@ym2413) 2021年2月23日
YM2413ではハイハットとシンバルは2種類の短周期ノイズを合成したような実装になっており、短周期ノイズの周波数はそれぞれ8ch目と9ch目の周波数レジスタで指定します。このためシンバルとハイハットの音色は G,H チャンネル両方の影響を受けます。 — DSA (@ym2413) 2021年2月23日
リズム音は本来 14 番レジスタのビット0〜5でキーオンしますが、YM2413の構造上、リズム音の制御は通常の7〜9ch用の制御レジスタと共有されているため、7〜9chをキーオンすると、運良くリズム音が鳴ってしまうのです(続 — DSA (@ym2413) 2021年2月23日
14番レジスタのビット0〜5でリズム音をキーオンした場合、7〜9ch側でキーオフしてもリズム音はキーオフしません。このため14番レジスタに32(リズム有効)以外の値を書き込むと、mgsdrvのFGHでうまくリズム音が発音を制御できないように感じられる場合がありますが、YM2413の仕様通りとなります(終) — DSA (@ym2413) 2021年2月23日

ぎゃぶねこさん(twitter@gyabuneko)の解説

9音リズムモードを使ってみて分かったけど、音色番号のビットで音量を操作するのが、もの凄くややこしいw この特殊モードを初めて使った時は、自作音色番号(アット15)で音量指定したら、自作音色を使ってるトラックで音色切替したら、それに連動してリズム音も変わってしまってた事もありました 😅 — ぎゃぶねこ (@gyabuneko) 2021年2月24日
こうした問題が発生するので、9音リズムモードを使う時は、「アット15」の音量は指定しないようにしています😅 — ぎゃぶねこ (@gyabuneko) 2021年2月24日
あ・・・違ったw リズム音を「アット15」で音量指定すると、自作音色を使ってるトラックで「アット15以外の自作音色番号」で指定しても、それが強制的に「アット15」の自作音色で連動して鳴ってしまうんだよね 😅 これは厳しい😅 — ぎゃぶねこ (@gyabuneko) 2021年2月24日

たかをさん(twitter@takawo_n)の解説

【9音リズムモード(仮称)でリズムの音量を設定する #MGSDRV 版】mgsdrvで9音リズムモードを使用する場合に、リズムに音量設定をするうえでの注意点を、教えていただいた情報と経験則から簡単にまとめてみたいと思います。(自身の備忘録とも言う) ※ここでは9音リズムモード自体の説明は省く(続) — たかを (@takawo_n) 2021年3月1日
9音リズムモードでは以下の3チャンネルにリズム音が割り当てられます。F : バスドラ G : ハイハット + スネア H : タム + シンバル この中で、GとHチャンネルは1チャンネルで2種類の音を扱いますが、通常の v 指定では、スネア(G)とシンバル(H)の音量しか設定できません。(続) — たかを (@takawo_n) 2021年3月1日
ハイハット(G)とタム(H)の音量指定には、音色指定の'@'を使って指定する必要があります。音量の数値指定は @14,13,12....,0,15 となり、左から@14が無音、@15が最大となります。(続) — たかを (@takawo_n) 2021年3月1日
問題点として音量の最大値の @15 はオリジナル音色の番号となるため、タムやシンバルを最大音量に指定するたび、ドライバ側の処理でオリジナル音色データが書き換えられる状況となります。この問題を回避するにはROM音色を指定のオリジナル音色の番号に割り当てる、@#<number> = <n> が有効です(続) — たかを (@takawo_n) 2021年3月1日
@#15 = 1 上記の設定で、@15 にはROM音色の1番(バイオリン)が割り当てられるため、音量指定に@15を使用しても、ドライバ側の音色データの書き換えが発生しなくなります。※オリジナル音色は@16からになります。(続) — たかを (@takawo_n) 2021年3月1日
<ソフトウェアエンベロープを使用する>@e を使ったソフトエンベロープをタムやシンバルで使う場合、以下のように設定します。@e01 = { ,,@15.0.@0.1.@1.2.@2.3.@3.4.@4.5.@5.6.@6.7.@7.8 }Hチャンネルで使用した場合、時間経過でタムは低下、シンバルは増加となります。※タムの音量は絶対指定 — たかを (@takawo_n) 2021年3月1日

FM音源:発音中に音色を切り替える技(パッチスライド・コンボ音色)

 OPLLで発音(発生)中に音を切らずに他の音色へ変更することによって違う音に聞こえる「パッチスライド(コンボ音色)」と呼ばれるテクニック。SCC音源の「モーフィング」のような効果を作れます。

いろんな方に「いいね」を頂けたので、この音色切り替え技(ビブラフォン→フルートの切り替えで鳴らすシンセブラス)のサンプルコードを書いてみました。単純なフルートが、ブラスに化けるところが面白いです。https://t.co/YY86B3bXBp — らいきんぐ! (@liking_birds) 2020年8月13日

 ビブラフォン→フルートの切り替えで鳴らすシンセブラス。単純なフルートが、ブラスに化ける。

先日アップしたYM2413でソーサリアンやYS1/2を演奏した動画では、これら15個のROM音色を重ねたり、一瞬だけ鳴らしたり、素早く切り替えることで、強引にYM2203風味の音を出していますので、よかったらどこにROM音色が割当てられているのか?という視点でも聴いていただければ! https://t.co/AdEvx9ewTQ — DSA (@ym2413) 2020年12月5日
 日本ファルコムのゲームBGMでよく使われるYM2203風味の音をYM2413で再現するためにこのような技術が便利に使えるようです。

この音色から、パッチスライドで33番(ウッドベース)の音色に切替えて鳴らすと、FM1chでもアタックの鋭いパンチの効いた音が出ます。パッチスライドはMSX-BASICでは処理速度的に厳しいけど、MGSDRVなどのFM音源ドライバなら可能です。 https://t.co/0qpW3imEnp — ぎゃぶねこ (@gyabuneko) 2020年11月28日

ここで言うパッチスライドとは、「YM2413内蔵音色を、Key-ONしつつステップ単位で高速で音色を切替るテクニック」の事で、これにより、元の内蔵音色とは全く異なる「自作音色っぽい音色」を出せます。このテクはMSX-BASICでもYコマンドと&コマンドを併用すれば可能ですが、処理速度的に厳しいです😅 — ぎゃぶねこ (@gyabuneko) 2020年11月28日

 なお、音色を切り替える技術は、おかしな音が鳴る場合があります。詳しくは MGSDRV:仕様?バグ?未確認情報まとめ - Gigamix Online をご覧ください。

FM音源バスドラムの音程を変えてスネアドラムにする

FM音源:6音リズムモードを使って、yコマンドでF-Numberを書き換えて、リズム楽器にサスティンを掛ける

FM音源:リズム音モードとyコマンドを使ってリズムの音程を制御するときに便利なYM2413の音階テーブル

FM音源:キーオンミュートする方法

その②:@eコマンドを使ってF-Numberを0にする方法

F-Numberを@ eコマンドをつかって0にするサンプルです。(捨てトラック不要)https://t.co/UO3ZyJ9Apj#MSXplay #MGSDRV — Pt.Macumba (@Pt_Macumba) 2021年9月13日
もっとデータ量も少なくして捨てトラックを用意せずにもっと楽にキーオンミュートを打ち込めないのかしらと思って、そこで@ eに手を出してみたら…単一トラックであっさりF-Numberを0にできてしまいました。今までの苦労は一体…。 — Pt.Macumba (@Pt_Macumba) 2021年9月13日
ただ、この手法だとプチノイズがやけに目立つなと思ったら、@ eを使うと発声時に一瞬音量を0にしてしまうからなのね…。一長一短だなあ…。 — Pt.Macumba (@Pt_Macumba) 2021年9月13日

 その①のように捨て要素のトラックを消費する必要はありませんが、一瞬ノイズが発声するようです。

その①:別トラックからyコマンドで割り込ませる方法

YM2413で打ち込んだUSAAFムスタング(ファイアームスタング)の1面BGMです。https://t.co/hAVVf1tsvh#MGSDRV #YM2413 — Pt.Macumba (@Pt_Macumba) 2021年9月12日
YouTubeのコメ欄にも貼ってますが、一応こちらにもMMLのリンクを。https://t.co/Vprp2I0HxJ 別トラックからyコマンドで割り込ませるやり方でキーオンミュートしてます。 — Pt.Macumba (@Pt_Macumba) 2021年9月13日
今回打ち込んだムスタングの曲はメロディにキーオンミュートを使ったクラリネットを使ってみたんですが、曲後半のような弾き倒すフレーズと組み合わせると相性が良いなあ…と。でも、yコマンドを多用するのでデータ量がおぞましく増え、メロディで7K強使ってしまってバッファのやり繰りに困りました。 — Pt.Macumba (@Pt_Macumba) 2021年9月13日

 キーオンを他のトラックから制御することはできるのですが、管理が煩雑になってMMLが読みにくくなるようです。

FM音源ファミコンっぽい音作り

 OPLLの内蔵音色だけでファミコン三角波を再現する技術。内蔵音色をパッチスライド(コンボ音色)で4チャンネル同時に発声しています。

チャレンジしてみましたが、ウチの腕ではココらへんが限界でした…orz。https://t.co/zLiuierJww — らいきんぐ! (@liking_birds) 2021年8月22日
もはや好みの問題のような気がしますが at e2 のフルートをオルガンにして音量微調整、あたりですかねぇ... — DSA (@ym2413) 2021年8月22日
あぁ、その手が…!!(,,゚Д゚)!! ML比3:1がそこ(オルガン)にあるではないか…なんという不覚 (Ver0.01になりました)。https://t.co/wCsKa3CSdX — らいきんぐ! (@liking_birds) 2021年8月22日
ファミコン三角波の「音量を階段状に変化できない」ことを再現するためです(^^)。OPLLでキーオフさせると余韻が残るので、印象が大きく変わってしまうんですね。以下サンプルを作りましたので、お時間あれば聴いてみてください(コメントも参照するとなお良しって感じです)https://t.co/ZwX3wxzmsl — らいきんぐ! (@liking_birds) 2021年8月23日

FM音源セガ・マークIIIマスターシステム)っぽい音作り

 Pt.Macumbaさん(twitter@Pt.Macumba)。マスターシステムセガ製ゲームソフト特有のキーオフ仕様をMGSDRVで再現。

リズムモードかつメロディのディレイ用トラックを最低1つは用意して、メインとディレイのどちらかにデチューン+1&LFOを掛けておくとMGSDRVでもマークⅢのFM曲っぽくできます。 — Pt.Macumba (@Pt_Macumba) 2020年11月29日

 セガ・マークIIIの「FMサウンドユニット」およびセガ・マスターシステムは、MSX-MUSICと同等のFM音源チップ(YM2413, OPLL)を搭載していました。音色が同じであるため、MSXでも擬似的に楽曲の再現が可能です。

その②:F-numberの制御で実現する方法

 その①発表後に発見された方法。こちらのほうが手軽に実現できるようです。

触発されて、色々試していたら(キーオフの1フレーム後を狙わずに)MGSでF-Numberを0にすることができたのでシェアしておきます。https://t.co/Dg7atCcYoi — Pt.Macumba (@Pt_Macumba) 2021年8月24日

その①:Yコマンドと休符だけを使ってYM2413を制御する方法

yコマンドで周波数を制御したいときにトラックで使用中のチャンネルに書きこもうとすると、休符のタイミングでキーオフ値が書きこまれる仕様のため発声されてもすぐキーオフされてしまいます。しかし未使用のチャンネルであればyコマンドで制御できます。https://f.msxplay.com/?id=8e59eb02 #MSXPlay #MGSDRV — Pt.Macumba (@Pt_Macumba) 2021年2月28日
捨てチャンネルを1つ用意することによってそれ以外のチャンネルをyコマンドで制御できますが、6音+リズムモードに設定している場合は、リズムトラックを使用すると休符を書いてもキーオフ値が書きこまれないため、全てのチャンネルをyコマンドと休符だけで制御できます。 — Pt.Macumba (@Pt_Macumba) 2021年2月28日
アレックスキッドのメインテーマをリズムトラックからyコマンドと休符だけで鳴らしてみました。MGSDRVで普通に打ち込むときにはまず再現することができない、セガドライバ特有のキーオフ仕様を再現しています。https://f.msxplay.com/?id=ba85f10a #YM2413 6音+リズム #MSXPlay #MGSDRV — Pt.Macumba (@Pt_Macumba) 2021年2月28日
ただ、11小節分の短い曲データでトラックデータを13KB強使用してるので、使いどころがあるのかと言われると…ほぼないでしょうね。 — Pt.Macumba (@Pt_Macumba) 2021年2月28日

FM音源:ROM音色以外の拡張音色をMSX-MUSIC 拡張BASICでよく見る音色定義やMGSDRV形式へ変換する

FM音源:MGSDRVの音色データをMSX-MUSIC 拡張BASICの形式へ変換する

FM音源:MuSICA→MGSDRV 音色データコンバータ

ソフト名VCDCNV
用途MuSICA用音色ファイル(*.VCD)をMGS用のMMLソースリスト(*.MUS)へ変換する
対応OSMSX-DOS
作者いたろう
リソース 原版 VCDCNV.PMA 1994.07.02, 2176 Bytes
再圧縮版 VCDCNV.LZH 2019.11.04, 2342 Bytes
再圧縮版 VCDCNV.ZIP 2019.11.04, 2522 Bytes

 変換に対応する音源はFM音源(OPLL)のみです。

FM音源:YM2413のレジスタ値からMGSDRVの音色データへ変換する

FM音源:「#素2413」とは?

 twitterハッシュタグ「#素2413」「#素YM2413」と書かれたツイートに含まれる楽曲はだいたい敢えてテクニックを駆使せず素の音を嗜むことを目的に作成されています。

FM音源音声合成データ変換ツール

 PCMデータをサイン波(オリジナル音色)のMMLへ変換して、MGSDRV(MSXplay)で擬似的な音声合成を実現するツール。凄!

PSG音源:ハードウェアエンベロープ

 drmさん(twitter@NudiDrm)による解説。 では、PSGのハードウェアエンベロープについて記載しておきます。MSXのPSG(AY-3-8910相当品)では、チャンネルをミュートするとアクティブの状態でホールドされるようで、ここにボリュームやエンベロープジェネレータの音量が反映されるようです。(続く) — drm (@NudiDrm) 2020年9月26日
したがって、エンベロープジェネレータで反復波形を選択し発振させると、可聴周波数の範囲でPSGを鳴らすことが可能です。具体的にはS8,S12で鋸波を、S10,S14で三角波を模擬することができます。MGSDRVのMMLでは言語レベルでチャンネルミュートがサポートされているため扱いが容易です。 — drm (@NudiDrm) 2020年9月26日
具体的には、PSGのチャンネルで”/0”と記述しチャンネルミュートした後、Sコマンド、Mコマンドで非矩形波を発振することができます。例) /0 s8m85 e1 このようにする事でオクターブ2のミの音に近い鋸波を発振できます。音階との対応は、概ね添付の図のようになります pic.twitter.com/4L6RaHa9HG — drm (@NudiDrm) 2020年9月26日
/1でチャンネルミュートしていない場合、発音している音程と干渉することとなります。近い音程の場合には意図的にうねりを発生させることも可能です。例えば以下の曲では、冒頭のベースのうねりをハードウェアエンベロープとの干渉によって実現しています。https://t.co/6Ydc5xMLvo — drm (@NudiDrm) 2020年9月26日
Mの値は整数しか取らないので、表の小数部は四捨五入して入力する必要があり、その分が聴感上の誤差になります。設定値が小さい程誤差の範囲が大きくなるため、同じ音高では三角波の方が鋸波より誤差が発生し易い事を示唆してますね。 — drm (@NudiDrm) 2020年9月26日

先ほどの掲載図の中に誤記があり、S10,14の場合は表の値を1/2することで意図する音程とすることができます。お詫びし訂正いたします。 pic.twitter.com/wcTsLZR8R7 — drm (@NudiDrm) 2020年9月26日
 表はこちらが正しいもの。

音色の作り方(SCC音源)

 SCCの波形設定は、0が中心になる「符号付き8bit(-128~127)」で設定します。0が下限になる波形データは-128する必要があります。

SCC音源:SCC音色エディタ

タイトルSCC音色エディタ
概要 SCC音色エディタとりあえず公開してみる https://t.co/DuEUhZRkzk 三角波あんまり似てない?https://t.co/gSj9ldCmi8#MGSDRV #SCC — gary (@keijiro_im) February 8, 2020
作者gary(twitter@keijiro_im)
リソース https://twitter.com/keijiro_im/status/1226209235890929665

SCC音色作成ツール S-Cube

タイトルSCC音色作成ツール「S-Cube」
概要 微妙にニーズがありそうなので、超大昔に自作したSCC音色作成ツール「S-Cube」を置いときます。(※無保証&使い勝手はそんなに良くないです。動作遅いので実機ではなくエミュのノンウェイト推奨。Ctrl立ち上げ&SCCがslot0?じゃないと動かないかも) https://t.co/LUFXbfMM6A https://t.co/x5MWrp4fAO — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
少しだけバグと体裁を修正して、MuSICA音色出力に特化したバージョンがMSX MAGAZINE永久保存版3に入ってますので、お持ちの方は是非。 https://t.co/4pE3rSFVms https://t.co/nkbPPv19KF — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
Web上のMSXで動作するとの情報が。 軽く動かしてみた感じ、一応動作している模様です。 歯車アイコンを押して「Konami SCC+」をクリックすると、鍵盤に書いてあるキーで音も鳴ります…たぶん。 保存したデータは、フロッピーアイコンで「Save Disk Image」でお手元に。 https://t.co/U9iisjtCyU https://t.co/8Jvv7x44uG — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
作者Wiz.(twitter@WizardOfPSG)
リソース https://twitter.com/WizardOfPSG/status/1192484191549546496
MSXマガジン永久保存版3にも収録されているそうです。

SCC音源:GB音源→SCC音源 コンバートツール

タイトルGB音源の波形メモリデータを、SCC音源の波形メモリデータ(MGSDRV形式)に変換するスプレッドシート
概要 シレっと公開したけど、気づかれてないみたいなのでちゃんと書いておこう…。GB音源の波形メモリデータを、SCC音源の波形メモリデータ(MGSDRV形式)に変換するスプレッドシートを作りました。おまけとしてFamitracker形式のN163を変換するシートもつけてあります。https://t.co/wTrEFz6mEe — sdhizumi / S.Kudo (@sdhizumi) October 28, 2019
作者sdhizumi / S.Kudotwitter@sdhizumi)
リソース https://twitter.com/sdhizumi/status/1188841814242914304

SCC音源:基本波形の組み合わせから波形データを作成するための簡単なExcelブック

タイトル基本波形の組み合わせから波形データを作成するための簡単なExcelブック
概要 MSXでSCC音色を一から作るために、基本波形の組み合わせから波形データを作成するための簡単なExcelブックを作成しました。時間が出来たら音色データも作っていこうかと思います。https://t.co/OoaeIlEd8f — drm (@NudiDrm) 2021年1月21日
作者drmtwitter@Nuridrm)
リソース https://twitter.com/NudiDrm/status/1352001839068135424

SCC音源:正弦波を作成する

 「LIVEN 8bit warps」でお馴染み、SONICWAREの遠藤CEO(twitter@yu_endo)が作成した音色データだから間違いない(はず)!

SCC音源:モーフィング波形

SCC音源のモーフィング波形作成方法を、自分用に纏めてるナウ (´∀`)《使用ツール》openMSXblueMSXWave Shape EditorS-Cube(SCC音色エディタ)(開発者:Wiz.さん)コナミSCC音源の達人Baboo! JAPAN(MSX関連)の「SCC音源の達人」のリンクは現在切れてますが😅https://t.co/jDmWkW0cL5 — ぎゃぶねこ (@gyabuneko) 2020年11月22日
 SCC音源のモーフィング波形の作成方法。ぎゃぶねこさん(twitter@gyabuneko)の解説。

SCC音源:簡易的にPCMを再生する

 drmさん(twitter@NudiDrm)による解説。 簡易PCM再生について:原理は単純で、SCC1波形32byteを垂直同期割込周期約60Hz毎に入れ替えることで、約1920Hzを再生させようとするものです。波形データ作成には、例えば下記ツールを使うと各種音声ファイルから1920Hz モノラルWAVファイルを作ることができます。https://t.co/CKVJnvNe38 — drm (@NudiDrm) 2020年11月30日
今回は、SoXで周波数変換したWAVファイルから、テキストのバイナリデータを作成するための簡単なフィルタをCのコンソールアプリで自作してます。(こんなニッチなソフトを欲しい方がいると思えませんが、ご希望の方がいらしたらどこかに配置します。) — drm (@NudiDrm) 2020年11月30日
このように単純な原理なのですが、MGSDRVで実現する際に色々問題があります。そもそも1920Hzの再生周波数は相当に低く、変換後の音声はまず想像通りの音にならないと言えます。またMGSDRVのSCC波形定義の上限(確か32波形)から、音の長さも合計約0.5sec程度の制約となるため、ほぼ1Shot専用です。 — drm (@NudiDrm) 2020年11月30日
とは言え、耳で聴きながら微調整を施したり、他の音源テクと組み合わせることでチップチューン的なLo-Fiな音を演出できたりするので、使いようによっては有用な技術かもしれません。#MSXplay https://t.co/rSLMt8YhSz — drm (@NudiDrm) 2020年11月30日
 SCCの音色を高速に切り替えることで、1920Hz・約0.5秒程度ですがワンショット的にPCMを利用可能になります。

MuSICA→MGSDRV MMLコンバータ

 MuSICA形式のMMLデータ(拡張子 .MSD)と音色データ(拡張子 .VCD)のセットを用意すると、MGSDRV形式のMMLへ変換できます!凄すぎ!

意図したとおりにキーオフする方法

SCCでFC版Wizardryその2。MGSDRVは1/60秒早めにキーオフするコマンドがないので、c4をc%46r%2、c8をc%22r%2のように記述してがんばるんです...。https://t.co/7ooZYnLr7b — DSA (@ym2413) 2021年9月17日
MGSDRVでは、一応、Kコマンドを使えばKeyOff後のエンベロープのリリースレイトは表現できるけど、それも1/60単位では指定できないという事なのかな? その辺りがよく分からなくて、自分はSCCでの打ち込みは、QコマンドとKコマンドを併用してますが、Qだと%とは微妙にニュアンスが異なるのかな?😅 https://t.co/F450Fwrnyo — ぎゃぶねこ (@gyabuneko) 2021年9月18日
qコマンドは音長に対する割合でゲートタイム(発音時間)を指定するものなので、音長が長いほど早めにキーオフしてしまいます。ここでやっているのはどんな音長であってもキーオフをきっかり2カウント早める指定です。 https://t.co/K5rKexCiaR — DSA (@ym2413) 2021年9月18日

メモリ消費量を抑える方法(1)

 サークルFMPSG主宰、Wiz.さん(twitter@WizardOfPSG)による解説。 MGSDRVでメモリ使用量を減らすコツ?・楽曲途中でテンポ変更すると、ゴソっとメモリ取られるので極力やらない・yコマンドを多用してる曲は、MML内のyコマンドを削るとゴソっと使用量が減る・音長系は最適化してる?っぽく、表記を変えてもさほど変わらない気がする(※推測)(続く — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) 2020年6月28日
続き)・単音リピートは、3回程度だと却ってメモリを喰うので、ベタで書いたほうが良い(例:「[c4]3」とか)・フレーズリピートや、単音でも5回以上くらいであれば、リピートを使ったほうがメモリが縮む(例:「[r1]8」とか)(続く https://t.co/Nby5dMqVBi — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) 2020年6月28日
続き)・リズムパートのビルトインマクロは、同タイミングで鳴らすリズム音の種類を減らしてもメモリは(たぶん)減らない(例:「bmsc8」と「s8」は変わらない?)・リズムパートでメモリを削るには、発音トリガを減らす(例;「b4s8b8」→「b4s4」にすると、微妙に減る?)続く) https://t.co/oBQc2n39jE — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) 2020年6月28日
続き)・どーしてもメモリが足りなかったら、思い切ってchを減らすwディレイや補助用パート、和音構成のパートを丸々削るとか…当然、ゴソっと空きます。…他にもありそうですが、MGSDRVの場合はとりあえずこんな感じで。 https://t.co/Zv9DvGjk6M https://t.co/dxIn5tqVIr — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) 2020年6月28日

メモリ消費量を抑える方法(2)・トラックバッファ消費量

 MSXplay.com制作者、DSAさん(twitter@ym2413)による解説。 MGSDRVのトラックバッファ消費量という話ですと、yコマンドは3バイトです。音長(L)コマンドが2バイトで、Lコマンドと一致するノートが1バイト、一致しないノートが2バイトです。 https://t.co/tvl5rFFdre — DSA (@ym2413) 2020年6月28日
ノートについては、タイ(&)を使わない方が効率が良いです。c4&c4よりc2またはc4^4の方がトラックバッファの消費量が減ります。 — DSA (@ym2413) 2020年6月28日
MGSCコンパイラで最適化処理は掛かっておらず、たとえばl4l4と明らかに意味のない同じコマンドの羅列がある場合でも、MGSバイナリには記述された個数分同じコマンドが入り、トラックバッファを消費します。 — DSA (@ym2413) 2020年6月28日
また、MGSCは音色データも最適化しません。未使用の音色データもMGSバイナリに残ります。同じ番号の音色を複数個定義すると、なんとバイナリに同じ番号の音色が複数個入ります。 — DSA (@ym2413) 2020年6月28日
その他、コマンド毎の消費バイト数については、こちらに解析資料があります。https://t.co/NBQURLHCAx — DSA (@ym2413) 2020年6月28日
 コマンド毎の消費バイト数について記載された解析資料へのリンク。

コナミ風ドラム

 ぎゃぶねこさん(twitter@gyabuneko)MDplayerの導入によって解析が捗り、日に日にクオリティアップしたそうです!

MSXPlayでグラディウス2のPSGドラムマクロを修正。ハードENVに掛けた音程コマンド「_」を使ったバスドラムのポルタメントが緩かったので、少し速くなるようにした。L4とL16を比較すると、L16の方がポルタメントが速かったので、L16(12%ステップ)を基準にして調整。https://t.co/MeHu7B9dmz — ぎゃぶねこ (@gyabuneko) 2021年2月22日
今回はPSGバスドラムにpコマンドでLFOを掛けてみたが、その割には出音が安定しているんだけど、これは多分、LFO系コマンドの音程オーバーフローを見越して、値を少し小さくしたのが功を奏したのかも? p値を確定前に、o1で音程がひっくり返らない値を探ってp値を調整してた。 — ぎゃぶねこ (@gyabuneko) 2021年2月5日
MSXPlayで、SDスナッチャーのコナミPSGドラムを打ち込み再現してみた。昨夜作りかけのMMLを修正したのだが、バスドラムが鳴った後のスネアドラムの出音が不安定になってた・・・(;´∀`)…うわぁ… 原因調査なう https://t.co/Mpi9y18rUB — ぎゃぶねこ (@gyabuneko) 2021年2月14日
コナミPSGドラム再現データを纏めた耳コピ再現用のテンプレートMMLが出来た!これをもとに、これから、とある曲のMMLを打ち込みするのだ・・・(ΦωΦ)フフフ… https://t.co/xcUD7cgSlS — ぎゃぶねこ (@gyabuneko) 2021年2月22日

マイクロキャビン風ドラム

 元マイクロキャビンの新田忠弘さん(twitter@TadahiroNitta)が作成した音色データだから間違いない(はず)!

ホイッスルのような音作り

その他

YM2608が鳴らすスネアドラムっぽい音が出来たので公開。…え?ディストーションギター?! …食べちゃいましたけどナニか?![過去作品の修正版です] #MSXplay #MGSDRV #YM2413 #SCC #PSG #TheScheme #PerperualDark https://t.co/MSFwhsvFHZ — らいきんぐ! (@liking_birds) 2020年9月19日
ウチがMGSDRVをメインで使う理由は明確で「SWエンベループ定義にPSGのノイズ周波数切り替えや音色変更等ができるから」でして(まえも言ったかな)。 — らいきんぐ! (@liking_birds) 2020年9月21日

技術資料

v3.xx データフォーマット 解析資料

タイトルv3.xx データフォーマット 解析資料
概要 wow, great document!! I wrote mgsformat.txt when i created mgsc for win.https://t.co/NBQURLHCAx — DSA (@ym2413) January 18, 2020
作者DSA(twitter@ym2413)
リソース https://twitter.com/ym2413/status/1218503008708743168

v3.xx 圧縮データ 解析資料

タイトルv3.xx 圧縮データ 解析資料
概要 (Fixed post) MGSDRVの圧縮形式を俯瞰する図を書いてみました。Here is an overview of MGSDRV's compression format (just a summary, not comprehensive). pic.twitter.com/O7UaYGb7JY — DSA (@ym2413) January 30, 2020
作者DSA(twitter@ym2413)
リソース https://twitter.com/ym2413/status/1223015404907290624

OPLLの音色の主要な特徴をなすパラメータ「ML比・FB値目安」一覧表

タイトルOPLLの音色の主要な特徴をなすパラメータ「ML比・FB値目安」一覧表
概要 うちが作ってきたOPLLの音色において、その音色の主要な特徴をなすパラメータである「ML比・FB値目安」をまとめた表を作成してみました(過去に配布した「OPLLでの音色作成講座」で示したものに、加筆したものです)。参考になるかはわからないのですが、ひとまず公開してみます。 pic.twitter.com/lYd5GxyDIp — らいきんぐ! (@liking_birds) November 24, 2020
作者らいきんぐ!(twitter@liking_birds)
リソース https://twitter.com/liking_birds/status/1331266833224065026

YM2413の音階テーブル

(2021/02/28)リズム音モードとyコマンドを使ってリズムの音程を制御するときに便利なYM2413の音階テーブル(A4=440hz 平均律)を自分用に用意したので共有します。https://t.co/lJt1gUF7Wh#MGSDRV #YM2413 — Pt.Macumba (@Pt_Macumba) 2021年2月27日

MGSDRVの1/60秒に相当するステップ数の計算テーブル

 識者のみなさま、情報をありがとうございます。

MGSDRVのトップページ → https://www.gigamix.jp/mgsdrv/