[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple II Sound & Music Frequently Asked Questions (FAQ)



Nathan Mates wrote:
> 
> Archive-name: apple2/soundmusic
> Posting-Frequency: monthly
> Last-modified: November 3 1997
> Version: 1.7
> URL: http://www.visi.com/~nathan/a2/faq/snd.mus.html
> 
>                           Apple II Sound & Music FAQ
> 
>    Archive-name: apple2/soundmusic
>    Posting-Frequency: monthly
>    Version: Version 1.7 (3-NOV-97).
> 
>    Written by Ian Schmidt (irsman@iag.net)
>    Thanks for corrections and updates to Michael Mahon, Joe Walters, Dave
>    Lyons, Dave Huang, Mitchell Spector, and Scott Gentry.
>    Send additional questions/comments/blatent error reports to
>    irsman@iag.net.
> 
>    A quickie what's new:
>      * Added and fixed some info.
>      * Added the 3D sound section.
> 
> Table of Contents:
> 
>      * An introduction to music and sound
>      * 8-bit music and sound
>      * Types of sound files used on the IIgs
>      * How to digitize sounds
>      * How to edit sounds
>      * Types of music files
>      * An overview of SoundSmith-style editors
>      * An overview of MIDI
>      * Technical specifications for the IIgs Ensoniq chip
>      * About IIgs stereo cards
>      * What about them other machines? And video games?
>      * What's this I hear about 3D sound?
> 
>      _________________________________________________________________
> 
> An introduction to music and sound on computers.
> 
>    Music and sound have been a computerized pursuit since at least the
>    1960s, when enterprising hackers discovered that by programming the
>    large mainframes of the time to do different operations, different
>    tones could be generated on a common AM radio from the interference
>    (this is still a problem today :-).
> 
>    Early synthesizers developed at the time (known as Mellotrons)
>    consisted of a huge bank of tape loops, with each key playing a
>    different tape. Primitive analog tone generators were also in use.
>    These early synthesizers first got wide industry exposure via Walter
>    aka Wendy (never mind) Carlos' "Switched-On Bach" album. At this time
>    (mid to late 60s), Robert Moog developed the direct ancestors of
>    today's synthesizer. Moog's synthesizers were programmed via 'patch
>    bays', wherein the user would connect a series of jacks in a specific
>    configuration via patch cords to get a certain tone. This use of the
>    word 'patch' for a sound setting on a synthesizer persists, despite
>    that today a 'patch' is usually a data file stored on disk or in ROM.
> 
>    The Moog's debut in a Top 40 song was Del Shannon's "Runaway". A Moog
>    was used along with a tube-based analog synthesizer called a theremin
>    in the Beach Boys' classic "Good Vibrations". The possibilities of
>    synthesizers weren't really exploited until the onslaught of 70s
>    'art-rock' bands such as the Who, Supertramp, ELP (Emerson, Lake, and
>    Palmer), Genesis, Yes, Pink Floyd and Rush. Synthesizers have
>    continued to advance to the point where they are now the only
>    instrument needed to make a typical Top 40 or rap album. This was
>    foreseen somewhat by Boston, who included a "No Keyboards!" logo on
>    one of their early albums despite the obvious inclusion of a Hammond
>    organ on several songs.
> 
>    Computer control of music developed somewhat later, however. Several
>    companies in the early 1980s had competing systems for allowing
>    electronic synthesizers to interface to computers and each other,
>    Roland's "CV-Gate" system being among the most popular. Around 1983 or
>    so, a group of companies developed the now ubiqitous MIDI (Musical
>    Instrument Digital Interface) standard. It is now very difficult to
>    find a synthesizer without MIDI capabilities, and all popular
>    computers can be interfaced to MIDI instruments, including the Apple
>    II.
> 
>    The first development after MIDI was introduced was the "sequencer"
>    program, a program which allowed the recording and playback of MIDI
>    data streams, as well as sophisticated editing functions. This allowed
>    perfect playback of songs every time, as well as more advanced
>    functionality such as the ability to synchronize MIDI data with SMPTE
>    (Society of Motion Picture and Television Engineers) time code, a fact
>    which made it very simple to add MIDI-based music to television shows
>    and theatrical films and synchronize to a resolution finer than 1
>    frame. SMPTE and MIDI were used heavily in the production of the
>    soundtrack for the recent blockbuster "Jurassic Park" for example.
> 
>    At about the same time as the first sequencers were arriving,
>    computers began to get sound chips with some semi-decent capabilities.
>    Machines such as the TI-99/4A and Atari 800 had chips capable of
>    playing at least 3 independent tones at any one time. However, the
>    tones were preset, usually to a square wave, which has very little
>    musical interest. This went to the next step when a young engineer
>    developed the SID sound chip for the Commodore 64 computer. The SID
>    chip could play 3 tones at once [plus 1 channel devoted to 'white
>    noise' percussive sounds], and each of the tones could be selected
>    from a range of several waveforms. In addition, advanced effects such
>    as "ring modulation" were avalible on this chip. The C=64 soon allowed
>    many to compose some amazing tunes, but the best was yet to come.
> 
>    The engineer who designed the SID went on to join a company called
>    Ensoniq, where he designed the DOC (Digital Oscillator Chip) which
>    powered the company's now legendary Mirage synthesizer. The Mirage was
>    unique in that it was the first major synthesizer to offer sampling,
>    wherein you could digitally record any sound you wanted, from trumpets
>    to snare drums to water dripping, and use it as an instrument. Best of
>    all, the DOC chip could play up to 32 samples at any one time, making
>    it useful to emulate a whole orchestra with one Mirage. The DOC chip
>    also powered Ensoniq's ESQ-1 and SQ-80 synthesizers.
> 
>    Now, to get some Apple II-ish relevance. During the design of the
>    Cortland (aka IIgs), Apple was planning on using a chip not unlike the
>    one on the Mac II series. This chip played 4 samples at once, but was
>    limited in it's stereo capabilities (you got 2 samples on the left,
>    and 2 on the right, and that's it) as well as overall flexibility
>    (it's limited to 1 fixed sampling rate of 22,050 Hz). Luckily, Ensoniq
>    sent a sample of the DOC chip to Apple, and it ended up in the hands
>    of a music enthusiast working on the IIgs project. This engineer
>    fought with management until they decided to use the DOC chip for the
>    IIgs. However, up until nearly the last minute, the DOC and it's 64k
>    of RAM were to be an extra-cost feature, which would have killed the
>    GS music software market dead. Luckily, price drops on components
>    allowed the DOC to be standard, so all IIgs owners could hear great
>    sound.
> 
>    Back to generalized things, the next development was to combine
>    sampling and sequencing software on capable computers. This resulted
>    in the *Tracker genre on the Amiga, as well as Music Construction Set,
>    Music Studio, and other programs on many platforms. These programs
>    typically had a sequence file and a series of sample files used as
>    instruments, with some notable exceptions (the *Tracker series on the
>    Amiga had all-in-one 'modular' files, hence the name MOD).
> 
>      _________________________________________________________________
> 
> 8-bit music and sound
> 
>    The 8-bit IIs are quite underpowered in the sound department compared
>    to the IIgs. However, anyone who's played Dung Beetles or Sea Dragon
>    knows that some pretty sophisticated stuff is still possible. The
>    8-bit sound normally consists simply of an ability for programs to
>    make the speaker click. If a program toggles the speaker very fast,
>    tones are generated. And using other techniques beyond the scope of
>    this FAQ, you can even play digitized samples on the speaker, although
>    the quality isn't very good unless you can somehow hook up external
>    speakers. You can hear for yourself with Michael Mahon's Sound Editor
>    2.2, which is currently available from his web page at:
>    http://members.aol.com/MJMahon/
> 
>    There have also been a variety of sound expansion boards available for
>    the 8-bit IIs, but the only one to really catch on was the venerable
>    Mockingboard. The Mockingboard was available in several packages. The
>    Mockingboard "A" was the base card, which added 6-voice music and
>    sound synthesis to to any alotted II. The Mockingboard "B" was a
>    daughterboard that worked with the "A" and added speech synthesis
>    capabilities. The Mockingboard "C" was essentially an "A" and "B" in
>    one package. The later Mockingboard "D" had the same capabilities as
>    the "C", but attached to the Apple IIc via the serial port.
> 
>      _________________________________________________________________
> 
> Types of sound files found on the IIgs
> 
> Several types of sample files are used.  Here are the most common.
> 
> Name        Extension   FType    Description
> ---------------------------------------------------
> Raw         no std.     BIN      Contains only raw sample data.  The auxtype
>                                  is normally the sample rate divided by 51.
>                                  (See section CA for more on why this is).
> ACE         .ACE        $CD      Contains raw sample data compressed with ACE,
>                                  Apple's Tool029 sound compressor.
> ASIF        no std.     $D8      Contains sample data plus additional data.
>                                  Notable due to its use by SoundSmith.
> AIFF        .AIFF       $D8      Interchange format popular on the Macintosh.
>                                  Not used much on the IIgs.
> HyperStudio no std.     $D8      Contains raw or ACE compressed data plus
>                                  additional information.
> rSound      no std.     $D8      Resource fork contains one or more rSound and
>                                  rResName resources.  Used by HyperCard
>                                  IIgs and the Sound CDev.
> 
>      _________________________________________________________________
> 
> An introduction to sampling
> 
>    Sampling is conceptually simple; an incoming analog sound signal is
>    converted to a digital number (0-255 on the IIgs). Getting good
>    samples depends on a number of factors:
> 
>      * Sampling rate. This is how often in samples per second the
>        incoming signal is actually noticed and saved. In general, you
>        want to have a sampling rate of twice the frequency of the highest
>        pitch sound you intend to sample. (The reasoning behind this is
>        known as the Nyquist Sampling Theorem). Compact discs sample at
>        44,100 Hz, which means they can accurately track signals up to
>        22,050 Hz, beyond the range of human hearing. Long-distance
>        telephone calls are sampled at 8,000 Hz, since the characteristic
>        part of human voices is generally from 1000-3000 Hz. If
>        frequencies higher than or equal to half your sampling rate exist,
>        they will manifest as distortion in the output sample.
>      * Stereo card quality and shielding (the Audio Animator makes the
>        best samples of any card I've tried, by far).
>      * Input signal level (the higher the better, except that there is a
>        threshold known as the 'clipping level' above which the sampler
>        will be unable to track the signal. Analog tape recorders do
>        something very similar).
> 
>    Once a sample is made, it can be manipulated in a variety of ways via
>    mathematics. Because this processing is digital, no degradation of the
>    signal can occur, unlike with analog processing. Some effects which
>    can be done include:
> 
>      * Cut and pasting parts of the sample around.
>      * Mixing/overlaying two samples.
>      * Flanger/Chorus effects.
>      * Amplification and deamplification.
>      * Echoing
>      * Filtering and equilization
> 
>    and much more...check out a modern rack-mounted guitar digital signal
>    processor for all the things possible :)
> 
>    To digitize a sound (I'll use AudioZap as the example, others are
>    similar):
> 
>      * Hook everything up.
>      * Check the oscilloscope. The wave should be barely touching the top
>        and bottom of the 'scope. Any higher and the sound is clipping;
>        any lower and you'll get a poor quality recording. Adjustment
>        methods vary by card; for the Sonic Blaster card AZ can adjust it
>        in software. Otherwise, consult your card's manual.
>      * Select a recording rate (lower numbers on AZ = faster).
>      * Click Record and cue up your tape or CD.
>      * Select Ok and then start the tape or CD.
>      * Click the mouse and stop the tape or CD when you are done.
> 
>    You've just made a sample! congratulations! Experiment...you can't
>    hurt anything, but may discover fun/neat things to do!
> 
>      _________________________________________________________________
> 
> Some basics on editing sounds.
> 
>    (This section attempts to be program-independent, but in some cases
>    specific refrences to AudioZap may sneak in :-)
> 
>    I'll assume you now have a sound loaded up, and whatever program is
>    showing you a nice wave graph. Now, you can pick out portions of the
>    wave by simply clicking and dragging the mouse over a part of the
>    wave, and letting go when you have as much as you want. If you now try
>    to Play, you'll only hear the portion you have selected. If you need
>    to adjust your selection range, many programs allow you to shift or
>    apple-click and extend the endpoints instead of just starting over
>    with a new range.
> 
>    Once you have an area selected, you can cut/copy/paste/clear just like
>    you would text in a word processor. When pasting a waveform, you
>    simply click once where you'd like, and select Paste. The program
>    inserts the previously cut or copied piece of wave and moves the wave
>    over to make room, just like with a word processor.
> 
>    For more specific information, consult the documentation for the
>    program you use.
> 
>      _________________________________________________________________
> 
> AE Types of music files
> 
> Name        Extension   FType    Description
> ---------------------------------------------------
> MCS         None        MUS      Music Construction Set tune.
> TMS         .SNG        BIN      Music Studio song.
> SS          None        MUS      SoundSmith song.
> NTMOD       None        INT      NoiseTracker GS module
> NTSNG       None        BIN      NoiseTracker GS song.
> MOD         None        $F4      Amiga ProTracker module ($F4 is temporary).
> MIDI        .MID        MDI      Standard MIDI file.
> 
>      _________________________________________________________________
> 
> A brief overview of SoundSmith style editors.
> 
>    SoundSmith (and all other MOD derived editors) use a very simplistic
>    way to representing music, to wit:
> 
> 0  C5  1000  --- 0000
> 1  --- 0000  --- 0000  ... additional tracks here
> 2  G5  33FF  G5  53FF
> 3  --- 0000  --- 0000
> 4  C5  1000  --- 0000
> 
>    This is often known as a 'spreadsheet' format since there are rows and
>    columns much like a spreadsheet. Let's take a look at an individual
>    cell:
> 
> Number of cell
> |     Instrument number
> |      |  Effect data
> |      | /|
> 2  G5  33FF
>    /\   |
>    ||   Effect number
>    ||
>   Note and octave
> 
>    For this note, it's #2 of 63 in the pattern, it's a G in octave 5,
>    using instrument number 3, effect 3, and data FF. What effect 3
>    actually means depends on the tracker in question. On SoundSmith and
>    derivatives, it means "Set the volume to --", in this case set it to
>    $FF (255) which is the maximum.
> 
>    Now, into a larger structure. 64 lines of cells makes up a block, or
>    pattern as it is sometimes called. (some Amiga and PC editors allow
>    blocks of varying lengths, but we won't consider those here). You can
>    terminate a block early with a special effect. On most trackers, an
>    actual effect number is used. On SoundSmith, entering the note/octave
>    as NXT makes that line of cells the last line played in that block.
> 
>    Now that we've covered cells and blocks, we can get into the
>    large-scale structure of things. To make a complete song, we can give
>    the player a 'block list' which tells it to play a specific sequence
>    of blocks in a specific order. For instance, we could have it play
>    block 4, then block 0, then block 1, then block 2, then block 2. An
>    entry in the block list is known as a 'position'. MOD-derived formats
>    typically allow 128 positions, and 64 (MOD) or 71 (SoundSmith) blocks.
> 
>    For those of you with (gasp!) other machines and more modern trackers,
>    you'll notice many of these trackers have a 4th column in each track.
>    The extra column is usually a volume level for the track, where 0
>    means "don't change" and all other values do - this helps to preserve
>    effects and make things more flexible. Also, nearly all limits
>    associated with the original MOD format are no longer in force -
>    Impulse Tracker on the PC, probably the most advanced tracker
>    available today, offers 64 tracks, up to 32 megabytes of samples, and
>    nearly unlimited blocks and positions.
> 
>    A Practical Example:
> 
>    Crank up MODZap 0.9 or later and a favorite tune. Set it to the
>    "Classic Player". Now, remember those numbers you never understood
>    before, off to the left of the scrolling cells? Here's what they mean,
>    in terms of what you just learned: *grin*
> 
> This is the # of entries in the block list      >  35  --- 0000
> This is the current block list entry playing    >  04  --- 0000
> This is the block # currently playing           >  01  --- 0000
> This is the current cell # in the current block >  36  A#4 0384
> 
>    As you watch, the current cell # will normally (barring certain
>    effects) smoothly go from 00 to 63. When it hits 63, it will go to 00
>    again and the current block list entry number will increment by 1.
>    When it does, the current block number will change if needed
>    (remember, a block can appear multiple places in the block list).
> 
>      _________________________________________________________________
> 
> An Overview of MIDI
> 
>    MIDI is a specification developed to allow computers and electronic
>    musical instruments to communicate with each other. Physical MIDI
>    hookups can get rather complicated; here is a brief primer:
> 
>    MIDI hookups are a lot like your stereo, in that each device has IN
>    and OUT ports. However, MIDI devices also have a port known as THRU,
>    which retransmits information from the In port (more on why this is a
>    Good Thing later). MIDI devices are thus connected in a modfified
>    daisy-chain arrangement, with the Out of the master (usually a
>    computer) connected to the In of Slave #1, and Slave #1's Thru
>    connected to Slave #2's In, and so on. The Outs of all devices go to
>    the In of the master.
> 
>    Here is a diagram of a simple hookup:
> 
>  -----------------------------------
> |    ----------------               |
> |   |   ___________  |     -----    |
> |   |  |           | |    |     |   |
> In In Out         In Out Thru   In Out Thru
> Computer          Synth         Drum Machine
> (Master)          (Slave #1)    (Slave #2)
> 
>    MIDI is based on 16 'channels'.
>    Each channel is typically assigned to one specific device you have
>    connected in your chain. In the example above, you might have the
>    synth set to listen to channels 1-9, and the drum machine set to
>    listen to channel 10 (this is a typical assignment). With this setup,
>    when the computer transmits a note on channel 10, it will first go to
>    the IN of the synth, which will simultaneously retransmit it via it's
>    THRU port and notice that it doesn't want to use the data. The note
>    will then appear on the drum machine's IN port. The drum machine will
>    transmit it on it's THRU port (to which nothing is connected in the
>    example) and start the note. This allows flexibility; if for instance
>    you wanted you could connect a second drum machine with different
>    sounds, set it to channel 10 also, and have a unique mix :)
> 
>    I will not cover MIDI recording and editing here, because there isn't
>    really any good MIDI software on the IIgs to cover. That's life.
> 
>      _________________________________________________________________
> 
> Technical Specs for the GS Ensoniq chip
> 
>    The 5503 Ensoniq Digital Oscillator Chip (DOC) contains 32 fundamental
>    sound-generator units, known as 'oscillators'. Each oscillator is
>    capable of either making an independent tone by itself, or of being
>    paired up cooperatively with it's neighbor in a pairing known as a
>    'generator'. The generator arrangement is used by most programs, for
>    it allows more flexibility and a thicker, lusher sound.
> 
>    The DOC plays 8-bit waveforms, with the centerline at $80 (128
>    decimal). This format is known as "8-bit unsigned". $00 (0 decimal
>    too) is reserved for 'stop'. If a sample value of 0 is encountered by
>    a DOC oscillator, the oscillator will immediately halt and not produce
>    any more sound. The DOC additionally has an 8-bit volume register for
>    each oscillator, with a linear slope. The dynamic range of the DOC
>    (the 'space' between the softest and loudest sounds it can produce) is
>    approximately 42 dB, or about on par with an average cassette tape.
> 
>    Each oscillator has it's own 16 bit frequency register, ranging from 0
>    to 65535. In a normal DOC configuration, each step of the frequency
>    register increases the play rate by 51 Hz, and computing the maximum
>    theoretical play rate is left as an exercise for the student.
> 
>    When oscillators are paired to create generators, there are 4 possible
>    modes:
> 
>      * Free-run: the oscillator simply plays the waveform and stops. No
>        interaction with it's 'twin' occurs.
>      * Swap: Only one oscillator of the pair is active at a time. When
>        one stops, the other immediately starts.
>      * Loop: The oscillator simply plays the waveform and if it hits the
>        end without encounter.cgiing a zero, it starts over at the
>        beginning.
>      * Sync/AM: This actually has 2 possible effects: either one
>        oscillator of the pair modulates the volume of the other with the
>        waveform it's playing, or both oscillators sync up perfectly,
>        causing a louder and more 'solid' sound.
> 
>    Oscillators play waves stored in up to 128k of DRAM. This DRAM is not
>    directly visible from the GS's 65816 CPU, but can be accessed (slowly)
>    via services supplied by the Sound GLU chip. Note that no widely
>    manufactured IIgs motherboard supported the full 128k of DRAM that the
>    DOC can see. Conversely, no synthesizer Ensoniq made using the DOC had
>    anything less than the full 128k.
> 
>    The output of an oscillator can be directed to any one of 16 possible
>    channels. Apple only makes 8 channels avalible via the 3 bits on the
>    sound expansion connector, and all current stereo cards limit this to
>    1 bit, or two channels. However, the "Bernie II The Rescue" IIgs
>    emulator for the Power Mac expands this support to 4 discrete output
>    channels, two of which are encoded to the rear channel for Dolby
>    Pro-Logic compatible output. No IIgs software that I'm aware of
>    supports more than 2 channels however.
> 
>      _________________________________________________________________
> 
> Abouis UltraSound          32         8/16       None(2)    Yes     Yes  16(4)
> Gravis UltraSound Max      32         8/16       None(2)    Yes     Yes  16
> Gravis UltraSound PnP      32         8/16       None(2)    Yes     Yes  16(11)
> Logitech SoundMan Wave     20           16        22        Yes     Yes  16
> Commodore Amiga (all)       4            8       None       Yes     Yes  8(4)
> Mac (non AV, 0x0)           4            8       None       Yes(3)  Yes  8(4)
> AV 0x0 Mac             Infinite(1)    8/16(10)  Infinite(1) Yes     Yes  16
> PowerPC Mac                 2           16       None       Yes     Yes  16
> AV PowerPC Mac         Infinite(9)    8/16(10)  Infinite(9) Yes     Yes  16
> 
> Game Machine         Wavetable voices  WT bits  FM voices Other voices Stereo?
> ------------------------------------------------------------------------------
> Atari 2600                  0             0         0          2         No
> Intellivision               0             0         0          4(8)      No
> Nintendo Ent. System        1(5)          8         5          1         No
> Sega Genesis                1(5)          8         6          0         Yes
> Sega CD                     11(7)         8/16(7)   6          0         Yes
> Super NES                   8             12(6)     0          0         Yes
> Sony PlayStation            24            16(6)     0          0         Yes
> Sega Saturn                 32(12)        8/16      32(12)     0         Yes
> Nintendo 64              Infinite(13)     8/16   Infinite(13)  0         Yes
> 
>    Notes:
> 
>    "Wavetable" as used here means "a channel capable of playing back a
>    digitized waveform". This is NOT the generally musically accepted
>    meaning of the term, but it IS how it is commonly used when referring
>    to computer sound boards.
> 
>    "8/16" for WT playback bits means the chip is capable of directly
>    processing 8-bit or 16-bit samples without conversion (the GUS's GF1
>    chip and the AV Mac's DSP chip obviously fit these criteria).
> 
>    1 - The AV Mac's DSP chip can theoretically mix an infinite number of
>    wavetable voices or synthesize an infinite number of FM voices.
>    However, this is limited in practice by the speed of the chip and any
>    other things you have it doing (voice recognition, modem replacement,
>    etc).
> 
>    2- The Gravis UltraSound can emulate FM synthesis in software.
> 
>    3- Macs before the Mac II were mono-only.
> 
>    4- This requires additional hardware.
> 
>    5- The Genesis and NES's wavetable channel is pretty hackish, and not
>    very high quality; nonetheless it works for speech.
> 
>    6- The SNES and PSX sound chips accept 16 bit samples which have been
>    ADPCM 4:1 compressed (this is