* GIMIC USB制御デモ [#nf7b7a6a]
GIMICのUSB制御デモを公開します。以下の手順に従ってGIMICのファームウェア更新、ソフトウェアの用意を行って下さい。~

■更新履歴~
2011/10/29 ファームウェアアップロード~
2011/10/30 OPNA対応ファームウェアに更新(演奏の遅延が改善)~
2011/11/03 OPM対応ファームウェアに更新(OPN3L/OPNAモジュールにも対応しています)~
2011/11/03 [[私家版ねこープロジェクトII:http://www.vesta.dti.ne.jp/~tsato/soft_s98v3.html#np2]]でGIMICのUSB制御に対応して頂きました~
2011/11/19 ファームウェアを更新、[[c86ctl2>#id748593]]を追加~
2011/11/20 [[c86ctl2>#id748593]]を更新~
2011/12/18 nue氏作の[[gimic_pcidebug>#tce48c27]]の紹介を追加~

#contents

** ファームウェア更新 [#ne8ea8b6]
GIMICをUSB制御デモ専用ファームウェアに更新して下さい。~
ファームを更新したらスイッチを戻して&color(red){''中央にあるUSBコネクタ''};につなぎ替えて下さい。GIMICが''USBオーディオデバイス''として認識されます。~

USB制御デモ専用ファームウェア:&ref(gimic_usb4.zip);~

*** WindowsXPでの認識 [#n79f543a]
OSがWindowsXPの場合は以下のように認識されます。~

&ref(x_usb1.jpg);~
&ref(x_usb2.jpg);~

コントロールパネルの''サウンドとオーディオ デバイス''のプロパティを開き、''MIDI音楽の再生''に&color(red){''Microsoft GS Wavetable SW Synth''};を選択して下さい。~

&ref(x_usb3.jpg);~

*** WindowsVista/7での認識 [#i8cdc726]
OSがWindowsVista/7の場合は以下のように認識されます(画像は7の場合)~
WindowsVista/7ではMIDIマッパーの設定は特に必要ありません(逆にフリーソフトなどでMIDIマッパーにGIMICを選択しないで下さい)~

&ref(7_usb1.jpg);~
&ref(7_usb2.jpg);~

** PCからGIMICを制御する方法 [#p6f038fd]
2011/12/18 現在、[[c86ctl>#id748593]]と[[pcidebug>#tce48c27]]を利用する方法があります。~
両者共に全てのモジュールに対応していますが、c86ctlは対応ソフトの関係でOPMモジュールの制御ができません。~
逆にpcidebugの方はhoot側の問題でOPNAのADPCMデータ転送が上手くできないようです。~

*** c86ctlでのGIMIC制御 [#id748593]
c86ctlでのGIMIC制御には[[hoot:http://dmpsoft.s17.xrea.com/hoot/]]を使います。~

①[[hootのサイト:http://dmpsoft.s17.xrea.com/hoot/]]から2011/05/15版(もしくはそれ以降)をダウンロードして適当なフォルダに解凍して下さい。~
②hootはVC2005のランタイムを必要とするので[[これ:http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=ja]]と[[これ:http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=766A6AF7-EC73-40FF-B072-9112BAB119C2&displaylang=ja]]と[[これ:http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=ae2e1a40-7b45-4fe9-a20f-2ed2923aca62&displaylang=ja]]のx86版を全てインストールし、WindowsUpdateを行って最新の状態にして下さい。~
 (OSが64bit版の場合でもx86版をインストールして下さい)~

③以下のc86ctlをダウンロードし、先ほどのhootのフォルダに''c86ctl.dllとc86ctl.ini''をコピーして下さい。~

&ref(hoot1.jpg);~

MIDI制御版(2011/10/29):&ref(c86ctl.zip);~
HID制御版 (2011/11/20):&ref(c86ctl2.zip);~

&color(red){※c86ctl2(HID制御板)利用時の注意※};~
-c86ctl2(HID制御板)を利用する場合、GIMICは必ずPCのUSBポートに直結して下さい。
-USBハブを経由すると演奏開始時に音色化けが発生する可能性があります(TLの値が化けて大きな音量が出ることがあります)
-PCのUSBポートに直結していても同じUSBルート配下に他のデバイスが接続されていると同様の現象が発生する可能性があります。
-c86ctl2.zip利用時にhootが突然終了したり、hootが終了出来なくなる場合があります(タスクマネージャからhootのプロセスを強制終了してください)

④''hoot.ini''をメモ帳などで開き、[config]セクションの先頭の方にある''sampling_rate''の値を''55466''に、''buffer''の値を''8''に変更し、~
 ''time_slice=16''と''c86ctl_enable=1''を追加して下さい。~
 またhootのMIDI出力先が''Microsoft GS~''になるように''output_midi_device''の値を変更して下さい。[[MIDIデバイス番号はこちらで確認して下さい>#b2909ec8]]。~

>[config]~
sampling_rate=&color(red){55466};~
buffer=&color(red){8};~
&color(red){time_slice=16};~
&color(red){c86ctl_enable=1};~
output_midi_device=&color(red){0}; ←この数値は環境によって異なります~

⑤''c86ctl.ini''をメモ帳などで開き、セクションの先頭の方にあるmidideviceの値が''USB オーディオ デバイス''~
 (WindowsVista/7では''G.I.M.I.C. MIDI Interface'')になるように変更して下さい。[[MIDIデバイス番号はこちらで確認して下さい>#b2909ec8]]。~

>mididevice=&color(red){1}; ←この数値は環境によって異なります~

※c86ctl2(HID制御版)ではMIDIデバイス番号を指定する必要は本来ありませんが、MIDI制御版dllと入れ替えて使うことを想定してiniに記述を残しています。~

⑥以上で設定は完了なので''hoot.exe''を起動してOPNもしくはOPNAの曲を再生してみて下さい。上手く再生できない場合はMIDIデバイス番号があっているか再確認してみて下さい。~

&ref(hoot2.jpg);

*** gimic_pcidebugでのGIMIC制御 [#tce48c27]
[[USB-NUCO:http://sites.google.com/site/usbnuco/]]の作者であるnue氏がgimic_pcidebug.dllを公開されたので紹介します。~
このdllはROMEOのpcidebugを偽装するc86ctlラッパーで、ROMEO対応ソフトからGIMICを制御することができます。~
またオリジナルのc86ctlから軽量化が行われており、CPU負荷及び演奏遅延が大幅に改善されています。~

&color(red){※注意事項※};~
現在のUSB制御ファームウェアはテスト版として公開しております。~
上手く動作しないからと言って&color(red){nue氏にサポートを要求することは避けて頂けるようお願い致します。};~

①[[nue氏のサイト:http://nue.dip.jp/~nue/wiki/index.php]]のその他→Downloadから''gimic_pcidebug.zip''をDLし、''gimic_pcidebug.dll''を''pcidebug.dll''にリネーム、~
 ''pcidebug.ini''と共にROMEO対応ソフトと同じフォルダにコピーしてください。例としてhootの場合を説明します。~

②''pcidebug.ini''をメモ帳などで開き、環境に応じた設定を記入してください。~

>[GIMIC]~
if=1~
;GIMICへのアクセス方法を指定~
;0:HID(c86ctl2相当のはず)~
;1:MIDI(c86ctl相当のはず)~

1が従来で言うc86ctl(MIDI制御)、0がc86ctl2(HID制御)になります。~
従来のc86ctl(MIDI制御)では演奏にモタりが出ていましたが、nue氏版ではどちらも安定して演奏できることを確認しています。~
(HID制御の際にGIMICをUSBハブに接続するとデータ転送に乱れが出る問題はc86ctl2同様です)~

>mididevice=1~
;GIMICのMIDIデバイスを指定~
;if=1とした場合は設定すること~

c86ctl同様にGIMICのMIDIデバイス番号を記入します。[[MIDIデバイス番号はこちらで確認して下さい>#b2909ec8]]。~

>module=2~
;接続しているモジュールを指定~
;0:OPN3-L~
;1:OPNA~
;2:OPM~

接続しているモジュールと異なる音源の曲を再生した場合にGIMICへデータ転送を行いません。~
モジュールを差し替えたら音が出なくなったという場合はこの設定を見直してください。~

>buffersize=500~
;内部リングバッファのバッファサイズを指定~
;delaymsを大きくする場合にはバッファ多めにすること~

>delayms=40~
;発音遅延をms単位で指定~

''GIMIC側の発音を遅延''させます。pcidebug経由でhootを使うとFM/SSGパートがマスクされADPCM/PCMのみが発音されます。~
GIMICとPCの音声をミックスさせることで実機相当の演奏を実現することが可能になります。~
その際、PC側のADPCM/PCMよりGIMICの方が先に発音されてしまうので同期を取る為にこのオプションがあります。~
''delayms''の値を増やす場合は上述の通り、''buffersize''も大きくしてください。~
この数値はPC毎に異なってくると思いますので各自で調整を行って最適な値を自力で見つけてください。~

④''hoot.ini''をメモ帳などで開き、[config]セクションの先頭の方にある''sampling_rate''の値をOPNA/OPN3Lモジュールの場合は''55466''、~
 OPMモジュールの場合は''62500''に、''buffer''の値を''8''に変更し、''time_slice=16''を追加して下さい。~
 またhootのMIDI出力先が''Microsoft GS~''になるように''output_midi_device''の値を変更して下さい。[[MIDIデバイス番号はこちらで確認して下さい>#b2909ec8]]。~

>[config]~
sampling_rate=&color(red){55466}; ←OPNA/OPN3Lモジュールの場合~
sampling_rate=&color(red){62500}; ←OPMモジュールの場合~
buffer=&color(red){8};~
&color(red){time_slice=16};~
output_midi_device=&color(red){0}; ←この数値は環境によって異なります~
~
lpf=&color(red){0}; ←hoot側のADPCM/PCM出力をクリアに聞きたい場合はLPFをオフにした方が良いです。~
romeo_ym2608_gain_fm=&color(red){0}; ←標準で''3''が設定されているので''0''にします。~
romeo_ym2608_gain_rhythm=&color(red){0}; ←標準で''1''が設定されているので''0''にします。~

※従来の環境を使い回す場合は''c86ctl_enable=1''をコメントアウトするか、''c86ctl_enable=0''に書き換えて下さい。~
 またOPNAとOPMモジュールで''sampling_rate''の値が異なってくるので注意してください。~

⑤以上で設定は完了なので''hoot.exe''を起動して接続したモジュールに合う曲を再生してみて下さい。~
 上手く再生できない場合はMIDIデバイス番号があっているか再確認してみて下さい。~

※c86ctlとpcidebugを切り替えて使いたい場合、hootフォルダにpcidebugがあると優先的に使われます。~
 c86ctlを使いたい場合は''pcidebug.dll''のファイル名を''pcidebug._dll''などにリネームして対応して下さい。~

** MIDIデバイスの確認 [#b2909ec8]
GIMICをMIDI制御する場合は''c86ctl.ini''もしくは''pcidebug.ini''にMIDIデバイス番号を記載する必要があります。~
&ref(midienum.zip);をダウンロードして''MIDIEnum.exe''を実行して下さい。以下のように表示されます。~

&ref(x_device.jpg);&ref(7_device.jpg);~

左がWindowsXPのMIDIデバイスのリスト、右がWindowsVista/7でのリストです。~
ここでプロダクト名が''Microsoft GS~''のメーカーIDの上にある''[]''内の数値と、''USB オーディオ デバイス''~
(WindowsVista/7では''G.I.M.I.C. MIDI Interface'')のメーカーIDの上にある''[]''内の数値をメモって下さい。~

WindowsXPで複数のMIDIデバイスを接続している場合はどれがGIMICなのか区別が付かないかもしれません。~
その場合はメーカーIDとプロダクトIDの数値が65535の物を探してください。~

''Microsoft GS~''のMIDIデバイス番号を''hoot.ini''の''output_midi_device=''に、~
''USB オーディオ デバイス''の値を''c86ctl.ini''もしくは''pcidebug.ini''の''mididevice=''に記載してください。~

** 注意事項 [#ac4d998b]
■GIMIC側の注意事項
-USB制御は開発中の為、演奏に遅延が生じることがあります。~
現在MIDI制御が動作しない、逆にHID制御が動作しないなどの報告を確認しています(両方できないという報告は今の所ありません)~
-データ転送量の多い楽曲で演奏が停止する場合があります(SSGPCMなど)
-OPN3Lモジュールを使う場合はADPCMは再生できません。
-OPNAモジュールを使う場合はADPCMが再生可能です。
-ADPCMデータの転送には若干時間がかかりますので注意して下さい。~
データ転送時はOPNAモジュールのLED1がオレンジ色にハッキリと点灯します。LED1が点滅状態(若干暗くなります)になるまでhootで曲を再生しないで下さい。~
hoot側はデータ転送を終えて操作できるようになりますが、GIMIC側ではDRAMにデータを書き込んでいますので書き込みが終わらない内に曲を再生すると正しく演奏開始できない場合があります。~
-OPNA用のハードウェアLFOやパンを使う曲を再生した後にOPN用の曲を再生すると、ハードウェアLFOやパンが初期化されない場合があるので注意して下さい。
-GIMICはUSB-MIDIデバイスとして認識しますが現時点ではMIDI音源として使うことはできませんのでご注意下さい。~
-OPM/OPNA/OPN3L+SPDIF基板の音源チップへの供給クロックは現状固定になっています。~
よって供給クロックがX68k、PC88/98系と異なるハードの曲を演奏した場合は音程が狂いますのでご注意ください。~
-OPNAモジュールのFM/SSG音量バランスは現状固定になっています(86B/OPN3L相当)

■hoot側の注意事項
-c86ctl経由の場合はhootからもFM/SSGの音声が出力されますので、PC側の音声をミュートして対応して下さい。~
pcidebug経由の場合はADPCM/PCMパートのみがPC側から発音されます。~
-c86ctl経由の場合はhootでのパートマスクはGIMIC側に反映されません。~
pcidebug経由の場合はパートマスクが可能ですが現状のhootではOPMのFM1ch目とOPNAのリズム音源部はパートマスクが上手くできないようです。~
-PC-8801系でADPCMを使うタイトルはhoot内部で仮想のADPCMメモリ空間へ直接データの書き込みを行う為、GIMIC側にADPCMデータの出力が行われませんので注意して下さい。~
pcidebug経由の場合は''hoot.ini''の''usbfm''の値を3にすることで仮想のADPCMメモリ空間の内容をGIMICに転送しますが現状のhootでは上手く動作しないようです。

もしGIMICがフリーズした場合はUSBケーブルを抜き差ししてhootを再起動して下さい。OSを巻き込むフリーズが無いとは言い切れませんので自己責任で利用して貰えるようにお願いします。~

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS