home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / d / dir_nm20.zip / Dir_NM_2.0 / NM-Data.c < prev    next >
C/C++ Source or Header  |  1992-07-16  |  16KB  |  477 lines

  1. /*                          ======  NM-Data.c  ====== 
  2.  *
  3.  * void Find_Filename()
  4.  * int  Y_Nt(Y,At_high)
  5.  * int  Nt_Y(Nt,At_high) 
  6.  * int  Nx_nt(step)
  7.  * void Nt_nx(step,sn)
  8.  * void Showup(fx,fy,five)
  9.  * char Map_Letter(Map_x,Map_y)
  10.  * int  White_Key(Nt,At_high) 
  11.  * void Clear_Array(Id,Now)
  12.  *
  13.  */
  14.  
  15. #include "NM.h"
  16.  
  17. void Find_Filename()
  18. {
  19.   int i;
  20.  
  21.   Table_Name=(char *)malloc(50);*Table_Name='\0';
  22.   if ((filvar=fopen("Dir_Song/IM.Names","r"))!=NULL)
  23.     {
  24.       setvbuf(filvar,buf,_IOFBF,2048);rewind(filvar);
  25.       fgets(Table_Name,50,filvar);
  26.       for (i=0;i<Max_kind;i++) 
  27.     { 
  28.       In_name[i]=(char *)malloc(50);*In_name[i]='\0';
  29.       Old_name[i]=(char *)malloc(50);*Old_name[i]='\0';
  30.       fgets(In_name[i],50,filvar);
  31.     }
  32.       if (filvar != NULL) fclose(filvar);filvar=NULL;
  33.     }
  34.   else
  35.     {
  36.       sprintf(Table_Name+strlen(Table_Name),"%s\n","List");
  37.       for (i=0;i<Max_kind;i++)
  38.     {
  39.       In_name[i]=(char *)malloc(50);*In_name[i]='\0';
  40.       Old_name[i]=(char *)malloc(50);*Old_name[i]='\0';
  41.       switch (i) 
  42.         {
  43.           case 0:strcpy(In_name[i],"Tempo");break;
  44.           case 1:strcpy(In_name[i],"Classical");break;
  45.           case 2:strcpy(In_name[i],"Waltz");break;
  46.           case 3:strcpy(In_name[i],"Serenade");break;
  47.           case 4:strcpy(In_name[i],"March");break;
  48.           case 5:strcpy(In_name[i],"Quartet");break;
  49.  
  50.           case 6:strcpy(In_name[i],"Ethnic");break;
  51.           case 7:strcpy(In_name[i],"African");break;
  52.           case 8:strcpy(In_name[i],"Latin American");break;
  53.           case 9:strcpy(In_name[i],"Asian");break;
  54.           case 10:strcpy(In_name[i],"European");break;
  55.           case 11:strcpy(In_name[i],"American Folk");break;
  56.  
  57.           case 12:strcpy(In_name[i],"R & B");break;
  58.           case 13:strcpy(In_name[i],"Rock & Roll");break;
  59.           case 14:strcpy(In_name[i],"Country");break;
  60.           case 15:strcpy(In_name[i],"Heavy Metal");break;
  61.           case 16:strcpy(In_name[i]," ");break;
  62.           case 17:strcpy(In_name[i]," ");break;
  63.  
  64.           case 18:strcpy(In_name[i],"Pop");break;
  65.           case 19:strcpy(In_name[i],"Rap");break;
  66.           case 20:strcpy(In_name[i],"Blues");break;
  67.           case 21:strcpy(In_name[i],"Soul");break;
  68.           case 22:strcpy(In_name[i],"Disco");break;
  69.           case 23:strcpy(In_name[i],"Jazz");break;
  70.  
  71.           case 24:strcpy(In_name[i],"Light");break;
  72.           case 25:strcpy(In_name[i],"New Age");break;
  73.           case 26:strcpy(In_name[i],"Instrumental");break;
  74.           case 27:strcpy(In_name[i],"Show Tunes");break;
  75.           case 28:strcpy(In_name[i],"Theme Songs");break;
  76.           case 29:strcpy(In_name[i],"Films/TV ");break;
  77.  
  78.           case 30:strcpy(In_name[i],"Nature");break;
  79.           case 31:strcpy(In_name[i],"Space");break;
  80.           case 32:strcpy(In_name[i],"Animal");break;
  81.           case 33:strcpy(In_name[i],"Background");break;
  82.           case 34:strcpy(In_name[i]," ");break;
  83.           case 35:strcpy(In_name[i],"Tempo-Set");break;
  84.         }
  85.       sprintf(In_name[i]+strlen(In_name[i]),"%c",'\n');
  86.     }
  87.     }
  88. }
  89.  
  90. int Y_Nt(Y,At_high)
  91.   int Y,At_high;
  92. {
  93.   int Nt;
  94.  
  95.   Nt=60;if (At_high<2) Y-=V_Ht/4;
  96.   if (At_high==1 || At_high==2)
  97.     switch(Y)
  98.       {
  99.     case -6:Nt=108;break;    case -5:Nt=107;break;    case -4:Nt=105;break;
  100.     case -3:Nt=103;break;    case -2:Nt=101;break;    case -1:Nt=100;break;
  101.     case 0:Nt=98;break;      case 1:Nt=96;break;      case 2:Nt=95;break;
  102.     case 3:Nt=93;break;      case 4:Nt=91;break;      case 5:Nt=89;break;
  103.     case 6:Nt=88;break;      case 7:Nt=86;break;      case 8:Nt=84;break;
  104.     case 9:Nt=83;break;      case 10:Nt=81;break;     case 11:Nt=79;break;
  105.     case 12:Nt=77;break;     case 13:Nt=76;break;     case 14:Nt=74;break;
  106.     case 15:Nt=72;break;     case 16:Nt=71;break;     case 17:Nt=69;break;
  107.     case 18:Nt=67;break;     case 19:Nt=65;break;     case 20:Nt=64;break;
  108.     case 21:Nt=62;break;     case 22:Nt=60;break;     case 23:Nt=59;break;
  109.     case 24:Nt=57;break;     case 25:Nt=55;break;     case 26:Nt=53;break;
  110.     case 27:Nt=52;break;     case 28:Nt=50;break;     case 29:Nt=48;break;
  111.       }
  112.   else switch(Y)
  113.          {
  114.            case 23:Nt=72;break;    case 24:Nt=71;break;    case 25:Nt=69;break;
  115.            case 26:Nt=67;break;    case 27:Nt=65;break;    case 28:Nt=64;break;
  116.            case 29:Nt=62;break;    case 30:Nt=60;break;    case 31:Nt=59;break;
  117.        case 32:Nt=57;break;    case 33:Nt=55;break;    case 34:Nt=53;break;
  118.        case 35:Nt=52;break;    case 36:Nt=50;break;    case 37:Nt=48;break;
  119.        case 38:Nt=47;break;    case 39:Nt=45;break;    case 40:Nt=43;break;
  120.        case 41:Nt=41;break;    case 42:Nt=40;break;    case 43:Nt=38;break;
  121.        case 44:Nt=36;break;    case 45:Nt=35;break;    case 46:Nt=33;break;
  122.        case 47:Nt=31;break;    case 48:Nt=29;break;    case 49:Nt=28;break;
  123.        case 50:Nt=26;break;    case 51:Nt=24;break;    case 52:Nt=23;break;
  124.        case 53:Nt=21;break;    
  125.      }
  126.   return Nt;
  127. }
  128.  
  129. int Nt_Y(Nt,At_high)
  130.   int Nt,At_high;
  131. {
  132.   int Y;
  133.  
  134.   Y=26;
  135.   if (At_high==1 || At_high==2)
  136.     switch(Nt)
  137.       {
  138.         case 48:Y=29;break;      case 50:Y=28;break;      case 52:Y=27;break;
  139.     case 53:Y=26;break;      case 55:Y=25;break;      case 57:Y=24;break;
  140.     case 59:Y=23;break;      case 60:Y=22;break;      case 62:Y=21;break;
  141.     case 64:Y=20;break;     case 65:Y=19;break;      case 67:Y=18;break; 
  142.     case 69:Y=17;break;     case 71:Y=16;break;      case 72:Y=15;break;
  143.     case 74:Y=14;break;     case 76:Y=13;break;      case 77:Y=12;break;
  144.     case 79:Y=11;break;     case 81:Y=10;break;      case 83:Y=9;break;
  145.     case 84:Y=8;break;     case 86:Y=7;break;       case 88:Y=6;break; 
  146.     case 89:Y=5;break;     case 91:Y=4;break;       case 93:Y=3;break;
  147.     case 95:Y=2;break;     case 96:Y=1;break;       case 98:Y=0;break;
  148.       }
  149.   else switch(Nt)
  150.          {
  151.            case 21:Y=53;break;      case 23:Y=52;break;      case 24:Y=51;break;
  152.        case 26:Y=50;break;      case 28:Y=49;break;      case 29:Y=48;break;
  153.        case 31:Y=47;break;      case 33:Y=46;break;      case 35:Y=45;break;
  154.        case 36:Y=44;break;      case 38:Y=43;break;      case 40:Y=42;break;
  155.        case 41:Y=41;break;      case 43:Y=40;break;      case 45:Y=39;break;
  156.        case 47:Y=38;break;      case 48:Y=37;break;      case 50:Y=36;break;
  157.        case 52:Y=35;break;      case 53:Y=34;break;      case 55:Y=33;break;
  158.        case 57:Y=32;break;      case 59:Y=31;break;      case 60:Y=30;break;
  159.        case 62:Y=29;break;      case 64:Y=28;break;      case 65:Y=27;break;
  160.        case 67:Y=26;break;      case 69:Y=25;break;      case 71:Y=24;break;
  161.        case 72:Y=23;break;
  162.      }
  163.   if (At_high<2) Y+=V_Ht/4;
  164.   return Y;
  165. }
  166.  
  167. int Nx_nt(step)
  168.   int step;
  169. {
  170.   int k;
  171.  
  172.   switch (step) 
  173.     {
  174.       case 0:k=0;break;
  175.       case -5:
  176.       case 7:k=1;break;
  177.       case 2:k=2;break;
  178.       case -3:k=3;break;
  179.       case 4:k=4;break;
  180.       case -1:k=5;break;
  181.       case -6:
  182.       case 6:k=6;break;
  183.       case 1:k=7;break;
  184.       case -4:k=8;break;
  185.       case 3:k=9;break;
  186.       case -2:k=10;break;
  187.       case 5:
  188.       case -7:k=11;break;
  189.     }
  190.   return k;
  191. }
  192.  
  193. void Nt_nx(step,sn)
  194.   int step,*sn;
  195. {
  196.   int k;
  197.  
  198.   switch (step) 
  199.     {
  200.       case 0:k=0;break;
  201.       case -5:
  202.       case 7:k=-1;break;
  203.       case 2:k=-2;break;
  204.       case -3:k=-3;break;
  205.       case 4:k=-4;break;
  206.       case -1:k=-5;break;
  207.       case -6:
  208.       case 6:k=-6;break;
  209.       case 1:k=-7;break;
  210.       case -4:k=-8;break;
  211.       case 3:k=-9;break;
  212.       case -2:k=-10;break;
  213.       case 5:
  214.       case -7:k=-11;break;
  215.     }
  216.   *sn+=k;
  217. }
  218.  
  219.  
  220. void Showup(fx,fy,five)
  221.   int fx,fy,five;
  222. {
  223.   int x,i,j,k,FORLIM1,BI;
  224.   char ch,STR1[256];
  225.  
  226.   Rub(fx+1,fy+1,797,82,"RoyalBlue");SetColor("green");
  227.   XSetLineAttributes(display,gc,2,0,0,0);DrawRectangle(fx,fy+1,799,83);
  228.   XSetLineAttributes(display,gc,1,0,0,0);SetColor("HotPink");
  229.   S_bf=(char *)malloc(10);*S_bf='\0';
  230.   if (five) 
  231.     {
  232.       for (i=1;i<=11;i++) 
  233.     {
  234.       switch (i) 
  235.         {
  236.           case 1:
  237.           case 2:strcpy(S_bf,"D");break;
  238.           case 3:strcpy(S_bf,"F");break;
  239.           case 4:strcpy(S_bf,"F1");break;
  240.           case 5:strcpy(S_bf,"F2");break;
  241.           case 6:strcpy(S_bf,"F3");break;
  242.           case 7:strcpy(S_bf,"DP");break;
  243.           case 8:strcpy(S_bf,"FP");break;
  244.           case 9:strcpy(S_bf,"FP1");break;
  245.           case 10:strcpy(S_bf,"FP2");break;
  246.           case 11:strcpy(S_bf,"FP3");break;
  247.         }
  248.       FORLIM1=strlen(S_bf);BI=i*40;
  249.       for (x=0;x<FORLIM1;x++) 
  250.         {
  251.           ch=S_bf[x];
  252.           switch (ch) 
  253.         {
  254.           case 'D':DrawEllipse(fx+BI-30,fy+5,10,8,0,360);
  255.                    DrawEllipse(fx+BI-30,fy+70,10,8,0,360);
  256.             break;
  257.           case 'F':FillEllipse(fx+BI-30,fy+5,11,9,0,360);
  258.                    FillEllipse(fx+BI-30,fy+69,11,9,0,360);
  259.             break;
  260.           case '1':
  261.           case '2':
  262.           case '3':sprintf(STR1,"%c",ch);sscanf(STR1,"%ld",&j);
  263.                        for (k=1;k<=j;k++) 
  264.                  {
  265.                    DrawEllipse(fx+BI-38,fy-k*4+19,16,19,10,-70);
  266.                    Line(fx+BI-30,fy-k*4+39,fx+BI-25,fy-k*4+36);
  267.                    DrawEllipse(fx+BI-27,fy+k*4+47,16,19,-10,70);
  268.                    Line(fx+BI-18,fy+k*4+47,fx+BI-13,fy+k*4+50);
  269.                  }
  270.             break;
  271.           case 'P':Point(fx+BI-15,fy+8);Point(fx+BI-15,fy+70);
  272.             break;
  273.         }
  274.         }
  275.       if (i>1) 
  276.         {
  277.           Line(fx+BI-30,fy+9,fx+BI-30,fy+39);
  278.           Line(fx+BI-19,fy+47,fx+BI-19,fy+75);
  279.         }
  280.     }
  281.       Point(fx+25,fy+72);
  282.       for (i=12;i<=13;i++) 
  283.     {
  284.       BI=i*40;Line(fx+BI-20-12,fy+15,fx+BI-20+12,fy+15);
  285.       FillRectangle(fx+BI-20-5,fy+16,10,4);
  286.       Line(fx+BI-20-12,fy+70,fx+BI-20+12,fy+70);
  287.       FillRectangle(fx+BI-20-5,fy+66,10,4);
  288.     }
  289.       Point(fx+12*40-15,fy+20);Point(fx+12*40-15,fy+61);
  290.       Draw_Silent(fx+539,fy+32);FillEllipse(fx+536,fy+58,5,5,0,360);
  291.       Line(fx+536,fy+60,fx+545,fy+58);Line(fx+547,fy+54,fx+536,fy+79);
  292.       FillEllipse(fx+575,fy+10,5,5,0,360);FillEllipse(fx+573,fy+15,5,5,0,360);
  293.       Line(fx+575,fy+12,fx+584,fy+10);Line(fx+573,fy+17,fx+582,fy+15);
  294.       Line(fx+587,fy+5,fx+576,fy+30);FillEllipse(fx+575,fy+58,5,5,0,360);
  295.       FillEllipse(fx+573,fy+63,5,5,0,360);FillEllipse(fx+571,fy+68,5,5,0,360);
  296.       Line(fx+575,fy+60,fx+584,fy+58);Line(fx+573,fy+65,fx+582,fy+63);
  297.       Line(fx+571,fy+70,fx+580,fy+68);Line(fx+587,fy+54,fx+576,fy+79);
  298.       Sharp(fx+610,fy+12);Flat(fx+610,fy+55);OutTextXY(fx+652,fy+30,"/");
  299.       Point(fx+655,fy+62);Point(fx+655,fy+72);Line(fx+700,fy+7,fx+700,fy+36);
  300.       Line(fx+698,fy+51,fx+698,fy+80);Line(fx+702,fy+51,fx+702,fy+80);
  301.  
  302.       Normal(fx+732,fy+57);      /*  Back to normal sign  */
  303.       Use_Font("7x14");SetColor("gold");OutTextXY(fx+729,fy+20,"Bar");
  304.       SetColor("green");Out_I_XY(fx+729,fy+36,0);
  305.  
  306.       if (now==0) On_High=2;
  307.       else 
  308.     { 
  309.       SetColor("cyan");XSetLineAttributes(display,gc,2,0,0,0);
  310.       Use_Font("7x14");DrawRectangle(fx+756,fy+6,38,35);SetColor("magenta");
  311.       DrawRectangle(fx+758,fy+8,34,31);Rub(fx+761,fy+12,28,23,"NavyBlue");
  312.       SetColor("cyan");Adjust_High_Low(fx,fy,0);Adjust_Text(fx,fy,0);
  313.     }
  314.     } 
  315.   else 
  316.     {
  317.       for (i=0;i<=17;i++) 
  318.     {
  319.       switch (i) 
  320.         {
  321.           case 0:OutTextXY(fx+20,fy+29,"G");OutTextXY(fx+20,fy+77,"F");
  322.                 break;
  323.           case 1:OutTextXY(fx+BI+20,fy+29,"D");Flat(fx+BI+12,fy+52);
  324.                  OutTextXY(fx+BI+20,fy+77,"B");
  325.         break;
  326.           case 2:OutTextXY(fx+BI+20,fy+29,"A");Flat(fx+BI+12,fy+52);
  327.              OutTextXY(fx+BI+20,fy+77,"E");
  328.         break;
  329.           case 3:OutTextXY(fx+BI+20,fy+29,"E");Flat(fx+BI+12,fy+52);
  330.              OutTextXY(fx+BI+20,fy+77,"A");
  331.         break;
  332.           case 4:OutTextXY(fx+BI+20,fy+29,"B");Flat(fx+BI+12,fy+52);
  333.              OutTextXY(fx+BI+20,fy+77,"D");
  334.         break;
  335.           case 5:Sharp(fx+BI+11,fy+9);OutTextXY(fx+BI+20,fy+29,"F");
  336.              Flat(fx+BI+12,fy+52);OutTextXY(fx+BI+20,fy+77,"G");
  337.         break;
  338.           case 6:Sharp(fx+BI+11,fy+9);OutTextXY(fx+BI+20,fy+29,"C");
  339.              Flat(fx+BI+12,fy+52);OutTextXY(fx+BI+20,fy+77,"C");
  340.         break;
  341.           case 7:OutTextXY(fx+BI+20,fy+29,"C");
  342.              OutTextXY(fx+BI+20,fy+77,"/");
  343.         break;
  344.           case 8:OutTextXY(fx+BI+20,fy+29,"0");Dot(fx+BI+22,fy+54);
  345.              Dot(fx+BI+22,fy+70);
  346.         break;
  347.           case 9:OutTextXY(fx+BI+20,fy+29,"1");Underline_(fx+BI+19,fy+66,1);
  348.         break;
  349.           case 10:OutTextXY(fx+BI+20,fy+29,"2");
  350.               Underline_(fx+BI+19,fy+66,2);
  351.         break;
  352.           case 11:OutTextXY(fx+BI+20,fy+29,"3");
  353.               Underline_(fx+BI+19,fy+66,3);
  354.         break;
  355.           case 12:OutTextXY(fx+BI+20,fy+29,"4");
  356.                       FillEllipse(fx+BI+23,fy+50,5,5,0,360);
  357.         break;
  358.           case 13:OutTextXY(fx+BI+20,fy+29,"5");
  359.               FillEllipse(fx+BI+23,fy+60,5,5,0,360);
  360.         break;
  361.           case 14:OutTextXY(fx+BI+20,fy+29,"6");
  362.               FillEllipse(fx+BI+23,fy+70,5,5,0,360);
  363.         break;
  364.           case 15:OutTextXY(fx+BI+20,fy+29,"7");
  365.               Line(fx+BI+24,fy+49,fx+BI+24,fy+78);
  366.         break;
  367.           case 16:OutTextXY(fx+BI+20,fy+29,"-");
  368.               Line(fx+BI+22,fy+49,fx+BI+22,fy+78);
  369.                       Line(fx+BI+29,fy+49,fx+BI+29,fy+78);
  370.         break;
  371.           case 17:Sharp(fx+BI+9,fy+12);Flat(fx+BI+9,fy+49);break;
  372.         }
  373.     }
  374.     }
  375.   SetColor("white");
  376. }
  377.  
  378. char Map_Letter(Map_x,Map_y)
  379.   int Map_x,Map_y;
  380. {
  381.   char ch;
  382.  
  383.   switch (Map_y)
  384.     {
  385.       case 0:switch (Map_x)
  386.            {
  387.              case 0:ch='a';break;case 1:ch='b';break;case 2:ch='c';break;
  388.          case 3:ch='d';break;case 4:ch='e';break;case 5:ch='f';break;
  389.          case 6:ch='g';break;case 7:ch='h';break;case 8:ch='i';break;
  390.          case 9:ch='j';break;case 10:ch='k';break;case 11:ch='l';break;
  391.            }
  392.     break;
  393.       case 1:switch (Map_x)
  394.            {
  395.              case 0:ch='m';break;case 1:ch='n';break;case 2:ch='o';break;
  396.          case 3:ch='p';break;case 4:ch='q';break;case 5:ch='r';break;
  397.          case 6:ch='s';break;case 7:ch='t';break;case 8:ch='u';break;
  398.          case 9:ch='v';break;case 10:ch='w';break;case 11:ch='x';break;
  399.            }
  400.     break;
  401.       case 2:switch (Map_x)
  402.            {
  403.              case 0:ch='y';break;case 1:ch='z';break;case 2:ch='0';break;
  404.          case 3:ch='1';break;case 4:ch='2';break;case 5:ch='3';break;
  405.          case 6:ch='4';break;case 7:ch='5';break;case 8:ch='6';break;
  406.          case 9:ch='7';break;case 10:ch='8';break;case 11:ch='9';break;
  407.            }
  408.     break;
  409.       case 3:switch (Map_x)
  410.            {
  411.              case 0:ch='+';break;case 1:ch='-';break;case 2:ch='*';break;
  412.          case 3:ch='/';break;case 4:ch='?';break;case 5:ch='<';break;
  413.          case 6:ch='>';break;case 7:ch='$';break;case 8:ch='#';break;
  414.          case 9:ch='=';break;case 10:ch='.';break;case 11:ch=':';break;
  415.            }
  416.     break;
  417.       case 4:switch (Map_x)
  418.            {
  419.              case 0:ch='!';break;case 1:ch='@';break;case 2:ch='_';break;
  420.          case 3:ch='|';break;case 4:ch='%';break;case 5:ch='[';break;
  421.          case 6:ch=']';break;case 7:ch='&';break;case 8:ch='(';break;
  422.          case 9:ch=')';break;case 10:ch='~';break;case 11:ch='^';break;
  423.            }
  424.     break;
  425.       }
  426.   return ch;
  427. }
  428.  
  429. int White_Key(Nt,At_high)
  430.   int Nt,At_high;
  431. {
  432.   if (((At_high==2 || At_high==1) && Nt !=99 && Nt !=97 && Nt !=94 && Nt !=92 &&
  433.         Nt !=90 && Nt !=87 && Nt !=85 && Nt !=82 && Nt !=80 && Nt !=78 &&
  434.         Nt !=75 && Nt !=73 && Nt !=70 && Nt !=68 && Nt !=66 && Nt !=63 &&
  435.         Nt !=61 && Nt !=58 && Nt !=56 && Nt !=54 && Nt !=51 && Nt !=49) ||
  436.        (At_high==0 && Nt !=70 && Nt !=68 && Nt !=66 && Nt !=63 && Nt !=61 &&
  437.         Nt !=58 && Nt !=56 && Nt !=54 && Nt !=51 && Nt !=49 && Nt !=46 &&
  438.         Nt !=44 && Nt !=42 && Nt !=39 && Nt !=37 && Nt !=34 && Nt !=32 &&
  439.        Nt !=30 && Nt !=27 && Nt !=25 && Nt !=22))
  440.     return 1;
  441.   else return 0;
  442. }
  443.  
  444. void Clear_Array(Id,Now)
  445.   int Id,Now;
  446. {
  447.   int i,j;
  448.  
  449.   if (Now>0)
  450.     for (j=0;j<3;j++)
  451.       {
  452.     for (i=0;i<St_Start;i++) 
  453.       { 
  454.         St[Id][i][j].nt[0]=0;St[Id][i][j].act=0;St[Id][i][j].vol=Volumn;
  455.         St[Id][i][j].nt[1]=St[Id][i][j].nt[2]=St[Id][i][j].nt[3]=200;
  456.       }
  457.     for (i=St_Start;i<M_Len;i++) 
  458.       { 
  459.         St[Id][i][j].nt[0]=200;St[Id][i][j].nt[1]=St[Id][i][j].nt[2]=0;
  460.         St[Id][i][j].nt[3]=0;St[Id][i][j].act=0;St[Id][i][j].vol=Volumn;
  461.       }
  462.       }
  463.   else
  464.     {
  465.       for (i=0;i<4;i++) 
  466.     { 
  467.       tmp[Id][i].note=tmp_buf[Id][i].note=0;
  468.       tmp[Id][i].act=tmp_buf[Id][i].act=0;
  469.     }
  470.       for (i=4;i<30;i++) 
  471.     { 
  472.       tmp[Id][i].note=tmp_buf[Id][i].note=200;
  473.       tmp[Id][i].act=tmp_buf[Id][i].act=200;
  474.     }
  475.     }
  476. }
  477.