The Atari 2600/7800 ProSystem 
Sound Development Tool

Version 0.40 August 2, 1988

Programmer: Kenneth Soohoo
with Dave Staugas
 Copyright 1988 Atari Corp.

Introduction
The Atari 7800 ProSystem includes the Atari 2600 Game System's chips on board, to enable it to play the huge number of existing 2600 games.  As a direct result of having access to the 2600 chip set, the 7800 uses some of the abilities of the 2600 to free up processor time and save on chip costs -- thus the 7800 sounds are generated through the 2600 sound processor.  The Atari 2600/7800 ProSystem Sound Development Tool enables the Atari ST owner to develop 2600/7800 sounds in the ST environment.  The Sound Tool gives the user a graphic development environment for sound, with quick and easy storage and retrieval.  To use a sound developed with the Sound Tool, the user can store the sound as data in the Atari MADMAC 6502 assembly format and play it with a simple vertical blank routine.

Hardware Requirements for Sound Tool
The Sound Tool runs on any Atari ST series computer, with either a black and white or a color monitor.  Place the color monitor in medium resolution before running the Sound Tool.  If you wish to hear the sounds on your 7800 hardware, you must connect the Developer's card to the 7800 and the ST's parallel printer port.  The interface card to the 7800 is NOT mandatory, you can develop sounds without hearing them, or simply do minor editing without connection.

2600 Sound Hardware Specifics
The Atari 2600 sound chip contains two voices, each with three control registers: Frequency, Volume, and "Control."  The Frequency (AUDF0, & AUDF1) ranges from 0-31, and divides a 30KHz signal to result in a 30KHz - ~1KHz range.  The Volume control (AUDV0, & AUDV1) has sixteen steps 0-15, which directly control loudness.  The Control register (AUDC0, & AUDC1) has sixteen positions, which cause the output signal to be some mixture of pure tone and noise:
	
	Control Value	Sound Type
		0		???
		1		Rich, low tones.
		2-3		Noisy, rich, low tones.
		4-5		Pure tone in middle ranges.
		6-10		Noise, low ranges.
		11		White noise.
		12-13		Pure tone, lower range.
		14		???
		15		Low noise	

The Frequency combined with the Control value determines the final output frequency, and noise content.

Sound Tool Installation
The Sound Tool consists of two Atari ST files: SOUNDT.PRG, and SOUNDT.RSC.  The executable and the resource must be in the same directory in order to run the Sound Tool, but you don't have to be in the same directory.  The only requirements are that the system be set up for a GEM environment, and that the first entry in ARGV is the path + name of SOUNDT.  For example, in the Mark Williams shell, you must type "GEM F:\BIN\SOUNDT" (if you put the Sound Tool in your BIN directory). 
 
The Sound Tool Environment
The Sound Tool contains three main action areas: the menu system, the sound development area, and the sound history.  The Sound Tool menu system provides disk access, sound playback, sound display, and minor editing features.  The sound development area gives the user direct access to the 2600/7800 sound registers through slider bars. The user can experiment with noises until finding just the right one before adding it into the song.  The sound history area gives visual feedback about the current song and enables changes of the notes in the body of the song on the fly.  Each note's duration and value can be manipulated in the sound history area, providing a flexible, fast approach to editing the sound.


The Sound Tool Menu System
	All commands in the Sound Tool can be accessed through the menu system, but most frequently used commands can be accessed through the keyboard.    Read on for a description of all the available menu options in Sound Tool.

File:
Load Voice(s)
Retrieve a file that was stored by the Sound Tool with the "Save Voice(s)" option by using this option.  A file selector will appear, select the file to load and press OK.  Cancel aborts the operation.  If the saved file only contains one voice, it will overwrite an empty voice if possible, and then the left hand voice.
Save Voice(s)
Outputs a file in Sound Tool format.  The resulkting file can be read by using the "Load Voice(s)" option (see above).  The Sound Tool writes the data on the current voices to the file specified by the user with the file selector.  If one voice is empty, it will not be written to disk.  By convention, Sound Tool only format files have the .SND extender.
Save as .S File
When you've developed a sound that you want to include in a 2600 or 7800 game, you can produce an assembler format file representing the sound data using this option.  The Frequency, Volume, Control, and Duration values for both voices  are written out in a MADMAC format file.  Each "tick" is represented by a single byte of data.  A simple Vertical Blanking Interrupt routine can step through each array of data, delaying on the duration of each note.

