-------------------------------------------------------------------------------
                          -= Analogic Documentation =-
-------------------------------------------------------------------------------
  Version  : 1.0  :  8-30-1997 : Initial release
-------------------------------------------------------------------------------

    Analogic - Table of contents
    ----------------------------
    Analogic              : License agreement
    Analogic - Topic 1    : What is it ?
    Analogic - Topic 2    : Synthesizers
    Analogic - Topic 3    : The program
    Analogic - Topic 4    : Things to remember
    Analogic - Topic 5    : Contacting us
    Analogic - Appendix A : Files in this package
    Analogic - Appendix B : Sounds in ANALOGIC.BNK
    Analogic - Appendix C : MIDI support
    Analogic - Appendix D : Technical details
    Analogic - Appendix E : Known bugs in Analogic v1.0
    Analogic - Appendix F : Future versions
    Analogic - Appendix G : Other NewStyle products


--------------------------------------------------------------------------------


    Analogic : License agreement
    ----------------------------

     !!! IF YOU DO NOT AGREE WITH THE TERMS BELOW, REMOVE ALL FILES OF !!!
     !!! THE ANALOGIC PACKAGE FROM YOUR COMPUTER SYSTEM.               !!!

      This product is copyrighted software. This means NewStyle is the
       sole owner of any information whatsoever contained in this package.

      NewStyle is not responsible for ANY damage WHATSOEVER, direct,
       indirect, physical, mental, financial, social, etc.


--------------------------------------------------------------------------------


    Analogic - Topic 1 : What is it ?
    ---------------------------------

    NewStyle Analogic is a software based Physical Modelling Synthesizer.
    This means it's a digital device (your PC) which emulates analog
    equipment (like old synthesizers). Synths like the Clavia NordLead,
    Yamaha AN1x and Roland JP-8000 use this principle.
    The big advantage of this synth is that it's free. Doesn't cost you
    a thing, so check it out !

    System requirements :

            SB16/AWE or GUS Classic (or both!)
             External MIDI in only works for GUS and COM-port.
            VESA 2.0 with linear frame buffer (LFB) support for
             the 640x480x256 videomode.
            IBM PC Compatible 80486+ or better.


--------------------------------------------------------------------------------


    Analogic - Topic 2 : Synthesizers
    ---------------------------------

    The heart of a classic synthesizer is the 'oscillator'. (In analog
    terms : VCO, Voltage Controlled Oscillator). An oscillator provides
    basic sounds (shapes) like saw, block, triangle, noise, sine etc.
       Ŀ
        / \  OSC Provides basic sound
            \ / 
       

    A sound on the Analogic is made up of 2 oscillators. The pitch of the
    waveform is controlled by the note played, the pitch envelope and
    possible LFO's (see below). The second oscillator can be fine- and
    coarse-tuned. The two osc's are then mixed together before going into
    the filter.
                          Ŀ
       OSC1 Ŀ  OSC1+2   FILTER   Removes unwanted
               >          frequencies.
       OSC2           

    The filter can remove certain frequency ranges of a sound.
    Analogic has 4 filter types : lowpass (resonant), hipass (resonant),
    bandpass and bandreject (last 2 with adjustable bandwidth).
    If you don't know what this means, experiment or read a good book
    about synthesizers.

    The mixed oscillator output goes through the filter into the amplitude
    envelope. The Analogic (volume)envelopes are traditional ADSR envelopes
    (Attack, Decay, Sustain, Release). The ATTACK controls the sound's fade-in
    time, the DECAY determines the time it takes to go from MAX volume to
    sustain level, the SUSTAIN level controls the volume of the sound whilst
    holding down a key, and finally RELEASE sets how long the sound takes
    to fade out after releasing the key.

                                  Ŀ
      OSC1+2 > FILTER >  AMPLITUDE  Determines how volume changes
       /\                         ENVELOPE   during a single note.
                                 
      PITCH                            /\
      ENVELOPE    Ŀ
                     /\           | A - Attack TIME; time from 0 to max      
                    /  \-------\  | D - Decay TIME; time from max to sustain 
                   /            \ | S - Sustain LEVEL;anywhere from 0 to max 
                    A D    S   R  | R - Release TIME; time from sustain to 0 
                  

    So the the pitch envelope controls the pitch of the oscillators,
    the filter envelope controls the cutoff frequency of the filter and
    the amplitude envelope determines how the volume is affected.

    The output of a voice is mixed with the other voices and passed through
    a tapped delay line for some delay effects. This is the final output.

              PIT.ENV  FLT.ENV  AMP.ENV
                \/      \/      \/
    voice A : OSC1+2-> FILTER-> VOLUME-> VOICE OUTPUTĿ
    voice B : OSC1+2-> FILTER-> VOLUME-> VOICE OUTPUT> FX-> TO OUTPUT
      etc.                                            - Ĵ

    Analogic also contains LFO's (Low Frequency Oscillators). LFO's don't
    produce sound themselves, but they modulate other components.
    When an LFO affects the pitch, a vibrato effect is heard. When an LFO
    is routed to the amplitude envelope, a tremolo effect is created.
    An LFO routed to the filter cutoff creates a wah-wah effect.

    Note : Each note played has it's own envelopes, but shares it's LFO's
           with other notes playing the same preset.


