Multivoice Music on the Model 100 Club 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE by George Dunsay This text is written for those people who would like to write their own simulated multivoice music. It assumes you can understand some basic music terms as well as read music. My two Christmas music programs in the database were written shortly after I created this technique. It is not that old and I hope that it can be improved by others. Please refer to those pieces to see how it is augmented. #1) DEFINING THE NOTES To simplify calling up the notes in sequence and conserve memory I set up a 1 dimsnl array called S(x), where x varies from 1 to 48. This defines 4 octaves of notes from low f# to high g#. See Model 100 manuel page 180 for chart. Since each octave has 12 notes (including # and b), the 48 notes give you a range of 4 octaves. So your program sould start as follows: 10 Dim S(48) 15 For X=48 To 1 Step-1:ReadS(X):NextX 20 Data 415,439,etc. Continue to write data lines to include all the pitchs on page 180 (from 415 to 6269). You now have 4 octaves to choose from. Your selections are as follows: HIGH.................LOW NOTE OCT#1 OCT#2 OCT#3 OCT#4 F#,Gb S(48) S(36) S(24) S(12) F S(47) S(35) S(23) S(11) E S(46) S(34) S(22) S(10) D#,Eb S(45) S(33) S(21) S(9) D S(44) S(32) S(20) S(8) C#,Db S(43) S(31) S(19) S(7) C S(42) S(30) S(18) S(6) B S(41) S(29) S(17) S(5) A#,Bb S(40) S(28) S(16) S(4) A S(39) S(27) S(15) S(3) G#,Ab S(38) S(26) S(14) S(2) G S(37) S(25) S(13) S(1) #2) PLAYING THE NOTES The following lines of program actully play the notes: 100 Read A,B,C 110 For X=1 To C*V 120 Sound S(A),1:Sound S(B),1 130 Goto 100 200 Data (values of A B and C) That's all thats needed! You will notice there are 4 variables A B C and V. C is used to determine the legnth of each note. Use the following values: Length: C Value: Whole 32 Half 16 Quarter 8 Eighth 4 etc. If when you play the song you do not like the speed, you can change it by assigning a value to V. Twice as fast - V=2 Half as fast - V=.5 vary V until you find a speed you like. #3) HOW MULTISOUND IS CREATED We haven't discussed the variables A and B yet. They create the unique mulktisound. What I an doing is making the Model 100 jump back and forth between 2 notes. Since each jump takes about 1/50th of a second your ears are fooled into believing you are hearing more than one note at a time. The notes you select are critical to produce good hermonious music. Below are a few suggestions: A) Write your music using primarily the 2nd and 3rd octave. Use variable A for your actual notes. Make variable B equal to A+12. This is causing the computer to jump up and down an octave but play the same note. This does not simulate chords but does give a rich, full sound. Therefore if you wanted to play ABCD, where A & C are half notes and B & D are quarter notes, your data line would look like this: 200 Data 15,27,16,17,29,8,18,30,16,20,32,8 B) Create Multivoice chords by jumping between the proper note and the name of the chord. Example: If the note you wish is A and the chord is Eb Minor, jump between A & Eb. The chord note should be at least 1 octave higher the the proper note. I hope this explains the basics of Multivoice. I have tried to keep it as simple as possible. If you have any problems, questions or comments try to contact me. Please look at the 2 Xmas pieces to get a better feel for the technique. (Sorry, but the graphics complicate those two programs). GOOD LUCK !!! George Dunsay