Playback:
Play Voice #1 <F1> and Play Voice #2 <F2>
Selecting "Play Voice #{1 or 2}" or hitting F{1 or 2} starts up the sound daemon which plays the voice through the 7800 system.  Each "tick" corresponds to 1/60th of a second duration tone.  If a 7800 system is not connected, then these options are disabled.  *Note: No other options are available while the sound is being played back.
Play Both <F3>
Select "Play Both" or hit F3 to hear both voices played simultaneously.

Movement:
Top of Voice #1 and Top of Voice #2
Shifts the display so that the top of the voice is just below the active bar  (middle of the screen history).  In this position, you can add notes onto the top of the sound.
Bottom of Voice #1 and Bottom of Voice #2
Moves the display so that the last note of the sound is inside of the active bar, and thus notes can be added to the end of the sound.

Block:
Copy Voice 1 -> 2 and Copy Voice 2 -> 1
Essentially deletes the destination voice and places the source voice in the destination channel.  Some developers like to make both voices identical, or just slightly different in Frequency, and this function simplifies development. *Note: This function is irreversible.
Clear Voice #1 and Clear Voice #2
Completely erases the given voice. *Note: Once a voice is cleared, it cannot be restored.

Edit:
Add to Voice #1 <F9> and Add to Voice #2 <F10>
Takes the note "inside" the sound creation bars at the bottom of the screen and adds it into the current sound, at the "active bar" location.  The sound bars remain unchanged.  
Delete from Voice #1 <F5> and Delete from Voice #2 <F6>
Removes the note inside the active bar from the appropriate voice. *Note: Once a note is deleted, it is unrecoverable.


The Sound Development Area
	The two sets of three slider bars at the bottom of the screen comprise the Sound Tool's Sound Development Area.  Each set of three sliders control a single voice's characteristics -- Frequency, Volume, and Control.  Manipulation of the sliders with the mouse sends the information directly to the 7800 via the Developer's Card (if connected).  To change the value of a slider, just click the left mouse button while positioned in the slider area and the little thing in the slider bar will snap to the mouse position.  Each slider's hexadecimal value is echoed below the left edge of the slider. If you hold down the left button and drag the mouse, the sound will follow the position of the mouse.  You can add notes while you hold the mouse button with the F9 and F10 keys, so you can develop a sound interactively while you hear it.  Any note added will appear inside the "active bar" for that voice.

The Sound History Area
	The six vertical windows comprise the Sound History Area, each set of three displaying Frequency, Volume, and Control values directly above and in line with the Sound Development Area values.  Sounds that are added appear at the location of the inverse bar in the center of each window, the active bar. Each dot in the History represents one "tick" of time, or 1/60th of a second.  Initially, a note is one tick long, but it's duration can be manipulated on the fly.  Duration is represented vertically,  so that each note's vertical length corresponds directly to its duration in "ticks."  You can scroll the display in the History area by clicking on the arrows to the upper right of each set of three windows.  The up arrow moves the view up, while the down arrow shows more of the sound below the current view.  Menu options "Top of Voice" and "Bottom of Voice" further position the view.

Note Manipulation
	Each note in a sound can be positioned on the fly while displayed in the History window.  Click the left button in the window to reposition a note.  If you click at a new position in the Frequency window, the entire note will jump to the new position.   Creating a waveform is as easy as clicking and holding the left button, and then dragging down the voice -- this will reposition each note you touch to your current position.  Click and hold the right button to change the duration.  After you click and hold the right button, the cursor will change into the hexadecimal representation of the duration of that note in "ticks."  Pull down with the mouse to increase the length, and push up to decrease.  The mouse / number will change to echo movement.  Let go of the right button to view the changed note.

Questions & Comments
We would appreciate your commentary on the 2600/7800 ProSytem Sound Tool, especially suggestions for improvements, and bugs.  Please write your comments down and send them to:
	Atari Corporation
	Attn: Dave Staugas
	1196 Borregas Avenue
	Sunnyvale, CA 94086

or call Ken Soohoo (before August 19, 1988) at (408)745-2020
