home *** CD-ROM | disk | FTP | other *** search
David's Readme Compiler Executable | 1995-11-03 | 71.3 KB | 900 lines |
- FcYY=
- Y4YYF
- 5YY_^
- j3YY_^
- H9D0}
- ; A B D G H I K M O P Q R S s t u v
- ,uY_^]
- YYG;>
- A B D
- <Ar ,@
- _^_^]
- H I K M P Q
- yVY_^
- H I Q.4
- YYF;v
- ;Dz~
- 9+:+:!:
- 9+:8:
- DYPV
- H I K M P Q @
- DF_^]
- YY9|,uK
- ;D@ui
- ;DDu2
- H9D0~
- 9D<| u
- .Y;D2v
- H9D0u
- YY_^]
- YY_^]
- ~-YY3
- ,Y)D:
- C+Y;F
- f)Y;D2wK
- I].97t
- G H I K M O P Q R S s t u w@h
- hQh(gjg,h
- t0Nt-
- !r.RP
- !r$RP
- u/SQR
- [[XP3
- Turbo C++ - Copyright 1990 Borland Intl.
- Null pointer assignment
- Divide error
- Abnormal program termination
- $ ~ p
- Courier
- Do you want to overwrite
- File exists
- Print Settings
- - Printing -
- Save as what file?
- Failed saving to file!
- Failed!
- PgUp/Dn:
- <F10>
- options
- PgUp/Dn
- Line %d of %d
- Search for
- Topics
- ind text <F7>
- find
- gain <F8>
- rint entry
- ave entry
- dit entry
- Printer port :
- PostScript? :
- Press <Space> to change values
- Created using
- David's Readme Compiler v2.1
- (c) 1990-93, David Harris.
- e-mail: david@pmail.gen.nz
- LPT1:
- LPT2:
- LPT3:
- %!PS-Adobe-2.0
- %%Creator:DRC v2.0
- %%EndComments
- /leftmargin { 40 } bind def
- /bot { 54 } bind def /top {
- } bind def
- /cw { 40 } bind def
- /xtab
- {currentpoint exch dup cvi
- leftmargin cvi sub cvi
- cw cvi mod sub
- cw add
- exch moveto
- } bind def
- /ptsize { 12 } bind def /lead { 12 } bind def
- /F { findfont exch scalefont setfont } bind def
- /newline {
- currentpoint exch pop lead sub
- dup bot lt {
- pop showpage restore save
- top
- } if
- leftmargin exch moveto
- } bind def
- %%Endprolog
- %%BeginSetup
- ptsize /| F
- leftmargin top moveto
- %%EndSetup
- %.20s (Y/N)?
- %-50.50s
- newline
- ) show newline
- newline
- showpage restore
- David's Readme Compiler, (c) 1992, David Harris.
- Readme error: no attached data.
- About this Guide
- MMMODE
- ; < = > ? @ A B C D T U V W X Y Z [ \ ]
- G O w u R S s t
- EAEIIOOUUYIOU
- (press any key to continue)
- Insert paper in printer then press
- a key (<ESC> cancels print)
- Printer error
- The printer on LPT%d: is
- confused
- out of paper
- off line
- Correct then press a key
- or hit <ESC> to cancel print
- Insert Paper
- <ESC>
- key pressed:
- Please confirm cancel/quit
- Accept this data?
- Insufficient disk space
- There is not enough space on the target
- disk to receive the file(s): please replace
- the disk with another formatted disk, then
- press any key to retry, or <ESC> to cancel
- .,@:;
- 0123456789
- !!!!!
- @@@@@@@@@@@@@@@
- @@@@@@@
- @@@@@@
- @@@@
- (null)
- Data file generated by RCOM.
- BBSAMT v. 4.4, copyright 1995 by Linda R. Bloom
- Welcome to BBSAMT43!
- Status line
- Editing the Form
- INTRODUCTORY NOTES
- Tutorial Outline
- Utilities
- Terminals
- Notation
- Music Strings
- Note/Rest Values
- Getting Started...
- Value Setting
- Method 1 - The L Command
- Method 2 - Individual Values
- Codes for ANSI-BBS Music
- The ANSI-BBS Coding Process
- Getting Started...
- Basic Rules
- Divide your code
- Code each string
- Use an editor
- Step-By-Step Coding
- STARTING POINT - Raw Code
- STEP 1 - Phrasing
- STEP 2 - Tempo
- STEP 3 - Control Codes
- Using ANSI-BBS Music
- Screen Attachment
- Getting Started...
- Design the Display
- Add the Music
- Using Music in Messages
- Getting Started...
- Codes for ANSI Music Messages
- Sample Message Code
- CLOSING COMMENTS
- Future Standards
- Comments
- Author Contact
- Registration
- Registration Benefits
- Registration Form
- This version of the BBS ANSI Music Tutorial was
- compiled using
- David's Readme Compiler v. 2.1
- Press <
- > to begin.
-
- for Options
- While you edit this form, the following keys are
- available for your use:
- Arrows:
- move in the indicated direction
- Ctrl-Arrows:
- move a word at a time
- PgUp/PgDn:
- move a screen at a time
- moves to the next field on the screen:
- Ctrl-Y:
- delete the current line
- Del, Bks:
- delete char right, delete char left
- toggle insert mode (defaults to OFF)
- When you are finished, use the
- options to
- rint or
- the completed form.
-
- INTRODUCTORY NOTES
-
- Tutorial Outline
-
- Utilities
-
- Terminals
-
-
- Notation
-
- Music Strings
-
- Note/Rest Values
-
- Getting Started...
-
- Value Setting
-
-
- Method 1 - The L Command
-
-
- Method 2 - Individual Values
-
- Codes for ANSI-BBS Music
-
-
- The ANSI-BBS Coding Process
-
- Getting Started...
-
- Basic Rules
-
-
- Divide your code
-
-
- Code each string
-
-
- Use an editor
-
-
- Step-by-Step Coding
-
- STARTING POINT - Raw Code
-
- STEP 1 - Phrasing
-
- STEP 2 - Tempo
-
- STEP 3 - Control Codes
-
-
- Using ANSI-BBS Music
-
- Screen Attachment
-
- Getting Started...
-
- Design the Display
-
- Add the Music
-
- Using Music in Messages
-
-
- Getting Started...
-
-
- Codes for ANSI Music Messages
-
-
- Sample Message Code
-
-
- CLOSING COMMENTS
-
- Future Standards
-
- Comments
-
- Author Contact
-
- Registration
-
- Registration Benefits
-
- Registration Form
- Before undertaking this tutorial, you will need to obtain a means of
- playing ANSI music on your local terminal. This will require a
- special utility designed for the purpose; among these are
- ANSIALL
- driver that replaces ANSI.SYS and adds music capability, and
- A_TYPE
- a replacement for the TYPE command that adds music capability to
- screen display. If you are unable to find such a utility locally,
- these are available on the author's BBS.
- An ANSI editor, such as
- TheDraw
- , and an ASCII text editor, such as
- , are also required to produce a finished product.
- The finest computer music processor available today is a program
- called
- Melody Master
- . This is the only music processing program
- presently available that is capable of producing properly coded,
- ready-to-display ANSI-BBS music strings. The program is in version
- 2.5 as of this writing, and is available for download on many national
- BBS systems as
- MELODY25.xxx
- . Again, if you are unable to find it
- locally, it is available on the author's BBS, or by mail with regis-
- tration of this tutorial (separate registration required for continued
- use).
- You may be familiar with an ANSI music screen system named
- ANSIPLAY
- While it is an excellent program for composing music screens for
- local viewing, it is
- @ suitable for producing music for BBS or
- message use. It includes codes and capabilities in its music
- strings that are specific to the
- ANSIPLAY
- program, and will cause
- undesirable effects if used for BBS or message music strings.
- Be aware that there are only a limited number of terminal programs
- that support ANSI music, and the only way a caller will hear the
- music is by using one of these programs. At the present time, the
- following shareware DOS terminals support ANSI music (version numbers
- are current as of this writing):
-
- QModem Test Drive v. 4.60
-
- Telemate v.4.20
-
- CI Link v. 3.5b
-
- Slick Terminal v. 6.5a
-
- SMT v. 1.1
-
- QCom v. 3.20d
-
- BananaCom v2.0a
- It is suggested that you keep these programs on-line and available
- for your callers to download if you plan on adding ANSI music to
- your BBS system. It's also a good idea to post a bulletin or news
- item for your callers explaining the necessity of using a
- music-capable terminal program in order to receive the music.
- Music strings are written in the same format as the BASIC
- statement. Codes that are accepted and properly interpreted by
- terminal programs:
- Sharp
- >(repeat from | as required)
- Sets tempo;
- represents a number between
- and
- Default tempo is
- Sets octave;
- represents the octave number. Default
- octave is
- through
- Note; standard notation.
- Pause; represents a rest.
- or
- Sharps a note; insert after the note you wish to sharp.
- Flats a note; insert after the note you wish to flat.
- Length; sets value of multiple notes/rests, may be dotted
- Default length is
- (see
- Value Setting
- @Codes that are not universally accepted, and that may cause
- problems for callers, are listed below.
- It is strongly recommended
- that these codes be avoided when writing music for BBS or message
- and
- Octave changes; used in place of the
- command.
- Notes and rests are coded the same way. The only difference is that
- a note is is represented by its
- letter name
- , while a rest is rep-
- resented by the letter
- . Values are represented by the
- denominator
- of their fractional names.
- Any value may be dotted; a dot adds one-half the value of the note/rest.
- For example, if a quarter note is worth one beat, a dotted quarter note
- is worth one and one-half beats.
- Whole note/rest =
- Half note/rest =
- Quarter note/rest =
- Eighth note/rest =
- Sixteenth note/rest =
- Thirtysecond note/rest =
- Sixtyfourth note/rest =
- Values may be set in either of two different ways, depending on the
- complexity of the music and the desired quality of the final result.
- option described under "Music Strings" sets the value for all
- following notes/rests until another value is specified. Individual
- notes/rests with differing values may be inserted in the string by
- inserting the value directly after the note/rest. After that
- note/rest plays, the default value will return to the last preceding
- command. For example, this is the first line of
- Mary Had A Little
- , written using the
- command:
-
- EDCDEEE
- sets the normal note value as a quarter note. Three half notes
- are in this line of music; therefore, three of the notes are
- followed by the half note value of
- . The rest of the note values
- default to the quarter note set by the
- command at the start of the
- string.
- This method is good for "quick and dirty" coding of short, simple
- pieces of music that are hand-coded using a text editor. It is not
- the preferred method for more complex music, because it makes
- identification and debugging of individual notes/rests more
- difficult, and allows for greater error in transcription. Because
- of those drawbacks, it is NOT recommended that the
- command be
- habitually used in writing ANSI-BBS music.
- In this method, the value of each individual note/rest is inserted
- immediately following the note/rest itself. Repeating our example
- Mary Had A Little Lamb
- , using the individual value method:
- E
- This method requires more string space, but it also allows for quick
- identification of an individual note/rest, making error location and
- correction much easier, and directly translates the "staff/note"
- pattern of music transcription into a code form. This makes it much
- better for writing and debugging complex music. An added benefit of
- this method for serious students of music is that the mimicry and
- reinforcement of good transcription habits will carry over into
- pen-and-ink transcription as well.
- As an example of more complex music code, here is the first line of
- Hail To The Chief
- O2G8A16.B32O3C8O2B16.A32G16.A32G16.E32D8C8
- The line contains 3 octave changes and 10 note value changes.
- Examining this string should make the drawbacks of habitual
- command use obvious!
- These codes are the building blocks that create effective and
- properly written ANSI-BBS music. This coding "style" is designed to
- blend easily with the graphics codes which are already familiar to
- SysOps, making the process of adding music to graphics as painless
- as possible. In addition, these codes are recognized by just about
- any music-supporting terminal program, providing musical enjoyment
- to the most callers with the least potential incompatibility.
- Reset code - Clear all previous values; "fresh start".
- Used at the beginning and end of each string of music.
- [nn;ccH
- Cursor location code - Move the cursor to the designated
- location on the screen and leave it there.
- represents
- a line number between 1 and 25,
- represents a column
- number between 1 and 80.
- Examples:
- [25;1H
- moves the cursor to the bottom left
- corner of the screen;
- [1;80H
- to the top right corner.
- Invisibility code - Renders the following string
- invisible; none of the code in the string will appear on
- the screen.
- Music code - Begin music string; code in the following
- string will be interpreted and played as music (also
- see
- Future Standards
- section and included
- BANSI002.DOC
- End music code - Closes the playable portion of a music
- string
- (The left arrow is
- ASCII 27
- . The double sixteenth note is
- ASCII 14
- @Codes that are not universally accepted, and that may cause
- problems for callers, are listed below.
- It is strongly recommended
- that these codes be avoided when writing music for BBS or message
- Music Foreground/Music Background; used in ANSIPLAY and
- some other specialty music systems.
- > Style code <Normal/Legato/Staccato>; sets the style of
- the string.
- The first line of
- Mary Had a Little Lamb
- coded for use in a BBS
- system screen would look like this:
- [23;1H
- T90O2E4D4C4D4E4E4E2D4D4D2E4G4G2
- A completed piece of ANSI-BBS music will consist of one or more
- strings of code, each 80 characters or less in length. It will
- begin with the reset code, followed by the cursor location code, the
- invisibility code, the music code, and tempo/octave/note/rest/value
- codes, and end with the double sixteenth note character (ASCII 14),
- followed by the reset code.
- Final assembly of ANSI-BBS music is always done using an ASCII text
- editor. There are three basic rules to follow in assembling the
- final product:
- 1) Divide your music code into logical sections that can be
- coded as individual strings.
- For example, divide a song
- into phrases or "lines", and make each phrase or "line" a
- separate string of code.
- There are a number of reasons for this. First, it makes error
- location and correction much easier. Second, it helps to keep
- strings at a proper length. Third, it enables you to split a song
- into portions and use it in creative ways, such as playing the first
- part when a caller enters a door, and the final part when he exits
- the door. Last, it enables you to use only a portion of a longer
- piece of music, while still retaining the integrity of and access to
- the entire song.
- 2) Code each string as though it were a complete piece of
- music.
- This means that each string should follow the coding pattern given
- above; i.e., if any string is played individually, it will reset,
- locate the cursor, set invisibility, set tempo, and reset at the
- end. This will prevent any unwanted effects from creeping in due to
- typographical errors. It also makes error location and correction
- much easier, as each string can be examined and corrected
- individually without affecting the final product.
- 3) Always perform the first two steps using an ASCII text editor
- even if you use a music coding program such as
- Music Maker
- Such programs are an excellent aid, but they DO NOT produce
- completed, ready-for-use ANSI music! The single notable exception
- Melody Master
- , which will produce ready-to-run music strings
- for BBS system use. If you wish to be able to "subdivide" the song,
- however, you will still need to use an ASCII editor to rearrange
- the notes into suitable phrase divisions.
- To quote the old adage, "anything worth doing is worth doing well".
- No SysOp would be satisfied with running half a BBS program; why
- even think of settling for half-written music? Poorly coded music
- does not make a positive impression on anyone, and may actually
- detract from a system rather than add to it. In other words, either
- use properly coded music, or don't use it at all!
- We will use the song
- Dixie
- as an example to demonstrate the
- finishing process. A sample of this song at each stage is included
- in this archive under the filenames shown in the "After completing
- this step" line of each section. It is strongly suggested that you
- play these samples as you proceed through the description, to
- familiarize yourself with the effects of each step in the completion
- process.
- NOTE - If the song is hand-coded, all of the following steps can be
- performed in the process of coding. The code should be frequently
- saved and tested for accuracy.
- Here is the song in raw code, as produced by a program such as
- Music Maker
- NRAW.BBS
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16O3D16D16D16.C32D16.
- [M C32D32E32F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.O3C32O2A32F16F16
- [M F32G32A32A+32O3C16C16C16O2A16O3D16D16D16.C32D16.C32D32E32F32G32A8.
- [M F32C32F8.C32O2A32O3C8.O2G32A32F8.O3C32C32F16A16G16F16D16F8D16G8.D16
- [M G8.C16F16A16G16F16D16E16F16.D32C16O2A16O3F16.O2A32A16G8O2A16F8.A16G8.
- [M O3D16C16O2A16O3F16.A32G16F8O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- The first step is to divide the code into phrases/"lines"
- of no more than 55 characters each. This particular song has
- familiar lyrics, which makes the division easy:
- T60 O3C32 O2A32 F16 F16 F32G32 A32 A32+ O3C16 C16 C16 O2A16
- \Line
- (tempo)
- Oh, I wish I was in the land of cot-ton,
- O3D16 D16 D16. C32 D16. C32 D32 E32
- \Line
- Old times there are not for-got-ten,
- and so on. As you divide the lines, be sure to add the octave code
- to the beginning of any lines that do not already begin with it!
- After completing this step, our song looks like this (
- NSTEP1.BBS
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- D16D16D16.C32D16.C32D32E32
- F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- D16D16D16.C32D16.C32D32E32
- F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- C32C32F16A16G16F16D16F8D16G8.D16G8.
- C16F16A16G16F16D16E16F16.
- D32C16O2A16O3F16.O2A32A16G8
- A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- In order to understand how this affects your music, try this
- experiment. Using your text editor, copy line 3 of
- NRAW.BBS
- a file, and name it
- JRAWTEST.BBS
- @. Copy line 3 of
- NSTEP1.BBS
- @ to a
- file, and name it
- JTEST.BBS
- @. Then play each test file, and compare
- the results.
- The next step is to add the tempo setting to the beginning of each
- line, and add the appropriate octave code to the beginning of any
- lines that do not already begin with it. You can determine the
- octave code for lines that do not begin with one by reading backward
- through the previous line until you come to an octave code; that is
- the code to begin the line.
- After completing this step, our song looks like this (
- NSTEP2.BBS
- O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- O3D16D16D16.C32D16.C32D32E32
- O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- O3D16D16D16.C32D16.C32D32E32
- O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- O3C32C32F16A16G16F16D16F8D16G8.D16G8.
- O3C16F16A16G16F16D16E16F16.
- O3D32C16O2A16O3F16.O2A32A16G8
- O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- In order to understand how this affects your music, try this
- experiment. Using your text editor, copy the last line of
- NSTEP1.BBS
- to a file, and name it
- JTEST1.BBS
- @. Copy the last line of
- NSTEP2.BBS
- to a file, and name it
- JTEST2.BBS
- @. Then play each test file, and
- compare the results.
- Now we are ready for the final step, adding the control codes and
- making each string a complete, individual display unit.
- At the beginning of each string, before the
- , we insert:
-
- [23;1H
- At the end of each string, after the
- , we add:
-
- After completing this step, we have the finished product (
- NDIXIE.BBS
- [23;1H
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- [23;1H
- [M T60O3D16D16D16.C32D16.C32D32E32
- [23;1H
- [M T60O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- [23;1H
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- [23;1H
- [M T60O3D16D16D16.C32D16.C32D32E32
- [23;1H
- [M T60O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- [23;1H
- [M T60O3C32C32F16A16G16F16D16F8D16G8.D16G8.
- [23;1H
- [M T60O3C16F16A16G16F16D16E16F16.
- [23;1H
- [M T60O3D32C16O2A16O3F16.O2A32A16G8
- [23;1H
- [M T60O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- [23;1H
- [M T60O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- In order to understand how this affects your music, try this
- experiment. Using your text editor, copy the last two lines of
- NDIXIE.BBS
- @ to a file, and name it
- JTEST3.BBS
- @. Copy the last two lines
- NSTEP2.BBS
- @ to a file, and name it
- JTEST4.BBS
- @. Play
- JTEST3.BBS
- @, and
- then
- JTEST4.BBS
- @; observe the cursor as you do so.
- The most common method of using ANSI-BBS music is to attach it to a
- screen display. If properly done, callers with music-capable
- terminals will receive and enjoy the music as an esthetic addition
- to the visual display, while those without music capability will
- never even know it is there. This can be a bit tricky, and it will
- require some extra time and effort; the end result, however, is well
- worth the energy.
- The first step is to choose or design the display to which music
- will be added. Ideally, the display should not involve the last two
- lines of the screen (24 and 25). If necessary, you may bring up the
- chosen display in an ANSI editor and block-save it so that it covers
- lines 1 to 23 only. This will leave line 24 free for the cursor and
- for any text, prompt, etc., that may follow the music when the dis-
- play is used within a program, and line 25 free for the status line
- required by many terminal programs.
- Once the display is chosen, sized, and saved as ANSI, bring it up
- in an ASCII text editor (
- TheDraw
- , or any other ANSI editor).
- Move the cursor to the next line after the existing code, and block
- copy your completed song into the file at that point. Then re-save
- the combined file, using the ASCII editor, under the original
- filename. The music will be invisible, and will play whenever the
- file is displayed.
- Additional planning is required when adding music to menus or other
- displays that are followed by a prompt. Make sure that the cursor
- will be below the last line of the menu display; two lines below, if
- possible. The prompt will then appear clearly, separate from the
- menu.
- Remember, it is possible to have too much of a good thing! There is
- no limit to the number of music strings that can be attached to one
- screen, but more than a few seconds' worth can be a bit irritating.
- Selected strings of music, used with restraint, can add greatly to
- the ambience of a system. A long concert at every change of display
- will not, and, indeed, may drive callers away instead.
- Uses for ANSI music are limited only by the imagination and
- creativity of the SysOp. It may be used with menus, newsletters,
- announcements, in messages, in Email, and anywhere else that ANSI
- itself is possible.
- Before posting a musical message on any BBS, make certain that such
- messages are allowed on the system and the base in which you wish to
- post. Also be aware that some BBS software automatically screens
- out all ANSI control codes, and may strip your music to a visible
- line of nonsense characters instead of playing it, or refuse the
- uploaded message entirely.
- Because most BBS message editors will not allow any high ASCII codes
- to be entered while typing a message, music must be posted by
- uploading it. There are two ways to do this. First (and easiest),
- you can compose your entire message offline using an ASCII editor,
- and then upload it to the system using either your terminal
- program's ASCII upload capability or the BBS's "upload text" option
- (if available). Alternatively, you can prepare just the music
- itself offline, then log in, enter and sign your message, and add
- the music after your signature but before saving the message using
- either of the above-mentioned upload methods.
- Again, it must be emphasized that not all systems welcome ANSI music
- in their posts; be sure to check first!
- When music is to be sent as a message, rather than incorporated into
- a system screen, the coding scheme is a bit different. Because BBS
- message systems vary so greatly in format, and because those
- receiving the message may or may not have ANSI and/or music
- capability, it is important to code the message so that it has the
- least possible potential for negative effects on the reader. To
- accomplish this, the following codes are used:
- To begin the string -
- Records the cursor's current column position, which will
- be within the message system's acceptable "writing area"
- Invisibility code
- Follow these two codes with your music string.
- To end the string -
- Returns the cursor to the column position recorded at
- Returns the cursor to the beginning of the existing row
- Resets screen attributes at end of song
- Thus, the first line of
- Mary Had a Little Lamb
- coded for posting as a
- message would look like this:
-
- [M T90O2E4D4C4D4E4E4E2D4D4D2E4G4G2
- The crucial consideration when using music in messages is the cursor
- location. Bear in mind that any cursor location code will leave the
- cursor where you have located it when the music ends. Anything that
- comes after/below that point will be overwritten by the next
- display. This can be quite disconcerting if the music is in a
- message, and causes the message text to be obliterated before it can
- be read! Thus, rather than "guesstimating" the location for best
- results in a message, we use the
- code to keep the cursor where
- the message system itself has put it.
- In addition to allowing for the message text itself, remember that
- BBS message systems use a "formatted" display for viewing messages.
- By using the
- and
- scheme for our cursor location, we make
- sure that the cursor location code leaves the cursor in a place
- where it will not interfere with the message system's format. Don't
- forget the reset code at the end of the last string.
- Here is our sample song coded for message use (
- NDIXIE.MSG
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- [M T60O3D16D16D16.C32D16.C32D32E32
- [M T60O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- [M T60O3C32O2A32F16F16F32G32A32A+32O3C16C16C16O2A16
- [M T60O3D16D16D16.C32D16.C32D32E32
- [M T60O3F32G32A8.F32C32F8.C32O2A32O3C8.O2G32A32F8.
- [M T60O3C32C32F16A16G16F16D16F8D16G8.D16G8.
- [M T60O3C16F16A16G16F16D16E16F16.
- [M T60O3D32C16O2A16O3F16.O2A32A16G8
- [M T60O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- [M T60O2A16F8.A16G8.O3D16C16O2A16O3F16.A32G16F8
- Notice that the music strings are the same; only the leading and
- closing codes are different. If this message were to be captured
- and converted for use in an ANSI-BBS screen, only the leading and
- closing codes would require modification, and these changes would
- be very simple to make using the global pattern change function of
- an ASCII editor.
- As it now exists, ANSI music coding has conflicts with the established
- ANSI coding standard. The most notable and troublesome of these is the
- sequence, which by standard is supposed to represent "delete line".
- Paul Wheaton of Banana Programming has done a thorough study of the
- conflicts between the ANSI standard and ANSI music codes. Bloomunit
- wishes to strongly endorse the changes he suggests in the enclosed
- BANSI003.DOC
- , and to encourage all software authors and developers to
- make the suggested modifications to their ANSI music-supporting communi-
- cations programs by
- January 1, 1997
- The most notable of these suggestions is replacing the
- sequence for
- starting ANSI music with the
- sequence, which has no conflicts at all
- with the existing standard, and furthermore is easy to remember since it
- relates to the
- character (
- Ctrl N
- ) which closes a music string.
- With cooperation and united effort, those of us who use and support BBS
- ANSI music can bring about a permanent change for the better, and make
- it more accessible for all to enjoy.
- It is my sincere hope that the information given here will inspire
- many SysOps to add music to their systems, and to do it well.
- Properly used, music can add a wonderful touch to a BBS, and
- personalize it in ways that nothing else can.
- If you found this tutorial helpful, or you have any questions or
- comments, please feel free to contact me by modem or mail. If you
- choose to register, you will be added to the mailing list for any
- future updates and news reports concerning ANSI-BBS music.
- Allow me to leave you with this thought:
-
- "Next to the Word of God, music is the greatest gift."
- (Martin Luther)
- I wish you the blessings of both!
- BY MODEM:
- Bloomunit BBS for Homeschool Families
- (407) 687-8712, 8n1, 24 hrs/7 days, 14.4 bps
- Running Virtual BBS v. 7.02
- VirtualNet: #1 @1407000
- FidoNet: Linda Bloom @1:3609/24
- FamilyNet: Linda Bloom @8:3111/10
- CompuServe/CIN: 74401,1606
- Internet-Email: bloomunit@flinet.com
- Homepage: http://www.flinet.com/~bloomunit
- BY MAIL:
- Linda Bloom
- 4986 Palm Beach Canal Road
- West Palm Beach, FL 33415-3101
- Registration of BBSAMT is only $10.00!
- Registered users are sent a bonus disk containing a TSR code
- reference for use in coding their own music, the shareware
- release of
- Melody Master
- , assorted ANSI music utilities, and
- a collection of ready-to-use ANSI-BBS songs.
- : The registration fee covers registration of BBSAMT and
- the costs of duplication and mailing ONLY. The programs on the
- bonus disk must be individually registered with their authors
- for continued use.
- Choose
- and then
- dit to complete this form.
- BBS ANSI MUSIC TUTORIAL, version 4.4 - REGISTRATION FORM
- [ ] $10.00 enclosed - Please register my existing copy of BBSAMT43
- and send me a bonus 3.5" disk containing the
- shareware release of Melody Master, ANSI music
- utilities, and a collection of ready-to-use
- ANSI-BBS songs. (NOTE: This amount covers
- registration of BBSAMT43 and the costs of
- duplication and mailing. The programs on the
- bonus disk must be individually registered
- with their authors for continued use!)
- I got my copy of BBSAMT43 from: [ ]
- Name: [ ]
- Address:[ ]
- [ ]
- City: [ ] State:[ ] Cntry:[ ] Zip:[ ]
- Other mailing info:[ ]
- Comments:[ ]
- [ ]
- [ ]
- Enclose check or money order payable to Linda R. Bloom, and send to:
- Linda R. Bloom
- 4986 Palm Beach Canal Road
- West Palm Beach, FL 33415-3101
-