home *** CD-ROM | disk | FTP | other *** search
/ Die Multimedia Power-CD / MULTIMEDIA.bin / rol_play / admuse30 / admuse3.doc < prev    next >
Text File  |  1990-02-13  |  98KB  |  2,116 lines

  1.          ___AdMuse__________________________________February 12, 1990___
  2.  
  3.          ________________________ Documentation _______________________
  4.  
  5.  
  6.                                      AdMuse
  7.  
  8.  
  9.  
  10.                                AdMuse Version 3.0
  11.                                 by Bob Calbridge
  12.                                December 26, 1989
  13.  
  14.         Foreword
  15.         ========
  16.  
  17.         The executable and source code for AdMuse is copyrighted by the
  18.         author.  The right to distribute this program is granted to all.
  19.         This does not grant anyone but the author the right to collect
  20.         any monies for the product other than a fair price for copying
  21.         costs.  ("Fair", to the author, means the cost of a diskette, a
  22.         label, mailing cost, and a dollar worth of labor.  It only takes
  23.         about 50 seconds to copy a diskette.  At this rate, you could
  24.         earn over 60 dollars an hour by copying this program.)  The
  25.         accompanying documentation is also considered to be part of the
  26.         package and is not to be modified, or deleted from, any
  27.         distributed form of the package, including compressed and/or
  28.         library (archived) type files.  Permission is granted to end
  29.         users to modify it for their own use as long as the modified
  30.         form is not passed on to others.  Under no circumstance is
  31.         permission granted to remove any mention of the author's name or
  32.         address where it might appear in either documentation or in the
  33.         executable code.
  34.  
  35.         Please pass on the original files to friends, co-workers,
  36.         enemies and strangers who have AdLib cards.
  37.  
  38.         This package is distributed under the Shareware concept.  This
  39.         means that the author would really appreciate being compensated
  40.         for his efforts in producing this product.  Response of this
  41.         nature urges the author to improve the product or to develop
  42.         other products of similar usefulness.   A price of $10.00 is
  43.         asked, though greater amounts will not be refused.  The money
  44.         will be used to restore the health I lost staying up 'til three
  45.         AM making this thing work.  The test period for AdMuse is one
  46.         week.  After this time you need to decide if AdMuse is worth the
  47.         asking price.  If so, use the registraion form at the end of the
  48.         documentation to help me keep track of the who has this version.
  49.         You will be notified of updates to AdMuse.  Local users will be
  50.         given the name of any local bulletin boards that contain the
  51.         update.  Users outside the immediate Dallas area will be asked
  52.         to send a self-addressed diskette mailer along with a diskette.
  53.         Notification will include a list of all added features along
  54.         with an explanation of how they work, so you can decide if it is
  55. .*..
  56.         worth the effort.
  57.  
  58.         At any rate, I (the aforementioned author) welcome any comments
  59.         and suggestions any users of AdMuse might have concerning
  60.         improvements for this program.  I am especially uneager, but
  61.         AdMuse______________________________________________ Page 1
  62.          ___AdMuse__________________________________February 12, 1990___
  63.  
  64.          ________________________ Documentation _______________________
  65.  
  66.  
  67.         willing, to hear about any bugs you may find in this code.  I
  68.         will try to respond promptly to bugs in the program.  If you
  69.         have any suggestions for improvements I ask that you make your
  70.         suggestion with some detail.  By this I mean that if you have a
  71.         feature you would like to have added to the program, explain the
  72.         feature along with how you would like to see it coded.  For
  73.         example, if you would like to see a feature that would let you
  74.         specify a smooth increase or decrease in volume of any single or
  75.         multiple voice selection, explain how you think it should be
  76.         expressed in the code (i.e. how to say you want a continuous
  77.         volume change, what voice(s) is(are) involved, the step rate,
  78.         the maximum volume, etc.)  Some things may not be practical to
  79.         implement.  The program, in its present form, doesn't like to
  80.         look ahead more than one character.  Therefore, as in the
  81.         preceding example, if you wanted to try something like  1) begin
  82.         a volume increase beginning at the current volume, 2) increase
  83.         the volume to a maximum of .85 at the point you find an
  84.         _end_volume_increase_ marker,  it would be difficult to look
  85.         ahead and calculate the step rate and the step spacing.
  86.  
  87.         Now for the disclaimers.  Great care has been put into this
  88.         program.  However, it has been said that nothing is foolproof
  89.         (no aspersions intended).  This program has been tested for all
  90.         foreseeable problems.  How far I can see to the fore is up for
  91.         debate.  All that I can say is that there are no intentionally
  92.         destructive code segments in this package.  Having made the user
  93.         aware of these facts, I further state that I accept no
  94.         responsibility for any problems that may arise from the use of
  95.         this program, be it harm to hardware or software, unless it can
  96.         be proven that a deliberate effort was made on my part to cause
  97.         such.
  98.  
  99.         The above mentioned comments, suggestions, criticism, et al. can
  100.         be sent to the me via my hard copy address:
  101.  
  102.                Bob Calbridge
  103.                12904 Elam Road, Apt. 101
  104.                Balch Springs, TX 75180         <--- Dallas is a suburb
  105.  
  106.         If sending to me at home, don't forget the apartment number.
  107.         The mailman has a habit of returning mail without it.  Oh, and
  108.         you can send checks there too.
  109.  
  110. .*..
  111.         I've also been known to haunt the User-to-User bulletin board
  112.         system in the Dallas area.  I regularly read the AdLib
  113.         conference.
  114.  
  115.                I can generally be reached via e-mail at The Unix
  116.         Connection.  My user id on this system is "bobc".  The node name
  117.         is "attctc".
  118.  
  119.                                      AdMuse
  120.                   Copyright (C) 1990, Robert A. Calbridge, Jr.
  121.         AdMuse______________________________________________ Page 2
  122.           ___AdMuse__________________________________February 12, 1990___
  123.  
  124.          ________________________ Documentation _______________________
  125.  
  126.  
  127.         Introduction
  128.         ============
  129.  
  130.         Some history
  131.         ------------
  132.  
  133.         This is version 3.0 of AdMuse.  Versions 1.0 through 2.X are
  134.         obscure because they were distributed to just a few people.
  135.         They were also developed for different type systems.  Version 1
  136.         was written for an S-100 system using a digital-to-analog
  137.         converter card manufactured by a company called NewTech.
  138.         Version 2 was written for a C-128 running CP/M and used the SID
  139.         chip for output.  Version 2.0 was written in Z-80 assembler and
  140.         contained within its mere 12K of program space a screen editor,
  141.         a code compiler, a song player, an instrument selection menu,
  142.         and an instrument designer and banking program.
  143.  
  144.         Version 3.0 is a large leap from the previous two.  This is
  145.         mainly due to the capabilities of the AdLib card.  Now seemed to
  146.         be the time to release it as there is now a large contingent of
  147.         PC owners out there that possess either AdLib cards or
  148.         compatible cards of another make.
  149.  
  150.         For the record, AdMuse was developed using Turbo C 2.0, using
  151.         the large memory model.
  152.  
  153.  
  154.         What this is
  155.         ------------
  156.  
  157.         Back in the dark ages when a personal computer was something
  158.         that you had to put together by yourself, there was a company
  159.         that produced peripherals for the S-100 bus machines.  One of
  160.         these peripherals was a very simple board that would take the
  161.         condition of the interrupt flip-flop and pass it on to an
  162.         external amplifier.  The board came with a program that could
  163.         produce music in three voices through this board.  The main
  164.         problem with the board was that the sound was quite raspy.
  165. .*..
  166.         Despite this, it was quite an accomplishment for its time
  167.         considering the nature of the equipment.
  168.  
  169.         Today's PC world has a number of good cards that produce better
  170.         sound and more voices.  Chief among these is the AdLib card.
  171.         The AdLib card has an eleven voice capability in percussive mode
  172.         and nine in melodic mode.  The AdLib is supported by an
  173.         impressive number of PC games that use it for sound effects and
  174.         music.
  175.  
  176.         The primary storage format of stand-alone songs for the AdLib
  177.         card is usually contained in files with a .ROL extension.  The
  178.         primary method of entering songs is by way of a program provided
  179.         by AdLib called The Visual Composer.  The Visual Composer does a
  180.         good job of providing a means of entering songs.  In a way, the
  181.         screen looks something like a roll of music for a player piano.
  182.         AdMuse______________________________________________ Page 3
  183.           ___AdMuse__________________________________February 12, 1990___
  184.  
  185.          ________________________ Documentation _______________________
  186.  
  187.  
  188.         Using a mouse with The Visual Composer helps with the process.
  189.         However, there have been people for whom even this method of
  190.         transcribing doesn't work well.  That is the reason for AdMuse.
  191.  
  192.         AdMuse attempts to take the coding system employed on the old
  193.         S-100 bus system and use it to produce a ROL file.  This first
  194.         release of the program may not address all the needs of someone
  195.         transcribing music.  The program attempts to conform to the
  196.         original coding method with some extensions added for the
  197.         purpose of The Visual Composer.  In a later revision there will
  198.         be some modifications to allow for chords, glissendoes,
  199.         arpegiation and accentuation (if I can find an appropriate way
  200.         of reducing it to text notation).
  201.         AdMuse______________________________________________ Page 4
  202.           ___AdMuse__________________________________February 12, 1990___
  203.  
  204.          ________________________ Documentation _______________________
  205.  
  206.  
  207.         Where this program shines
  208.         -------------------------
  209.  
  210.         (1) One of the major complaints that I've heard concerning The
  211.         Visual Composer is that it doesn't address the problem of
  212.         triplets.  A triplet is a series of three notes that is played
  213.         in the space of two.  The Visual Composer doesn't restrict this
  214.         type of notation but it does complicate it.  It is necessary to
  215.         scan your music and determine in advance if a triplet is
  216.         required.  You must then determine how many ticks per beat you
  217.         must define and this value must be a multiple of three.  AdMuse
  218.         will do the necessary calculations and set the ticks per beat as
  219.         necessary.
  220. .*..
  221.  
  222.         (2) AdMuse uses a text code rather than a graphic method.  There
  223.         are several advantages to this.  First, if you are an
  224.         accomplished typist, you can keep the sheet music off to the
  225.         side and perform eye to hand transcribing with very little need
  226.         to watch the screen.  Secondly, changes are easier to locate in
  227.         the code and modifications in the code are handled through your
  228.         own preferred ASCII editor.  Thirdly, the ASCII nature of the
  229.         text makes it easy to use e-mail systems to pass code to others.
  230.         Finally, text code is easier to print out.  It is more concise
  231.         than the graphics oriented output of the VCPRINT program and
  232.         prints faster.
  233.  
  234.         (3) AdMuse provides for articulation.  This means that you can
  235.         declare individual notes as staccato.  There are three types of
  236.         articulation - short, long and extended.  I intend that future
  237.         versions of the program will permit automatic articulation of
  238.         ranges of individual voices or the entire piece.
  239.  
  240.         (4) AdMuse permits you to declare a key up front and allows you
  241.         to change it in the middle of a piece.  The key declaration will
  242.         automatically provide sharps and flats for a given note if the
  243.         key demands it.  You may individually make a note natural for
  244.         the duration of a measure to cancel a sharp or flat or you may
  245.         temporarily change a note to a sharp or flat for a measure.
  246.  
  247.         (5) The coding method allows you to place markers at the
  248.         beginning of parts.  The beginning of another part marks the end
  249.         of the preceding part.  These markers permit the program to
  250.         repeat the part at other points in the program without having to
  251.         re-enter the code.  Under the Visual Composer this requires
  252.         finding the beginning and end of a part and duplicating it
  253.         through a cut and paste process.  This is tedious when trying to
  254.         keep track of your measure numbers.
  255.  
  256.         (6) AdMuse provides the facility for the user to define his own
  257.         ASCII editor and an option for the user to call that editor from
  258.         within the program.  This feature reduces the need to enter the
  259.         editor, exit the editor, enter AdMuse, compile the code, find an
  260.         error, exit AdMuse, enter the editor, .......
  261.         etc.
  262.         AdMuse______________________________________________ Page 5
  263.            ___AdMuse__________________________________February 12, 1990___
  264.  
  265.          ________________________ Documentation _______________________
  266.  
  267.  
  268.         (7) AdMuse provides a similar option for the user to define a
  269.         stand-alone player program for testing his code.
  270.  
  271.  
  272.  
  273.         Possible problems with AdMuse
  274.         -----------------------------
  275. .*..
  276.  
  277.         (1) AdMuse is pretty free form in what it demands of the code.
  278.         The original coding method was a bit more free form than I made
  279.         this version.  This version demands that modifiers immediately
  280.         follow the code segment it is meant to modify.  Otherwise, you
  281.         are free to sprinkle white space where you please.  In some
  282.         cases a blank is demanded such as demarcating the end of a
  283.         measure declaration.
  284.  
  285.         (2) The free form nature of the code makes no restrictions on
  286.         the definition of a measure.  This makes it possible to enter
  287.         notes within a measure that exceed the total number of beats per
  288.         measure.  The nature of the program is such that if a mistake is
  289.         made for a single voice, the error is not propagated beyond the
  290.         measure.  However, the error can be carried into the next
  291.         measure if looked at through The Visual Composer.  I have added
  292.         a special function to the program that allows you to define the
  293.         number of beats per measure.  This, combined with the definition
  294.         of a beat allows the program to alert you if a measure comes out
  295.         long or short.
  296.  
  297.         (3) Use of articulation demands that the number of ticks per
  298.         beat be some multiple of three.  More precisely, a short
  299.         articulation is equivalent to 1/3 of a sixty-fourth note.  This
  300.         requires that a sixty-fourth note be split into three parts.  If
  301.         a measure is a total of a whole note it requires 192 ticks to
  302.         define the measure.  The integers used in a ROL file are signed.
  303.         This limits the total number of ticks that a voice can use to
  304.         about 32K.  This means that the total number of measures that
  305.         can be contained in a piece is 32K / 192 or approximately 166.
  306.         This is still a pretty large number and I have seen only one
  307.         piece of music that I have done to this point that came close.
  308.         And it was still short by about fifty measures.
  309.  
  310.         (4) Several parts of the coding system use hexadecimal notation.
  311.         In general this is not a problem since the system doesn't go
  312.         beyond a hex 'F'.  In terms of translation of the notes this is
  313.         the simplest method.  Believe me, it's not that difficult.
  314.  
  315.         (5) AdMuse allocates 10K of buffer space to each of the eleven
  316.         voices.  This was considered to be large enough to contain a
  317.         large song.  Since the ROL storage conventions require four
  318.         bytes per note this means that a song can contain 2.5K notes
  319.         before it starts to overlap into another buffer.  There are no
  320.         checks made to prevent this.  See the section near the end of
  321.         this documentation concerning future features for considerations
  322.         in further releases of the program that will address this
  323.         AdMuse______________________________________________ Page 6
  324.            ___AdMuse__________________________________February 12, 1990___
  325.  
  326.          ________________________ Documentation _______________________
  327.  
  328.  
  329.         limitation.
  330. .*..
  331.  
  332.         AdMuse was not written to take advantage of any special color or
  333.         graphics capability.  It is rather Plain_Jane in looks.  In
  334.         fact, there was no attempt to make the program look busy when it
  335.         is chugging along.  Besides the menu and error reporting there
  336.         is very little screen display.  Despite the simplicity of the
  337.         display it does quite a lot.
  338.         AdMuse______________________________________________ Page 7
  339.            ___AdMuse__________________________________February 12, 1990___
  340.  
  341.          ________________________ Documentation _______________________
  342.  
  343.  
  344.         Installation
  345.         ============
  346.  
  347.         AdMuse is a single program that only uses one support file.  The
  348.         executable file is named ADMUSE.EXE.  The support file is called
  349.         MUSE.CFG.  This file will be provided when the program is first
  350.         executed.
  351.  
  352.         Installation is as simple as copying the file either into a
  353.         working directory from which you will use it or into a directory
  354.         that falls within the environment's PATH variable.  When you
  355.         execute the program the configuration file will be created.  Be
  356.         aware that anytime you execute the program, if MUSE.CFG is not
  357.         in the current directory and the append command has been used to
  358.         specify a directory in which a file MUSE.CFG exists, the program
  359.         will draw its information from this file but create a new file
  360.         in the current directory.
  361.  
  362.         The program is invoked by entering "ADMUSE" <RETURN>.
  363.         AdMuse______________________________________________ Page 8
  364.           ___AdMuse__________________________________February 12, 1990___
  365.  
  366.          ________________________ Documentation _______________________
  367.  
  368.  
  369.         The Menu
  370.         ========
  371.  
  372.         Once AdMuse is invoked, the following menu is displayed
  373.  
  374.  
  375.  
  376.                                  Available options are:
  377.  
  378.                              1.) Set file name
  379.                              2.) Edit file
  380.                              3.) Build .ROL file
  381.                              4.) Change defaults
  382.                              5.) Play song
  383.                              6.) Unused
  384.                              7.) Unused
  385. .*..
  386.                              8.) Shell to DOS
  387.                              9.) Exit program
  388.  
  389.                                  Enter option:
  390.  
  391.         All options are single key.  That is, you don't need to press
  392.         RETURN to initiate the option.  The options are discussed in
  393.         detail in the following section.  The coding system is discussed
  394.         after that.
  395.  
  396.         Set file name
  397.         -------------
  398.  
  399.         AdMuse maintains the name of a working file in the configuration
  400.         file.  The name of this file is passed to the editor and the
  401.         player.  When this option is chosen you see a screen similar to
  402.         the following.
  403.  
  404.         ---------------------------------------------------------------
  405.         Current source filename is
  406.  
  407.         more.mus
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.         Enter new name of source file [RETURN for no change]
  415.  
  416.         --------------------------------------------------------------
  417.  
  418.         If a file has been previously defined it is displayed in the
  419.         upper left corner of the screen.  If you don't want to change
  420.         this, just press the RETURN key.  (That would be the ENTER key
  421.         to a lot of you.  I'm hard line on what I first called it).  If
  422.         you want to change the name of the file, type in the new file
  423.         name and press RETURN.
  424.         AdMuse______________________________________________ Page 9
  425.           ___AdMuse__________________________________February 12, 1990___
  426.  
  427.          ________________________ Documentation _______________________
  428.  
  429.  
  430.         The precise name of a file doesn't matter, as long you use
  431.         standard DOS naming conventions.  The extension may be anything
  432.         you choose except "ROL".  When you build a ".ROL" file with
  433.         option 3, the file name is stripped of any extension and the
  434.         ".ROL" is appended.  If you enter the source file with an
  435.         extension of "ROL" your source will be overwritten when the
  436.         output file is created.
  437.  
  438.  
  439.         Edit file
  440. .*..
  441.         ---------
  442.  
  443.         Option 2 is used to invoke the user defined editor.  The editor
  444.         is defined in option 4 below.
  445.  
  446.         When the editor is called, it is passed the name of the source
  447.         file by the simple convention
  448.  
  449.                 editor source.nam
  450.  
  451.         where "editor" is the name of the user defined editor specified
  452.         in the configuration file.  "source.nam" is the name of the
  453.         source file.  See the explanation under option 4 for a fuller
  454.         discussion on the nature of the source file name.
  455.  
  456.         If the editor hasn't been defined an error message will appear
  457.         stating so.  The user is then prompted to press any key to
  458.         continue.  Otherwise, the editor is called.  Should some problem
  459.         occur that prevents the editor from being run, another error
  460.         message will be displayed saying that the program failed in its
  461.         execution.
  462.  
  463.         Once you've finished editing your source, exit your editor and
  464.         you will be returned to the menu.
  465.  
  466.  
  467.         Build .ROL file
  468.         ---------------
  469.  
  470.         This option begins the process of building the .ROL file.  The
  471.         filename for the output file is taken from the name of the
  472.         source file.  The file extension is replaced by ".ROL".  The
  473.         directory into which the output file is placed is determined by
  474.         the appropriate entry in the configuration file (see option 4).
  475.         AdMuse______________________________________________ Page 10
  476.           ___AdMuse__________________________________February 12, 1990___
  477.  
  478.          ________________________ Documentation _______________________
  479.  
  480.  
  481.         Two things can happen during the build process.  The more
  482.         desirable is that no errors will be encountered and all you get
  483.         is a statement to that effect.  If this message appears the .ROL
  484.         file will have been generated.  Hit any key at this point to
  485.         return to the menu.  The other possibility is that an error was
  486.         discovered.  In this case the offending line is displayed near
  487.         the bottom of the screen with a marker pointing to the error.
  488.         In most cases the marker points directly to the character that
  489.         was responsible for the error.  In the case of special functions
  490.         (those that are enclosed in parentheses) the pointer will
  491.         generally appear at the closing (right hand) parenthesis.
  492.  
  493.         When an error is generated the compile process is stopped.
  494.         There is no attempt to recover from an error.  Errors prevent
  495. .*..
  496.         the generation of the output file.  You will then need to press
  497.         a key to return to the menu then edit the file to correct the
  498.         error.
  499.  
  500.         When a valid .ROL file is generated you may then use option 5 to
  501.         listen to the song, if you have a stand-along player available,
  502.         for testing.
  503.         AdMuse______________________________________________ Page 11
  504.           ___AdMuse__________________________________February 12, 1990___
  505.  
  506.          ________________________ Documentation _______________________
  507.  
  508.  
  509.         Change defaults
  510.         ---------------
  511.  
  512.         Option for allows the user to define a number of defaults for
  513.         the program to use.  The screen will look something like this.
  514.  
  515.         ------------------------------------------------------------
  516.         Input directory is
  517.  
  518.         \muse
  519.  
  520.  
  521.  
  522.         Default directory for input  file
  523.  
  524.         Default directory for output file
  525.  
  526.         Default editor name
  527.  
  528.         Default player
  529.  
  530.         ------------------------------------------------------------
  531.  
  532.         The user is prompted for each entry in turn.  The currently set
  533.         value for the option is displayed in the upper left corner.
  534.         Unlike with the entry of the name of the source file, you must
  535.         enter each of these in turn.  Merely pressing RETURN does not
  536.         keep the previous defaults.
  537.  
  538.                Default directory for input file
  539.                --------------------------------
  540.  
  541.                 This entry is used in conjunction with the name of the
  542.                 source file to generate the full name to be passed to
  543.                 the editor.
  544.  
  545.                 Default directory for output file
  546.                 ---------------------------------
  547.  
  548.                 When a .ROL file is being created, AdMuse first gets the
  549.                 name of the source file and replaces the extension with
  550. .*..
  551.                 the string ".ROL".  The resulting name is then combined
  552.                 with the string from this entry to determine where the
  553.                 output file will be placed.  The same process is used to
  554.                 create the name of the file that will be passed to the
  555.                 stand-alone player.
  556.  
  557.                 The allowable length of this field is 127 characters.
  558.  
  559.         NOTE:   In both directory entries a RETURN causes the program to
  560.                 use the current directory.
  561.         AdMuse______________________________________________ Page 12
  562.           ___AdMuse__________________________________February 12, 1990___
  563.  
  564.          ________________________ Documentation _______________________
  565.  
  566.  
  567.                 Default editor name
  568.                 -------------------
  569.  
  570.                 This is where the user places the name of his ASCII
  571.                 editor of preference.  This field can accept up to 127
  572.                 characters so you may specify a fully qualified path to
  573.                 the editor.  Otherwise, the editor must reside in your
  574.                 default directory or else fall within the range of the
  575.                 environment's PATH variable.
  576.  
  577.                 The editor specified should generate pure ASCII.  The
  578.                 program attempts to ignore all characters that fall in
  579.                 the IBM extended character range and all control
  580.                 characters other than carriage returns.  This may let
  581.                 some editors that embed such characters in their files
  582.                 qualify for use.
  583.  
  584.                 Default player
  585.                 --------------
  586.  
  587.                 This field accepts the name of any stand-alone player
  588.                 program such as Tracy Harton's PLAYROL.  The player
  589.                 program must accept the name of the ROL file as its
  590.                 argument
  591.  
  592.         Play song
  593.         ---------
  594.  
  595.         This option triggers the default player defined in option 4
  596.         above.  If the player program has not been specified, an error
  597.         message is displayed with a prompt to press any key to continue.
  598.         Otherwise, the player program is invoked and passed the name of
  599.         the output file generated by option 3.  If for any reason the
  600.         system cannot run the player program (lack of memory, cannot
  601.         find the program) a different message will be generated
  602.         prompting the user to check the defaults.  The player program is
  603.         invoked using the name of the player program followed by the
  604.         name of the .ROL file to play.  The name of the song to play is
  605. .*..
  606.         built up of the default output directory and the name of the
  607.         file that was created in option 3.
  608.  
  609.         Depending on the circumstances, one of three things can happen.
  610.         Ideally, the song will play.
  611.  
  612.         The second possibility is that a message will be displayed
  613.         stating that the player could not be invoked.  This could come
  614.         from a number of causes.  One is that there was not enough
  615.         memory to load the program.  Another is that the program was not
  616.         found.  If the player program depends on the sound driver being
  617.         loaded and is hasn't been, the player program will likely abort
  618.         without playing anything.  In this case, exit AdMuse and load
  619.         the sound driver.  Then re-enter AdMuse.
  620.  
  621.         The third possibility is that the program will execute but
  622.         AdMuse______________________________________________ Page 13
  623.           ___AdMuse__________________________________February 12, 1990___
  624.  
  625.          ________________________ Documentation _______________________
  626.  
  627.  
  628.         return some sort of error.  AdMuse cannot catch errorlevel codes
  629.         so the program may just flash by.
  630.         AdMuse______________________________________________ Page 14
  631.           ___AdMuse__________________________________February 12, 1990___
  632.  
  633.          ________________________ Documentation _______________________
  634.  
  635.  
  636.         Unused
  637.         ------
  638.  
  639.         Options 6 and 7 are reserved for possible future use.
  640.  
  641.         Shell to DOS
  642.         ------------
  643.  
  644.         Option 8 allows you to shell to DOS.  This is provided in lieu
  645.         of currently un-implemented options for directory searches.
  646.         This option will create another DOS shell above the AdMuse
  647.         program.  You can move around in the directories while in this
  648.         shell and modify files.  To return to AdMuse, type "EXIT"
  649.         followed by the RETURN (ENTER) key.  Keep in mind that any
  650.         directory changes made in the shell will be maintained when you
  651.         return to AdMuse.  Any changes to the environment are not kept.
  652.  
  653.         DO NOT use a DOS shell to load the sound driver.  This will
  654.         louse up the memory management system and there will be no way
  655.         to allocate memory from AdMuse.  Furthermore, doing this will
  656.         lock up the memory being used to run AdMuse and prevent it from
  657.         being used further until the system is reset.
  658.  
  659.  
  660. .*..
  661.         Exit program
  662.         ------------
  663.  
  664.         As it says.  This options gets you out of AdMuse.
  665.  
  666.  
  667.         How it works
  668.         ------------
  669.  
  670.         The general procedure with AdMuse is to edit a file using the
  671.         coding system described below.  Save the file before exiting the
  672.         editor.  Use the build option to look for coding errors and
  673.         generate the .ROL file if no errors are found.  Use option 5 to
  674.         test the output.  The player name defined in option 4 may be a
  675.         stand-alone player program such as PLAYROL or you may specify
  676.         the Visual Composer or Jukebox.  However, with the latter two
  677.         options you're limited to their methods of obtaining and playing
  678.         the song which may take time and/or take more effort than you
  679.         wish to exert.  Also remember that AdMuse remains in memory when
  680.         the player option is invoked which may take up too much memory
  681.         for larger songs to be played.  AdMuse takes up less than 60K of
  682.         program space so there should be plenty of room for most files.
  683.  
  684.         AdMuse______________________________________________ Page 15
  685.           ___AdMuse__________________________________February 12, 1990___
  686.  
  687.          ________________________ Documentation _______________________
  688.  
  689.  
  690.  
  691.         Now About the Music
  692.         ===================
  693.  
  694.         Some of the following discussion will be difficult to include in
  695.         a textual manner.  I'll do my best to describe various musical
  696.         symbols.  Nothing will replace a basic familiarity with music
  697.         notation.  However, a very basic knowledge is all that is needed
  698.         to use this system to transcribe from sheet music to code.
  699.  
  700.  
  701.         Some music basics
  702.         -----------------
  703.  
  704.         Music notation makes use of a series of five horizontal lines
  705.         and the intervening spaces.  This is known as the staff.  Each
  706.         line or space represents a note on the scale.  The staff can be
  707.         marked as either treble or bass.  The treble staff has a symbol
  708.         that resembles the ampersand (&) character with a spiral in the
  709.         bottom.  The bass staff is denoted by a symbol that looks like a
  710.         backward lower-case 'c' with a drooping bottom.  Each of these
  711.         symbols is referred to as a clef.
  712.  
  713.         Notes on a staff with a treble clef fall above middle C (a term
  714.         referring to one of a periodic set of notes.  More on this
  715. .*..
  716.         later).  Other symbols are placed on the staff to denote what
  717.         note is to be played.  The shape and form of these symbols
  718.         indicate how long the note is to be played relative to the
  719.         duration of the other notes and the location on the staff
  720.         specifies what note is to be played.
  721.         AdMuse______________________________________________ Page 16
  722.           ___AdMuse__________________________________February 12, 1990___
  723.  
  724.          ________________________ Documentation _______________________
  725.  
  726.  
  727.         NOTE:  The following figure represents the normal placement of
  728.         notes on a staff.  It is NOT the notation that is used in the
  729.         coding system.
  730.  
  731.                                                     -A-
  732.                                                   G
  733.         ---------------------------------------F-----------------------
  734.                                             E
  735.         ---------------------------------D-----------------------------
  736.                                       C
  737.         ---------------------------B-----------------------------------
  738.                                 A
  739.         ---------------------G-----------------------------------------
  740.                           F
  741.         ---------------E-----------------------------------------------
  742.                     D
  743.          middle -C-
  744.               B
  745.  
  746.         The above is the treble staff.  Notes may extend above it and
  747.         below it.  To handle notes below middle C a bass staff is used.
  748.         The following is a representation of the bass staff.
  749.  
  750.               D
  751.          middle -C-
  752.                    B
  753.         --------------A------------------------------------------------
  754.                          G
  755.         --------------------F------------------------------------------
  756.                                E
  757.         --------------------------D------------------------------------
  758.                                      C
  759.         --------------------------------B------------------------------
  760.                                            A
  761.         --------------------------------------G------------------------
  762.                                                  F
  763.                                                    -E-
  764.  
  765.         Notice the correlation of the location of middle C.  This is a
  766.         common point for both staffs.  The same holds true for the
  767.         coding system.  However, where in the normal notation system the
  768.         designation for the notes maintains the same progression, the
  769.         coding system reverses at middle C.
  770. .*..
  771.  
  772.         To relate this to the keys on a piano, if you look at the two
  773.         black keys in the middle of the keyboard, the white key to the
  774.         left of this pair is middle C.  The white key to the right of
  775.         middle C is D, the next white key to the right is E and so
  776.         forth.  The white keys are called naturals.  The black keys are
  777.         either sharps or flats.  Not all naturals have corresponding
  778.         sharps or flats.  Naturals only go as high as G before they
  779.         begin over again at A.  This is why the notes are grouped in
  780.         octaves.
  781.         AdMuse______________________________________________ Page 17
  782.           ___AdMuse__________________________________February 12, 1990___
  783.  
  784.          ________________________ Documentation _______________________
  785.  
  786.  
  787.         If you wanted to indicate that the note "G above middle C"
  788.         should be played, you would place a note on the second line up
  789.         of the treble staff.  What symbol we place on the line
  790.         determines how long we hold the note.  A whole note is
  791.         represented by a symbol that is an open circle.  A whole note is
  792.         the longest single note that is represented by a single
  793.         character (longer notes can be held when a whole note is dotted.
  794.         Again, more of this later).
  795.  
  796.         A half note is designated by an open circle with a vertical line
  797.         extending either up or down, depending on how high up the staff
  798.         it is placed.  A half note is held for half the length of time
  799.         that a whole note is held.  Quarter notes are the same as half
  800.         notes except that the circle is filled in.  Not surprisingly it
  801.         is held for one quarter the time that a whole note is held.
  802.  
  803.         Progressively we further have eighth notes, sixteenths,
  804.         thirty-secondths and sixty-fourth notes.  Each of these is
  805.         represented by the same note as a quarter note except  for a
  806.         flag dangling from the vertical line for each division by two.
  807.         That is, an eighth note has a single flag, a sixteenth has two,
  808.         a thirty-secondth has three and a sixty-fourth has four.
  809.  
  810.  
  811.         Using the code
  812.         --------------
  813.  
  814.         Discussion beginning here will dwell on getting notes and their
  815.         durations into the code.  It should be noted that there is a
  816.         certain degree of preamble required in the code before notes
  817.         should be entered but discussing the use of notes will make
  818.         clearer some of the other topics which will be discussed later.
  819.  
  820.  
  821.         Duration
  822.         --------
  823.  
  824.         The following characters determine the duration of notes.
  825. .*..
  826.  
  827.                 W       Whole note
  828.                 H       Half note
  829.                 Q       Quarter note
  830.                 I       Eighth note
  831.                 S       Sixteenth note
  832.                 T       Thirty-secondth note
  833.                 X       Sixty-fourth note
  834.  
  835.         When one of these characters appears in the code it means that
  836.         all notes following will be held for that duration until such
  837.         time as a new duration is declared.
  838.         AdMuse______________________________________________ Page 18
  839.           ___AdMuse__________________________________February 12, 1990___
  840.  
  841.          ________________________ Documentation _______________________
  842.  
  843.  
  844.         The notes
  845.         ---------
  846.  
  847.         What notes are played are specified in a hexadecimal notation.
  848.         This means that single digit numbers are used that range from 0
  849.         to 'F'.  In hexadecimal notation the regular digits 0 through 9
  850.         are what they look like.  The letters 'A' through 'F' represent
  851.         the numbers 10 through 15.  This notation makes it easy to
  852.         represent notes with a single character.  At the same time,
  853.         restricting it to single characters like this does limit the
  854.         top-most note that can be represented.  There are other methods
  855.         of reaching higher notes that will be discussed later.  For the
  856.         moment it will be enough to present the following figure.
  857.  
  858.                                                           F
  859.                                                      -E-
  860.                                                    D
  861.                                               -C-
  862.                                             B
  863.         ---------------------------------A------------------------------
  864.                                       9
  865.         ---------------------------8------------------------------------
  866.                                 7
  867.         ---------------------6------------------------------------------
  868.                           5
  869.         ---------------4-----------------------------------------------
  870.                     3
  871.         ---------2-----------------------------------------------------
  872.               1
  873.          -0-
  874.  
  875.         This is the treble clef.  Whenever the character '0' is
  876.         encountered the note middle C is played (with the provision that
  877.         the key signature doesn't say otherwise).  If you enter the
  878.         character '4' it will cause a 'G' above middle C to be played.
  879.  
  880. .*..
  881.         The following code would play the scale.
  882.  
  883.                 I01234567
  884.  
  885.         The character 'I' says play all following notes as eighth notes.
  886.         Each of the numbers play the notes 'CDEFGABC' where the note D
  887.         is represented by '1', the note E is represented by '2' and so
  888.         forth until C 1 above middle C is represented by '7'.
  889.  
  890.         If we had entered
  891.  
  892.                 I0123Q4567
  893.  
  894.         the first four notes would have been played as eighth notes and
  895.         the last four would have been played as quarter notes.
  896.         AdMuse______________________________________________ Page 19
  897.           ___AdMuse__________________________________February 12, 1990___
  898.  
  899.          ________________________ Documentation _______________________
  900.  
  901.  
  902.         The bass clef is a sort of inverted treble clef.
  903.  
  904.  
  905.           -0-
  906.               1
  907.         ---------2-----------------------------------------------------
  908.                     3
  909.         ---------------4-----------------------------------------------
  910.                           5
  911.         ---------------------6-----------------------------------------
  912.                                 7
  913.         ---------------------------8-----------------------------------
  914.                                       9
  915.         ---------------------------------A-----------------------------
  916.                                             B
  917.                                               -C-
  918.                                                   D
  919.                                                     -E-
  920.                                                         F
  921.  
  922.         Changing the clef
  923.         -----------------
  924.  
  925.         The problem here is that we need a way to tell the program that
  926.         we want to use the bass clef.  For this we introduce two new
  927.         symbols.  When the program encounters the character '*' it means
  928.         that all the following notes are assumed to be on the treble
  929.         staff.  The character '@' switches all following characters to
  930.         the bass staff.  Notes posted to the bass staff are considered
  931.         to be negative.  Treble notes are considered positive.  For this
  932.         reason we use the plus (+) and minus (-) signs to force notes to
  933.         take values outside of their clef.  Often, in music notation,
  934.         you will find a note that is written relative to its staff but
  935. .*..
  936.         it falls outside of the five lines and four spaces.  If this is
  937.         above the treble staff or even one line below it there is no
  938.         problem if the treble clef has been specified with the '*'
  939.         symbol.  However, if the note we wish to play is below middle C
  940.         we can force it to act as if it were part of the bass staff by
  941.         placing a '-' in front of the note.  The reverse can be done
  942.         when the bass clef has been declared by placing a '+' in front
  943.         of the note, forcing it to be considered as if it were on the
  944.         treble staff.
  945.         AdMuse______________________________________________ Page 20
  946.           ___AdMuse__________________________________February 12, 1990___
  947.  
  948.          ________________________ Documentation _______________________
  949.  
  950.  
  951.         Examine the code
  952.  
  953.                 *Q01 @01
  954.  
  955.         will cause four notes to be played at a quarter note duration
  956.         each.  The first note played would be middle C.  The second
  957.         would be D.  The third would be middle C again and the fourth
  958.         would be B below middle C.  If we wanted to do this without
  959.         changing the clef declaration we would enter
  960.  
  961.                 *Q010-1
  962.  
  963.         Voices
  964.         ------
  965.  
  966.         So far this discussion has assumed only one voice.  The program
  967.         is designed to handle up to nine voices.  Although the AdLib
  968.         card is capable of handling eleven voices this is in percussive
  969.         mode.  Since the original coding system did not account for
  970.         percussive voices, I have elected to default all voices to
  971.         melodic.  There is a way to declare percussive mode but this
  972.         will be deferred until the section on special functions.
  973.  
  974.         To determine what voice is being referenced we will use the
  975.         character 'V' followed by the voice number.
  976.  
  977.                 V1*Q4834  V2*IFDC85463 V3@H1Q23
  978.  
  979.         says that both voices 1 and 2 will be played in the treble staff
  980.         and voice 3 will be played in the bass staff.   Specifying the
  981.         treble clef in voice 2 is not necessary.  Clef declarations,
  982.         like durations, remain in effect until otherwise change.
  983.  
  984.         Notice that the total time for each voice is the same.  If we
  985.         consider this to be the content of an entire measure it means
  986.         that a measure has a total duration of a whole note.  It could
  987.         be 4/4 (common time) or 8/8 or some such.  If the piece we were
  988.         transcribing was more like 3/4 time we would have to be careful
  989.         to limit our total time to the equivalent of three quarter
  990. .*..
  991.         notes.
  992.  
  993.         Let's look at line above with some changes.
  994.  
  995.                 V1*Q4834 V2*IFDC854 V3@H1Q23
  996.  
  997.         What we have done is remove the last two notes in voice 2.  This
  998.         does not create any major problems as long as the longest
  999.         duration of any voice represented does not exceed our intended
  1000.         number of beats.  Any voice that falls short of completing a
  1001.         measure (i.e. is shorter than the longest voice) is padded with
  1002.         rests to fill out the measure.  The padding is done at the end
  1003.         of the measure, never at the first.
  1004.         AdMuse______________________________________________ Page 21
  1005.           ___AdMuse__________________________________February 12, 1990___
  1006.  
  1007.          ________________________ Documentation _______________________
  1008.  
  1009.  
  1010.         One note of caution.  The program does not really care how long
  1011.         you make a measure.  The duration of one measure can vary from
  1012.         the duration of the following measure.  In terms of how the song
  1013.         would play it makes little difference.  However, if you were to
  1014.         read the .ROL file into The Visual Composer , it could create
  1015.         some imbalance.  Measures might not begin where they are
  1016.         supposed to.  There are provisions discussed later on that help
  1017.         to prevent this from happening.
  1018.  
  1019.  
  1020.         Measures
  1021.         --------
  1022.  
  1023.         All right, we've talked about notes within measures and total
  1024.         duration in a measure.  Let's see how we delimit what a measure
  1025.         is.  We now present the character 'M'.  When the program sees
  1026.         this character it recognizes it as the beginning of a new
  1027.         measure.  The 'M' character may be followed by any number of
  1028.         other characters up to a blank.
  1029.  
  1030.                    M23a V1*Q4834 V2*IFDC85463 V3@H1Q23
  1031.  
  1032.         All the characters up to the blank are ignored by the program.
  1033.         The purpose of this is simply to provide a point of reference in
  1034.         the event that a change needs to be made.  I generally use
  1035.         numbers exclusively.  My use of the letter 'a' occurs when there
  1036.         are variations in the repeat of a measure.  I mark my sheet
  1037.         music with successive numbers on each measure.  In some songs a
  1038.         part is repeated later in the piece.  It is not uncommon for a
  1039.         few of the notes to vary (usually indicated by smaller notes).
  1040.         In order not to assign a new number to the measure I will use
  1041.         additional letters as qualifiers.  Again, this is for reference
  1042.         only.  It has no effect on the code.
  1043.  
  1044.         When a measure is invoked several things take place.  All
  1045. .*..
  1046.         processing of any preceding measures is complete.  Padding takes
  1047.         place, if necessary, on voices in the preceding measure that
  1048.         were not as long as the longest voice. The current key is
  1049.         re-initialized.  The voice is automatically reset to voice 1.
  1050.         This is done as a convenience.  The clef is not reset.  The
  1051.         above code could just as easily have been entered as
  1052.  
  1053.                   M23a *Q4834 V2*IFDC85463 V3@H1Q23
  1054.  
  1055.         with the V1 removed.  There are other codes that force the same
  1056.         processing.  Anytime there is a change in the permanent key, a
  1057.         change in the tempo, a new part is invoked or a repeat of a
  1058.         previous part is called up the program will act as though it has
  1059.         begun a new measure as this is the same thing as if it had
  1060.         reached the end of a measure.
  1061.         AdMuse______________________________________________ Page 22
  1062.           ___AdMuse__________________________________February 12, 1990___
  1063.  
  1064.          ________________________ Documentation _______________________
  1065.  
  1066.  
  1067.         Parts
  1068.         -----
  1069.  
  1070.         In addition to measures, a piece may be broken down into parts.
  1071.         In sheet music there are portions of the piece that are
  1072.         repeated.  It is beyond the scope of this text to describe the
  1073.         use of Codas and such except that they are the equivalent of
  1074.         programming GOTOs.  In general you might find that your sheet
  1075.         music has an introductory portion of a few measures followed by
  1076.         the refrain.  Other than the refrain there is the chorus.  A
  1077.         rather broad generalization would be that the lyrics of the
  1078.         refrain change from one to the next.  The chorus is usually the
  1079.         same lyrics each time it is invoked.  A common pattern might
  1080.         look like
  1081.  
  1082.                 Introduction
  1083.                 Refrain
  1084.                 Refrain
  1085.                 Chorus
  1086.                 Refrain
  1087.                 Chorus
  1088.                 Ending
  1089.  
  1090.         Each invocation of the refrain may have a separate minor ending
  1091.         that would either lead it back into the next refrain or blend it
  1092.         into the chorus.
  1093.         AdMuse______________________________________________ Page 23
  1094.           ___AdMuse__________________________________February 12, 1990___
  1095.  
  1096.          ________________________ Documentation _______________________
  1097.  
  1098.  
  1099.         In the coding a part is marked by the character 'P'.  Each part
  1100. .*..
  1101.         is distinquished by a letter of the alphabet.  This limits the
  1102.         number of distinct parts to 26.  However, a letter may be reused
  1103.         if necessary.
  1104.         .
  1105.         .
  1106.         .
  1107.         PA                              INTRODUCTION
  1108.         M1 *Q1234 V2*5678 V3@H9A
  1109.         M2 *Q4321 V2*876I55 V3@HA9
  1110.         PB                      REFRAIN
  1111.         M3 .........
  1112.         M4 .........
  1113.         M5 .........
  1114.         .
  1115.         .
  1116.         M12 ..........
  1117.         PC                      BRIDGE OF REFRAIN TO REPEAT OF REFRAIN
  1118.         M13 ..........
  1119.         M14 ..........
  1120.         PD RB                   REPEAT OF REFRAIN
  1121.         PE                      BRIDGE FROM REPEAT OF REFRAIN TO CHORUS
  1122.         M15 ..........
  1123.         M16 ..........
  1124.         PF                      CHORUS
  1125.         M17 ..........
  1126.         .
  1127.         .
  1128.         .
  1129.         M18 ..........
  1130.         PG RB                   REPEAT OF REFRAIN
  1131.         PH                      BRIDGE FROM REFRAIN TO REPEAT OF CHORUS
  1132.         M19 .........
  1133.         M20 .........
  1134.         PI RF                   REPEAT OF CHORUS
  1135.         PJ                      ENDING
  1136.         M21 ........
  1137.         M22 ........
  1138.         M23 ........
  1139.         AdMuse______________________________________________ Page 24
  1140.           ___AdMuse__________________________________February 12, 1990___
  1141.  
  1142.          ________________________ Documentation _______________________
  1143.  
  1144.  
  1145.         Repeats
  1146.         -------
  1147.  
  1148.         In the sample above we have also introduced the repeat character
  1149.         'R'.  When a part character is encountered any previous parts
  1150.         are marked as ended and the new part is begun.  The repeat
  1151.         character is followed by the designation of the part to be
  1152.         repeated.  Invoking a part will automatically force an end of
  1153.         measure process.  Multiple repeats may be included within other
  1154.         parts as the generation of the .ROL code is done recursively.
  1155. .*..
  1156.         Be aware, however, that getting too complex with repeats may
  1157.         cause the stack to colide with the program or data areas.  The
  1158.         use of the part designation before the repeat is generally to
  1159.         simply force the end of the definition of the preceding part.
  1160.         Invoking a repeat does not end a part.  Attempting to repeat the
  1161.         current part will generate an error message as will trying to
  1162.         repeat a part that as yet has not been defined.
  1163.  
  1164.  
  1165.         Key
  1166.         ---
  1167.  
  1168.         So far our discussion has disregarded the key.  Without a key
  1169.         signature the default is the key of C.  To specify a key we use
  1170.         the character 'K'.
  1171.  
  1172.                 K1#   or
  1173.                 K2&   or
  1174.                 K2#   or
  1175.                 K1&   or
  1176.                 K
  1177.  
  1178.         A '#" is the symbol for a sharp and the '&' is a flat.  Looking
  1179.         at a music staff you will usually see a given number of these
  1180.         symbols.  If three flats appear on the staff you only have to
  1181.         specify "K3&".  A 'K' that is not immediately followed by a
  1182.         number is forced to the key of C.  This is generally not
  1183.         necessary since the default is C.  However, some songs will
  1184.         change key in the middle of a song.  A 'K' followed by a number
  1185.         between 1 and 7 must be followed by a '#' or '&'.  The digit
  1186.         following the 'K' must not be separated by white space.  This
  1187.         situation would force the key of C.
  1188.  
  1189.         The program will place the appropriate sharps and flats on the
  1190.         appropriate notes based on the key.
  1191.         AdMuse______________________________________________ Page 25
  1192.           ___AdMuse__________________________________February 12, 1990___
  1193.  
  1194.          ________________________ Documentation _______________________
  1195.  
  1196.  
  1197.         Accidentals
  1198.         -----------
  1199.  
  1200.         Any piece of music is apt to have notes that do not follow the
  1201.         key.  These are know as accidentals.  If in the course of
  1202.         transcribing a song, you encounter a note that is sharped or
  1203.         flatted outside of the key you simply follow the note with a
  1204.         sharp or flat symbol.
  1205.  
  1206.                 M23 *Q387#5 V2*4376 V3@H0Q35
  1207.  
  1208.         In voice 1 the note '7' is sharped.  This will make this note a
  1209.         sharp for the remainder of the measure.  Note however that voice
  1210. .*..
  1211.         2 also has a note '7' in it.  This note will also be sharped as
  1212.         a result of the prior '7' having been so.  Note '7' represents
  1213.         'C 1 above middle C'.  This means that any C found after this
  1214.         accidental will also be sharped.  Notice the note '0' in voice
  1215.         3.  This '0' represents middle C.  It too will be sharped even
  1216.         though in terms of position on the staff it appears before the C
  1217.         that actually received the sharp.  In order to correct this,
  1218.         assuming that there is no reason that it should be sharped, we
  1219.         need to return it to its natural state.  For this we use the
  1220.         symbol for a natural, '%'.  It is used in the same manner that
  1221.         we would use a sharp or flat.
  1222.  
  1223.                         M23 *Q387#5 V2*4376 V3@H0%Q35
  1224.  
  1225.         The natural notation can be used to either restore an accidental
  1226.         to its proper, natural state, or to force a normally sharped or
  1227.         flatted note to be natural for the remainder of the measure.
  1228.  
  1229.         Any accidentals assigned in a measure remain in effect only for
  1230.         that measure.  A new measure restores the key to the state
  1231.         specified in the latest key designation.
  1232.         AdMuse______________________________________________ Page 26
  1233.           ___AdMuse__________________________________February 12, 1990___
  1234.  
  1235.          ________________________ Documentation _______________________
  1236.  
  1237.  
  1238.         Articulators
  1239.         ------------
  1240.  
  1241.         There is one other set of modifiers for any given note.  These
  1242.         are the articulators.  These should follow a note immediately if
  1243.         used.  If a note is modified by an accidental the articulator
  1244.         should follow the accidental notation.
  1245.  
  1246.         An articulator is used to give a degree of staccato to a note.
  1247.         The first articulator is the single quote, also know as an
  1248.         apostrophe (').  This causes the note to be shortened by the
  1249.         equivalent of one-third of a sixty-fourth note.  A rest is added
  1250.         to fill in the space.  A longer articulation is achieved with
  1251.         the double quote (").  This is twice the length of the short
  1252.         articulation.  As with the shorter articulation, a rest is added
  1253.         to maintain the full length.  Finally, there is the extended
  1254.         articulator, the comma (,).  This essentially cuts the length of
  1255.         the note in half.  A rest balances out the remainder of the
  1256.         duration of the note.
  1257.  
  1258.         A further enhancement may be forthcoming in a future version
  1259.         that will permit the coder to begin an automatic articulation
  1260.         for the current voice until it is toggled off.  Articulation
  1261.         causes two notes to be produced for each articulated note.  It
  1262.         also causes the number of ticks per beat to increase.
  1263.  
  1264.  
  1265. .*..
  1266.         Dotted notes and triplets
  1267.         -------------------------
  1268.  
  1269.         Returning, for the moment, to the topic of duration, we need to
  1270.         discuss two modifiers that may be applied.  The first is the dot
  1271.         (.).  A dotted note plays that note for half again the duration
  1272.         of the note.  A dotted quarter note is held for the equivalent
  1273.         time of three eighth notes, or, one and a half quarter notes.  A
  1274.         dotted half note is held for the length of three quarter notes.
  1275.         The dot (.) must immediately follow the duration specification.
  1276.  
  1277.                 M30 *Q.1I3Q56
  1278.  
  1279.         The above segment represents a total duration of a whole note.
  1280.         The first duration is held for the length of one and a half
  1281.         quarter notes or three eighth notes.  The next duration is an
  1282.         eighth note so our total is now four eighth notes or one-half.
  1283.         The remaining two notes, each held for the length of a quarter
  1284.         note round out a whole note.
  1285.         AdMuse______________________________________________ Page 27
  1286.           ___AdMuse__________________________________February 12, 1990___
  1287.  
  1288.          ________________________ Documentation _______________________
  1289.  
  1290.  
  1291.         The other modifier for a note's duration is the double dotted
  1292.         note represented by a colon (:).  This actually stands for a
  1293.         triplet.  A triplet is a set of three notes that are played in
  1294.         the same time as two notes.  The equivalent time for the note is
  1295.         two-thirds of the base duration.
  1296.  
  1297.                 M17 *Q:345H6
  1298.  
  1299.         The above has three notes played as a triplet.  The total time
  1300.         of the three notes is equivalent to a half note.  The other half
  1301.         note balances out the measure.
  1302.  
  1303.         Double dotted and single dotted notation can be used in
  1304.         combination with each other but the order has to be with the
  1305.         double dot specifier first (e.g. Q:.).  The reverse order will
  1306.         generate an error.
  1307.  
  1308.  
  1309.         Extending the note range
  1310.         ------------------------
  1311.  
  1312.         As is probably obvious, there is a limitation to the range of
  1313.         notes that this coding method permits.  As is often the case the
  1314.         notes go beyond the top limit of the coding scheme (+F) or below
  1315.         the lower limit (-F).  There is a method of extending this
  1316.         range.  This is by using the '^' operator.  This character
  1317.         causes the current voice to be raised or lowered.  The syntax is
  1318.         "^+#" or "^-#" where, in this case, the '#' is replaced by a
  1319.         hexadecimal number from 0 to F.  When this operator is
  1320. .*..
  1321.         encountered it acts on the current voice only.  It causes all
  1322.         successive notes to be raised or lowered by the specified number
  1323.         of whole steps (i.e. lines and spaces on the staff).  In order
  1324.         to return to the normal, non-transposed voice mode, use the
  1325.         string "^+0".
  1326.  
  1327.         This is usually a temporary action if used to stretch the range
  1328.         of the scale.  However, there is another use for this function.
  1329.         Some sheet music is written for other instruments than piano.
  1330.         These instruments may be soprano, tenor or alto in nature.  By
  1331.         making adjustments in these values a voice can be reserved for
  1332.         these instruments and the notation transposed.
  1333.         AdMuse______________________________________________ Page 28
  1334.           ___AdMuse__________________________________February 12, 1990___
  1335.  
  1336.          ________________________ Documentation _______________________
  1337.  
  1338.  
  1339.         Transposing the scale
  1340.         ---------------------
  1341.  
  1342.         There are two other characters that affect the final notes
  1343.         played.  These are the '>' and '<' operators.  Placed in the
  1344.         code they cause the entire piece from the point of their
  1345.         invocation to raise or lower all the notes of all the voices by
  1346.         the specified number of semi-tones.  They are invoked by
  1347.         entering either ">#" or "<#" where, again, the '#' is replaced
  1348.         by a hexadecimal number such as ">4".  This would cause all
  1349.         notes to be played four semi-tones higher.  "<2" would cause all
  1350.         notes to be played two semi-tones lower.
  1351.  
  1352.  
  1353.  
  1354.         Beat declaration
  1355.         -----------------
  1356.  
  1357.         The conventions used by AdLib's Visual Composer require that it
  1358.         knows how many ticks there are to a beat.  AdMuse calculates the
  1359.         number of ticks per beat for you.  However, it needs to know
  1360.         what you consider a beat.  That is where we use the 'N'
  1361.         functions.  This character needs to be followed by one of he
  1362.         duration specifies H, Q, I, or S.   No others are allowed.
  1363.  
  1364.                 NQ
  1365.  
  1366.         says that a quarter note is considered to be equivalent to one
  1367.         beat.  This is also the default should this declaration be left
  1368.         out of the code.  Though it is not necessary to use this
  1369.         function, since a default is provided, it is the only way to
  1370.         make AdMuse recognize the basic tempo.
  1371.  
  1372.         Which brings us to ......
  1373.  
  1374.  
  1375. .*..
  1376.         Basic tempo
  1377.         -----------
  1378.  
  1379.         The basic tempo of the song is declared using the equal (=) sign
  1380.         in combination with the 'N' function.
  1381.  
  1382.                 NQ=165
  1383.  
  1384.         says that a quarter note is considered to be a beat and, when
  1385.         playing at standard tempo, there will be 165 of them played each
  1386.         minute.  Again, there is a default supplied for the basic tempo
  1387.         if it is not declared.  This value is 120.  This is also pretty
  1388.         slow for most songs today.
  1389.  
  1390.         Some sheet music will indicate in what tempo it was intended to
  1391.         be played by putting a note at the top of first page followed by
  1392.         the equal sign and the number of beats per minute.
  1393.         AdMuse______________________________________________ Page 29
  1394.           ___AdMuse__________________________________February 12, 1990___
  1395.  
  1396.          ________________________ Documentation _______________________
  1397.  
  1398.  
  1399.         We'll see more of the equal sign later on.  It has a further use
  1400.         later on regarding tempo control.
  1401.  
  1402.         Comments
  1403.         --------
  1404.  
  1405.         Last, and certainly least, we have the do nothing function.
  1406.         What would a language be without comments?  To begin a comment,
  1407.         use the slash (/) character.  All characters from that point on
  1408.         to the end of the line will be ignored.
  1409.  
  1410.         Comments are usually used to name the song, credit the author
  1411.         and most importantly, credit the guy who entered all that code
  1412.         into the computer.  Hey!!  How about that?  It isn't so
  1413.         do-nothing as I said.
  1414.  
  1415.         The comment function can be useful in debugging code also.
  1416.         AdMuse______________________________________________ Page 30
  1417.           ___AdMuse__________________________________February 12, 1990___
  1418.  
  1419.          ________________________ Documentation _______________________
  1420.  
  1421.  
  1422.         The Special Stuff
  1423.         =================
  1424.  
  1425.  
  1426.         Most of the above is derived from the original coding format.
  1427.         The AdLib card, however allows a much wider range of parameters
  1428.         than the card for which this format was developed.  The AdLib
  1429.         card can handle volume, pitch and instruments on a per_voice
  1430. .*..
  1431.         basis.  I've also modified the meaning of one other command
  1432.         mentioned above so that in another context it takes on a
  1433.         slightly different effect.  Most of the special functions appear
  1434.         in parentheses.  Keep in mind that this was done to be able to
  1435.         extend the use of letters of the alphabet that have other
  1436.         functions outside the parentheses.  I also wanted to use the
  1437.         parentheses to help improve readability and to provide
  1438.         delimiters for the functions.
  1439.  
  1440.         The special functions also generate a number of defaults under
  1441.         certain conditions.  For example, you may set a volume before
  1442.         the first note of a song is declared and it will begin the song
  1443.         at that volume.  However, if you do not declare a volume within
  1444.         the code, a default is assigned at the beginning of the song.
  1445.         Also, if you enter code that generates notes then decide to set
  1446.         a volume, the default volume will be generated at the beginning
  1447.         of the song, followed by the placement in the song where the
  1448.         volume is being declared.
  1449.  
  1450.  
  1451.  
  1452.         Volume control
  1453.         --------------
  1454.         The first control function is volume.  It may take several
  1455.         forms.
  1456.  
  1457.         1.      (V#=.##)
  1458.         2.      (V#+.##)
  1459.         3.      (V#-.##)
  1460.         4.      (V=.##)
  1461.         5.      (V###+.##)
  1462.  
  1463.         These are only some examples.  The '=' operator takes the value
  1464.         of the floating point argument on the right and applies it to
  1465.         the voice number specified on the left of the '='.  The right
  1466.         hand argument must always be a floating point value between .01
  1467.         and 1.00.  The program makes no attempt to check the value of
  1468.         the argument but will limit anything higher than 1.00 to 1.00.
  1469.         Anything that goes negative will be changed to .01.
  1470.         AdMuse______________________________________________ Page 31
  1471.           ___AdMuse__________________________________February 12, 1990___
  1472.  
  1473.          ________________________ Documentation _______________________
  1474.  
  1475.  
  1476.         The argument on the left of the '=' operator specifies the voice
  1477.         to which the operator and the right hand argument apply.  You
  1478.         may enter a list of many voices, each a single character ranging
  1479.         from 0 to B.  These are hex value where 'A' is equivalent to 10
  1480.         and 'B' is translated to 11.  As a means of short-cutting, the
  1481.         value of '0' is used to specify all voices.  Totally leaving
  1482.         this argument off means that the program will perform the
  1483.         operation on the current default voice.
  1484.  
  1485. .*..
  1486.         The '+' and '-' operators will take the previous value of the
  1487.         volume for the voice or voices specified and add or subtract the
  1488.         value in the right hand argument.  Checks are made to see that
  1489.         the resulting value does not exceed the limits imposed by the
  1490.         AdLib sound program.  The default volume setting is .75.
  1491.  
  1492.         When multiple voices have been specified, the position where the
  1493.         volume change takes place is determined by the current voice and
  1494.         applies to all voices that have been specified.  If the change
  1495.         to take place must be at the end of a measure, be certain to pad
  1496.         the current voice with rests if the voice doesn't completely
  1497.         fill the measure before declaring a volume change.
  1498.  
  1499.  
  1500.         Pitch control
  1501.         -------------
  1502.  
  1503.         Little will be said about pitch control, other than the fact
  1504.         that it works similarly to the volume function.  The general
  1505.         form of the pitch function is
  1506.  
  1507.                 (P[#[#[..]]] op floating_point_value)
  1508.  
  1509.         The limit for the floating point value ranges from .01 to 2.00.
  1510.         The default pitch variance setting is 1.00.  A setting of 1.00
  1511.         causes the instrument to play on pitch.  Variations around this
  1512.         value cause the pitch to play a percentage higher or lower than
  1513.         the true pitch.  A value of 2.00 will make an instrument play
  1514.         the next octave up.
  1515.  
  1516.         As with the volume, the exact timing of the pitch change is
  1517.         determined by the current voice when multiple voices are
  1518.         specified.  All other caveats apply.
  1519.         AdMuse______________________________________________ Page 32
  1520.           ___AdMuse__________________________________February 12, 1990___
  1521.  
  1522.          ________________________ Documentation _______________________
  1523.  
  1524.  
  1525.         Instrument settings
  1526.         -------------------
  1527.  
  1528.         AdMuse allows for the setting of instruments by the following
  1529.         special function:
  1530.  
  1531.                 (I[#[#[#]..]..]=instrument_name)
  1532.  
  1533.         Just as with the volume and pitch functions, leaving out the
  1534.         voice number cause the program to assume the current voice.  The
  1535.         reserved voice number '0' causes all voices to be affected.
  1536.         Otherwise, you may use a single voice number or a list of voice
  1537.         numbers.  AdMuse checks for the length of the instrument name.
  1538.         If it exceeds eight characters an error is generated and the
  1539.         conversion process is aborted.
  1540. .*..
  1541.  
  1542.         The default instrument is "piano1".
  1543.  
  1544.         See volume and pitch information for restrictions concerning
  1545.         exact timing of mutiliple voice specifications
  1546.  
  1547.  
  1548.         Mode setting
  1549.         ------------
  1550.  
  1551.         ROL files recognize in their structure two possible modes.  The
  1552.         first is the melodic mode.  When a song is considered melodic it
  1553.         can only access nine voices.  The alternate mode is percussive.
  1554.         Percussive mode recognizes eleven voices.  However, five of
  1555.         these voices are percussion instruments.  In order to set the
  1556.         mode the code recognizes the following formats:
  1557.  
  1558.                 (M=M) or (M=P)
  1559.  
  1560.         where the 'M' on the left of the equal sign initiates the mode
  1561.         function and the 'M' or 'P' on the right of the equal designates
  1562.         (M)elodic or (P)ercussive mode respectively.  The program
  1563.         assumes melodic mode unless specified otherwise.  While assuming
  1564.         melodic mode or, if otherwise specifically declared, functions
  1565.         that require that a voice be specified will generate an error if
  1566.         a voice number greater than 9 is used.  It is best to declare
  1567.         the mode early in the code.  Setting the mode also causes a
  1568.         default set of instruments to be declared when the .ROL file is
  1569.         generated if no instruments have been defined.
  1570.  
  1571.         AdMuse______________________________________________ Page 33
  1572.           ___AdMuse__________________________________February 12, 1990___
  1573.  
  1574.          ________________________ Documentation _______________________
  1575.  
  1576.  
  1577.         The equate
  1578.         ----------
  1579.  
  1580.         This is the function that has two meanings.  Its major purpose
  1581.         is to control tempo.  It has been previously mentioned that when
  1582.         used with 'N' function (set beats per measure) the basic tempo
  1583.         is set.  Once the basic tempo is set it may not be changed
  1584.         again.  Thereafter, all tempos are set as a multiple of the
  1585.         basic tempo.  These multiple are limited to the range of .1 to
  1586.         10.0.  If the basic tempo is not declared in the code (it is not
  1587.         mandatory,) it defaults to 120 beats per minute.  All tempo
  1588.         events declared will be percentage parts of this basic tempo.
  1589.         The form of the equate is simply
  1590.  
  1591.                 =##.#
  1592.  
  1593.         where ##.# is a floating point value.
  1594.  
  1595. .*..
  1596.         Two other forms of the function are
  1597.  
  1598.                 =+##.#   and   =-##.#
  1599.  
  1600.         These, naturally, increase or decrease the tempo in relation to
  1601.         whatever the preceding tempo was.
  1602.  
  1603.         Tempo is a parameter that pertains to an entire song and not one
  1604.         single voice.  However, in order to be able to anchor the place
  1605.         in the song where a tempo change takes place, AdMuse will assume
  1606.         the position based on the current voice.  Therefore, if the
  1607.         function is invoked in the middle of the string defining the
  1608.         notes for a specific voice, the tempo change will occur where it
  1609.         is declared relative to the notes in that voice.  Care should be
  1610.         taken not to declare a tempo change late in one of the first
  1611.         voices defined for a measure and early in a second voice.  The
  1612.         results would be unpredictable.  AdMuse makes no attempt to
  1613.         check for this sort of inconsistency.
  1614.         AdMuse______________________________________________ Page 34
  1615.           ___AdMuse__________________________________February 12, 1990___
  1616.  
  1617.          ________________________ Documentation _______________________
  1618.  
  1619.  
  1620.         Extended notes
  1621.         --------------
  1622.  
  1623.         Normally, AdMuse will end notes of a preceding measure when a
  1624.         new measure is declared.  In some songs, though, a note is held
  1625.         over.  This is designated in sheet music by a curving line
  1626.         connecting the notes from one measure into the next.  In order
  1627.         to handle this, AdMuse uses the tilde (~) to indicate the hold
  1628.         over note.  A portion of code might look like this:
  1629.  
  1630.         .
  1631.         .
  1632.         .
  1633.         M12 *Q4536 V2*Q.8IAH9 ......
  1634.         M13 *I6~Q.5Q32 V2*Q7875 ....
  1635.         .
  1636.         .
  1637.  
  1638.         In measure 13 note 6 is followed by the extended note character.
  1639.         This means that the note begun at the end of voice 1 in measure
  1640.         12 will be carried over into measure 13 without being chopped
  1641.         off.  The total length of the note will be equivalent to a
  1642.         dotted quarter note (Q.) or a quarter note plus an eighth note
  1643.         as one note.  If the note requires an accidental such as a sharp
  1644.         of a flat, the tilde must follow the accidental.
  1645.  
  1646.         REMEMBER:  The tilde should follow the second note of the two.
  1647.  
  1648.         If the two notes are not the same, there can be no carryover
  1649.         between the notes.  Music notation can have a curved line
  1650. .*..
  1651.         between two such notes.  This is known as a slur.  AdMuse cannot
  1652.         handle slurs at this time.
  1653.         AdMuse______________________________________________ Page 35
  1654.           ___AdMuse__________________________________February 12, 1990___
  1655.  
  1656.          ________________________ Documentation _______________________
  1657.  
  1658.  
  1659.         Beats per measure
  1660.         -----------------
  1661.  
  1662.         The 'N' character has been discussed previously.  This is used
  1663.         to define what note duration is considered a beat.  AdMuse
  1664.         calculates how many ticks make up a beat based on a number of
  1665.         other considerations such as what the smallest note used is, if
  1666.         the smallest note is dotted, if there are any triplets, any
  1667.         articulation, etc.  The AdLib Visual Composer uses a value in
  1668.         the ROL file to specify the number of beats per measure.  In our
  1669.         coding format we will use the pipe (|) character for this
  1670.         purpose.  For example, by putting
  1671.  
  1672.                 NQ=165
  1673.                 .
  1674.                 .
  1675.                 |3
  1676.  
  1677.         in the code, we say that a quarter note is considered a beat and
  1678.         that 165 of them should be played every minute.  There are three
  1679.         beats to a measure (|3) making a total of three quarter notes
  1680.         per measure.  Once these are set, AdMuse will not allow you to
  1681.         change them elsewhere in the song.
  1682.  
  1683.         It is not necessary to specify any of the three parameters in
  1684.         the song.  There are defaults that will be used if none are
  1685.         specified in the code.  The value of a beat defaults to a
  1686.         quarter note, tempo defaults to 120 beats per minute, and beats
  1687.         per measure becomes 4.  As far as this coding method is
  1688.         concerned none of this really matters.  The song will play
  1689.         properly.  However, if you use AdMuse to generate a ROL file and
  1690.         then read it into the Visual Composer, if the values have not
  1691.         been set, the measure and beat markers will not align properly.
  1692.         This should be correctable by doing so from within the Visual
  1693.         Composer.
  1694.  
  1695.         A side effect of defining the size of a beat and the beat per
  1696.         measure that AdMuse takes advantage of is that it now know how
  1697.         many ticks there should be in each measure.  If both parameters
  1698.         are defined, AdMuse will issue a warning that a given measure is
  1699.         too short or too long.  This can be a great help in helping to
  1700.         debug code where you type some extra notes or inadvertently use
  1701.         the wrong duration notation. A warning does not abort the
  1702.         process, as it isn't critical just how long or short a measure
  1703.         is.  There are some songs that change time signatures several
  1704.         times.
  1705. .*..
  1706.  
  1707.         Warnings may be repeated several times if they occur within a
  1708.         part that is repeated.  This is nothing to be worried about.
  1709.         Fixing the problem will eliminate the repeated warnings.
  1710.  
  1711.         As mentioned above, some songs have several changes in their
  1712.         time signature.  To eliminate all the warning messages, don't
  1713.         declare the beats per measure until the end of the song.
  1714.         AdMuse______________________________________________ Page 36
  1715.           ___AdMuse__________________________________February 12, 1990___
  1716.  
  1717.          ________________________ Documentation _______________________
  1718.  
  1719.  
  1720.         Accentuation
  1721.         ------------
  1722.  
  1723.         Note:  The following feature is not currently implemented.  It
  1724.         is stated here in the event that you might want to include it in
  1725.         your coding so that it will be there when accentuation is
  1726.         implemented.
  1727.  
  1728.         Accentuation is indicated in sheet music by a short greater than
  1729.         sign (>) either above or below the note.  This means that the
  1730.         note should get a stronger attack than the other notes.  The
  1731.         character to be used for this will be the exclamation mark (!).
  1732.         This character, when used as intended, follows the note to be
  1733.         accentuated.  If the note has an accidental modifying it, the
  1734.         accentuation character should follow the accidental.  If the
  1735.         note is further modified by an articulator character, the
  1736.         accentuation character should come before the articulator.
  1737.  
  1738.         AdMuse will currently ignore this character when placed where it
  1739.         is expected.  It will also ignore it in most other places but,
  1740.         if it is placed where AdMuse is looking for a modifier for
  1741.         another function, it will undoubtedly generate an error.
  1742.  
  1743.         When implemented, the use of the accentuation will add six bytes
  1744.         to the file each time it's used.
  1745.         AdMuse______________________________________________ Page 37
  1746.           ___AdMuse__________________________________February 12, 1990___
  1747.  
  1748.          ________________________ Documentation _______________________
  1749.  
  1750.  
  1751.         Error messages
  1752.         ==============
  1753.  
  1754.         AdMuse doesn't attempt to report more than one error message at
  1755.         a time.  An error message appears near the bottom of the screen.
  1756.         The line with the error appears above the error message and the
  1757.         position where the error was detected is marked with a check
  1758.         above it.
  1759.  
  1760. .*..
  1761.         Error messages are generally self explanatory.  There is one
  1762.         that is not quite as evident and deserves a quick word.  An
  1763.         error is generated when a voice is being declared, either as the
  1764.         current default voice or as an argument in a special function
  1765.         list, if the voice is out of range or not a valid hex character.
  1766.         The problem is that the range is dependent on the prevailing
  1767.         voice mode.  Therefore, if the mode is the default, melodic, the
  1768.         limit of any voice used is 9.  The limit increases to 11 if the
  1769.         mode is percussive.
  1770.  
  1771.         Usually the error is marked precisely.  The principle exception
  1772.         to this involves the special functions that are enclosed in
  1773.         parentheses.  Due to the parsing that is performed on these
  1774.         longer strings, the check mark will usually appear at the right
  1775.         hand parenthesis.  The associated error message will explain the
  1776.         nature of the error.  Narrowing it down should be relatively
  1777.         simple.
  1778.  
  1779.         One other warning that may be received concerns some limitations
  1780.         imposed by the internal numbers that comprise a ROL file.
  1781.         Numbers are stored as two byte, signed integers,  This limits
  1782.         the total number of ticks that a voice may play to something in
  1783.         the range 32K ticks.  To AdMuse, this looks like a negative
  1784.         number.  If the total ticks for a voice exceed this limit a
  1785.         warning is issued and a number is displayed.  The number should
  1786.         be negative.  The number has no significance except the fact
  1787.         that it is negative.  I would suspect that the Visual Composer
  1788.         would blow up on this.  Stand-alone players may treat the
  1789.         numbers differently so you might stand half a chance of making
  1790.         it play.  Articulation on even one note could cause this warning
  1791.         to occur.  Removing it might solve the problem.
  1792.         AdMuse______________________________________________ Page 38
  1793.           ___AdMuse__________________________________February 12, 1990___
  1794.  
  1795.          ________________________ Documentation _______________________
  1796.  
  1797.  
  1798.         Composing hints
  1799.         ===============
  1800.  
  1801.         The following suggestions constitute opinions that I've
  1802.         developed over the years while encoding music.  These are only
  1803.         opinions and may not agree with your philosophy.  Some pertain
  1804.         to using this coding method and others are general observations.
  1805.  
  1806.         -----------------------------
  1807.  
  1808.         Always scan your sheet music in advance.  Take notice of tied
  1809.         notes.  You may decide to disregard them at first, then go back
  1810.         and insert the tildes where needed.  Failure to tie notes may
  1811.         make a piece sound choppy.
  1812.  
  1813.         Plan your voices before you start to code.  Know in advance what
  1814.         notes will be assigned to what clef. If you can mark on your
  1815. .*..
  1816.         copy of sheet music, draw colored lines between notes that will
  1817.         belong to the same voice.
  1818.  
  1819.         Play all notes.  Some songs will go along for quite a while
  1820.         playing only three notes in the treble clef then have a number
  1821.         of fourth notes.  These lend some expression to song and doesn't
  1822.         have much effect on the size of the file.
  1823.  
  1824.         If you own the sheet music from which you are transposing it is
  1825.         a good idea to write a number above, inside or below the measure
  1826.         and use the number in the measure declaration of your code so
  1827.         that you can find it more easily if you detect something wrong
  1828.         when you play the song.  Or make a copy of it for marking on.
  1829.  
  1830.         If a measure has a variation in it, that is, when the measure is
  1831.         played again and one or more notes are change for the second
  1832.         verse, you will need to define the measure as a separate part.
  1833.         When the time comes to define the measure along with the
  1834.         variation, use the same designation for the measure but append a
  1835.         character that shows that it isn't the same as the first
  1836.         declaration of the measure.  For example, for measure number 23,
  1837.         the first time the verse is played, mark the measure with "M23".
  1838.         The second time the verse is played, with the variation, Mark it
  1839.         as "M23a".  This will help to keep things straight.
  1840.  
  1841.         Don't be afraid to use comments to document your code.  Comments
  1842.         are ignored when the code is compiled but they can help you find
  1843.         your position in the file.  Use a comment whenever you change to
  1844.         a new page.  The comment should include the page number.
  1845.  
  1846.         Also place blank lines between each set of measures on a line.
  1847.         This also will help you find your position.
  1848.         AdMuse______________________________________________ Page 39
  1849.           ___AdMuse__________________________________February 12, 1990___
  1850.  
  1851.          ________________________ Documentation _______________________
  1852.  
  1853.  
  1854.         Place at least one blank space before the declaration of each
  1855.         new default voice.  Always redeclare the clef when changing to a
  1856.         new default voice.  This is not necessary except where the clef
  1857.         changes but it will help you remember which clef is being used
  1858.         and can improve readability by separating the number that
  1859.         denotes the voice from numbers that declare notes.
  1860.  
  1861.         Make use of the notation for beat definition and number of beats
  1862.         per measure where practical.  It will help with debugging.
  1863.  
  1864.         Some songs may be improved by using articulation.  Military and
  1865.         march songs usually fall into this category.  The main problem
  1866.         here is that articulation automatically declares a sixty-fourth
  1867.         note as being three ticks and depending on conditions concerning
  1868.         dotted notes may double that feature.  This doesn't prevent a
  1869.         song from playing properly, but if viewed under the Visual
  1870. .*..
  1871.         Composer the scale is magnified to the point of getting very
  1872.         short portions of a measure on the screen.
  1873.  
  1874.         Use the operators in the special functions creatively.
  1875.         Crescendos and decrescendos can be implemented with the volume
  1876.         function using the '+' and '-' operators.  You can also use this
  1877.         for fades at the end of songs.
  1878.         AdMuse______________________________________________ Page 40
  1879.           ___AdMuse__________________________________February 12, 1990___
  1880.  
  1881.          ________________________ Documentation _______________________
  1882.  
  1883.  
  1884.         Keep in mind that when a part is repeated, the information is
  1885.         taken from the text at the point the part begins.  Special
  1886.         functions within a part are repeated along with the notes.  This
  1887.         can be used to advantage for such things as endings where you
  1888.         want to do a repeat and fade.  Use the minus operator sprinkled
  1889.         inside the repeated part(s) to gradually reduce the volume.
  1890.  
  1891.         Some songs begin with a measure that starts with a number of
  1892.         rests.  Though it is not necessary that these rests be declared
  1893.         to make the song play on a stand-alone player, it is a good idea
  1894.         to declare them in order to make notes align properly with the
  1895.         Visual Composer's measure markers.
  1896.  
  1897.         If a measure ends with all voices in a rest condition, pad one
  1898.         of the voices to make certain that a full number of beats per
  1899.         measure results.
  1900.  
  1901.         Use the comment character to mask out lines you don't want to
  1902.         listen to when checking a song.  There are times when it would
  1903.         be helpful to play a single measure or a string of measures over
  1904.         and over while looking at the sheet music, looking for errors.
  1905.  
  1906.         Be choosy with the songs you select.  Some vocals sound great on
  1907.         the radio but translate to pure instrumental poorly.  The human
  1908.         voice has a greater potential for expression than most
  1909.         instruments and certainly more than those created by digital
  1910.         techniques.  Songs that are intended to be instrumental turn out
  1911.         best.
  1912.  
  1913.         Along the same lines, sheet music that is designated as a piano
  1914.         arrangement may not lend itself well to using other instruments
  1915.         in place of piano.  Study the song and determine what voices are
  1916.         used as fill-in.  Some instruments with smoother sounds make
  1917.         better fill-ins than those with abrupt attacks or decays.
  1918.  
  1919.         Even a simple percussion pattern can improve the sound.  Drum
  1920.         out a cadence with your fingers and work out some relative times
  1921.         for the various portions of the beat.  Mix the percussion.  Use
  1922.         combinations of drums with cymbal type instruments or snare to
  1923.         help break up the monotony
  1924.         AdMuse______________________________________________ Page 41
  1925. .*..
  1926.           ___AdMuse__________________________________February 12, 1990___
  1927.  
  1928.          ________________________ Documentation _______________________
  1929.  
  1930.  
  1931.         Make use of unused voices for special effects.  The following
  1932.         piece of code is used to produce a crescendo.
  1933.  
  1934.  
  1935.         M35 *H12 V2*-1-1 V3@Q$A$A
  1936.         v9*i(v0+.01)$(v0+.01)$(v0+.01)$(v0+.01)$
  1937.         (v0+.01)$ (v0+.01)$(v0+.01)$(v0+.01)$
  1938.  
  1939.         M36 *Q$$$5 V2*H0Q03 V3@Q$A$8
  1940.         v9*i(v0+.01)$(v0+.01)$(v0+.01)$(v0+.01)$
  1941.         (v0+.01)$ (v0+.01)$(v0+.0 1)$(v0+.01)$
  1942.  
  1943.         Since voice 9 is not used, it can be used to produce more minute
  1944.         changes in volume where voices 1, 2 and 3 use only quarter notes
  1945.         as their smallest increments.  The rests in voice 9 are used to
  1946.         advance the timing.  Specifying 0 as the voice in the volume
  1947.         declaration causes all voices to increment despite the fact that
  1948.         voice 9 is current.  They all take on the timing of voice 9.
  1949.         The increment is that of an eight note.  Your ASCII editor
  1950.         probably has the capability to reproduce the more tedious
  1951.         portions of the code.
  1952.         AdMuse______________________________________________ Page 42
  1953.           ___AdMuse__________________________________February 12, 1990___
  1954.  
  1955.          ________________________ Documentation _______________________
  1956.  
  1957.  
  1958.         Common errors
  1959.         -------------
  1960.  
  1961.         If songs don't sound right, the following may help you to find
  1962.         the error.
  1963.  
  1964.         If the song as played by a standalone player doesn't sound
  1965.         right, make sure that the sound driver has been invoked with a
  1966.         sufficient buffer size.
  1967.  
  1968.         If a measure sounds long and seems to play extra notes, make
  1969.         sure that you have properly declared a new voice where needed.
  1970.         Sometimes a voice declaration is repeated inadvertently in the
  1971.         same measure.
  1972.  
  1973.         Long or short measures can occur as a result of not specifying a
  1974.         change in the duration.  When the length of a note is declared,
  1975.         it remains in effect until a new declaration is made.  This is
  1976.         true even between voice changes and measures.  Sometimes, when
  1977.         modifying code, something is inserted that includes durations
  1978.         declarations.  This may come between two portions of code where
  1979.         the duration was assumed to be unchanged so no change was made.
  1980. .*..
  1981.  
  1982.         Musical clunkers may result from a failure to change the clef or
  1983.         in declaring the wrong clef.
  1984.  
  1985.         If volume, pitch and instrument changes seem to cause the song
  1986.         to demonstate extreme, unexpected changes, there might be some
  1987.         attempt to cross declare them.  Make sure that all such changes
  1988.         don't logically occur in a manner that may have them out of
  1989.         sequence.  For instance:
  1990.  
  1991.         M23 *Q783(V12+.05)5 V2*(V+.03)7395
  1992.  
  1993.         The first volume change in the example above is declared in what
  1994.         amounts to near the end of the measure.  This causes the change
  1995.         for voice 2 to occur at the same point.  But the second change,
  1996.         declared when voice 2 is current, says to make the change at the
  1997.         beginning of the measure.  So, in terms of sequence of events,
  1998.         the second change should occur before the second.  However,
  1999.         since the sequence in which it is declared causes it to do other
  2000.         wise, the information is stored in the improper order.
  2001.  
  2002.         There are a couple of ways of working around this.  One way is
  2003.         to declare voice 1 after voice 2 as in:
  2004.  
  2005.           M23 V2*(V+.03)7395 V1*Q783(V12+.05)5
  2006.  
  2007.         or the components of voice 1 can be split up
  2008.  
  2009.           M23 *Q783 V2*(V+.03)7395 V1*(V12+.05)5
  2010.  
  2011.         or specify the volume changes relevant to voice 2 independently.
  2012.  
  2013.         AdMuse______________________________________________ Page 43
  2014.           ___AdMuse__________________________________February 12, 1990___
  2015.  
  2016.          ________________________ Documentation _______________________
  2017.  
  2018.  
  2019.         Future Features
  2020.         ===============
  2021.  
  2022.         The following are considerations for future features.  Some may
  2023.         be implemented and others may not, depending on the
  2024.         practicality.
  2025.  
  2026.         1.      Automated crescendos.  Decrescendos also.
  2027.  
  2028.         2.      Mapping of preset volume levels.  Music notation
  2029.                 recognizes certain letters that show what the volume
  2030.                 level should be at a given point.  The user should be
  2031.                 allowed to define what these levels will be, then mark
  2032.                 where in the song the volume changes to any of the
  2033.                 preset values.
  2034.  
  2035. .*..
  2036.         3.      Pitch bending effects.
  2037.  
  2038.         4.      Attack accentuations for expression.
  2039.  
  2040.         5.      Pre-defined bass or percussion patterns.  These would
  2041.                 then be used in a repeating fashion to eliminate
  2042.                 unnecessary typing.
  2043.  
  2044.         6.      Voice duplication.  The user should be able to specify
  2045.                 that all notes for a given voice will be automatically
  2046.                 duplicated in another voice.  This, combined with pitch
  2047.                 variation would provide for richer sounds.
  2048.  
  2049.         7.      Directory searches.
  2050.  
  2051.         8.      Listing instruments in a user defined instrument bank.
  2052.  
  2053.         9.      Copy and delete functions.
  2054.  
  2055.         10.     Chord notation.  Might be able to simulate guitar
  2056.                 strumming.
  2057.  
  2058.         11.     An option allowing the user to define the length of the
  2059.                 buffers used to store the note information.
  2060.  
  2061.         12.     Color options for those who absolutely need to have
  2062.                 them.  Maybe some windows, maybe not.
  2063.         AdMuse______________________________________________ Page 44
  2064.    
  2065.  
  2066.  
  2067.  
  2068.                                      AdMuse
  2069.                                Registration Form
  2070.  
  2071.         Mail check or money order to:
  2072.  
  2073.         Robert A. Calbridge
  2074.         12904 Elam Road, Apt 101
  2075.         Balch Springs, TX 75180
  2076.  
  2077.         Please do not send cash in the mail
  2078.  
  2079.  
  2080.         Please fill in the following information
  2081.  
  2082.         Your name
  2083.  
  2084.         _________________________________________________
  2085.  
  2086.         Adress
  2087.  
  2088.         _________________________________________________
  2089.  
  2090. .*..
  2091.         City, State, Zip
  2092.  
  2093.         _________________________________ _____ __________
  2094.  
  2095.         How much are you enclosing? $________
  2096.  
  2097.  
  2098.         Where did you get AdMuse?   ______________________
  2099.  
  2100.  
  2101.         Comments or suggestions
  2102.  
  2103.         ________________________________________________________________
  2104.  
  2105.         ________________________________________________________________
  2106.  
  2107.         ________________________________________________________________
  2108.  
  2109.         ________________________________________________________________
  2110.  
  2111.  
  2112.                                      AdMuse
  2113.                   Copyright (C) 1990, Robert A. Calbridge, Jr.
  2114.  
  2115.  
  2116.