home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / taropyon / he386 / ccisrc / gs_cc.c < prev    next >
Text File  |  1995-06-20  |  14KB  |  615 lines

  1. /*************************************************************************
  2. *    GS controller
  3. *************************************************************************/
  4.  
  5. /*************************************************************************
  6. *    Modulation control
  7. *-------------------------------------------------------------------------
  8. *    (<part>,
  9. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  10. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  11. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  12. *************************************************************************/
  13.  
  14. int        exGs_mod( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  15. {
  16.     int        part, v;
  17.     char    dat[16];
  18.     int        ret;
  19.  
  20.     if ( argc != 12 )
  21.     {
  22. _PARA_ERR:
  23.         MM_setErrMsg(sqr,"[GS] 'MOD control' error!");
  24.         return(ERR);
  25.     }
  26.  
  27.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  28.         goto _PARA_ERR;
  29.  
  30.     /* PITCH */
  31.     v = atoi(argv[1]);
  32.     if ( v < -24 || v > 24 )
  33.         goto _PARA_ERR;
  34.     dat[0] = v + 0x40;
  35.  
  36.     /* TVF CUTOFF */
  37.     v = atoi(argv[2]);
  38.     if ( v < -64 || v > 63 )
  39.         goto _PARA_ERR;
  40.     dat[1] = v + 0x40;
  41.  
  42.     /* AMPLITUDE */
  43.     v = atoi(argv[3]);
  44.     if ( v < -64 || v > 63 )
  45.         goto _PARA_ERR;
  46.     dat[2] = v + 0x40;
  47.  
  48.     /* LFO1 RATE */
  49.     v = atoi(argv[4]);
  50.     if ( v < -64 || v > 63 )
  51.         goto _PARA_ERR;
  52.     dat[3] = v + 0x40;
  53.  
  54.     /* LFO1 PITCH DEPTH */
  55.     v = atoi(argv[5]);
  56.     if ( v < 0 || v > 127 )
  57.         goto _PARA_ERR;
  58.     dat[4] = v;
  59.  
  60.     /* LFO1 TVF DEPTH */
  61.     v = atoi(argv[6]);
  62.     if ( v < 0 || v > 127 )
  63.         goto _PARA_ERR;
  64.     dat[5] = v;
  65.  
  66.     /* LFO1 TVA DEPTH */
  67.     v = atoi(argv[7]);
  68.     if ( v < 0 || v > 127 )
  69.         goto _PARA_ERR;
  70.     dat[6] = v;
  71.  
  72.     /* LFO2 RATE */
  73.     v = atoi(argv[8]);
  74.     if ( v < -64 || v > 63 )
  75.         goto _PARA_ERR;
  76.     dat[7] = v + 0x40;
  77.  
  78.     /* LFO2 PITCH DEPTH */
  79.     v = atoi(argv[9]);
  80.     if ( v < 0 || v > 127 )
  81.         goto _PARA_ERR;
  82.     dat[8] = v;
  83.  
  84.     /* LFO2 TVF DEPTH */
  85.     v = atoi(argv[10]);
  86.     if ( v < 0 || v > 127 )
  87.         goto _PARA_ERR;
  88.     dat[9] = v;
  89.  
  90.     /* LFO2 TVA DEPTH */
  91.     v = atoi(argv[11]);
  92.     if ( v < 0 || v > 127 )
  93.         goto _PARA_ERR;
  94.     dat[10] = v;
  95.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402000), 11, dat );
  96. }
  97.  
  98. /*************************************************************************
  99. *    Bend control
  100. *-------------------------------------------------------------------------
  101. *    (<part>,
  102. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  103. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  104. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  105. *************************************************************************/
  106.  
  107. int        exGs_bend( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  108. {
  109.     int        part, v;
  110.     char    dat[16];
  111.     int        ret;
  112.  
  113.     if ( argc != 12 )
  114.     {
  115. _PARA_ERR:
  116.         MM_setErrMsg(sqr,"[GS] 'Pitch control' error!");
  117.         return(ERR);
  118.     }
  119.  
  120.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  121.         goto _PARA_ERR;
  122.  
  123.     /* PITCH */
  124.     v = atoi(argv[1]);
  125.     if ( v < 0 || v > 24 )
  126.         goto _PARA_ERR;
  127.     dat[0] = v + 0x40;
  128.  
  129.     /* TVF CUTOFF */
  130.     v = atoi(argv[2]);
  131.     if ( v < -64 || v > 63 )
  132.         goto _PARA_ERR;
  133.     dat[1] = v + 0x40;
  134.  
  135.     /* AMPLITUDE */
  136.     v = atoi(argv[3]);
  137.     if ( v < -64 || v > 63 )
  138.         goto _PARA_ERR;
  139.     dat[2] = v + 0x40;
  140.  
  141.     /* LFO1 RATE */
  142.     v = atoi(argv[4]);
  143.     if ( v < -64 || v > 63 )
  144.         goto _PARA_ERR;
  145.     dat[3] = v + 0x40;
  146.  
  147.     /* LFO1 PITCH DEPTH */
  148.     v = atoi(argv[5]);
  149.     if ( v < 0 || v > 127 )
  150.         goto _PARA_ERR;
  151.     dat[4] = v;
  152.  
  153.     /* LFO1 TVF DEPTH */
  154.     v = atoi(argv[6]);
  155.     if ( v < 0 || v > 127 )
  156.         goto _PARA_ERR;
  157.     dat[5] = v;
  158.  
  159.     /* LFO1 TVA DEPTH */
  160.     v = atoi(argv[7]);
  161.     if ( v < 0 || v > 127 )
  162.         goto _PARA_ERR;
  163.     dat[6] = v;
  164.  
  165.     /* LFO2 RATE */
  166.     v = atoi(argv[8]);
  167.     if ( v < -64 || v > 63 )
  168.         goto _PARA_ERR;
  169.     dat[7] = v + 0x40;
  170.  
  171.     /* LFO2 PITCH DEPTH */
  172.     v = atoi(argv[9]);
  173.     if ( v < 0 || v > 127 )
  174.         goto _PARA_ERR;
  175.     dat[8] = v;
  176.  
  177.     /* LFO2 TVF DEPTH */
  178.     v = atoi(argv[10]);
  179.     if ( v < 0 || v > 127 )
  180.         goto _PARA_ERR;
  181.     dat[9] = v;
  182.  
  183.     /* LFO2 TVA DEPTH */
  184.     v = atoi(argv[11]);
  185.     if ( v < 0 || v > 127 )
  186.         goto _PARA_ERR;
  187.     dat[10] = v;
  188.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402010), 11, dat );
  189. }
  190.  
  191. /*************************************************************************
  192. *    CAf control
  193. *-------------------------------------------------------------------------
  194. *    (<part>,
  195. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  196. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  197. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  198. *************************************************************************/
  199.  
  200. int        exGs_caf( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  201. {
  202.     int        part, v;
  203.     char    dat[16];
  204.     int        ret;
  205.  
  206.     if ( argc != 12 )
  207.     {
  208. _PARA_ERR:
  209.         MM_setErrMsg(sqr,"[GS] 'CAf control' error!");
  210.         return(ERR);
  211.     }
  212.  
  213.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  214.         goto _PARA_ERR;
  215.  
  216.     /* PITCH */
  217.     v = atoi(argv[1]);
  218.     if ( v < -24 || v > 24 )
  219.         goto _PARA_ERR;
  220.     dat[0] = v + 0x40;
  221.  
  222.     /* TVF CUTOFF */
  223.     v = atoi(argv[2]);
  224.     if ( v < -64 || v > 63 )
  225.         goto _PARA_ERR;
  226.     dat[1] = v + 0x40;
  227.  
  228.     /* AMPLITUDE */
  229.     v = atoi(argv[3]);
  230.     if ( v < -64 || v > 63 )
  231.         goto _PARA_ERR;
  232.     dat[2] = v + 0x40;
  233.  
  234.     /* LFO1 RATE */
  235.     v = atoi(argv[4]);
  236.     if ( v < -64 || v > 63 )
  237.         goto _PARA_ERR;
  238.     dat[3] = v + 0x40;
  239.  
  240.     /* LFO1 PITCH DEPTH */
  241.     v = atoi(argv[5]);
  242.     if ( v < 0 || v > 127 )
  243.         goto _PARA_ERR;
  244.     dat[4] = v;
  245.  
  246.     /* LFO1 TVF DEPTH */
  247.     v = atoi(argv[6]);
  248.     if ( v < 0 || v > 127 )
  249.         goto _PARA_ERR;
  250.     dat[5] = v;
  251.  
  252.     /* LFO1 TVA DEPTH */
  253.     v = atoi(argv[7]);
  254.     if ( v < 0 || v > 127 )
  255.         goto _PARA_ERR;
  256.     dat[6] = v;
  257.  
  258.     /* LFO2 RATE */
  259.     v = atoi(argv[8]);
  260.     if ( v < -64 || v > 63 )
  261.         goto _PARA_ERR;
  262.     dat[7] = v + 0x40;
  263.  
  264.     /* LFO2 PITCH DEPTH */
  265.     v = atoi(argv[9]);
  266.     if ( v < 0 || v > 127 )
  267.         goto _PARA_ERR;
  268.     dat[8] = v;
  269.  
  270.     /* LFO2 TVF DEPTH */
  271.     v = atoi(argv[10]);
  272.     if ( v < 0 || v > 127 )
  273.         goto _PARA_ERR;
  274.     dat[9] = v;
  275.  
  276.     /* LFO2 TVA DEPTH */
  277.     v = atoi(argv[11]);
  278.     if ( v < 0 || v > 127 )
  279.         goto _PARA_ERR;
  280.     dat[10] = v;
  281.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402020), 11, dat );
  282. }
  283.  
  284. /*************************************************************************
  285. *    PAf control
  286. *-------------------------------------------------------------------------
  287. *    (<part>,
  288. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  289. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  290. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  291. *************************************************************************/
  292.  
  293. int        exGs_paf( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  294. {
  295.     int        part, v;
  296.     char    dat[16];
  297.     int        ret;
  298.  
  299.     if ( argc != 12 )
  300.     {
  301. _PARA_ERR:
  302.         MM_setErrMsg(sqr,"[GS] 'PAf control' error!");
  303.         return(ERR);
  304.     }
  305.  
  306.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  307.         goto _PARA_ERR;
  308.  
  309.     /* PITCH */
  310.     v = atoi(argv[1]);
  311.     if ( v < -24 || v > 24 )
  312.         goto _PARA_ERR;
  313.     dat[0] = v + 0x40;
  314.  
  315.     /* TVF CUTOFF */
  316.     v = atoi(argv[2]);
  317.     if ( v < -64 || v > 63 )
  318.         goto _PARA_ERR;
  319.     dat[1] = v + 0x40;
  320.  
  321.     /* AMPLITUDE */
  322.     v = atoi(argv[3]);
  323.     if ( v < -64 || v > 63 )
  324.         goto _PARA_ERR;
  325.     dat[2] = v + 0x40;
  326.  
  327.     /* LFO1 RATE */
  328.     v = atoi(argv[4]);
  329.     if ( v < -64 || v > 63 )
  330.         goto _PARA_ERR;
  331.     dat[3] = v + 0x40;
  332.  
  333.     /* LFO1 PITCH DEPTH */
  334.     v = atoi(argv[5]);
  335.     if ( v < 0 || v > 127 )
  336.         goto _PARA_ERR;
  337.     dat[4] = v;
  338.  
  339.     /* LFO1 TVF DEPTH */
  340.     v = atoi(argv[6]);
  341.     if ( v < 0 || v > 127 )
  342.         goto _PARA_ERR;
  343.     dat[5] = v;
  344.  
  345.     /* LFO1 TVA DEPTH */
  346.     v = atoi(argv[7]);
  347.     if ( v < 0 || v > 127 )
  348.         goto _PARA_ERR;
  349.     dat[6] = v;
  350.  
  351.     /* LFO2 RATE */
  352.     v = atoi(argv[8]);
  353.     if ( v < -64 || v > 63 )
  354.         goto _PARA_ERR;
  355.     dat[7] = v + 0x40;
  356.  
  357.     /* LFO2 PITCH DEPTH */
  358.     v = atoi(argv[9]);
  359.     if ( v < 0 || v > 127 )
  360.         goto _PARA_ERR;
  361.     dat[8] = v;
  362.  
  363.     /* LFO2 TVF DEPTH */
  364.     v = atoi(argv[10]);
  365.     if ( v < 0 || v > 127 )
  366.         goto _PARA_ERR;
  367.     dat[9] = v;
  368.  
  369.     /* LFO2 TVA DEPTH */
  370.     v = atoi(argv[11]);
  371.     if ( v < 0 || v > 127 )
  372.         goto _PARA_ERR;
  373.     dat[10] = v;
  374.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402030), 11, dat );
  375. }
  376.  
  377.  
  378. /*************************************************************************
  379. *    CC1 controller number
  380. *-------------------------------------------------------------------------
  381. *    (<part>,<number>)
  382. *************************************************************************/
  383.  
  384. int        exGs_cc1number( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  385. {
  386.     int        i, part;
  387.     char    dat[4];
  388.     int        ret;
  389.  
  390.     if ( argc != 2 )
  391.     {
  392. _PARA_ERR:
  393.         MM_setErrMsg(sqr,"[GS] 'CC1 controller number' error!");
  394.         return(ERR);
  395.     }
  396.  
  397.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  398.         goto _PARA_ERR;
  399.     dat[0] = atoi(argv[1]);
  400.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x40101F), 1, dat );
  401. }
  402.  
  403. /*************************************************************************
  404. *    CC2 controller number
  405. *-------------------------------------------------------------------------
  406. *    (<part>,<number>)
  407. *************************************************************************/
  408.  
  409. int        exGs_cc2number( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  410. {
  411.     int        i, part;
  412.     char    dat[4];
  413.     int        ret;
  414.  
  415.     if ( argc != 2 )
  416.     {
  417. _PARA_ERR:
  418.         MM_setErrMsg(sqr,"[GS] 'CC2 controller number' error!");
  419.         return(ERR);
  420.     }
  421.  
  422.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  423.         goto _PARA_ERR;
  424.     dat[0] = atoi(argv[1]);
  425.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x401020), 1, dat );
  426. }
  427.  
  428.  
  429. /*************************************************************************
  430. *    CC1 control
  431. *-------------------------------------------------------------------------
  432. *    (<part>,
  433. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  434. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  435. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  436. *************************************************************************/
  437.  
  438. int        exGs_cc1control( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  439. {
  440.     int        part, v;
  441.     char    dat[16];
  442.     int        ret;
  443.  
  444.     if ( argc != 12 )
  445.     {
  446. _PARA_ERR:
  447.         MM_setErrMsg(sqr,"[GS] 'CC1 control' error!");
  448.         return(ERR);
  449.     }
  450.  
  451.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  452.         goto _PARA_ERR;
  453.  
  454.     /* PITCH */
  455.     v = atoi(argv[1]);
  456.     if ( v < -24 || v > 24 )
  457.         goto _PARA_ERR;
  458.     dat[0] = v + 0x40;
  459.  
  460.     /* TVF CUTOFF */
  461.     v = atoi(argv[2]);
  462.     if ( v < -64 || v > 63 )
  463.         goto _PARA_ERR;
  464.     dat[1] = v + 0x40;
  465.  
  466.     /* AMPLITUDE */
  467.     v = atoi(argv[3]);
  468.     if ( v < -64 || v > 63 )
  469.         goto _PARA_ERR;
  470.     dat[2] = v + 0x40;
  471.  
  472.     /* LFO1 RATE */
  473.     v = atoi(argv[4]);
  474.     if ( v < -64 || v > 63 )
  475.         goto _PARA_ERR;
  476.     dat[3] = v + 0x40;
  477.  
  478.     /* LFO1 PITCH DEPTH */
  479.     v = atoi(argv[5]);
  480.     if ( v < 0 || v > 127 )
  481.         goto _PARA_ERR;
  482.     dat[4] = v;
  483.  
  484.     /* LFO1 TVF DEPTH */
  485.     v = atoi(argv[6]);
  486.     if ( v < 0 || v > 127 )
  487.         goto _PARA_ERR;
  488.     dat[5] = v;
  489.  
  490.     /* LFO1 TVA DEPTH */
  491.     v = atoi(argv[7]);
  492.     if ( v < 0 || v > 127 )
  493.         goto _PARA_ERR;
  494.     dat[6] = v;
  495.  
  496.     /* LFO2 RATE */
  497.     v = atoi(argv[8]);
  498.     if ( v < -64 || v > 63 )
  499.         goto _PARA_ERR;
  500.     dat[7] = v + 0x40;
  501.  
  502.     /* LFO2 PITCH DEPTH */
  503.     v = atoi(argv[9]);
  504.     if ( v < 0 || v > 127 )
  505.         goto _PARA_ERR;
  506.     dat[8] = v;
  507.  
  508.     /* LFO2 TVF DEPTH */
  509.     v = atoi(argv[10]);
  510.     if ( v < 0 || v > 127 )
  511.         goto _PARA_ERR;
  512.     dat[9] = v;
  513.  
  514.     /* LFO2 TVA DEPTH */
  515.     v = atoi(argv[11]);
  516.     if ( v < 0 || v > 127 )
  517.         goto _PARA_ERR;
  518.     dat[10] = v;
  519.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402040), 11, dat );
  520. }
  521.  
  522. /*************************************************************************
  523. *    CC2 control
  524. *-------------------------------------------------------------------------
  525. *    (<part>,
  526. *     <PITCH>,     <TVF CUTOFF>, <AMPLITUDE>,
  527. *     <LFO1 RATE>, <LFO1 PITCH DEPTH>, <LFO1 TVF DEPTH>, <LFO1 TVA DEPTH>
  528. *     <LFO2 RATE>, <LFO2 PITCH DEPTH>, <LFO2 TVF DEPTH>, <LFO2 TVA DEPTH>
  529. *************************************************************************/
  530.  
  531. int        exGs_cc2control( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  532. {
  533.     int        part, v;
  534.     char    dat[16];
  535.     int        ret;
  536.  
  537.     if ( argc != 12 )
  538.     {
  539. _PARA_ERR:
  540.         MM_setErrMsg(sqr,"[GS] 'CC2 control' error!");
  541.         return(ERR);
  542.     }
  543.  
  544.     if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  545.         goto _PARA_ERR;
  546.  
  547.     /* PITCH */
  548.     v = atoi(argv[1]);
  549.     if ( v < -24 || v > 24 )
  550.         goto _PARA_ERR;
  551.     dat[0] = v + 0x40;
  552.  
  553.     /* TVF CUTOFF */
  554.     v = atoi(argv[2]);
  555.     if ( v < -64 || v > 63 )
  556.         goto _PARA_ERR;
  557.     dat[1] = v + 0x40;
  558.  
  559.     /* AMPLITUDE */
  560.     v = atoi(argv[3]);
  561.     if ( v < -64 || v > 63 )
  562.         goto _PARA_ERR;
  563.     dat[2] = v + 0x40;
  564.  
  565.     /* LFO1 RATE */
  566.     v = atoi(argv[4]);
  567.     if ( v < -64 || v > 63 )
  568.         goto _PARA_ERR;
  569.     dat[3] = v + 0x40;
  570.  
  571.     /* LFO1 PITCH DEPTH */
  572.     v = atoi(argv[5]);
  573.     if ( v < 0 || v > 127 )
  574.         goto _PARA_ERR;
  575.     dat[4] = v;
  576.  
  577.     /* LFO1 TVF DEPTH */
  578.     v = atoi(argv[6]);
  579.     if ( v < 0 || v > 127 )
  580.         goto _PARA_ERR;
  581.     dat[5] = v;
  582.  
  583.     /* LFO1 TVA DEPTH */
  584.     v = atoi(argv[7]);
  585.     if ( v < 0 || v > 127 )
  586.         goto _PARA_ERR;
  587.     dat[6] = v;
  588.  
  589.     /* LFO2 RATE */
  590.     v = atoi(argv[8]);
  591.     if ( v < -64 || v > 63 )
  592.         goto _PARA_ERR;
  593.     dat[7] = v + 0x40;
  594.  
  595.     /* LFO2 PITCH DEPTH */
  596.     v = atoi(argv[9]);
  597.     if ( v < 0 || v > 127 )
  598.         goto _PARA_ERR;
  599.     dat[8] = v;
  600.  
  601.     /* LFO2 TVF DEPTH */
  602.     v = atoi(argv[10]);
  603.     if ( v < 0 || v > 127 )
  604.         goto _PARA_ERR;
  605.     dat[9] = v;
  606.  
  607.     /* LFO2 TVA DEPTH */
  608.     v = atoi(argv[11]);
  609.     if ( v < 0 || v > 127 )
  610.         goto _PARA_ERR;
  611.     dat[10] = v;
  612.  
  613.     return gs_genMML( sqr, bufSiz, buf, GS_PARTADR(part,0x402050), 11, dat );
  614. }
  615.