--------------------------------------------------------------------------------


    Analogic - Topic 3 : The program
    --------------------------------

    SCREEN LAYOUT
    When Analogic is started, the screen contains all components we
    mentioned above. Use of knobs and buttons is therefore straight-forward.
    (and we didn't have time to describe the other buttons...:-)


    SELECTING PROGRAMS
    In the upperright corner of the screen, there's the program section.
    You can select 128 preset programs by pressing the "next" and "prev"
    buttons. When selecting "next" and "prev" whilst holding down a
    "shift"-key, the counter changes by 10 instead of by 1.


    STORING PROGRAMS
    The "store" button is used to store the current settings of your
    sound into the preset bank. When you press the "store" button, the
    current program number starts to blink. You can now select a program
    number to store your program to. Press "store" again to save your
    program to the bank. If you just want to store the current program,
    simply press "store" twice. To cancel a store-operation, hold down
    "shift" and press the "store" button again.


    PRESET BANK FILES
    The preset programs are stored as 128*128 controller values in the
    file "analogic.bnk" or your own file (specified on the commandline).
    So the first 128 bytes of the file are controller values for program 1.
    The next 128 are for program 2, etc. Not all controllers are used.
    (see table below)

    This means you could try to load a random file (like this document)
    and see if it sounds cool. This can also be done with the "random"
    button. When you press this, some random settings are generated. This
    can result in some cool sounds or a sound you can adjust further.


    RECORDING TO A .WAV FILE
    It's possible to save the sound produced by Analogic to disk.
    To start recording to disk, press "TAB". To stop recording,
    press "TAB" again.
    When recording is turned ON, the screen border will turn grey.
    The sound will be saved to a 16 bit mono WAV file called
    WAVExxxx.WAV (xxxx is an increasing number).

    Synthesizing and saving all at once can be too much for you computer.
    When you hear audio drop-outs when saving, try loading a disk-cache.
    If that doesn't work, you'll have to decrease the mixrate or number
    of voices.


    USING ANALOGIC AS A MIDI SOUND MODULE
    Up to 4 different programs can be played simultaneously. That's
    where the "A","B","C","D" buttons are for. They correspond to MIDI
    channels 1,2,3 and 4 resp. So you can select a bassdrum on "A" (MIDI
    channel 1) and play a melody with the program on "B" (MIDI channel 2).


    PLAYING NOTES USING THE PC KEYBOARD
    To play notes, you can use the PC keyboard (the typing device), or
    use an external MIDI keyboard. When using the PC keyboard, you'll play
    the currently selected program ("A","B","C" or "D"). On a MIDI device,
    the channel information is used to determine what program to play.

    Because the PC keyboard has limited range, you can shift octaves
    up or down by pressing "F4" and "F3" respectively.

    Summary of keys :
    -----------------
       F3    - Shift keyboard down 1 octave
       F4    - Shift keyboard up 1 octave
       TAB   - Toggles sample-saving on/off
       ESC   - Exits Analogic
       SPACE - Mute sound

       Other keys (some) on keyboard can be used to play notes.


--------------------------------------------------------------------------------


    Analogic - Topic 4 : Things to remember
    ---------------------------------------

      THE PROGRAM

       Use left mousebutton to adjust knobs and sliders. Use right button
        to set default values. A rightclick in the middle of a knob results
        in centering the knob. Using RMB on the left/right hand side of a knob
        sets results in a minimum/maximum setting of the knob/slider.

       The user interface needs a 640x480x256 video mode with linear
        frame buffer. When you have VBE2.0 on your VGA card (like those
        expensive Matrox things) you'll probably have this. If not, use
        something like SciSofts's UniVBE5.2+.
        If you have a S3 chipset, you might have a chance it will work
        without loading VESA.

      SOUNDCARDS

       SB16 works on the newer versions only. No SB Pro. It should work
        fine on SB16ASP, SB16PnP & AWE (tested).

       If you have a GUS, make sure it's a classic GUS. DMA uploading
        to GUS memory doesn't work on the GUS PnP as far as I know.

       MIDI input only available on GUS cards or COM port ! It's
        possible to connect some external synths directly to the COM
        port like the Yamaha CS1x. That's why the COM port MIDI
        support is there.

       When using the /W2 switch (SB and GUS), wave playback is done
        using the SB and MIDI IN support is offered by the GUS.
        When using the /W1 switch (GUS), MIDI IN and WAVE is done using
        the GUS.
        When using the /W0 switch (SB), WAVE is done using SB and there
        is no external MIDI IN support, except for the COM-port.

      PLAYBACK

       When the ampenv gain is set too high, sound can be distorted when
        you play play more than one note. Especially when the resonance is
        set to a high level. Lower the gain or the resonance of the
        instrument to resolve this.

       When using low mixing rates (< 20.000) high notes will not sound
        pretty. This is due to laws of physics and can only be resolved
        by increasing the mixing rate.

       When applying huge amounts of resonance (on low & high pass
        filters), you can make the filter unstable by rapidly changing
        the cutoff frequency from 0 to MAX. Due to optimizations in the
        filter algorithms, the filters may not be 100% stable. This will
        not be a problem in normal use.


--------------------------------------------------------------------------------


    Analogic - Topic 5 : Contacting us
    ----------------------------------

         NewStyle Holland

         Members :
         ------------------------------------------
                   Guido de Haan
                   Robert Morcus
                   Robin Krom

         Contacting :
         ------------------------------------------
         Email : gdehaan@wins.uva.nl
         Mail  : NewStyle
                 Dusseldorperweg 35
                 1906 AH Limmen
                 The Netherlands
         Tel   : +31-(0)72-505-1740


--------------------------------------------------------------------------------


    Analogic - Appendix A : Files in this package
    ---------------------------------------------

      Below is a list of files required (except text files) for
      Analogic to function correctly.

      - FILE_ID.DIZ   - Small description of Analogic for BBS's
      - ANALOGIC.TXT  - This document
      - ANALOGIC.EXE  - The executable for Analogic
      - ANALOGIC.BNK  - Default soundbank for Analogic
      - ANALOGIX.D0?  - Misc. datafiles for the program (D00..D04)



--------------------------------------------------------------------------------


    Analogic - Appendix B : Sounds in ANALOGIC.BNK
    ----------------------------------------------

       The file ANALOGIC.BNK is the default soundbank and is read-only
       (if you extracted using 'pkunzip -JR'). You can edit and store
       programs in Analogic, but when you exit the programs are not stored.

       Only the first 60 entries of ANALOGIC.BNK are filled.

       -----------------------------------------------------------------
       Soundlist :
       -----------------------------------------------------------------
       01 - TB303 Intro                 31 - Hardcore Kick 1
       02 - Jupiter String 1            32 - Hardcore Kick 2
       03 - Synth Guitar 1              33 - Snare 1
       04 - Rave String 1               34 - Wood Kick
       05 - String 7th 1                35 - Tom
       06 - Oxygen                      36 - Reso Beep
       07 - TB303 Distorted             37 - Claps
       08 - Distorted Bass 1            38 - Snare 2
       09 - Mars String 1               39 - Snare 3
       10 - Thin Acid                   40 - Hihat

       11 - String 7th 2                41 - Spaceship Takeoff
       12 - DeWulf 1                    42 - Train (at full speed)
       13 - Scary Reso                  43 - UFO Takeoff
       14 - Cheese Bass                 44 - Space Radio
       15 - Acid Quack                  45 - Space Dive
       16 - Detune Block                46 - Alert!
       17 - Juno String 1               47 - Wasps
       18 - Space Trumpet               48 - Train Element
       19 - Space Target                49 - Wakeup Alarm
       20 - Synth Bass                  50 - Not at Home

       21 - Drop Down                   51 - Rave Buzz 1
       22 - Computer                    52 - TB303 Reso 2
       23 - Race Car                    53 - Synth Bass 2
       24 - Submarine                   54 - Rave Buzz 2
       25 - Train                       55 - Space Wood
       26 - Race Start                  56 - Synth Steeldrum
       27 - Car Horn                    57 - Power String
       28 - Space Pets                  58 - Buzz String
       29 - Seashore                    59 - Organ
       30 - Jet Takeoff                 60 - Hit String


--------------------------------------------------------------------------------


    Analogic - Appendix C : MIDI support
    ------------------------------------

    Note-On and Note-Off messages are received. ALL parameters can be
    controlled by controllers. Only channels 1..4 are valid. MIDI data
    on other channels is ignored. RPN's or NRPN's should not be send to
    to the Analogic.

    MIDI controller table:
        All controllers have a full range of values (0..127). Switches,
        like portamento on/off, use 0..63 as off, 64..127 as on.

        Cntr : Description
        ---------------------------------------------------------
         5:    Set portamento time
         7:    Amplitude envelope gain (channel volume)
         8:    Oscillator's mix
         9:    Distortion
        10:    Delaytime
        11:    Feedback amount
        12:    Switch legato
        13:    Ring modulation switch
        19:    LFO1 speed
        20:    LFO1 shape
        21:    LFO1 dest
        22:    LFO1 amount
        23:    LFO1 pulsewidth
        24:    LFO2 speed
        25:    LFO2 shape
        26:    LFO2 dest
        27:    LFO2 amount
        28:    LFO2 pulsewidth
        30:    OSC1 wave shape
        31:    OSC2 wave shape
        33:    Finetune OSC2
        34:    Osc keyboard tracking
        35:    OSC2 sync on/off
        36:    Amplitude envelope decay
        37:    Amplitude envelope sustain
        38:    Filter envelope attack
        39:    Filter envelope decay
        40:    Filter envelope sustain
        41:    Filter envelope release
        42:    Velocity to filter switch
        43:    Filter envelope gain
        44:    Base note (when kbt=0)
        50:    Pitch envelope attack
        51:    Pitch envelope decay
        52:    Pitch envelope sustain
        53:    Pitch envelope release
        54:    Pitch envelope gain
        65:    Switch portamento on/off
        71:    Filter resonance/bandwidth
        72:    Amplitude envelope release
        73:    Amplitude envelope attack
        74:    Filter cutoff
        75:    Filter type
        77:    Semitones OSC2
        78:    OSC1 pulsewidth
        79:    OSC2 pulsewidth
        94:    FX send


--------------------------------------------------------------------------------


    Analogic - Appendix D : Technical details
    -----------------------------------------

    Precision :  32 bit, 8.24 fixed point
         We're not sure use of a FPU always leads to better results.
         (anybody ?)

    Programming : Watcom C, PMODE/W and TASM

       All time critical calculations are done in assembler. Use of
       MMX instructions could lead to better results, but not everbody
       has a MMX processor ! (like us !)
       All other code is done in Watcom C. The DOS extender used is
       PMODE/W. Credits for PMODE/W go to Daredevil and Tran.

    Oscillators : Physical Model

       Oscillators are all calculated by phase and are not based on lookup
       tables. It takes more processor time to do this and we don't know
       if it sounds better than lookup tables. Might change this in the
       next(?) version. (not possible for pulse-width variable waves)

    Filters : 12 dB IIR

       To update the filter only 3 imul's are needed, some shifts and
       additions. To calculate the IIR coefficents, about 1 imul and
       3 idiv's are needed. Because of these optimizations the filter
       is not perfect. It always resonates a little. Doesn't sound
       bad though. (?:-)

    Envelopes : Linear ADSR

       Envelopes are calculated using 24 bit fixed point integers in
       pure ASM. When we compared fast C envelope routines with fast
       ASM envelope routines. The ASM version was about 10 times faster.


--------------------------------------------------------------------------------


    Analogic - Appendix E : Known bugs in Analogic v1.0
    ---------------------------------------------------

       We wanted to release this version as soon as possible,
       because there is a lot of competition out there. Due
       to this (and other factors) we did not have time to
       really hardcore test this product and to remove some
       small bugs. Below is a list of 'bugs' we're aware of :
       (and excuses we have :-)

          1. B: The file ANALOGIC.BNK has to be read only.
             E: To prevent users from erasing the build-in sounds,
                we've made the file read-only and put it in ZIP.
                When you don't specify the 'JR' switch when
                unzipping the 'R'eadonly attribute will not be
                set and you can accidently erase the standard sounds.
                Future versions will have 'ROM-sounds' build in.

          2. B: Sounds tend to distort quickly.
             E: We had to decide between making everything sound
                soft (low volume) and virtually distort-proof OR
                pumping up the volume with risk of digital distortion.
                We decided for the second, so YOU are responsible
                for turning down the gain when necessary.
                We're working on this. Anybody any ideas ?
          
          3. B: When saving to WAV file sound sometimes drops out.
             E: Synthesizing and saving data can become to much for
                your computer. Solutions :
                  - Load a diskcache
                  - Turn down amount of voices or mixingrate
                  - Finetune your CPU (faster BIOS settings)
                  - Get a SCSI harddisk
                  - Buy a faster CPU


--------------------------------------------------------------------------------


    Analogic - Appendix F : Future versions
    ---------------------------------------

      Below is a list of things which may be incorperated into future
      versions of Analogic :

          Better filters (cleaner)
          More filter types (notch+lp, nothch+hp, 18 dB, 24dB)
          Percussion kits (every key a drum-sound)
          Sample support (for the percussion kits)
          Automatic speed calculation (determines # of voices and mixrate)
          More oscillator schapes (supersaw, filtered osc)
          Stereo support
          Reverb, chorus, flange, delay, noise gate, expander, compressor,
           distortion, exciter, etc.
          Sequencer
          Arpeggiator
          Improvements to the GUI (like inline help)
          Bank load graphical interface
          Bank select via MSB/LSB 32/0
          Named presets
          Additional lo-pass filter before output to kill any super-
           high sounds
          Bass/Treble knobs
          More/better soundcard support. Use of CODEC on GUS Max/Pnp and
           maybe some other cards.
          Non-video mode to be used when using a cut-down computer as
           stand-alone MIDI synth

--------------------------------------------------------------------------------


    Analogic - Appendix G : Other NewStyle products
    -----------------------------------------------

      'NAD'
           - 32 channel GUS tracker with MIDI support, sampler,
             dsp, realtime synth. Works extremely fast.

      'Install-It'
           - DOS based install program.

      'Make Silly Names'
           - Automaticly creates names for songs, demo's etc.

      'Video Boot'
           - Shows your logo when the computer is booting.


--------------------------------------------------------------------------------
THE END - THE END - THE END - THE END -  THE END -  THE END -  THE END -  THE EN
--------------------------------------------------------------------------------
