Skip to content

kuma4649/mml2vgm

Repository files navigation

mml2vgm

メガドライブ他向けVGM/XGM/XGM2/ZGMファイル作成ツール

[概要]
このツールは、ユーザーが作成したMMLファイルを元にVGM/XGM/XGM2/ZGMファイルを作成します。
IDEでは更に
mucomDotNET
M98DotNET
PMDDotNET
moondriverDotNET
を使用し各ドライバ毎の演奏ファイルを作成したりランダムな曲を生成したりすることが可能です。
IDEについては、IDE.txtを参照してください。
スクリプトについては、各々のスクリプトに付属の説明をご覧ください。
スクリプト作成については、Script.txtを参照してください。

[機能、特徴]
[VGM]
・主にメガドライブ2台分の音源構成(YM2612 + SN76489 + RF5C164)*2にそったVGMを生成します。
他、対応音源
AY8910
C140
C352
HuC6280
K051649
K053260
QSound
SegaPCM
YM2151
YM2203
YM2413
YM2608
YM2610B
YM3526
Y8950
YM3812
YMF262
NES
FDS
DMG

・FM音源(YM2612)は最大6ch(この内1chを効果音モードに指定すると更に3ch)使用可能です。
・PCM(YM2612)を1ch使用可能です。(FM音源1chと排他的に使用します。)
・PSG(DCSG)音源(SN76489)は4ch(この内1chはノイズチャンネル)使用可能です。
・MEGA-CDのPCM音源(RF5C164)は8ch使用可能です。
・以上、メガドライブ音源系だけで最大42ch(その他合計で300ch over)使用可能です。
(但し、RF5C164の2台目についてはVGMPlayでは今のところ正式には対応しておらず、鳴らすにはMDPlayerが必要です。)
・MMLの仕様はFMP7(開発:Guu氏)に似せています。

[XGM/2]
・メガドライブの音源構成(YM2612 + SN76489)にそったXGMを生成します。
・FM音源(YM2612)は最大6ch(この内1chを効果音モードに指定すると更に3ch)使用可能です。
・ソフトウェアによる制御によりPCM(YM2612)を4ch(XGM2は3ch)同時使用可能です。(FM音源1chと排他的に使用します。)
・PSG(DCSG)音源(SN76489)は4ch(この内1chはノイズチャンネル)使用可能です。
・以上、最大16ch使用可能です。

[ZGM]
・VGMを拡張したフォーマットです。
・YM2609やMIDI音源など使用することができます。

[MMLコマンドの説明]
・VGM/XGM/ZGM
mmlCommandTable.mdを参照してください。
・.muc(mucom88)
mucom88の公式ページを参照してください。
・M98
m98コマンドリファレンス.pdfを参照してください。
・.m/.m2/.mz(PMD)
PMDの公式ページを参照してください。

[MIDIキーボードの使用、制限について]
・音色確認向けです。
・現在、mucomDotNET,YM2608一枚目,FMのみ対応です。
・パートカウンターのKBD列をクリックするとそのパートがアサインされます。
・パートカウンターのKBD列名をクリックするとアサインがクリアされます。
・アサインはひとつだけできます。
・アサイン中はmml中の音符を発音しませんが発音以外のデータは送信されています。
・鍵盤を叩くとその時点のアサインされたパートの音色、チャンネルでキーオンされます。

[必要な環境]
・Windows7(x64)以降のOSがインストールされたPC。私はWindows11Home(x64)を使用しています。
XPでは動作しません。
・テキストエディタ
・時間と暇
・気合と根性
・.NET6をインストールしている必要あり。(近日.NET8にする予定です。)
・Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ をインストールしている必要あり。
・Microsoft Visual C++ 2015 Redistributable(x86) - 14.0.23026をインストールしている必要あり。
・音声を再生できるオーディオデバイスが必須。
そこそこ性能があるものが必要です。UMX250のおまけでついてたUCA222でも十分いけてました。
私はこれを使っていたのですが、壊れてしまったので今はUR22mkIIを使用しています。
・もしあれば、SPFM Light+YM2612+YM2608+YM2151+YMF262+SPPCM
・もしあれば、GIMIC+YM2608+YM2151+YMF262
・YM2608のエミュレーション時、リズム音を鳴らすために以下の音声ファイルが必要です。
作成方法は申し訳ありませんがお任せします。

  バスドラム      2608_BD.WAV  
  ハイハット      2608_HH.WAV  
  リムショット    2608_RIM.WAV  
  スネアドラム    2608_SD.WAV  
  タムタム        2608_TOM.WAV  
  トップシンバル  2608_TOP.WAV  
  (44.1KHz 16bitPCM モノラル 無圧縮Microsoft WAVE形式ファイル)  

