home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40b.dsk / NOTE.TRANSLATOR.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  49 lines

  1. 10  REM  *********************
  2. 20  REM  *  NOTE.TRANSLATOR  *
  3. 30  REM  *        FOR        *
  4. 40  REM  *   AMPERSOUND GS   *
  5. 50  REM  *  BY ERIC SHEPHERD *
  6. 60  REM  * COPYRIGHT 1991 BY *
  7. 70  REM  * MINDCAFT PUBL.    *
  8. 80  REM  * LINCOLN, MA 01773 *
  9. 90  REM  *********************
  10. 100  PRINT  CHR$(21): TEXT : HOME : PRINT  CHR$(4)"BRUN AMPERSOUND.GS": HIMEM: 32768
  11. 110  PRINT "NOTE TRANSLATOR DEMO BY ERIC SHEPHERD": PRINT "COPYRIGHT (C) 1991": PRINT "BY MINDCRAFT PUBL. CORP.": PRINT : PRINT 
  12. 120 L = 1:A = 1:S = 1:D = 1:N = 0:O = 3: REM  DEFAULT PARAMETERS
  13. 130  FOR I = 0 TO 255:Y = 128 +127 * SIN(I/(128/3.1415926)): POKE 16384 +I,Y: NEXT : &  LOAD 16384
  14. 140  REM  BUILD FREQUENCY TABLE
  15. 150  DIM N(6,12): FOR I = 1 TO 12: READ N(6,I): FOR J = 5 TO 1  STEP  -1:N(J,I) = N(J +1,I)/2: NEXT J,I
  16. 160  GOTO 430: REM  SKIP OVER TRANSLATOR
  17. 170  REM  TRANSLATOR ROUTINE
  18. 180  FOR Z = 1 TO  LEN(C$)
  19. 190 C1$ =  MID$ (C$,Z,1):C2$ =  MID$ (C$,Z +1,1): IF C$ >"Z"  THEN C1$ =  CHR$( ASC(C1$) -32)
  20. 200  IF C1$ = "O"  THEN O =  VAL(C2$):Z = Z +1: GOTO 390: REM  CHANGE OCTAVE
  21. 210  IF C1$ = "S"  THEN S =  VAL(C2$):Z = Z +1: GOTO 390: REM  CHANGE SUSTAIN
  22. 220  IF C1$ = "I"  THEN A =  VAL(C2$):Z = Z +1: GOTO 390: REM  CHANGE ATTACK
  23. 230  IF C1$ = "U"  THEN D =  VAL(C2$):Z = Z +1: GOTO 390: REM  CHANGE DECAY
  24. 240  IF C1$ = "K"  THEN  &  STOP OSC: GOTO 390: REM  STOP OSCILLATOR
  25. 250  IF C1$ = "N"  THEN OSC =  VAL(C2$):Z = Z +1: GOTO 390: REM  SELECT OSCILLATOR 0-9
  26. 260  IF C1$ = "L"  THEN S =  VAL(C2$):Z = Z +1: GOTO 390: REM  SELECT LENGTH 0-9 
  27. 270  IF C1$ = "R"  THEN  &  EXPOSC,0,A,S,D: GOTO 390: REM  REST
  28. 280  IF C1$ = "C"  THEN N = 1
  29. 290  IF C1$ = "D"  THEN N = 3
  30. 300  IF C1$ = "E"  THEN N = 5
  31. 310  IF C1$ = "F"  THEN N = 6
  32. 320  IF C1$ = "G"  THEN N = 8
  33. 330  IF C1$ = "A"  THEN N = 10
  34. 340  IF C1$ = "B"  THEN N = 12
  35. 350  IF C2$ = "#"  THEN N = N +1
  36. 360  IF C2$ = "@"  THEN N = N -1
  37. 370  &  EXPOSC,N(O,N),A,S,D: REM  TURN ON NOTE (ATT,SUST,DEC)
  38. 380  IF C2$ <"A"  THEN C2$ = "":Z = Z +1
  39. 390  NEXT : RETURN 
  40. 400  REM  DATA FOR TRANSLATOR
  41. 410  DATA  20586,22080,23400,24800,26280,27840,29500,31240,33120,35080,37160,39380
  42. 420  REM  SAMPLE PROGRAM START
  43. 430 C$ = "I2S1U4L1O3N0": GOSUB 180: REM  SET UP PARAMETERS
  44. 440  REM  PLAY "WHEN THE SAINTS GO MARCHING IN"
  45. 450 C$ = "CEFL5GL1R": GOSUB 180
  46. 460 C$ = "CEFL5GL1": GOSUB 180
  47. 470 C$ = "RCEFL2GECEL5DL1R": GOSUB 180
  48. 480 C$ = "EEDL4CL2EGL1GL5FL1REFL2GECDL7U8CK"
  49. 490  GOSUB 180