It may not be Frankie Goes to Hollywood, but this tune from JS Bach, translated into the language of your Amstrad speaks by Nigel Hester, illustrates the extent of your machine's musical talents. And the techniques used can be easily adapted to other famous songs.Your Amstrad may be a lot more musical than you think. the program here, Gavotte, displays the machine's ability to produce three channel sound. The tune in question is by J S Bach, and while I appreciate that many readers won't be classical music lovers, the program does show how superbly the Amstrad can handle quite complicated three part harmony.Perhaps more importantly the program shows how easily music can be written, without getting involved with ON SQL GOSUB, etc.The program sounds good through the computer on its own but the results are quite stunning when played through a stereo system.The techniques involved in writing three part music on the Amstrad are quite simple using this method:
<br />
FOR N=1 to X where X = the number of notes
<br />
READ C1,C2,C4 where C will represent the frequency of the note as contained in the DATA for each channel
<br />
SOUND 1,C1,Y;SOUND 2,C2,Y;SOUND 4,C4,Y where Y is the duration of each note
<br />
DATA consisting of the frequencies of the notes
Each line of DATA in the program represents half a bar of music.To keep the program simple, I have not used volume and tone envelopes (ENV & ENT). These, of course, could be specified to further improve the musical quality.The music was written from a piano manuscript and is in two parts with each part repeated. The listing shows these two parts as two blocks of DATA with a repeat loop.The duration of the note in the SOUND command corresponds to the shortest note found within the bars of music.The number '0' in the DATA signifies a rest, so that ideally that particular channel remains silent. However, although a note is not sounded there is an audible click. Therefore, if you are writing music which contains a lot of rests, it is preferable to replace 0 with 1 (a very high pitched inaudible note).<br /> How It Works<br />
40-270 Set up data for first half of music with one repeat loop
<br />
280-680 Set up data for second half of music with one repeat loop
<br />
690-720 Set up end display
<br />
730 Sets up screen for initial displays
<br />
740-860 Set up three time delays to synchronize the opening titles with a simple 'fanfare'