dls2.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*
  2.  
  3.   dls2.h
  4.  
  5.   Description:
  6.  
  7.   Interface defines and structures for the DLS2 extensions of DLS.
  8.  
  9.  
  10.      Written by Microsoft 1998.  Released for public use.
  11.  
  12. */
  13.  
  14. #ifndef _INC_DLS2
  15. #define _INC_DLS2
  16.  
  17. /*
  18.      FOURCC's used in the DLS2 file, in addition to DLS1 chunks
  19. */
  20.  
  21. #define FOURCC_RGN2  mmioFOURCC('r','g','n','2')
  22. #define FOURCC_LAR2  mmioFOURCC('l','a','r','2')
  23. #define FOURCC_ART2  mmioFOURCC('a','r','t','2')
  24. #define FOURCC_CDL   mmioFOURCC('c','d','l',' ')
  25. #define FOURCC_DLID  mmioFOURCC('d','l','i','d')
  26.  
  27. /*
  28.      Articulation connection graph definitions. These are in addition to
  29.      the definitions in the DLS1 header.
  30. */
  31.  
  32. /* Generic Sources (in addition to DLS1 sources. */
  33. #define CONN_SRC_POLYPRESSURE 0x0007 /* Polyphonic Pressure */
  34. #define CONN_SRC_CHANNELPRESSURE 0x0008 /* Channel Pressure */
  35. #define CONN_SRC_VIBRATO 0x0009 /* Vibrato LFO */
  36. #define CONN_SRC_MONOPRESSURE        0x000a  /* MIDI Mono pressure */
  37.  
  38.  
  39. /* Midi Controllers */
  40. #define CONN_SRC_CC91 0x00db /* Reverb Send */
  41. #define CONN_SRC_CC93 0x00dd /* Chorus Send */
  42.  
  43.  
  44. /* Generic Destinations */
  45. #define CONN_DST_GAIN 0x0001 /* Same as CONN_DST_ ATTENUATION, but more appropriate terminology. */
  46. #define CONN_DST_KEYNUMBER 0x0005  /* Key Number Generator */
  47.  
  48. /* Audio Channel Output Destinations */
  49. #define CONN_DST_LEFT 0x0010 /* Left Channel Send */
  50. #define CONN_DST_RIGHT 0x0011 /* Right Channel Send */
  51. #define CONN_DST_CENTER 0x0012 /* Center Channel Send */
  52. #define CONN_DST_LEFTREAR 0x0013 /* Left Rear Channel Send */
  53. #define CONN_DST_RIGHTREAR 0x0014 /* Right Rear Channel Send */
  54. #define CONN_DST_LFE_CHANNEL 0x0015 /* LFE Channel Send */
  55. #define CONN_DST_CHORUS 0x0080 /* Chorus Send */
  56. #define CONN_DST_REVERB 0x0081 /* Reverb Send */
  57.  
  58. /* Vibrato LFO Destinations */
  59. #define CONN_DST_VIB_FREQUENCY 0x0114 /* Vibrato Frequency */
  60. #define CONN_DST_VIB_STARTDELAY 0x0115 /* Vibrato Start Delay */
  61.  
  62. /* EG1 Destinations */
  63. #define CONN_DST_EG1_DELAYTIME 0x020B /* EG1 Delay Time */
  64. #define CONN_DST_EG1_HOLDTIME 0x020C /* EG1 Hold Time */
  65. #define CONN_DST_EG1_SHUTDOWNTIME 0x020D /* EG1 Shutdown Time */
  66.  
  67.  
  68. /* EG2 Destinations */
  69. #define CONN_DST_EG2_DELAYTIME 0x030F /* EG2 Delay Time */
  70. #define CONN_DST_EG2_HOLDTIME 0x0310 /* EG2 Hold Time */
  71.  
  72.  
  73. /* Filter Destinations */
  74. #define CONN_DST_FILTER_CUTOFF 0x0500 /* Filter Cutoff Frequency */
  75. #define CONN_DST_FILTER_Q 0x0501 /* Filter Resonance */
  76.  
  77.  
  78. /* Transforms */
  79. #define CONN_TRN_CONVEX 0x0002 /* Convex Transform */
  80. #define CONN_TRN_SWITCH 0x0003 /* Switch Transform */
  81.  
  82.  
  83. /* Conditional chunk operators */
  84.  #define DLS_CDL_AND 0x0001 /* X = X & Y */
  85.  #define DLS_CDL_OR 0x0002 /* X = X | Y */
  86.  #define DLS_CDL_XOR 0x0003 /* X = X ^ Y */
  87.  #define DLS_CDL_ADD 0x0004 /* X = X + Y */
  88.  #define DLS_CDL_SUBTRACT 0x0005 /* X = X - Y */
  89.  #define DLS_CDL_MULTIPLY 0x0006 /* X = X * Y */
  90.  #define DLS_CDL_DIVIDE 0x0007 /* X = X / Y */
  91.  #define DLS_CDL_LOGICAL_AND 0x0008 /* X = X && Y */
  92.  #define DLS_CDL_LOGICAL_OR 0x0009 /* X = X || Y */
  93.  #define DLS_CDL_LT 0x000A /* X = (X < Y) */
  94.  #define DLS_CDL_LE 0x000B /* X = (X <= Y) */
  95.  #define DLS_CDL_GT 0x000C /* X = (X > Y) */
  96.  #define DLS_CDL_GE 0x000D /* X = (X >= Y) */
  97.  #define DLS_CDL_EQ 0x000E /* X = (X == Y) */
  98.  #define DLS_CDL_NOT 0x000F /* X = !X */
  99.  #define DLS_CDL_CONST 0x0010 /* 32-bit constant */
  100.  #define DLS_CDL_QUERY 0x0011 /* 32-bit value returned from query */
  101.  #define DLS_CDL_QUERYSUPPORTED 0x0012 /* Test to see if query is supported by synth */
  102.  
  103. /*
  104.   Loop and release
  105. */
  106. #define WLOOP_TYPE_RELEASE 1
  107. /*
  108.   WaveLink chunk <wlnk-ck>
  109. */
  110. #define F_WAVELINK_MULTICHANNEL 0x0002
  111. /*
  112.   DLSID queries for <cdl-ck>
  113. */
  114. DEFINE_GUID(DLSID_GMInHardware, 0x178f2f24, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12);
  115. DEFINE_GUID(DLSID_GSInHardware, 0x178f2f25, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12);
  116. DEFINE_GUID(DLSID_XGInHardware, 0x178f2f26, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12);
  117. DEFINE_GUID(DLSID_SupportsDLS1, 0x178f2f27, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12);
  118. DEFINE_GUID(DLSID_SupportsDLS2, 0xf14599e5, 0x4689, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6);
  119. DEFINE_GUID(DLSID_SampleMemorySize, 0x178f2f28, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12);
  120. DEFINE_GUID(DLSID_ManufacturersID, 0xb03e1181, 0x8095, 0x11d2, 0xa1, 0xef, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8);
  121. DEFINE_GUID(DLSID_ProductID, 0xb03e1182, 0x8095, 0x11d2, 0xa1, 0xef, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8);
  122. DEFINE_GUID(DLSID_SamplePlaybackRate, 0x2a91f713, 0xa4bf, 0x11d2, 0xbb, 0xdf, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8);
  123. #endif /* _INC_DLS2 */