・そこそこ速いCPU。
使用するChipなどによって必要な処理量が変わります。
私はi7-9700K 3.6GHzを使用しています。

[注意事項]
・SCCIやGIMICを利用した場合でvgmなどのストリーム系の再生は対応しておりません。
・YM2612やSSGによるPCM再生など、実チップの場合は正確な割り込み処理ができないのでPCMの音がおかしな状態になります。

[著作権・免責]
mml2vgm , mvc , mml2vgmIDEはGPLv3ライセンスに準ずる物とします。LICENSE.txtを参照。
著作権は作者が保有しています。
このソフトは無保証であり、このソフトを使用した事による
いかなる損害も作者は一切の責任を負いません。
また、著作権表示および本許諾表示は本ソフトでは不要です。

以下のソフトウェアのソースコードをC#向けに改変し使用しています。
これらのソースは各著作者が著作権を持ちます。
ライセンスに関しては、各ドキュメントを参照してください。

・EncAdpcmA.cs 参考元:https://wiki.neogeodev.org/index.php?title=ADPCM_codecs

以下のソフトウェアをライブラリとして動的・静的にリンクし使用しています。
これらのソースは各著作者が著作権を持ちます。
ライセンスに関しては、各ドキュメントを参照してください。

・MDSound /動的リンク
LGPL

以下、mml2vgmIDEのみ使用

・NAudio /動的リンク
ms-pl

・NAudio.Lame /動的リンク
MIT License

・Azukiエディター
zlib License
オリジナルではなく改造したものを使用しています。

・IronPython
Apache License,Ver.2.0

・NewtonsoftJson.NET
MIT License

・DockPanel Suite
MIT License

・DockPanel Suite.ThemeVS2015
MIT License

・DynamicLanguageRuntime
Apache License 2.0

・HtmlAgilityPack
MIT License

・IronPython
Apache License 2.0

・mucomDotNET /動的リンク
CC BY-NC-SA 4.0

・M98DotNET /動的リンク
CC BY-NC-SA 4.0

・musicDriverInterface /動的リンク
MIT License

・RealChipCtlWrap /動的リンク
MIT License

・SCCI /動的リンク
?

・c86ctl /動的リンク
BSD 3-Clause

・PMDDotNET /動的リンク
MIT License(但しPMD関係は別ライセンス)

・moondriverDotNET /動的リンク
MIT License(但しmoondriver関係は別ライセンス)

[SpecialThanks]
本ツールは以下の方々にお世話になっております。また以下のソフトウェア、ウェブページを参考、使用しています。
本当にありがとうございます。

・ラエル さん
・WING☆ さん
・とぼけがお さん
・wani さん
・mucom さん
・UME-3 さん
・おやぢぴぴ さん
・なると さん
・hex125 さん
・くろま さん
・TAN-Y さん
・阿保 さん
・Rerrah さん
・ぼうきち さん
・musicalman さん
・欧場豪@マシㇼキ提督 さん
・SND-L/KSND(itoken) さん
・古代 さんはじめオープンMUCOMのみなさん
・sdhizumi/S.Kudo さん
・Ian Karlsson さん
・KAJA さん
・C60 さん
・sio29 さん
・きゃどん さん
・さしゅ さん
・djtuBIG-MaliceX さん

・XPCMK
・FMP7
・Music LALF
・NRTDRV
・Visual Studio Community 2015/2019
・SGDK
・VGM Player
・Git
・SourceTree
・さくらエディター
・Azuki
・Dock Panel Suite
・CodeWarrior
・BambooTracker
・みゅあっぷ
・714MIDI
・PMD
・PMDWin
・PPZ8
・moondriver

・SGDKとは - nendo
・FutureDriver
・SMS Power!
・DOBON.NET
・Wikipedia
・retroPC.net
・VAL-SOUND
・こえやさん