Compucolor.org – Virtual Media

Listing of file='MUSINS.BAS;01' on disk='vmedia/chip_23-sector.ccvf'

50 CLEAR  500
100 PLOT  6,6,12
110 PRINT "    THIS PROGRAM WILL PRODUCE TONES BASED ON THE CHROMATIC"
120 PRINT "SCALE (I.E. PIANO SCALE), WHEN THE COMPUCOLOR IS CONNECTED"
130 PRINT "TO THE SOUNDWARE DEVICE, COVERING THE FIVE OCTAVE RANGE OF"
140 PRINT "THE DEVICE.  LATER VERSIONS OF THIS PROGRAM WILL INCORPORATE"
150 PRINT "AN EDITOR TO ALLOW CORRECTION OF THE MUSIC DURING AND AFTER"
160 PRINT "ENTRY."
170 PRINT "    THE FIRST PART OF THE PROGRAM CONSISTS OF EITHER ENTERING"
180 PRINT "A NEW PIECE, OR LOADING AN EXISTING ONE FROM THE DISK.  VALID"
190 PRINT "COMMANDS AT THIS POINT ARE:  'NEW'   CREATE A NEW PIECE"
200 PRINT TAB( 29);"'COMP'  COMPILE INTO PITCH AND"
210 PRINT TAB( 37);"DURATION"
220 PRINT TAB( 29);"'DISP'  LIST THE NOTE, PITCH,"
230 PRINT TAB( 37);"AND DURATION ARRAYS"
240 PRINT TAB( 29);"'PLAY'  PLAY THE COMPILED MUSIC"
250 PRINT TAB( 29);"'LOAD'  BRING IN AN OLD PIECE"
260 PRINT TAB( 29);"'SAVE'  SAVE A NEW PIECE"
270 PRINT TAB( 29);"'QUIT'  RETURN TO MENU"
280 PRINT
290 PRINT "EACH OF THESE COMMANDS ARE EXPLAINED ON FOLLOWING PAGES."
300 PRINT
310 INPUT "HIT RETURN TO CONTINUE";A$
320 PLOT  6,6,12
330 PRINT TAB( 20);"COMMANDS:":PRINT :PRINT
340 PRINT "    WHEN THE COMMAND 'NEW' IS ENTERED, YOU WILL BE ABLE TO"
350 PRINT "CREATE THE MUSIC FILE FROM WHICH LATER THE PITCH AND DURATION"
360 PRINT "PARAMETERS FOR THE SOUNDWARE DEVICE WILL BE CALCULATED.  AN"
370 PRINT "ENTRY OF 'QU' WHILE ENTERING THE MUSIC WILL TERMINATE MUSIC"
380 PRINT "ENTRY AND RETURN TO THE COMMAND LEVEL, WHERE THE MUSIC CAN BE"
390 PRINT "PLAYED, SAVED, ETC."
400 PRINT
410 PRINT "THE MUSIC ENTRY IS OF THE FORM:  NOTE<MOD><DUR><.><OCT>"
420 PRINT "ITEMS ENCLOSED IN '<>' ARE OPTIONAL.
430 PRINT
440 PRINT "NOTE    IS A LETTER BETWEEN 'A' AND 'G' THAT SPECIFIES THE"
450 PRINT "        THE NOTE TO BE PLAYED.  AN 'R' SPECIFIES A REST."
460 PRINT "        A 'QU' INDICATES THE END OF NOTE ENTRY."
470 PRINT
480 PRINT "MOD     IF SPECIFIED, IS '#' TO SHARP THE NOTE, 'b' TO FLAT"
490 PRINT "        THE NOTE('b' IS A SHIFT-B), OR 'N' FOR NATURAL.  IF"
500 PRINT "        MOD IS NOT SPECIFIED, NATURAL IS ASSUMED."
510 PRINT "        MOD APPLIES ONLY TO THE CURRENT NOTE.
520 PRINT
530 PRINT "DUR     SELECTS THE DURATION OF TIME FOR WHICH THE NOTE(S)"
540 PRINT "        IS(ARE) TO BE PLAYED.  IF NOT SPECIEFIED, THE DURATION"
550 PRINT "        WILL BE ASSUMED TO BE THE SAME AS THAT OF THE PREVIOUS"
560 PRINT "        NOTE.  IF, FOR EXAMPLE, YOU WANTED TO PLAY A SERIES OF"
570 PRINT "        QUARTER NOTES,  YOU WOULD ONLY HAVE TO SPECIFY THE"
580 PRINT "        DURATION FOR THE FIRST NOTE.  DURATION MUST BE SPECI-"
590 PRINT "        FIED FOR THE FIRST NOTE OF THE PIECE."
600 PRINT
610 INPUT "HIT RETURN TO CONTINUE";A$
620 PLOT  6,6,12
630 PRINT "        DURATION ENTRIES ARE:  'W'  WHOLE NOTE"
640 PRINT TAB( 31);"'H'  HALF NOTE
650 PRINT TAB( 31);"'Q'  QUARTER NOTE"
660 PRINT TAB( 31);"'E'  EIGHTH NOTE"
670 PRINT TAB( 31);"'S'  SIXTEENTH NOTE"
680 PRINT TAB( 31);"'T'  THIRTY-SECOND NOTE"
690 PRINT TAB( 31);"'Z'  SIXTY-FOURTH NOTE"
700 PRINT
710 PRINT ".       THE PERIOD IS USED TO INDICATE A DOTTED NOTE.  A DOTTED"
720 PRINT "        NOTE IS ONE THAT IS PLAYED HALF AGAIN AS LONG AS AN"
730 PRINT "        UNDOTTED NOTE OF THE SAME SPECIFIED DURATION.  FOR"
740 PRINT "        EXAMPLE A DOTTED QUARTER NOTE WILL BE PLAYED FOR 3/8 OF"
750 PRINT "        A SECOND, WHEREAS AN UNDOTTED QUARTER NOTE WOULD BE"
760 PRINT "        PLAYED FOR 1/4 OF A SECOND.  ONLY THE CURRENT NOTE"
770 PRINT "        IS DOTTED.  IF THE DURATION IS NOT SPECIFIED FOR THE"
780 PRINT "        NEXT NOTE, THE UNDOTTED DURATION OF THE PREVIOUS NOTE"
790 PRINT "        IS USED."
800 PRINT
810 PRINT "OCT     IS A NUMBER BETWEEN 0 AND 4 THAT SPECIFIES THE OCTAVE"
820 PRINT "        THAT THE CURRENT NOTE IS TO BE PLAYED IN.  AS WITH"
830 PRINT "        DURATION, THE OCTAVE SPECIFICATION IS RETAINED UNTIL"
840 PRINT "        A NEW ONE IS ENTERED.  ALSO, THE OCTAVE MUST BE"
850 PRINT "        SPECIFIED IN THE FIRST NOTE OF THE PIECE."
860 PRINT
870 PRINT
880 PRINT
890 INPUT "HIT RETURN TO CONTINUE.";A$
900 PLOT  6,6,12
910 PRINT "EXAMPLES OF NOTE ENTRIES:"
920 PRINT
930 PRINT
940 PRINT "    AN ENTRY OF THE NOTES:  BE2"
950 PRINT TAB( 29);"DQ":PRINT TAB( 29);"DQ.":PRINT TAB( 29);"RE":PRINT TAB( 29);"BE"
960 PRINT TAB( 29);"DQ":PRINT TAB( 29);"EQ.":PRINT TAB( 29);"RE":PRINT TAB( 29);"QU"
970 PRINT
980 PRINT "    WILL INPUT TWO MEASURES OF THE ABBA SONG 'DOES YOUR"
990 PRINT  "    MOTHER KNOW?'"
1000 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :PRINT
1010 INPUT "HIT RETURN TO CONTINUE";A$
1020 PLOT  6,6,12
1030 PRINT "    WHEN THE 'COMP' COMMAND IS INPUT, THE PROGRAM WILL ANALYZE"
1040 PRINT "THE NOTE ARRAY AND PRODUCE PITCH AND DURATION ARRAYS.  THESE"
1050 PRINT "TWO ARRAYS ARE COMPATIBLE WITH THE SOUNDWARE DEVICE AND WILL"
1060 PRINT "PRODUCE TONES CORRESPONDING TO THE NOTES IN THE NOTE TABLE."
1070 PRINT :PRINT :PRINT :PRINT
1080 PRINT "    THE 'DISP' COMMAND WILL DISPLAY THE NOTE, PITCH, AND DURA-"
1090 PRINT "TION ARRAYS, 20 ENTRIES PER SCREEN.  RESTS ARE INDICATED AS"
1100 PRINT "NEGATIVE PITCHES AND DURATIONS."
1110 PRINT :PRINT :PRINT :PRINT
1120 PRINT "    THE COMMAND 'PLAY' WILL PLAY MUSIC THAT IS IN MEMORY AND"
1130 PRINT "THAT HAS BEEN COMPILED USING THE 'COMP' COMMAND."
1140 PRINT :PRINT :PRINT :PRINT
1150 PRINT "    THE 'SAVE' COMMAND, WHEN EXECUTED, WILL PROMPT YOU FOR A"
1160 PRINT "FILE NAME AND WILL SAVE THE NOTE ARRAY UNDER THAT NAME ON THE"
1170 PRINT "DISK.  WARNING THEIR MUST BE A DISK IN THE DISK DRIVE, OR IT"
1180 PRINT "WILL KEEP ON RUNNING UNTIL YOU HIT 'CPU RESET'."
1190 PRINT :PRINT :PRINT
1200 INPUT "HIT RETURN TO CONTINUE.";A$
1210 PLOT  6,6,12
1220 PRINT "     WHEN THE COMMAND 'LOAD' IS EXECUTED, IT WILL PROMPT YOU"
1230 PRINT "FOR A FILE NAME, FROM WHICH IT WILL LOAD THE NOTE ARRAY INTO"
1240 PRINT "MEMORY.  NOTE:  YOU MUST COMPILE BEFORE PLAYING.  THE SAME"
1250 PRINT "WARNING FOR 'SAVE' APPLIES FOR 'LOAD'."
1260 PRINT :PRINT :PRINT :PRINT
1270 PRINT "    THE COMMAND 'QUIT' RETURNS YOU TO BASIC."
1280 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :PRINT
1290 INPUT  "HIT RETURN TO RETURN TO THE MENU.";A$
1300 LOAD  "MENU":RUN
1310 END