home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume6 / glib / part03 / k1vis.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-05-14  |  7.8 KB  |  541 lines

  1. /* $Id: k1vis.c,v 1.6 89/05/06 17:13:28 lee Exp $
  2.  * GLIB - a Generic LIBrarian and editor for synths
  3.  *
  4.  * Data Display Routines
  5.  *
  6.  * K1 version adapted from Kesti's D-10 version by Greg Lee
  7.  * $Log:    k1vis.c,v $
  8.  * Revision 1.6  89/05/06  17:13:28  lee
  9.  * rel. to comp.sources.misc
  10.  * 
  11.  */
  12.  
  13. #include <stdio.h>
  14.  
  15. extern int Redraw;    /* if non-0, edit screen is completely redrawn. */
  16.  
  17. char *visnum();
  18.  
  19. char *
  20. vispnum(v)
  21. {
  22.     return(visnum(v+1));
  23. }
  24.  
  25. char *
  26. vispan(v)
  27. {
  28.     switch (v) {
  29.     case 0: return("R");
  30.     case 1: return("L+R");
  31.     case 2: return("L");
  32.     }
  33.     return("*");
  34. }
  35.  
  36. char *
  37. vispoly(v)
  38. {
  39.     switch (v) {
  40.     case 0: return("VR");
  41.     case 1: return("MUTE");
  42.     case 2: return("1");
  43.     case 3: return("2");
  44.     case 4: return("3");
  45.     case 5: return("4");
  46.     case 6: return("5");
  47.     case 7: return("6");
  48.     case 8: return("7");
  49.     case 9: return("8");
  50.     }
  51.     return("*");
  52. }
  53.  
  54. char *
  55. visvelosw(v)
  56. {
  57.     switch (v) {
  58.     case 0: return("ALL");
  59.     case 1: return("SOFT");
  60.     case 2: return("LOUD");
  61.     }
  62.     return("*");
  63. }
  64.  
  65. char *
  66. vismode(v)
  67. {
  68.     switch (v) {
  69.     case 0: return("KYBD");
  70.     case 1: return("MIDI");
  71.     case 2: return("MIX");
  72.     }
  73.     return("*");
  74. }
  75.  
  76. char *
  77. vistwofour(v)
  78. {
  79.     switch (v) {
  80.     case 0: return("2");
  81.     case 1: return("4");
  82.     }
  83.     return("*");
  84. }
  85.  
  86. char *
  87. vismute(v)
  88. {
  89.     switch (v) {
  90.     case 0: return("ON");
  91.     case 1: return("MUTE");
  92.     }
  93.     return("*");
  94. }
  95.  
  96. char *
  97. vispolym(v)
  98. {
  99.     switch (v) {
  100.     case 0: return("PL1");
  101.     case 1: return("PL2");
  102.     case 2: return("SOLO");
  103.     }
  104.     return("*");
  105. }
  106.  
  107. char *
  108. visvbwh(v)
  109. {
  110.     switch (v) {
  111.     case 0: return("DEP");
  112.     case 1: return("SPD");
  113.     }
  114.     return("*");
  115. }
  116.  
  117. char *
  118. viscrv(v)
  119. {
  120.     switch (v) {
  121.     case 0: return("1  /");
  122.     case 1: return("2 _--~u_");
  123.     case 2: return("3 _-~u__");
  124.     case 3: return("4 _/~u_");
  125.     case 4: return("5 _|~u_");
  126.     }
  127.     return("*");
  128. }
  129.  
  130.  
  131. char *viskeyshift(v)
  132. {
  133. static char viskeyshiftbuf[4];
  134.  
  135.     if((v >= 0) && (v <= 23)) {
  136.         (void)sprintf(viskeyshiftbuf,"-%d",abs(v - 24));
  137.         return(viskeyshiftbuf);
  138.     } else if(v == 24) {
  139.         (void)sprintf(viskeyshiftbuf,"0");
  140.         return(viskeyshiftbuf);
  141.     } else if((v >= 25) && (v <= 48)) {
  142.         (void)sprintf(viskeyshiftbuf,"+%d", (v - 24));
  143.         return(viskeyshiftbuf);
  144.     } else {
  145.         if (v < 0) return("-*"); else return("+*");
  146.     }
  147. }
  148.  
  149. char *visfinetune(v)
  150. {
  151. static char visfinetunebuf[4];
  152.  
  153.     if((v >= 0) && (v <= 49)) {
  154.         (void)sprintf(visfinetunebuf,"-%d",abs(v - 50));
  155.         return(visfinetunebuf);
  156.     } else if(v == 50) {
  157.         (void)sprintf(visfinetunebuf,"0");
  158.         return(visfinetunebuf);
  159.     } else if((v >= 51) && (v <= 100)) {
  160.         (void)sprintf(visfinetunebuf,"+%d",(v - 50));
  161.         return(visfinetunebuf);
  162.     } else {
  163.         return("*");
  164.     }
  165. }
  166.  
  167. static    char *cpitch_table[] = {
  168.     "C",
  169.     "C#",
  170.     "D",
  171.     "D#",
  172.     "E",
  173.     "F",
  174.     "F#",
  175.     "G",
  176.     "G#",
  177.     "A",
  178.     "A#",
  179.     "B"
  180. };
  181.  
  182. char *
  183. viscpitch(v)
  184. {
  185. static    char    viscpitchbuf[4];
  186.  
  187.     if((v >= 0) && (v <= 127)) {
  188.         strcpy(viscpitchbuf, cpitch_table[v % 12]);
  189.         if(strlen(viscpitchbuf) == 1) {
  190.             (void)sprintf(viscpitchbuf+1, "%d", v/12 - 2);
  191.         } else {
  192.             (void)sprintf(viscpitchbuf+2, "%d", v/12 - 2);
  193.         }
  194.         return(viscpitchbuf);
  195.     } else {
  196.     return("*");
  197.     }
  198. }
  199.  
  200. char *
  201. vislpitch(v)
  202. {
  203. static    char    vislpitchbuf[4];
  204.  
  205.     if((v >= 0) && (v <= 127)) {
  206.         strcpy(vislpitchbuf, cpitch_table[v % 12]);
  207.         if(strlen(vislpitchbuf) == 1) {
  208.             (void)sprintf(vislpitchbuf+1, "%d", v/12 - 4);
  209.         } else {
  210.             (void)sprintf(vislpitchbuf+2, "%d", v/12 - 4);
  211.         }
  212.         return(vislpitchbuf);
  213.     } else {
  214.     return("*");
  215.     }
  216. }
  217.  
  218. char *visonoff();
  219.  
  220. int ky_tk1=0, ky_tk2=0, ky_tk3=0, ky_tk4=0;
  221.  
  222. char *visonoffk1(v) { ky_tk1 = v; Redraw = 1; return(visonoff(v)); }
  223. char *visonoffk2(v) { ky_tk2 = v; Redraw = 1; return(visonoff(v)); }
  224. char *visonoffk3(v) { ky_tk3 = v; Redraw = 1; return(visonoff(v)); }
  225. char *visonoffk4(v) { ky_tk4 = v; Redraw = 1; return(visonoff(v)); }
  226.  
  227. char *
  228. viscsfnk1(v) {if (ky_tk1) return(viskeyshift(v-60)); else return(vislpitch(v));}
  229. char *
  230. viscsfnk2(v) {if (ky_tk2) return(viskeyshift(v-60)); else return(vislpitch(v));}
  231. char *
  232. viscsfnk3(v) {if (ky_tk3) return(viskeyshift(v-60)); else return(vislpitch(v));}
  233. char *
  234. viscsfnk4(v) {if (ky_tk4) return(viskeyshift(v-60)); else return(vislpitch(v));}
  235.  
  236. char *
  237. visam1(v)
  238. {
  239.     switch(v) {
  240.     case 0: return("OFF");
  241.     case 1: return("2>1");
  242.     case 2: return("1>2");
  243.     }
  244.     return("*");
  245. }
  246.  
  247. char *
  248. visam3(v)
  249. {
  250.     switch(v) {
  251.     case 0: return("OFF");
  252.     case 1: return("4>3");
  253.     case 2: return("3>4");
  254.     }
  255.     return("*");
  256. }
  257.  
  258.  
  259. char *visifosh(v)
  260. {
  261.     switch (v) {
  262.     case 0: return("TRI");
  263.     case 1: return("SAW");
  264.     case 2: return("SQR");
  265.     case 3: return("RND");
  266.     }
  267.     return("*");
  268. }
  269.  
  270. static    char *wave_table[] = {
  271.     "sin 1st",
  272.     "sin 2nd",
  273.     "sin 3rd",
  274.     "sin 4th",
  275.     "sin 5th",
  276.     "sin 6th",
  277.     "sin 7th",
  278.     "sin 8th",
  279.     "sin 9th",
  280.     "sin 10th",
  281.     "sin 11th",
  282.     "sin 12th",
  283.     "sin 16th",
  284.     "saw 1",
  285.     "saw 2",
  286.     "saw 3",
  287.     "saw 4",
  288.     "saw 5",
  289.     "saw 6",
  290.     "saw 7",
  291.     "saw 8",
  292.     "saw 9",
  293.     "saw 10",
  294.     "saw 11",
  295.     "saw 12",
  296.     "saw 13",
  297.     "saw 14",
  298.     "saw 15",
  299.     "saw 16",
  300.     "saw 17",
  301.     "saw 18",
  302.     "saw 19",
  303.     "square 1",
  304.     "square 2",
  305.     "square 3",
  306.     "square 4",
  307.     "square 5",
  308.     "inverse-saw",
  309.     "triangle",
  310.     "random",
  311.     "french horn",
  312.     "string",
  313.     "string",
  314.     "string pad",
  315.     "piano 1",
  316.     "el. grand",
  317.     "e. piano 1",
  318.     "e. piano 2",
  319.     "e. piano 3",
  320.     "clavi",
  321.     "vibe",
  322.     "a. guitar",
  323.     "f. guitar",
  324.     "f. guitar",
  325.     "ac bass",
  326.     "ac bass",
  327.     "digi bass 1",
  328.     "pick bass",
  329.     "digi bass 2",
  330.     "round bass",
  331.     "fretless",
  332.     "fretless",
  333.     "flute",
  334.     "panflute",
  335.     "harmonica",
  336.     "glocken",
  337.     "tine",
  338.     "harp",
  339.     "marimba",
  340.     "e. tom",
  341.     "log drum",
  342.     "jass organ 1",
  343.     "mello pad",
  344.     "synth solo",
  345.     "synth 2",
  346.     "french horn",
  347.     "french horn",
  348.     "brass",
  349.     "brass",
  350.     "brass",
  351.     "brass",
  352.     "trumpet",
  353.     "trumpet",
  354.     "violin",
  355.     "string",
  356.     "piano 1",
  357.     "piano 2",
  358.     "piano 3",
  359.     "piano 2",
  360.     "piano 3",
  361.     "piano 4",
  362.     "piano 4",
  363.     "el. grand",
  364.     "e. piano 1",
  365.     "e. piano 2",
  366.     "e. piano 3",
  367.     "clavi",
  368.     "harpsichord",
  369.     "vibe",
  370.     "a. guitar",
  371.     "f. guitar",
  372.     "strat",
  373.     "strat",
  374.     "ac bass",
  375.     "pull bass",
  376.     "pull bass",
  377.     "round bass",
  378.     "slap bass",
  379.     "slap bass",
  380.     "slap bass",
  381.     "fretless",
  382.     "fretless",
  383.     "synth bass",
  384.     "synth bass",
  385.     "harmonica",
  386.     "clarinet",
  387.     "clarinet",
  388.     "oboe",
  389.     "oboe",
  390.     "shakuhachi",
  391.     "oriental bell",
  392.     "oriental bell",
  393.     "bell",
  394.     "koto",
  395.     "sitar",
  396.     "e. tom",
  397.     "log drum",
  398.     "log drum",
  399.     "steel drum",
  400.     "steel drum",
  401.     "voice 1",
  402.     "voice 2",
  403.     "accordion",
  404.     "accordion",
  405.     "jass organ 2",
  406.     "rock organ 1",
  407.     "draw bar 1",
  408.     "draw bar 2",
  409.     "pipe organ 1",
  410.     "pipe organ 2",
  411.     "rock organ 2",
  412.     "synth solo",
  413.     "synth solo",
  414.     "synth 2",
  415.     "synth 2",
  416.     "synth 3",
  417.     "brass",
  418.     "brass",
  419.     "orchestra",
  420.     "piano 1",
  421.     "piano 4",
  422.     "e. piano 1",
  423.     "e. piano 1",
  424.     "e. piano 2",
  425.     "e. piano 3",
  426.     "clavi",
  427.     "harpsichord",
  428.     "harpsichord",
  429.     "vibe",
  430.     "digi bass 1",
  431.     "digi bass 2",
  432.     "digi bass 2",
  433.     "pick bass",
  434.     "glocken",
  435.     "glocken",
  436.     "tine",
  437.     "tine",
  438.     "tine",
  439.     "tube bell",
  440.     "tube bell",
  441.     "tube bell",
  442.     "xylophone",
  443.     "xylophone",
  444.     "harp",
  445.     "koto",
  446.     "sitar",
  447.     "sitar",
  448.     "kalimba",
  449.     "kalimba",
  450.     "kalimba",
  451.     "log drum",
  452.     "steel drum",
  453.     "pipe organ 3",
  454.     "pipe organ 3",
  455.     "synth 1",
  456.     "synth 2",
  457.     "synth 3",
  458.     "synth 3",
  459.     "synth 4",
  460.     "synth 4",
  461.     "clavi",
  462.     "digi bass 1",
  463.     "digi bass 1",
  464.     "pick bass",
  465.     "pick bass",
  466.     "round bass",
  467.     "round bass",
  468.     "harmonica",
  469.     "harmonica",
  470.     "harp",
  471.     "koto",
  472.     "sitar",
  473.     "marimba",
  474.     "synth 1",
  475.     "base drum",
  476.     "ac snare",
  477.     "tight snare",
  478.     "e. snare",
  479.     "rim",
  480.     "ac tom",
  481.     "h. hat",
  482.     "crach",
  483.     "ride",
  484.     "strat guitar",
  485.     "fuzz mute",
  486.     "a. guitar",
  487.     "f. guitar",
  488.     "guitar harmo",
  489.     "pull bass",
  490.     "bass harmo",
  491.     "bowed string",
  492.     "string attack",
  493.     "string sus",
  494.     "pizzicato",
  495.     "piano",
  496.     "el. grand",
  497.     "piano noise",
  498.     "trumpet",
  499.     "shakuhachi attack",
  500.     "shakuhachi sus",
  501.     "pan flute attack",
  502.     "pan flute sus",
  503.     "voice",
  504.     "white noise",
  505.     "string loop",
  506.     "shakuhachi loop",
  507.     "pan flute loop",
  508.     "voice loop",
  509.     "white noise loop",
  510.     "ac snare loop",
  511.     "f. guitar loop",
  512.     "pull bass loop",
  513.     "omn. loop 1",
  514.     "omn. loop 2",
  515.     "omn. loop 3",
  516.     "omn. loop 4",
  517.     "omn. loop 5",
  518.     "omn. loop 6",
  519.     "omn. loop 7",
  520.     "omn. loop 8",
  521.     "ac snare rev",
  522.     "ac tom rev",
  523.     "f. guitar rev",
  524.     "h. hat alt",
  525.     "crash alt",
  526.     "piano noise alt"
  527. };
  528.  
  529. char *
  530. viswave(v)
  531. {    static char wavebuf[30];
  532.  
  533.     if (v >= 0 && v <= 255) {
  534.         (void)sprintf(wavebuf, "%3d %s", v+1, wave_table[v]);
  535.         return(wavebuf);
  536.     }
  537.     return("*");
  538. }
  539.  
  540. /* end */
  541.