Antic Music Processor
Ultimate 8-bit song stylistby Stephen Lashower
Antic Music Processor, this month's Super Disk Bonus, is a powerful assembly language program that takes full advantage of the impressive sound capabilities of the Atari 8-bit computer (minimum 48K memory required).
Featuring a user-friendly note entry system with an "intelligent" parser, Antic Music Processor can play four voices over a range of 5 1/2 octaves. Songs with more than 10,000 notes can be entered quickly and easily, by anyone who knows how to read sheet music. And because Antic Music Processor is set up like a spreadsheet, any part of a song can be located within seconds.
Best of all, thousands of song files from the popular public domain program Advanced Music System II are instantly compatible with Antic Music Processor. An included BASIC utility converts Advanced Music System files into Antic Music Processor format.
Antic Music Processor is the easiest handling high-powered Atari music software ever published by this magazine. We challenge our monthly disk users to come up with a song file that shows off the entire range of features in this software. Winning songs will appear on the June 1989 Antic Disk. The programmer of the best song will win an Antic Software product from The Catalog. Runner-up winners will receive a copy of the June 1989 disk issue containing their songs.
Your entry must be received by February 1, 1989. Send your songs on disk (DOS 2 or 2.5) to: Antic Song Challenge, 544 Second Street, San Francisco, CA 94107. On the disk label, write your name, address, phone number, song filenames, titles, and composer or performer. All entries become the property of Antic Publishing Inc. and will not be returned.
USING THE PROGRAM
Use DOS command O to copy the AMP.EXE file to another disk that includes the DOS.SYS file. Don't attempt to run Antic Music Processor directly from the monthly Antic Disk. Use DOS command E to rename AMP.EXE to AUTORUN.SYS. Turn off your computer and remove all cartridges. Place the disk in drive 1. Hold down the [OPTION] key if you're using an XL or XE. Antic Music Processor will load and run automatically.
Following are the Antic Music Processor commands:
[L]oad a song--Press [L] followed by the filename of a song to load it from disk. This month's Antic Disk includes the sample music file COMESAIL, a highly expansive version of "Come Sail Away" by the rock group Styx from their "Grand Illusion" album.
[P]lay Music--Pressing [P] plays back the music in memory. But first, Antic Music Processor will prompt you for the voices and measures to play.
Select Voices--The highlighted voice numbers are the ones that are going to be played. To toggle a voice on or off, type the number (1-4) of that voice. Press [RETURN] after all voices are chosen.
Select Measures [x,y]--Measures to be played, starting at measure x and playing through measure y. Press [RETURN] after making your selection.
Playback will now begin. Pressing [START] before playback ends will return you to the main menu.
[E]nter Edit Music--Pressing [E] brings you to the Music Editor, which seems complicated at first. But with a little practice, it will become second nature to you. When entering the editor, the Voice #1 column will be highlighted and the first measure of each voice will be displayed.
At the bottom of the screen are the status lines, showing:
1. Number of beats in the present measure (e.g.: Beats=0).
2. The current Meter and Tempo (e.g.: Meter=4/4 and Tempo=100 beats per minute).
3. The key signature (e.g.: Key=0#).
4. The amount of memory left for entering notes (e.g.: Mem=31250).
The following Music Editor Command Specifications assume that the reader has some elementary knowledge of music theory:
NOTES AND RESTS
Note[Acc] [Oct] [Dur] [Env] [/Dyn]:
Accidental (Optional): #:F:N (1)
Octave (Optional): 1-6 (2)
Duration (Optional): D:D.:D..:D3: ^X (D=W:H:Q:E:S:T:Z; X=1-255)
Envelope: ):>:':" (3)
Dynamic--quietest to loudest: PPP:PP:P:MP:MF:F:FF:FFF:F1:F2:F3:F4:F5:F6:F7
Bracket symbols [ ] are used for separating different options. If not specified, all optional items take on the values shown in the status lines at the bottom of the screen.
A note can be followed by an accidental--sharp (#), flat (F), or natural (N). You don't need to enter accidentals if they're in the key signature. Accidentals carry through until the end of a measure, or until you specify a new accidental. For example, C# remains sharp until you enter CN.
Note C, octave 4 (C4) is middle C. If you do not specify the octave, the octave number of the note nearest the previous note is used. For example, a C followed by a B3 is interpreted as C4, not C3.
) Ties notes together
> Normal note envelope (not printed on screen after each note entered)
' Slightly faster decay than >
" Fastest note decay (staccato)
MEASURES AND TEMPO
M--Insert measure marker at cursor.
Tx--Change Tempo to x (x=30 to 290) at cursor.
[CONTROL] [ARROW] key combinations move the cursor in the direction of the arrow. [SHIFT] [UPARROW] moves the cursor to the next measure, and [SHIFT] [DOWNARROW] moves it to previous measure.
Mx--Display measure x.
MET=x/y--Change meter (x=1-32, y=1:2:4:8:16:32).
KEY=na--Change key signature (n=0-7, a=#:F).
P--Play Notes in current edit column.
DELETE AND UNDELETE
[DELETE]--Remove the last character in the data entry line.
[CONTROL] [DELETE]--Remove the note at the cursor.
[CONTROL] [INSERT]--Undelete the note at the cursor.
CUT AND PASTE
[SHIFT] [DELETE]--Place the note at the cursor in tile buffer.
[SHIFT] [INSERT] -Place the notes in buffer at the cursor.
[SHIFT] [CLEAR]--Clear out all data in the buffer.
[ESCAPE] returns you to the main menu. This works at any point in the program except during playback.
[C] Clear Music--Press [C] to clear all notes currently residing in the computer's memory. Answering [Y] to the prompt carries out the function. Pressing any other key returns you to the main menu.
[T] Tempo--Playback speed can be selected pressing [T] from the main menu, or embedding tempo commands with the notes. Tempo can range from 35 (slowest) to 290 (fastest). Also, the most recent tempo change (if any) encountered during playback will be displayed here.
[S] Save File--Type in the filename and press [RETURN].
[D] Disk Directory--Pressing [RETURN] without specifying a filename will list all of the files on the disk. Once the directory has been displayed, you can [L]ock, [U]nlock or [D]elete a file.
[F] Format Disk
AMS FILE TRANSLATOR
The AMS File Translator converts any Advanced Music System II file into Antic Music Processor format. In BASIC, LOAD and RUN "D:CONVERT.BAS". Type in the source and destination files when prompted and be sure to specify the drive numbers. Depending on the length of the file, the translation process could take quite a long time.
NOTE: Duration errors might occur during conversion. Notes with durations longer than 255 clicks (e.g. W.,W..) will be interpreted differently by Antic Music Processor. These notes should be deleted using Antic Music Processor and reentered using shorter durations and ties. This process can be used to create notes of any length.
Listing 1: AMP.EXE Download
If you have any questions, please feel free to e-mail
me at firstname.lastname@example.org. I'm not sure how much longer that e-mail will be active,
but you can always write me on comp.sys.atari.8bit and I'll be sure to see the post
sooner or later.
Hopefully, you'll find some use for all of this...or learn something from it.
AMP was definitely a labor of love, and next to Mortal Kombat Trilogy Saturn,
is probably the project I'm most proud of. Apologies go to Philip Price from
whom I stole his acronym (AMP - Advanced Music Processor) and his player GUI.
Phil was a true genius, so at least I stole from the best. Feel free to use the
code however you see fit, but do be a sport and give me a line of credit...also,
I'd really love to see how it was put to use! :)"
Listing 2: CONVERT.BAS Download
Listing 3: COMESAIL Download
Listing 4: MUNSTERS Download
Listing 5: NUT Download
Source code: AMP12.ATR Download
In April 2002, Steven Lashower released the source code for The Antic Music Processor. The ATR download includes the executable and the source. Mr. Lashower's notes: "AMP was written using Mac/65. Iím afraid that the original source code is not very readable - I only had 48K of RAM, so I had to make the source code as small as possible (i.e., not very many comments and rather short labels). Also, I was only in 11 grade at the time, so don't expect some kick-butt 6502 code. ;) The player itself is rather silly - it uses a CPU delay loop for timing instead of syncing up with the VBLANK. Oh, well-feel free to fix it.
If you have any questions, please feel free to e-mail me at email@example.com. I'm not sure how much longer that e-mail will be active, but you can always write me on comp.sys.atari.8bit and I'll be sure to see the post sooner or later.
Hopefully, you'll find some use for all of this...or learn something from it. AMP was definitely a labor of love, and next to Mortal Kombat Trilogy Saturn, is probably the project I'm most proud of. Apologies go to Philip Price from whom I stole his acronym (AMP - Advanced Music Processor) and his player GUI. Phil was a true genius, so at least I stole from the best. Feel free to use the code however you see fit, but do be a sport and give me a line of credit...also, I'd really love to see how it was put to use! :)"