More ... | 編集履歴:過去のバージョン2008/02/10 19:45:53 JST時点でのMusicVillage:MIDIループ再生の内容* MusicVillageとは RPGツクール2000などに準拠したMIDIを、継ぎ目なしでループ再生できるDLLです。 * 配布元 http://sky_dreamer.at.infoseek.co.jp/softwares/mv.htm * 最新のバージョン 2.6(2008/01/14現在) * 注意点 float型変数を利用するので、変換モジュールを利用する必要がある。下記URLを参考。 http://sprocket.babyblue.jp/html/hsp_koneta3.htm#tofloat * ヘッダファイル // MVillage.as #uselib "MVillage.dll" ;#func MusicVillageInitialize "MusicVillageInitialize" #func MVOpenDevice "MVOpenDevice" int, int #func MVCloseDevice "MVCloseDevice" #func MVLoadMusic "MVLoadMusic" sptr #func MVPlayMusic "MVPlayMusic" #func MVStopMusic "MVStopMusic" #func MVWaitMusic "MVWaitMusic" #func MVRestartMusic "MVRestartMusic" #func MVGetStatus "MVGetStatus" int #func MVSendSysEx "MVSendSysEx" int, int #func MVSeek "MVSeek" int #func MVOpenSound "MVOpenSound" int, int, sptr #func MVCloseSound "MVCloseSound" int #func MVPlaySound "MVPlaySound" int, int #func MVStopSound "MVStopSound" int #func MVWaitSound "MVWaitSound" int #func MVRestartSound "MVRestartSound" int #func MVSetCaps "MVSetCaps" int, int #func MVGetCaps "MVGetCaps" int, int #func MVGetVersion "MVGetVersion" int #func MVGetIcon "MVGetIcon" int #func MVGetErrorString "MVGetErrorString" int, int, int #func MVChooseDeviceDialog "MVChooseDeviceDialog" int // MusicVillage constant values #define MV_SYSEX_GM 0 // Reset by GM system #define MV_SYSEX_GS -1 // Reset by GS system #define MV_SYSEX_XG -2 // Reset by XG system #define MV_NO_SINGLE -1 // Not use single instrument #define MV_MAX_STRING 0x80 #define MV_INVALID_DEVICE_ID -2 #define MV_MIN_TEMPO 0.25 #define MV_MAX_TEMPO 2.00 #define MV_MIN_INSTRUMENT 0 #define MV_MAX_INSTRUMENT 127 #define MV_MIN_FADE_TIME 1000 #define MV_MAX_FADE_TIME 10000 #define MV_DEFAULT_TIMEOUT 1000 #define MV_MIN_TIMEOUT 100 #define MV_MAX_TIMEOUT 1000 #define MV_MIN_VOLUME 0 #define MV_MAX_VOLUME 100 // Constant error values - there will be returned by the function calling. #define MVERR_NOERROR 0 #define MVERR_SUCCESS MVERR_NOERROR #define MVERR_RETURNOK MVERR_NOERROR #define MVERR_LACKMEMORY 10 #define MVERR_SYSTEMERROR 11 #define MVERR_INITIALIZE 12 #define MVERR_RETURNCANCEL 13 #define MVERR_LOAD_STRING 14 #define MVERR_FAILED_SET_TIMER 19 #define MVERR_FILE_OPEN 20 #define MVERR_FILE_INVALID_FORMAT 21 #define MVERR_FILE_NOT_PCM 22 #define MVERR_UNSUPPORTED_FORMAT 29 #define MVERR_DEVICE_OPENED 30 #define MVERR_DEVICE_CLOSED 31 #define MVERR_DEVICE_NO_ENTRY 32 #define MVERR_DEVICE_INVALID_NUMBER 33 #define MVERR_DEVICE_CANNOT_OPEN 34 #define MVERR_WAVE_DEVICE_NO_ENTRY 35 #define MVERR_NOW_PLAYING 40 #define MVERR_NOT_PLAYING 41 #define MVERR_TIMEOUT 42 #define MVERR_INVALID_COMMAND 43 #define MVERR_INVALID_STATE 44 #define MVERR_INVALID_HANDLE 45 #define MVERR_INVALID_PARAMETER 46 #define MVERR_INVALID_CAPS 47 #define MVERR_NOBUFFERONMEMORY 48 #define MVERR_INVALID_CALL_INTERVAL 49 #define MVERR_NOW_FADINGOUT 50 #define MVERR_NOW_FADINGIN 51 #define MVERR_FILE_TOO_LARGE 52 // Types of MusicVillage capabilities #define MVCAPS_ACTIONFLAG 0 // For more information, see MVAF_* #define MVCAPS_CALLBACKPTR 1 #define MVCAPS_USERPARAM 2 #define MVCAPS_TEMPO 3 #define MVCAPS_FADEOUT 4 // Set fade out, and Get command returns true or false of being fade out. #define MVCAPS_FADEIN 5 // Set fade in, and Get command returns true or false of being fade in. #define MVCAPS_SINGLE 6 #define MVCAPS_TIMEOUT 7 #define MVCAPS_SHORTMSG 8 // Send a short message to device through this function, and get a last message sent. #define MVCAPS_VOLUME 9 // Set and get muster volume // Callback messages / sent in dwMsg params // Params #define MVMSG_DEVICE_OPENERROR 0xFF // (LONG)DeviceNumber #define MVMSG_DEVICE_OPEN 0x00 // (LONG)DeviceNumber #define MVMSG_DEVICE_CLOSE 0x01 // NULL #define MVMSG_LOAD_FILE 0x02 // (LPCSTR)lpFileName #define MVMSG_PLAY 0x03 // NULL #define MVMSG_STOP 0x04 // NULL #define MVMSG_WAIT 0x05 // NULL #define MVMSG_RESTART 0x06 // (DWORD)Restart Point #define MVMSG_LOOP 0x07 // NULL #define MVMSG_FADEOUT 0x08 // NULL #define MVMSG_FADEIN 0x09 // NULL // Constant values of state in MusicVillage #define MVS_EMPTY -1 // Device has not opened. #define MVS_NOMSG 0 // Device has opened, but music data has not read. #define MVS_PLAYING 1 #define MVS_WAIT 2 #define MVS_STOP 3 // Flags of MVCAPS_ACTIONFLAG #define MVAF_GMRESET 0x0001 // -------- #define MVAF_GSRESET 0x0002 // Cannot exclusive. #define MVAF_XGRESET 0x0004 // -------- #define MVAF_NOSENDSYSEX 0x0010 // Flags for CDDLG struct in dwFlags member // NOTE: Under 7 bits are masks to access to the member #define CDDF_HWNDPARENT 0x0001 #define CDDF_DEVICENAME 0x0002 #define CDDF_HOOKPROC 0x0004 // NOTE: Upper 8 bits are flags of actions #define CDDF_RESERVED 0x0100 #define CDDF_INITIALIZE_DEVICE 0x0200 #define CDDF_HIDEMIDIMAPPER 0x0400 #define CDDF_ACTIVEUPDATE 0x0800 // Play back flags for Wave sound. #define PBO_PLAYBACK 0x80000000 // This flag is used in MusicVillage. A Client application don't have to use this. #define PBO_USE_LOOP_BEGIN 0x00000001 // Enable the chunk 'LPBn' #define PBO_USE_LOOP_END 0x00000002 // Enable the chunk 'LBEd' #define PBO_LOOP 0x00000004 // Sound is repeated when the playing finishes. // macro #define ctype DLLVERSION_MAJOR(%1) (((%1) & 0xFF000000) >> 24) #define ctype DLLVERSION_MINOR(%1) (((%1) & 0x00FF0000) >> 16) #define ctype DLLVERSION_BUILD(%1) (((%1) & 0x0000FFFF) >> 0) |