home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib40b.dsk
/
NOTE.TRANSLATOR.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
49 lines
10 REM *********************
20 REM * NOTE.TRANSLATOR *
30 REM * FOR *
40 REM * AMPERSOUND GS *
50 REM * BY ERIC SHEPHERD *
60 REM * COPYRIGHT 1991 BY *
70 REM * MINDCAFT PUBL. *
80 REM * LINCOLN, MA 01773 *
90 REM *********************
100 PRINT CHR$(21): TEXT : HOME : PRINT CHR$(4)"BRUN AMPERSOUND.GS": HIMEM: 32768
110 PRINT "NOTE TRANSLATOR DEMO BY ERIC SHEPHERD": PRINT "COPYRIGHT (C) 1991": PRINT "BY MINDCRAFT PUBL. CORP.": PRINT : PRINT
120 L = 1:A = 1:S = 1:D = 1:N = 0:O = 3: REM DEFAULT PARAMETERS
130 FOR I = 0 TO 255:Y = 128 +127 * SIN(I/(128/3.1415926)): POKE 16384 +I,Y: NEXT : & LOAD 16384
140 REM BUILD FREQUENCY TABLE
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
160 GOTO 430: REM SKIP OVER TRANSLATOR
170 REM TRANSLATOR ROUTINE
180 FOR Z = 1 TO LEN(C$)
190 C1$ = MID$ (C$,Z,1):C2$ = MID$ (C$,Z +1,1): IF C$ >"Z" THEN C1$ = CHR$( ASC(C1$) -32)
200 IF C1$ = "O" THEN O = VAL(C2$):Z = Z +1: GOTO 390: REM CHANGE OCTAVE
210 IF C1$ = "S" THEN S = VAL(C2$):Z = Z +1: GOTO 390: REM CHANGE SUSTAIN
220 IF C1$ = "I" THEN A = VAL(C2$):Z = Z +1: GOTO 390: REM CHANGE ATTACK
230 IF C1$ = "U" THEN D = VAL(C2$):Z = Z +1: GOTO 390: REM CHANGE DECAY
240 IF C1$ = "K" THEN & STOP OSC: GOTO 390: REM STOP OSCILLATOR
250 IF C1$ = "N" THEN OSC = VAL(C2$):Z = Z +1: GOTO 390: REM SELECT OSCILLATOR 0-9
260 IF C1$ = "L" THEN S = VAL(C2$):Z = Z +1: GOTO 390: REM SELECT LENGTH 0-9
270 IF C1$ = "R" THEN & EXPOSC,0,A,S,D: GOTO 390: REM REST
280 IF C1$ = "C" THEN N = 1
290 IF C1$ = "D" THEN N = 3
300 IF C1$ = "E" THEN N = 5
310 IF C1$ = "F" THEN N = 6
320 IF C1$ = "G" THEN N = 8
330 IF C1$ = "A" THEN N = 10
340 IF C1$ = "B" THEN N = 12
350 IF C2$ = "#" THEN N = N +1
360 IF C2$ = "@" THEN N = N -1
370 & EXPOSC,N(O,N),A,S,D: REM TURN ON NOTE (ATT,SUST,DEC)
380 IF C2$ <"A" THEN C2$ = "":Z = Z +1
390 NEXT : RETURN
400 REM DATA FOR TRANSLATOR
410 DATA 20586,22080,23400,24800,26280,27840,29500,31240,33120,35080,37160,39380
420 REM SAMPLE PROGRAM START
430 C$ = "I2S1U4L1O3N0": GOSUB 180: REM SET UP PARAMETERS
440 REM PLAY "WHEN THE SAINTS GO MARCHING IN"
450 C$ = "CEFL5GL1R": GOSUB 180
460 C$ = "CEFL5GL1": GOSUB 180
470 C$ = "RCEFL2GECEL5DL1R": GOSUB 180
480 C$ = "EEDL4CL2EGL1GL5FL1REFL2GECDL7U8CK"
490 GOSUB 180