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

  1. /*************************************************************************
  2. *    TG300 MULTI EFFECT
  3. *************************************************************************/
  4.  
  5.  
  6. /*************************************************************************
  7. *    CHORUS TYPE
  8. *-------------------------------------------------------------------------
  9. *    exTG300_chorusType(type)
  10. *        type    …    0~7
  11. *************************************************************************/
  12.  
  13. int        exTG300_chorusType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  14. {
  15.     char    dat[32];
  16.     int        v;
  17.  
  18.     if ( argc != 1 )
  19.     {
  20. _ERR:    MM_setErrMsg(sqr,"TG300 \"CHORUS TYPE\" error!");
  21.         return(ERR);
  22.     }
  23.     v = atoi(argv[0]);
  24.     if ( v < 0 || v > 7 )
  25.         goto _ERR;
  26.     dat[0] = v;
  27.     return tg300_genMML( sqr, bufSiz, buf, 0x010000, 1, dat );
  28. }
  29.  
  30.  
  31. /*************************************************************************
  32. *    VARIATION TYPE
  33. *-------------------------------------------------------------------------
  34. *    exTG300_variationType(type)
  35. *        type    …    0~25
  36. *************************************************************************/
  37.  
  38. int        exTG300_variationType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  39. {
  40.     char    dat[32];
  41.     int        v;
  42.  
  43.     if ( argc != 1 )
  44.     {
  45. _ERR:    MM_setErrMsg(sqr,"TG300 \"VARIATION TYPE\" error!");
  46.         return(ERR);
  47.     }
  48.     v = atoi(argv[0]);
  49.     if ( v < 0 || v > 0x19 )
  50.         goto _ERR;
  51.     dat[0] = v;
  52.     return tg300_genMML( sqr, bufSiz, buf, 0x010001, 1, dat );
  53. }
  54.  
  55.  
  56. /*************************************************************************
  57. *    Pre-VARIATION TYPE
  58. *-------------------------------------------------------------------------
  59. *    exTG300_preVariationType(type)
  60. *        type    …    0~4
  61. *************************************************************************/
  62.  
  63. int        exTG300_preVariationType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  64. {
  65.     char    dat[32];
  66.     int        v;
  67.  
  68.     if ( argc != 1 )
  69.     {
  70. _ERR:    MM_setErrMsg(sqr,"TG300 \"Pre-VARIATION TYPE\" error!");
  71.         return(ERR);
  72.     }
  73.     v = atoi(argv[0]);
  74.     if ( v < 0 || v > 4 )
  75.         goto _ERR;
  76.     dat[0] = v;
  77.     return tg300_genMML( sqr, bufSiz, buf, 0x010002, 1, dat );
  78. }
  79.  
  80.  
  81. /*************************************************************************
  82. *    Pre-REVERB TYPE
  83. *-------------------------------------------------------------------------
  84. *    exTG300_preReverbType(type)
  85. *        type    …    0~5
  86. *************************************************************************/
  87.  
  88. int        exTG300_preReverbType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  89. {
  90.     char    dat[32];
  91.     int        v;
  92.  
  93.     if ( argc != 1 )
  94.     {
  95. _ERR:    MM_setErrMsg(sqr,"TG300 \"Pre-REVERB TYPE\" error!");
  96.         return(ERR);
  97.     }
  98.     v = atoi(argv[0]);
  99.     if ( v < 0 || v > 5 )
  100.         goto _ERR;
  101.     dat[0] = v;
  102.     return tg300_genMML( sqr, bufSiz, buf, 0x010003, 1, dat );
  103. }
  104.  
  105. /*************************************************************************
  106. *    REVERB TYPE
  107. *-------------------------------------------------------------------------
  108. *    exTG300_reverbType(type)
  109. *        type    …    0~11
  110. *************************************************************************/
  111.  
  112. int        exTG300_reverbType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  113. {
  114.     char    dat[32];
  115.     int        v;
  116.  
  117.     if ( argc != 1 )
  118.     {
  119. _ERR:    MM_setErrMsg(sqr,"TG300 \"REVERB TYPE\" error!");
  120.         return(ERR);
  121.     }
  122.     v = atoi(argv[0]);
  123.     if ( v < 0 || v > 0x0B )
  124.         goto _ERR;
  125.     dat[0] = v;
  126.     return tg300_genMML( sqr, bufSiz, buf, 0x010004, 1, dat );
  127. }
  128.  
  129.  
  130. /*************************************************************************
  131. *    EFFECT INPUT
  132. *-------------------------------------------------------------------------
  133. *    exTG300_effectInput(0,rev,cho,var)
  134. *-------------------------------------------------------------------------
  135. *    exTG300_effectInput(type,input)
  136. *        type    …    1:Reverb
  137. *                    2:Chorus
  138. *                    3:Variation
  139. *        input    …    0 ~127
  140. *************************************************************************/
  141.  
  142. int        exTG300_effectInput( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  143. {
  144.     char    dat[32];
  145.     size_t    adr, siz;
  146.     int        rev, cho, var;
  147.  
  148.     if ( argc < 2 )
  149.     {
  150. _ERR:    MM_setErrMsg(sqr,"TG300 \"Effect Input\" error!");
  151.         return(ERR);
  152.     }
  153.     switch ( atoi(argv[0]) )
  154.     {
  155.         case 0:
  156.             if ( argc != 4 )
  157.                 goto _ERR;
  158.             rev = atoi(argv[1]);    if ( rev < 0 || rev > 127 )        goto _ERR;
  159.             cho = atoi(argv[2]);    if ( cho < 0 || cho > 127 )        goto _ERR;
  160.             var = atoi(argv[3]);    if ( var < 0 || var > 127 )        goto _ERR;
  161.             dat[0] = rev;
  162.             dat[1] = cho;
  163.             dat[2] = var;
  164.             adr = 0x010005;
  165.             siz = 3;
  166.             break;
  167.  
  168.         case 1:
  169.             rev = atoi(argv[1]);
  170.             if ( rev < 0 || rev > 127 )
  171.                 goto _ERR;
  172.             dat[0] = rev;
  173.             adr = 0x010005;
  174.             siz = 1;
  175.             break;
  176.  
  177.         case 2:
  178.             cho = atoi(argv[1]);
  179.             if ( cho < 0 || cho > 127 )
  180.                 goto _ERR;
  181.             dat[0] = cho;
  182.             adr = 0x010006;
  183.             siz = 1;
  184.             break;
  185.  
  186.         case 3:
  187.             var = atoi(argv[1]);
  188.             if ( var < 0 || var > 127 )
  189.                 goto _ERR;
  190.             dat[0] = var;
  191.             adr = 0x010007;
  192.             siz = 1;
  193.             break;
  194.         default:
  195.             goto _ERR;
  196.     }
  197.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  198. }
  199.  
  200.  
  201. /*************************************************************************
  202. *    DRY Level
  203. *-------------------------------------------------------------------------
  204. *    exTG300_dryLevel(level)
  205. *        level    …    0~127
  206. *************************************************************************/
  207.  
  208. int        exTG300_dryLevel( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  209. {
  210.     char    dat[32];
  211.     int        v;
  212.  
  213.     if ( argc != 1 )
  214.     {
  215. _ERR:    MM_setErrMsg(sqr,"TG300 \"DRY level\" error!");
  216.         return(ERR);
  217.     }
  218.     v = atoi(argv[0]);
  219.     if ( v < 0 || v > 127 )
  220.         goto _ERR;
  221.     dat[0] = v;
  222.     return tg300_genMML( sqr, bufSiz, buf, 0x010008, 1, dat );
  223. }
  224.  
  225.  
  226. /*************************************************************************
  227. *    EFFECT RETURN
  228. *-------------------------------------------------------------------------
  229. *    exTG300_effectReturn(0,rev,cho,var)
  230. *-------------------------------------------------------------------------
  231. *    exTG300_effectReturn(type,input)
  232. *        type    …    1:Reverb
  233. *                    2:Chorus
  234. *                    3:Variation
  235. *        input    …    0 ~127
  236. *************************************************************************/
  237.  
  238. int        exTG300_effectReturn( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  239. {
  240.     char    dat[32];
  241.     size_t    adr, siz;
  242.     int        rev, cho, var;
  243.  
  244.     if ( argc < 2 )
  245.     {
  246. _ERR:    MM_setErrMsg(sqr,"TG300 \"Effect Return\" error!");
  247.         return(ERR);
  248.     }
  249.     switch ( atoi(argv[0]) )
  250.     {
  251.         case 0:
  252.             if ( argc != 4 )
  253.                 goto _ERR;
  254.             rev = atoi(argv[1]);    if ( rev < 0 || rev > 127 )        goto _ERR;
  255.             cho = atoi(argv[2]);    if ( cho < 0 || cho > 127 )        goto _ERR;
  256.             var = atoi(argv[3]);    if ( var < 0 || var > 127 )        goto _ERR;
  257.             dat[0] = rev;
  258.             dat[1] = cho;
  259.             dat[2] = var;
  260.             adr = 0x010009;
  261.             siz = 3;
  262.             break;
  263.  
  264.         case 1:
  265.             rev = atoi(argv[1]);
  266.             if ( rev < 0 || rev > 127 )
  267.                 goto _ERR;
  268.             dat[0] = rev;
  269.             adr = 0x010009;
  270.             siz = 1;
  271.             break;
  272.  
  273.         case 2:
  274.             cho = atoi(argv[1]);
  275.             if ( cho < 0 || cho > 127 )
  276.                 goto _ERR;
  277.             dat[0] = cho;
  278.             adr = 0x01000A;
  279.             siz = 1;
  280.             break;
  281.  
  282.         case 3:
  283.             var = atoi(argv[1]);
  284.             if ( var < 0 || var > 127 )
  285.                 goto _ERR;
  286.             dat[0] = var;
  287.             adr = 0x01000B;
  288.             siz =1;
  289.             break;
  290.  
  291.         default:
  292.             goto _ERR;
  293.     }
  294.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  295. }
  296.  
  297.  
  298. /*************************************************************************
  299. *    EFFECT SEND
  300. *-------------------------------------------------------------------------
  301. *    exTG300_effectSend(0,var2cho,var2rev,cho2rev)
  302. *-------------------------------------------------------------------------
  303. *    exTG300_effectReturn(type,send)
  304. *        type    …    1:var2cho
  305. *                    2:var2rev
  306. *                    3:cho2rev
  307. *        send    …    0 ~127
  308. *************************************************************************/
  309.  
  310. int        exTG300_effectSend( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  311. {
  312.     char    dat[32];
  313.     size_t    adr, siz;
  314.     int        var2cho, var2rev, cho2rev;
  315.  
  316.     if ( argc < 2 )
  317.     {
  318. _ERR:    MM_setErrMsg(sqr,"TG300 \"Effect Send\" error!");
  319.         return(ERR);
  320.     }
  321.     switch ( atoi(argv[0]) )
  322.     {
  323.         case 0:
  324.             if ( argc != 4 )
  325.                 goto _ERR;
  326.             var2cho = atoi(argv[1]);    if ( var2cho < 0 || var2cho > 127 )        goto _ERR;
  327.             var2rev = atoi(argv[2]);    if ( var2rev < 0 || var2rev > 127 )        goto _ERR;
  328.             cho2rev = atoi(argv[3]);    if ( cho2rev < 0 || cho2rev > 127 )        goto _ERR;
  329.             dat[0] = var2cho;
  330.             dat[1] = var2rev;
  331.             dat[2] = cho2rev;
  332.             adr = 0x01000C;
  333.             siz = 3;
  334.             break;
  335.  
  336.         case 1:
  337.             var2cho = atoi(argv[1]);
  338.             if ( var2cho < 0 || var2cho > 127 )
  339.                 goto _ERR;
  340.             dat[0] = var2cho;
  341.             adr = 0x01000C;
  342.             siz = 1;
  343.             break;
  344.  
  345.         case 2:
  346.             var2rev = atoi(argv[1]);
  347.             if ( var2rev < 0 || var2rev > 127 )
  348.                 goto _ERR;
  349.             dat[0] = var2rev;
  350.             adr = 0x01000D;
  351.             siz = 1;
  352.             break;
  353.  
  354.         case 3:
  355.             cho2rev = atoi(argv[1]);
  356.             if ( cho2rev < 0 || cho2rev > 127 )
  357.                 goto _ERR;
  358.             dat[0] = cho2rev;
  359.             adr = 0x01000E;
  360.             siz = 1;
  361.             break;
  362.  
  363.         default:
  364.             goto _ERR;
  365.     }
  366.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  367. }
  368.  
  369. /*************************************************************************
  370. *    CHORUS Parameter
  371. *-------------------------------------------------------------------------
  372. *    exTG300_choParam(0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)
  373. *-------------------------------------------------------------------------
  374. *    exTG300_choParam(typ,p)
  375. *        typ    …    1~10
  376. *        p    …    0~127
  377. *************************************************************************/
  378.  
  379. int        exTG300_choParam( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  380. {
  381.     char    dat[16];
  382.     size_t    adr, siz;
  383.     int        typ, v, i;
  384.  
  385.     if ( argc < 2 )
  386.     {
  387. _ERR:    MM_setErrMsg(sqr,"TG300 \"CHORUS Parameter\" error!");
  388.         return(ERR);
  389.     }
  390.     typ = atoi(argv[0]);
  391.     if ( typ < 0 || typ > 10 )
  392.         goto _ERR;
  393.     if ( typ == 0 )
  394.     {    /* ALL PARAMETER */
  395.         if ( argc != 11 )
  396.             goto _ERR;
  397.         for ( i = 0; i < 10; ++i )
  398.         {
  399.             v = atoi(argv[i+1]);
  400.             if ( v < 0 || v > 0x7F )
  401.                 goto _ERR;
  402.             dat[i] = v;
  403.         }
  404.         adr = 0x01000F;
  405.         siz = 10;
  406.     } else
  407.     {
  408.         if ( argc != 2 )
  409.             goto _ERR;
  410.         v = atoi(argv[i+1]);
  411.         if ( v < 0 || v > 0x7F )
  412.             goto _ERR;
  413.         dat[0] = v;
  414.         adr = 0x01000F + typ - 1;
  415.         siz = 1;
  416.     }
  417.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  418. }
  419.  
  420. /*************************************************************************
  421. *    VARIATION Parameter
  422. *-------------------------------------------------------------------------
  423. *    exTG300_varParam(0,p1msb,p2lsb ...p5msb,65lsb, p6…p10)
  424. *-------------------------------------------------------------------------
  425. *    exTG300_varParam(typ,msb,lsb)
  426. *        typ    …    1~5
  427. *        msb    …    0~127
  428. *        lsb    …    0~127
  429. *-------------------------------------------------------------------------
  430. *    exTG300_varParam(typ,p)
  431. *        typ    …    6~10
  432. *        p    …    0~127
  433. *************************************************************************/
  434.  
  435. int        exTG300_varParam( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  436. {
  437.     char    dat[32];
  438.     size_t    adr, siz;
  439.     int        typ, v, i;
  440.  
  441.     if ( argc < 3 )
  442.     {
  443. _ERR:    MM_setErrMsg(sqr,"TG300 \"VARIATION Parameter\" error!");
  444.         return(ERR);
  445.     }
  446.     typ = atoi(argv[0]);
  447.     if ( typ < 0 || typ > 10 )
  448.         goto _ERR;
  449.     if ( typ == 0 )
  450.     {    /* ALL PARAMETER */
  451.         if ( argc != 21 )
  452.             goto _ERR;
  453.         for ( i = 0; i < 5; ++i )
  454.         {
  455.             v = atoi(argv[i*2+1]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  456.             dat[i*2  ] = v;
  457.             v = atoi(argv[i*2+2]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  458.             dat[i*2+1] = v;
  459.         }
  460.         for ( i = 0; i < 5; ++i )
  461.         {
  462.             v = atoi(argv[11+i]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  463.             dat[10+i] = v;
  464.         }
  465.         adr = 0x010019;
  466.         siz = 15;
  467.     } else
  468.     {
  469.         if ( typ <= 5 )
  470.         {    /* LSB & MSB */
  471.             if ( argc != 3 )
  472.                 goto _ERR;
  473.             v = atoi(argv[1]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  474.             dat[0] = v;
  475.             v = atoi(argv[2]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  476.             dat[1] = v;
  477.             adr = 0x010019 + (typ - 1)*2;
  478.             siz = 2;
  479.         } else
  480.         {    /* typ 6~10 */
  481.             if ( argc != 2 )
  482.                 goto _ERR;
  483.             v = atoi(argv[1]);    if ( v < 0 || v > 0x7F )    goto _ERR;
  484.             dat[0] = v;
  485.             adr = 0x010023 + typ - 6;
  486.             siz = 1;
  487.         }
  488.     }
  489.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  490. }
  491.  
  492.  
  493. /*************************************************************************
  494. *    Pre-VARIATION Parameter
  495. *-------------------------------------------------------------------------
  496. *    exTG300_preVarParam(0,p1,p2,p3,p4,p5,p6,p7,p8)
  497. *-------------------------------------------------------------------------
  498. *    exTG300_preVarParam(typ,p)
  499. *        typ    …    1~10
  500. *        p    …    0~127
  501. *************************************************************************/
  502.  
  503. int        exTG300_preVarParam( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  504. {
  505.     char    dat[16];
  506.     size_t    adr, siz;
  507.     int        typ, v, i;
  508.  
  509.     if ( argc < 2 )
  510.     {
  511. _ERR:    MM_setErrMsg(sqr,"TG300 \"Pre-VARIATION Parameter\" error!");
  512.         return(ERR);
  513.     }
  514.     typ = atoi(argv[0]);
  515.     if ( typ < 0 || typ > 8 )
  516.         goto _ERR;
  517.     if ( typ == 0 )
  518.     {    /* ALL PARAMETER */
  519.         if ( argc != 9 )
  520.             goto _ERR;
  521.         for ( i = 0; i < 8; ++i )
  522.         {
  523.             v = atoi(argv[i+1]);
  524.             if ( v < 0 || v > 0x7F )
  525.                 goto _ERR;
  526.             dat[i] = v;
  527.         }
  528.         adr = 0x010028;
  529.         siz = 8;
  530.     } else
  531.     {
  532.         if ( argc != 2 )
  533.             goto _ERR;
  534.         v = atoi(argv[1]);
  535.         if ( v < 0 || v > 0x7F )
  536.             goto _ERR;
  537.         dat[0] = v;
  538.         adr = 0x010028 + typ - 1;
  539.         siz = 1;
  540.     }
  541.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  542. }
  543.  
  544. /*************************************************************************
  545. *    Pre-REVERB Parameter
  546. *-------------------------------------------------------------------------
  547. *    exTG300_preRevParam(0,p1,p2,p3,p4,p5,p6,p7,p8)
  548. *-------------------------------------------------------------------------
  549. *    exTG300_preRevParam(typ,p)
  550. *        typ    …    1~10
  551. *        p    …    0~127
  552. *************************************************************************/
  553.  
  554. int        exTG300_preRevParam( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  555. {
  556.     char    dat[16];
  557.     size_t    adr, siz;
  558.     int        typ, v, i;
  559.  
  560.     if ( argc < 2 )
  561.     {
  562. _ERR:    MM_setErrMsg(sqr,"TG300 \"Pre-REVERB Parameter\" error!");
  563.         return(ERR);
  564.     }
  565.     typ = atoi(argv[0]);
  566.     if ( typ < 0 || typ > 9 )
  567.         goto _ERR;
  568.     if ( typ == 0 )
  569.     {    /* ALL PARAMETER */
  570.         if ( argc != 10 )
  571.             goto _ERR;
  572.         for ( i = 0; i < 9; ++i )
  573.         {
  574.             v = atoi(argv[i+1]);
  575.             if ( v < 0 || v > 0x7F )
  576.                 goto _ERR;
  577.             dat[i] = v;
  578.         }
  579.         adr = 0x010032;
  580.         siz = 8;
  581.     } else
  582.     {
  583.         if ( argc != 2 )
  584.             goto _ERR;
  585.         v = atoi(argv[i+1]);
  586.         if ( v < 0 || v > 0x7F )
  587.             goto _ERR;
  588.         dat[0] = v;
  589.         adr = 0x010032 + typ - 1;
  590.         siz = 1;
  591.     }
  592.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  593. }
  594.  
  595. /*************************************************************************
  596. *    REVERB Parameter
  597. *-------------------------------------------------------------------------
  598. *    exTG300_revParam(0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)
  599. *-------------------------------------------------------------------------
  600. *    exTG300_revParam(typ,p)
  601. *        typ    …    1~10
  602. *        p    …    0~127
  603. *************************************************************************/
  604.  
  605. int        exTG300_revParam( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  606. {
  607.     char    dat[16];
  608.     size_t    adr, siz;
  609.     int        typ, v, i;
  610.  
  611.     if ( argc < 2 )
  612.     {
  613. _ERR:    MM_setErrMsg(sqr,"TG300 \"REVERB Parameter\" error!");
  614.         return(ERR);
  615.     }
  616.     typ = atoi(argv[0]);
  617.     if ( typ < 0 || typ > 10 )
  618.         goto _ERR;
  619.     if ( typ == 0 )
  620.     {    /* ALL PARAMETER */
  621.         if ( argc != 11 )
  622.             goto _ERR;
  623.         for ( i = 0; i < 10; ++i )
  624.         {
  625.             v = atoi(argv[i+1]);
  626.             if ( v < 0 || v > 0x7F )
  627.                 goto _ERR;
  628.             dat[i] = v;
  629.         }
  630.         adr = 0x01003C;
  631.         siz = 10;
  632.     } else
  633.     {
  634.         if ( argc != 2 )
  635.             goto _ERR;
  636.         v = atoi(argv[i+1]);
  637.         if ( v < 0 || v > 0x7F )
  638.             goto _ERR;
  639.         dat[0] = v;
  640.         adr = 0x01003C + typ - 1;
  641.         siz = 1;
  642.     }
  643.     return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
  644. }
  645.