@DATABASE

@NODE "Main" "PlayHD Documentation"

@{JCENTER}@{B}PlayHD Documentation
Version 1.1029, October 1998

Copyright © 1997 by Davy Wentzler, all rights reserved@{UB}



@{" Introduction " LINK "Introduction"}
@{" Requirements " LINK "Requirements"}
@{" How to start " LINK "HowToStart"}
@{" Usage " LINK "Usage"}
@{" The future " LINK "Future"}
@{" The background " LINK "Background"}
@{" Known problems " LINK "Problems"}
@{" How to contact me " LINK "Contact"}
@{" Acknowledgements " LINK "Acknowledgements"}
@{" Demo limitations and ordering" LINK "Demo limitations and ordering"}
@ENDNODE


@NODE "Introduction"

   @{B}PlayHD@{UB} is a 16-bit audio harddisk-recording package, based on the AHI-
   system by Martin Blom. With PlayHD, you can do multitracking: play a number of
   samples directly from harddisk and simultaneously record another (stereo) track.
   Thanks to AHI, an increasing number of samplers/soundcards can be used with
   PlayHD without re-writing a single bit of code. Even the Amiga's own Paula chip
   can be used to play samples in a special 14-bit calibrated mode.
   
   @{B}@{U}Features of PlayHD:@{UB}@{UU}
      
      - This version can now play up to a maximum of 20 samples at a time.
        The amount of samples you can actually play depends on:
           * Processor power: since all the mixing is done by the processor,
             more channels can be mixed at higher frequencies on faster
             processors.
           * Speed of your harddisk and harddisk-controller. SCSI is
             preferred.
           * Samplerate: the higher, the better quality, but more data has
             to be processed and loaded from the harddisk per second.
           * The AHI-mode you have selected. Is it a stereo mode, stereo++
             mode with panning, fast mode etcetera?
           * The kind of sampler used. Samplers that have their own sample
             buffers are heavily recommended.
             
      - A mixing desk provides you with realtime control over volume, panning
        and mute per channel. A master volume slider and a stereo master-
        volume indicator are present too.

      - Full mixer-automation based on event-list: channel faders, panning,
        mutes and master volume can be automated.

      - Full duplex playback and record: if your soundcard allows it, you can
        playback samples while recording.

      - Sample-editing with the usual features like cut,paste,copy,erase
        range. Direct to disk, not limited by memory.

      - Effects like Delay, Noise Gate, Chorus, Comp/Limiter, Amplifier,
        Frequency filters and FIR-filters can be applied.

      - MIDI synchronisation: by sending a MIDI start-command and a
        Song Position Pointer, you can synchronize audio with an external
        MIDI sequencer. You can also receive MIDI start-commands.

      - Supports mono and stereo 16-bit AIFF-samples.
      
      - Possibility to do HiFi non-realtime mixing to a new AIFF-file,
        thanks to AHI.
      
      - A Time Line Display provides you with an overview of the loaded
        samples and their durations. Samples can be moved along the timeline.
      
      - A Locator window enables you to set 4 cue-points.
      
      - A time-slider in the Tape Deck window allows for fast locating in
        the recording.
      
      - etc..
@ENDNODE

@NODE "Requirements"

   * @{B}Hardware requirements:@{UB}
      - 68020 processor
      - 0.5 Mb Chip Ram
      - 4 Mb Fast Ram + around 256 Kb per sample
      - A (fast) harddisk
        
   * @{B}Software requirements:@{UB}
      - AHI-system (V4) (from Aminet: ahiusr.lha,
                         or http://www.lysator.liu.se/~lcs/ahi.html)
      
   * @{B}Recommended@{UB}:
      - The faster the processor, the better (ie.68040,68060)
      - 8 Mb Fast Ram or more
      - A monitor which can display high resolution screens
      - A 16-bit sampler supported by the AHI-system 
        (like Delfina, Prelude, Melody1200 etc.)
      - Fast SCSI harddisk
      
      
   @{B}Benchmarks:@{UB}
         On a 68030/25 Mhz with a recent IDE harddrive (2.7 Meg/s),
         I can get 11 mono channels of playback at 25681 Hz with the
         Paula 14-bit stereo mode. With the same set-up but with Paula
         14-bit++ stereo mode I get 7 channels. This is without
         automation events which cause some overhead too.
         With a Prelude soundcard I can play 3 stereo tracks at 44.1Khz
         while recording a stereo track at the same time.
@ENDNODE

@NODE "HowToStart"
   
   You should first install PlayHD with the installer that came with the
   package. When PlayHD is installed, you can start it by either clicking
   on its icon or by entering 'PlayHD' in a shell.

   Select a mode for the soundcard you are going to use. Preferably
   a fast stereo++ mode if that's available.

   Please make sure that you select a 1:1 mode from the screenmode requester,
   preferably 640x480 or higher. Displays that are too small can cause
   problems with overlapping windows.
   
   Note: You can use CyberGraphX screenmodes too, but make sure you choose
         an 8-bit mode when doing this.
@ENDNODE

@NODE "Usage"
   This section explains the functionality of each window:
   
      @{" Time Line Display " LINK "TimeLineDisplay"}
      @{" Locator " LINK "Locator"}
      @{" Control " LINK "Control"}
      @{" EffectList " LINK "EffectList"}
      @{" Mixer " LINK "Mixer"}
   
   and the functionality of the menus:
   
      @{" File " LINK "FileMenu"}
      @{" Screen " LINK "ScreenMenu"}
      @{" Sync " LINK "SyncMenu"}
      @{" Options " LINK "OptionsMenu"}
      @{" Tools " LINK "ToolsMenu"}
   
   Note that these menus are available in almost every window.

   Some other stuff:         
      - There is also a way to enter timecodes fast: more info can be found
        @{"here" LINK "EnterTimeCode"}.
      - Online Help is available in many windows by pressing the 'Help' key
      - F1/F2 selects previous/next sample in the Time Line Window
      - @{"Using PlayHD with MIDI" LINK "Using PlayHD with MIDI"}
      - Notes about recording and master volume levels can be found @{"here" LINK "Notes about recording"}.
      - Notes on @{"PCG files" LINK "PCG Notes"}
@ENDNODE

@NODE "TimeLineDisplay"

   The Time Line Display offers you an overview of the currently loaded
   samples and their durations. If a sample has been loaded, a white box
   appears on the time-line, matching the duration of the sample.
   If the menu option 'Extended Timeline Display' has been selected, the
   graphical sample data will be displayed in the box too.
   You can scroll through the time-line using the slider at the bottom of the
   window. The width of the time-line adapts itself automatically to the
   largest sample.
   
   You can zoom in on the samples using the zoom-level slider on top of
   the timeline. The zoomlevel is shown in pixels per second. The usage
   of @{"PCG's" LINK "PCG Notes"} will speed-up the display a lot.
   
   Changing the offset of a sample can be done in two ways: pressing
   the 'Move' button which opens a window in which you can manually enter
   the offset, or by clicking on a sample and (while holding down the
   left mouse button) moving the sample-box to the left or right.
   
   - Pressing the 'Load Sample' gadget opens a file-requester in which you
     can choose one AIFF-sample. The selected sample is then checked for the
     right format and some initialisations are made. If this is the first
     sample you loaded, the main samplerate is set to this sample's 
     samplerate. Note that no sample-data is really loaded into memory at
     this time. The 'loaded' sample will show up in the listview underneath
     the gadgets.
     Note: If a sample appears to be an AIFF-file with a wrong samplelength
           stored in the header, a window will open where you can choose
           to let the program fix it.
     
   - 'Remove' removes a sample from the list. Note that this doesn't delete
     the actual sample from disk!
   
   - 'Move' lets you select a different starting location. Just enter
     the timecode where you want the sample to start and you will see
     the corresponding white box move in the time-line.
     
   - 'Create PCG' creates a '.pcg'-file for the currently selected sample.
     See the notes on @{"PCG files" LINK "PCG Notes"} for more info.
   
   - Pressing 'Edit' will open the @{"Sample Edit window" LINK "SampleEdit"}.
   
   - In the listview, all the currently loaded samples are displayed.
     Clicking on the name of a sample selects it. This selection can be used
     in combination with for example the 'Play Single' button in the
     @{"Control" LINK "Control"} window or the effects in the @{"EffectList" LINK "EffectList"} window.

   
   There are also 2 options in the menu @{"Options" LINK "OptionsMenu"} that determine the look of
   the samples in the timeline: 'Extended Timeline Display' and 'Volume
   Overlay'. You can look @{"here" LINK "OptionsMenu"} for an explanation.
@ENDNODE


@NODE "Locator"

   The Locator window keeps track of four cue points, called L1 to L4. This
   can be very handy if you have to play or record often from the same
   location in the recording.
   To use this feature, first go to the desired location (for example by
   using the timeslider in the @{"Control" LINK "Control"} window) and press one of the four
   'Set' buttons. The timecode will be displayed in the box right next to
   the 'Set' and 'Goto' buttons. Now you can jump back from another timecode
   to the cue point by simply pressing the corresponding 'Goto' button.
   
   Another quick way to jump to a cue point is to select 1-4 on the keyboard
   (non-numerical part).
@ENDNODE

@NODE "Control"

   The Control window (or also called 'Tape Deck' window) controls the heart
   of the program.
   
   From left to right there are 5 buttons:
   
      - 'Rewind to start' button: Sets the timecode to zero.
      
      - Stop button: stops playing back. Note that at the moment this button
        only reacts between loading of sampleblocks.
        
      - Play button: starts playing all samples synchronously. If the option
        in the 'Sync' menu is set to 'Receive', some sampledata is loaded
        into memory first and the program will wait for an incoming MIDI
        start command. See the @{"Sync menu" LINK "SyncMenu"} for more details.
         
      - Play single button: when this button is pressed, the sample selected
        in the @{"Time Line Display" LINK "TimeLineDisplay"} window is played on its own. Note that the
        main samplerate is used and not the samplerate of the selected sample.
        Also note that the mixing sliders are not active when playing single
        samples.
        
      - Record button: Opens the @{"Record window" LINK "RecordWindow"}.
        This button will be disabled if the selected AHI audio mode doesn't
        support sampling.
        
   Besides the buttons there is a timeslider which offers you a fast way of
   locating in the recording. Underneath this slider there is a timecode
   display in the format minutes:seconds:milliseconds. Note that the
   'milliseconds' part doesn't show anything yet in this version.
   
   At the bottom, a checkbox and a 'Bars' field are present. This can be used
   in conjuction with a MIDI sequencer: if you enter a number of bars in
   the field at the right bottom and activate the checkbox to the left, the
   timeslider isn't used anymore, but the starting position of the samples
   is calculated from the number of bars entered and the 'Tempo' that is set
   in the @{"MIDI Settings Window" LINK "MIDI Settings Window"}.
@ENDNODE

@NODE "EffectList"

   The EffectList window contains a listview with several 'effects'. Double-
   clicking an effect pops up a new window containing a number of parameters
   for the selected effect. Note that you must have at least one sample
   loaded to view the parameter window, because the effect that is selected
   will act on the sample you have selected in the listview in the
   @{"Time Line Display" LINK "TimeLineDisplay"} window.
   All effects that are listed below have a certain 'Apply' button which you
   can press to actually perform the effect. All effects are non-
   destructive, unless stated otherwise and the 'effected' sample is saved
   to the file 'EFFECTSAMPLE' in the 'samples/' directory.
   For convenience, the processed sample is loaded automatically into the
   samplelist.
   
   Most effects can be applied to a selected range in the @{"Sample Edit window" LINK "SampleEdit"}:
   first open the effect window and then open the Sample Edit window. Select
   the range where you want the effect to be applied and then press 'Apply'
   in the effect window. A copy of the sample will be made with the effect
   on the selected part.
   
   
   At the moment, the following effects are available:
   
      - @{B}Delay:@{UB} Delay with feedback-line with three parameters:
           * Delay time: sets the delay time in milliseconds with a maximum
             of a two seconds.
           * Mix: the volume of the delayed sound that is mixed with the
             original sample.
           * Feedback: the volume-percentage that is fed back into the delay
             line.
           
      - @{B}Sync:@{UB} This is not really an 'effect'. As a matter of fact, this
        option may seem very strange, but this is actually what started me
        to write this program! So what does it do? Simply said, it looks for
        the first audible sound in the selected sample and cuts the first
        inaudible part of the sample. It does this by looking for a certain
        volume level above the threshold given by the 'Noise Threshold'
        slider. If it finds anything, the start position in samples is given
        in the info box, as a matter of debug info. You can try this out
        without actually cutting the sample by making sure that the 'Do for
        real' option is not selected, which isn't by default. Press 'Sync
        Sample' to try it out or do it for real. This action is destructive
        if the 'Do it for real' button is checked. If you ask yourself why I
        created this option, see the background info @{"here" LINK "Background"}.
        
      - @{B}Noise Gate:@{UB} This is a noise gate with two parameters:
        * 'Noise Threshold': this parameter sets the level in decibels (dB)
                             at which point sound may pass.
        * 'Release Time': specifies the time in which the gate closes,
                          after the amplitude went under the threshold.
        
      - @{B}Change SampleRate:@{UB} Changes the samplerate of the currently selected
        sample to the main samplerate that was implied by the first sample
        or set by the 'Set SampleRate' window in the @{"Options" LINK "OptionsMenu"} menu. The main
        samplerate is displayed in the window for reference.
        This may be handy for users who sample with the Aura sampler: the
        sample-program that comes with the Aura writes samplerates not
        according to the AIFF-standard. If you load samples created by the
        Aura sampler into PlayHD, the samplerate will be higher. You can
        adjust this by using this 'effect'. This action is destructive, so
        the samplerate is actually written to the original file.
        
      - @{B}Time Stretching:@{UB} Time-stretching changes the length of the sample
        without affecting the pitch. As this is a not very straight-forward
        algorithm, this effect is prone to all kinds of 'sampling artifacts',
        especially with stretches beyond 30% of the original length.
        The 'Stretch Factor' slider selects the stretching time and the
        'Window Size' is an optimization value you should play with.
        
      - @{B}Pitch Shifter:@{UB} Pitch shifting changes the pitch without affecting
        the length of the sample. Like time-stretching, this can produce
        certain sampling artifacts, especially when shifting more than 5
        semi-tones up or down. Use the 'Pitch' slider to set the amount of
        semi-tones you want to shift.
        
      - @{B}Amplifier:@{UB} With the 'Amplifier' you can increase or decrease the
        overall volume level of the selected sample. When the volume exceeds
        the maximum level, unnatural sounding clipping can occur.
        The 'Normalize' function searches for the loudest sample value and computes
        the gain factor to optimize the dynamics of the sample. This factor is
        then used to increase the volume of the sample and after computation
        the gain factor is shown to the user.
        
      - @{B}Frequency Filters:@{UB} Frequency filters remove a certain frequency
        spectrum from a sample. There are 5 different filters you can
        choose from:
           * Low Pass: Use the 'High Freq' slider to set the highest
                       frequency that may pass.
           * High Pass: Use the 'Low Freq' slider to set the lowest
                        frequency that may pass.
           * Bandwidth: Use both sliders to set the frequency range that may
                        pass. Make sure that the 'Low Freq' slider is set
                        lower than the 'High Freq' slider.
           * Reject: The opposite of the 'Bandwidth' filter: the frequency
                     spectrum you select is rejected.
           * Resonator: Don't know about this one. I just found some code
                        and implemented it :-)
      
      - @{B}FIR Filter:@{UB} You can load a FIR-filter file that was created by
        either AudioLab (not tested) or the program 'FIRdesigner' (Aminet:
        FIRDesigner.lha). FIR-filters are also frequency filters, but are
        far more advanced than the previous 'Frequency Filters' because
        many different frequency-bands can have a different gain, like an
        equalizer.
        If a FIR-filter file is loaded, the frequency graph is shown in the
        window and the amount of taps/coëfficients is displayed. The higher
        the amount of taps, the longer it will take to perform the
        FIR-filter. To create your own FIR-filters, use the 'FIRdesigner'
        program on Aminet by Harald Zottmann. I'm planning to write a
        FIR-designer myself in the future that will be integrated in the
        program.
      
      - @{B}Chorus:@{UB} A chorus gives the effect of multiple voices/instruments
        singing/playing at the same time. It has the following options:
           * Speed: how quick the modulation changes
           * Depth: determines how much modulation is used
           * Mix: the amount of 'chorus' that is added to the sample
        
      - @{B}Comp/Limiter:@{UB} A compressor fits a certain dynamic range on a smaller
        one: use the threshold slider to set the upper limit where the sound
        may pass freely. Above this setting, audio is compressed with the
        ratio you can set with the ratio-slider: for example, if you set
        this to 30:10 (ie. 3:1), every 3dB above the threshold will result
        in an output of only 1dB above this threshold (this is called
        gain-reduction).
        You can use the 'Limiter' threshold to set the maximum allowed
        output value: every sample that is louder than this limit will be
        set to this maximum value.
        
      - @{B}Parametric EQ:@{UB} Under construction!
        
      - @{B}Ring modulation:@{UB} A ring modulator adds a kind of 'metallic' sound
        to the sample.
        
      - @{B}Reverse:@{UB} Reverses the sample or samplepart.
         
      - @{B}Reverb:@{UB} Under construction!
@ENDNODE

@NODE "Mixer"

   The Mixer window is very straightforward: each channel has its own
   panning control, mute knob and volume slider. If a sample is loaded, its
   name will be displayed right next to the corresponding channel unit for
   an easy overview.
   
   At the right side of the window, a red slider adjusts the master volume
   level. Each time a sample is loaded, the volume range (dynamic range) is
   increased: if one sample is loaded, the range is from 0 (silence) to
   let's say 1 (full volume). If the second sample is loaded, the range is
   from 0 to 2, and the master volume adjusts itself to the previous value.
   The next range is from 0 to 3 and so on...  This may seem a little
   strange (and it is, actually), but because of the nature of mixing,
   volume levels will decrease when mixing more and more samples. To account
   for this, the volume levels can be increased by the above explained
   method. Be warned that too high settings of the master volume can result
   in unwanted clipping.
   
   The two bars at the right show the left and right output volume. These
   bars respond quicker in play-single mode. You can turn these bars off in
   the @{"Options" LINK "OptionsMenu"} menu.
      
   
   The @{"Auto" LINK "AutomationWindow"} button brings you to the mixer automation windows where you
   can automize the whole mixer setup.
@ENDNODE

@NODE "SampleEdit"

   The SampleEdit window offers you a visual representation of the sample
   selected with the 'Time Line Display' window and allows you to edit the
   sample in many ways.
   
   * @{B}SampleView area:@{UB}
      The main part of this window shows the sample or part of the sample.
      You can use the scrollbar underneath it to scroll through the whole
      sample if it has been zoomed in. You can view the timecode at the
      current mouse position at the top-center of the window next to
      'Position:'. This is shown in the format minutes:seconds:milliseconds.
   
   * @{B}Range selection:@{UB}
      To select a range, press the left mouse button where you wish the
      range to start and then move the mousepointer to the desired end-
      position while holding down the left mouse button. The range you
      select will appear in white. The start- and end-timecodes of the range
      will be displayed at the top-left of the window.

   * @{B}Buttons at the bottom:@{UB}
      - Play: Plays the whole sampleview area when no range is selected or
              otherwise only the range. A vertical line shows the current
              position during playback.
              
      - Stop: Stops playback of the sample.
      
      - Clear Range: Clears the range you have previously selected.
      
      - Show Range: Zooms in on the sample, resulting in the largest display
                    of the selected range.
   
   * @{B}Magnification:@{UB}
      When a sample is displayed, it has a minimum magnification value,
      shown in the box just below the word 'Magnification:'. This value
      actually represents the 'pixels per second'. You can alter this value
      by entering a new value in this box or by using the '-' and '+'
      gadgets. Pressing one of the latter gadgets results in a halve or
      double magnification factor, but the sample display is not directly
      updated until you press the button called 'Display'.
      
   * @{B}Tools:@{UB}
      - Erase Range: Erases the selected range by writing all zeroes to that
                     part of the sample. You can use this for eliminating
                     some unwanted noises in recordings or doing manual
                     noise gating. This action is DESTRUCTIVE (!), which
                     means that the action takes place directly on the
                     sample.
                     
      - Cut Range: Cuts out the selected range, copies it into the buffer
                   and joins the two 'non-selected' parts together,
                   shortening the samplelength. This is also a destructive
                   action.
      
      - Copy to Buffer: Copies the selected range to a buffer-file, called
                        TEMPSAMPLE. This file is an AIFF-file on its own, so
                        it can be copied or renamed if you want to use the
                        selected range as a separate AIFF-sample.
                        
      - Copy Over: Copies the buffer over a part of the selected sample. To
                   use this feature, you must first set the position at
                   where you want the copying to start. You do this by
                   selecting a range with a one-pixel width at the desired
                   starting position. Then press the 'Copy Over' button and
                   the entire buffer will be copied over the original sample.
                   The sample is expanded when needed. This action is
                   destructive.
      
      - Insert: Inserts the buffer into the selected sample at a given
                point. See the explanation of 'Copy Over' (above) for more
                information on how to set this point. This action is
                destructive.
                
      - Save Buffer: Lets you rename the last saved buffer from TEMPSAMPLE
                to another name. After this, the sample can be used in your
                project.
                
      - Copy to Track: Copies the selected range to another sample at the
                       same timecode. A window will pop up where you can
                       set the destination sample and select whether you
                       want to overwrite the sample or want to mix the
                       original and destination sample with given mix
                       percentages.
                       
@ENDNODE


@NODE "FileMenu"
   * New Project: Creates a new project and removes the current one from 
                  memory.
                  
   * Load Project: Opens a file-requester where you can select a previously
                   saved project. A project contains the following items:
                   
                      * Samplenames with their offset, volume and panning
                      * Automation events
                      * Sync Mode
                      * MonitorVolume
                      * Recording input
                      * Selected audio output device
                      * Tempo
                      * Initial mixer settings
                      * Locators
                      
                   Note that a project doesn't contain the actual samples
                   itself, it just keeps a reference to them.
                   
   * Save Project: Opens a file-requester where you can enter a filename
                   for your current project. The items listed above will
                   be stored in the project file.
                   
   * Delete:  - Sample: Deletes the currently selected sample in the
                        @{"Time Line Display" LINK "TimeLineDisplay"} window from (hard-)disk
                        and removes it from the samplelist.
                        Warning: you can't get it back once you have
                        deleted it!
                        
              - Project: Deletes the current project from harddisk and
                         starts a new project. A requester will ask you
                         if you want to delete every sample of the project
                         from harddisk.
   
   
   * Online Help: Opens the main page of PlayHD.guide
   
   * Audio Mode: Lets you change the current AHI audio mode
   
   * Screen Mode: Lets you select another screen mode. If you want to use
                  the new screen mode, you will have to choose 'Save
                  Preferences' in this menu, quit and start PlayHD again.
   
   * Save Preferences: Saves the following items in the 'PlayHD.prefs' file:
   
                          * Screen mode
                          * Audio mode
                          * Time Correction Factor
                     
                       When the preference-file is present at start-up,
                       PlayHD will load and use these settings.
                       
   * About: Some version and author information 
   
   * Quit: quits the program
@ENDNODE

@NODE "ScreenMenu"
   
   Currently, the midi screen is not available.
@ENDNODE

@NODE "SyncMenu"

   This menu has three options regarding MIDI synchronisation:
   
      * @{B}Ignore:@{UB} Ignores any MIDI start command or Midi Machine Control (MMC)
                code. When the Play-button is pressed in the Control window,
                the samples will be played without waiting for anything.
                
      * @{B}Send:@{UB} Sends a MIDI start command (and MMC-start when this option is
              selected in the @{"Options" LINK "OptionsMenu"} menu) after loading the first sample-
              parts in memory when the Play-button has been pressed. A Song
              Position Pointer is also send.
      
      * @{B}Receive:@{UB} If this option is selected, the program first waits for an
                 incoming MIDI start command before playing when the Play-
                 button has been pressed. Of course, the first sampleparts
                 are loaded into memory first for optimal synchronisation.
                 
   See the section @{"Using PlayHD with MIDI" LINK "Using PlayHD with MIDI"} for more details on MIDI.
@ENDNODE

@NODE "OptionsMenu"

   There are four options/actions at the moment in this menu:
   
      * @{B}Volume Display:@{UB} Turns the volume indicator in the Mixer window on or
                        off.
                        
      * @{B}MIDI Machine Control:@{UB} Sends an MMC-start command when the option
                              'Send' is selected in the @{"Sync" LINK "SyncMenu"} menu.

      * @{B}Automation Display:@{UB} Turns the visual display of the automation events in
                            the Mixer window on or off.
                            
      * @{B}Volume Overlay:@{UB} Toggles the visual display of the volume curve (determined by
                        initial volume and automation events) in the @{"Time Line Display " LINK "TimeLineDisplay"}.
      
      * @{B}Extended Timeline Display:@{UB} Toggles between full sample view in the timeline
                            display or just a white bar representing the time and offset
                            of the sample.
         
      * @{B}MIDI Bar Display:@{UB} If this option is switched on, the timeline display
                          will show the time in MIDI bars instead of minutes.
                         
      * @{B}Recording options:@{UB} When this option is selected, the @{"Record window" LINK "RecordOptions"} is
                           opened in which you can set some recording options.
                           Note that this can only be selected when the selected
                           AHI audio mode supports sampling.
                           
      * @{B}Set SampleRate:@{UB} This opens a window in which you can alter the main
                        samplerate. Note that this doesn't write the sample-
                        rate to the samples. If you want to write a new
                        samplerate to a sample, see the @{"EffectList" LINK "EffectList"} window.
                           
      * @{B}MIDI Settings:@{UB} Opens the @{"MIDI Settings Window" LINK "MIDI Settings Window"}.
                               
@ENDNODE

@NODE "ToolsMenu"

   The tools-menu contains only 1 option at the moment:
   
      * @{B}Channel Splitter:@{UB} This allows you to split a stereo sample into a left
                          and right mono channel.
                        
@ENDNODE


@NODE "RecordOptions"

   This window lets you select the following recording options:
   
      * @{B}Input:@{UB} This is a list with all available inputs for the selected
               audio mode. Refer to the documentation of your sampler for
               more info.
                
      * @{B}Output:@{UB} This is a list with all available outputs for the selected
                audio mode. Again, refer to the documentation of your 
                sampler for more info.
      
      * @{B}Monitor:@{UB} This is the monitor volume that is passed to the selected
                 'Output' while recording.
                     
      * @{B}Input Gain:@{UB} Sets the input level of the selected 'Input'. This
                    option is only available if your sampler has variable
                    input gain.
                     
      * @{B}Output Volume:@{UB} Adjusts the overall output level of the selected
                       'Output'. This option is only available if your
                       sampler has a variable output volume.
                     
      * @{B}Listen:@{UB} This checkbox allows you to listen to the incoming signal of
                the selected 'Input'. You can adjust the monitor level while
                listening. Uncheck this box when you're done.
               
      * @{B}Use/Cancel:@{UB} Press 'Use' if you want to keep these options or press
                    'Cancel' if you wish to forget about them.
                    
      
      If you checked the 'Listen'-box, you can view your input level in the
      two level bars at the bottom of the window. To the right of these bars
      there are separate peak indicators for the left and right channel.
      Adjust the input gain while listening and make sure that you have a good
      dynamic range: peaks should be at around -2 dB. If you lower your input
      gain you can reset your peak indicator to -96 dB by pressing the 'Reset'
      button.
      
@ENDNODE

@NODE "EnterTimeCode"

   There is a way of entering timecodes manually by pressing the 'Enter' key
   on the numerical keyboard. This opens a small window in which you can
   enter the timecode in minutes and seconds very quickly. At the moment,
   there is a maximum of 9 minutes you can enter, so the first digit you
   enter represents the minutes. Then you can enter a dot ('.') followed by
   the seconds. You can close the window by pressing 'Enter' again.
@ENDNODE


@NODE "Future"
     @{B}@{U}The Future!@{UB}@{UU}
      
   There is still a lot of work to do and I have a feeling that development
   is not going to cease in the following years.
   
   Major things I have planned:
      
      - Total rework of the timeline
   
      - Porting the program to PowerPC. 

      - When the pre/Box arrives, I'm going to port everything to the pre/Box!
        
        
   Minor things I have planned in the near future:
   
      - (Much) Better effect-processing: Timestretching and pitch-shifting
        sound really bad now. Things like backward delay,phaser,flanger and
        so on will be added.
        
      - Adapting display to different screen sizes
      
      - Better recording facilities
        
      - Dynamically changing the amount of tracks
      
      - Better sample-editing (multiple windows etc.)
      
      - Updating the GUI
      
      - etc.

@ENDNODE

@NODE "Background"

      This whole project started during the summer of 1996 when I wanted to
   do some home-recording. I am a guitar player and wanted to record some
   Joe Satriani covers for fun. The backline (drums,bassguitar,synth) was
   recorded with a synth and the midi-sequencer Music-X so I could play
   along with this. Normally, everything went fine if I only had to record
   one guitar part: I just mixed the output of my synth with my guitar and
   recorded directly to DAT.
      But then I wanted to record some songs with multiple guitar parts.
   This was a major problem because I didn't have a multitrack recorder.
   Then I lend an Aura sampler from a friend and wanted to record everything
   (multiple guitar parts + synth) track by track. Since I had two Amiga's
   available this was no problem: one for recording with the Aura and one
   for playing the midi-tracks with Music-X.
      The idea was then to record everything to different samples and then
   to mix these samples. But then a big problem arised: there was no way of
   synchronizing the start of the recording to a MIDI start command with the
   Aura software! So recording of the different parts resulted in different
   start offsets, which made it practically useless. Then I had this great
   idea to record four metronome ticks with every sample as a reference and
   after recording I would 'shift' the samples to the left: I had to cut the
   first part until the first metronome tick was heard. I started to program
   the mixer and then a simple algorithm to recognise the first metronome
   tick, which was just a search for a certain sample value above a certain
   threshold. This worked all fine, but I was interested in doing more. I
   saw a program called 'Play16' (which still exists and is being updated
   regularly I believe...) by Thomas Wenzel which could play 16-bit samples
   in a special 14-bit mode using the standard Amiga audio outputs. As I
   wanted to do that too, I got some assembly and information from him but
   at the same time I most pleasantly bumped into the AHI home page on the
   internet. I downloaded the AHI-package and started playing with it with
   great success. So I rewrote my mixing program to make use of the AHI-
   device and then things started to develop and grow step by step, which it
   still does.
      Meanwhile I received my Prelude soundcard which allows me to really
   use and test PlayHD. Now it's only a matter of waiting for my PowerUp-
   board!

      So far for the moment... If you want to know more just @{"mail me" LINK "Contact"}.

   By the way, this program is mainly being programmed on an A4000 with a
   68030/25 Mhz,68882/50 Mhz and 2Mb Chip + 18Mb Fast and a CyberVision64
   graphics card.
@ENDNODE

@NODE "Problems"
   
   Known problems:
   
      - Cybergraphics screens with a depth larger than 8-bit cause some
        windows to display very slowly.
        Solution: use 8-bit screens, only 16 colors are used at the
                  moment.
                  
      - Some effects are mono (Pitch Shifter, Freq.filters, and Chorus)
      
      - PlayHD and an external MIDI sequencer are playing out of sync.
        Solution: use the Time Correction Factor in the @{"MIDI Settings" LINK "MIDI Settings Window"} window.
         
      - The master volume automation doesn't update at the correct speed with
        a soundcard but is correct with Paula audio.
        Explanation from Martin Blom:
        
         There is no difference between sound cards, as you say, but
         there is a difference beween different modes: The fast modes
         use large tables, which are recalculated on each master volume
         change. That's why those modes take more time to change the
         master volume.
         
        Solution: Use a non-fast mode!
        
        
      - Delfina Lite is not working correctly in the 'any freq' modes.
        
        Solution: Use another mode for now, the bug is in the AHI-
                  driver which is being worked on now by the Delfina
                  authors.
                  


        
@ENDNODE

@NODE "Contact"
   If you have any questions, suggestions, criticism or wish to have the
   full version, feel free to contact me at the following address:
   
      e-mail:  wentzler@limit.nl     or
               dwr@nuclint.nl
   
         
      snail-mail: Davy Wentzler
                  Raadhuisplein 13-C
                  3901 GA Veenendaal
                  The Netherlands
  
@ENDNODE


@NODE "Acknowledgements"

   Many thanks to :
   
      - @{B}Misja van Waterschoot@{UB} for testing PlayHD, giving tips and 
        lending me your sampler!
      - @{B}Martin Blom@{UB} for his wonderful AHI-package
      - @{B}Jeroen Vermeulen@{UB} for providing me with the camd-package
      - Everybody on c.s.a.audio who helped me with my troubles regarding
        the midi.library and camd.library
      - @{B}Roger Angus@{UB} for the suggestion on getting the tempo from a sample-
        range (and many other things...)
        
      - And last but not least:
      
        Thanks to all the people that responded to the demo-release of
        PlayHD! You people are wonderful! :-)

@ENDNODE


@NODE "Demo limitations and ordering"

   @{B}DEMO LIMITATIONS@{UB}
   The demo version is limited to only 3 (stereo) tracks and 90 seconds
   of playback- and record time. The full version will have an unlimited
   number of tracks and unlimited playback- and recordtime. For obtaining
   the full version, please @{"contact me" LINK "Contact"}.

   @{B}PRICING@{UB}
   Pricing has been set to 126 DEM / 75 US dollar. You receive the full
   version without the limitations stated above. Note that items which
   are 'under construction' now are also still 'under construction' in
   the full version. As you get a year of free updates, they are likely
   to be solved within that period.
   
   Payment in Europe is easiest done by sending an Eurocheque. The
   easiest and safest way to pay from non-European countries has still
   to be checked out by me, but a personal cheque will most likely be
   a good way. Note that this costs me around 10 dollars to cash, so
   this is added to the price in that case.
   
   Due to the small Amiga audio market, PlayHD is not available on CD
   and will be send by email. If you insist, I can probably put a
   copy on floppy, but that will take longer to send. Also, as regular
   updates will be available, it's impossible to send every update
   by floppy.
   
   
   @{B}ORDERING@{UB}
   Please check that the demo-version is fully working on the system
   and soundcard that you're going to run it on. If you're satisfied
   and you want to order, you can send me an Eurocheque right away,
   or if you don't live in Europe or don't have the possibility to
   pay with an Eurocheque, please @{"contact me" LINK "Contact"}.
   

@ENDNODE


@NODE "RecordWindow"

   Not every option is working at the moment!
   
   Things that are implemented:

    * @{B}Record button:@{UB} If you press this button, the program will start recording
      from the input you have selected at the @{"Recording Options" LINK "RecordOptions"} window.
      If you have selected 'Sync Receive' in the @{"Sync Menu" LINK "SyncMenu"}, the program will first
      wait for a MIDI start command before starting the recording.
   
    * @{B}Set Rec-Start:@{UB} Pressing this button pops up a window where you
      can enter a precise start time for recording. You can check the current
      start time to the right of this button.

    * @{B}HD-light:@{UB} To check whether the audio data is really written to disk, a
      harddisk-led is present here. When recording, if flashes red when
      something is written to disk. If you pressed 'Record' and nothing happens
      within in a few seconds, something probably went wrong. You should stop
      the recording then and try again.
   
   After recording a window pops up in which you can choose to keep or delete
   the sample you just recorded.
   If you select 'Keep', a file-requester will pop up in which you can rename
   the sample. Then, the sample is added to the current project.
   If you select 'Delete', the sample will be removed from your harddisk.
@ENDNODE


@NODE "AutomationWindow"

   With the automation window, you can automate all the parameters of the 
   mixing window. For example, you can choose to fade in some channels at the
   beginning of your music piece, and at the end you fade them all out by
   automatically decreasing the master volume over lets say 10 seconds.
   This will give you smooth fades which you don't have to do manually while
   mastering your recording.
   
   At the left side of the window, there is a listview which displays all the
   automation events that are currently present. From left to right it shows:
      * the channel on which the event takes place (if it is a master volume
        event, nothing will be displayed here)
      * the samplename (again, not with master volume events)
      * start-time of the event (in minutes:seconds:milliseconds)
      * stop-time of the event
      * the event-type (one of MUTE, CHANNEL VOLUME, MASTER VOLUME, PANNING)
      
   The events are ordered to their start-times, but of course, events may
   overlap.
   
   You can add, edit or delete events by pressing their corresponding buttons
   right next to the listview: adding or editing an event brings you to
   the @{"Event Window" LINK "EventWindow"}.
      
   You can also create a new eventlist, load it or save it. Note that the
   eventlist is also saved with the project, but you can create multiple
   eventlists if you wish, for different mix-downs.
   
@ENDNODE


@NODE "EventWindow"

   At the Event window, you can choose the sample on which the event will
   take place, the actual event-type, the start- and stoptimes for the
   event and, if applicable, some settings depending on the event-type:
   
      * For MUTE events, you can only select the start- and stoptimes
        and of course the sample to be muted.
        
      * The CHANNELVOLUME event lets you fade a sample in or out. The
        duration of the fade is determined by the entered start- and
        stoptimes. You can set the begin-volume with the first slider
        at the right bottom of the window. It will be initially set to
        the current volume that is set in the Mixer window to prevent
        'jumps' in the volume. The same goes for the end-volume.
        
      * Choosing the MASTERVOLUME event will disable the samplename-
        selection because the master volume will affect all samples.
        
      * The PANNING event gives you two sliders for the start- and
        stop positions in the panorama. A value of '-100' means
        all the way to the left, '0' is in the middle and '100' is
        all the way to the right.
      
   You can choose 'Add Event' when you are done with your settings or you
   can choose 'Cancel' to stop editing.
      
@ENDNODE


@NODE "MIDI Settings Window"

   The MIDI Settings Window has the following options:
   
      * Tempo Slider: if you use the 'Bars' indicator at the @{"Control" LINK "Control"} window,
                      this tempo is used to calculate the starting position.
                      
      * Get tempo from range: This button calculates the tempo from a range you
                      selected in the @{"Sample Edit window" LINK "SampleEdit"}: select a range in a sample
                      that is 4 beats long, go to the MIDI Settings Window and press
                      this button. You now got the tempo from the sample!
                      Note: this only works for 4/4 at the moment.
                      
      * Time Correction Factor: For some reason, timing in MIDI sequencers is not 100%
                      correct. So if you use PlayHD with an external sequencer or have
                      a second Amiga connected via MIDI running a sequencer, timing
                      problems may occur. As this error is cumulative, a correction
                      factor can be set to solve this problem. The start position of
                      the play routine will be corrected with (1/TCF). This means that
                      for every second, (1/TCF) seconds will be added.
                      To make life easier, I have included two TCF's for two common
                      MIDI sequencers which work for me:
                        
                        - Music-X : TCF = 1500;
                        
                        - Bars&Pipes Pro : TCF = 110;
                        
                      This means that B&P has a very large error!
                      
                      If you have another MIDI sequencer and want to find out what
                      its TCF is, record a long sample (let's say 12 minutes) in
                      which you clearly play sync to the beat.
                      Then see if everything is in sync from the start. If that's
                      not the case, something else is going wrong. See the section
                      @{"Sync Menu" LINK "SyncMenu"} for more details. If everything is fine, check the
                      synchronisation at 1 minute and adjust the TCF if necessary:
                      start with a value of around 1000 and listen if your sample
                      is ahead or behind the MIDI tracks. If it's ahead, increase
                      the value and v.v.
                      Repeat this for 2,4,8 and 12 minutes.
                      
                      A TCF of 0 means that it isn't used.
   
@ENDNODE


@NODE "Using PlayHD with MIDI"

   PlayHD can be used together with an external MIDI sequencer: a second Amiga
   running a software MIDI sequencer can be connected via MIDI or you can
   attach a hardware MIDI sequencer. To synchronize the two, you can set
   the MIDI Sync to 'Send' or 'Receive' (see the @{"Sync Menu" LINK "SyncMenu"} for more details).

   - If the Sync option is set to 'Send' and the play- or record button has been
     pressed, first the right start positions of the samples are searched,
     then a MIDI-start command is sent, together with a Song Position Pointer
     and playback or record is started.
     Because the MIDI sequencer might not react instantaneously, a delay might
     occur. In this case, you should select the Sync option 'Receive' and let
     the sequencer be the 'master'.
     
   - If the option 'Receive' is set and the play- or record button has been
     pressed, the right start positions of the samples are searched and the
     program waits for a MIDI Start or Continue command. If one of these is
     received, playback or record starts immediately.
   

   It is preferred to use the 'Receive' option. Because it's not possible
   to receive a MIDI Song Position Pointer and to set the starting positions
   of the samples immediately thereafter, you will have to set the time
   counter or 'Bars' indicator by hand. The 'Bars' indicator is preferred,
   because the resolution of the time slider is in seconds which probably
   won't match the time indicator on your MIDI sequencer. The 'Bars' indicator
   in conjuction with the 'Tempo' setting in the @{"MIDI Settings Window" LINK "MIDI Settings Window"} will
   allow you to position your recording at any place you want.
   
   See the section @{"MIDI Settings Window" LINK "MIDI Settings Window"} for fixing timing problems
   which may be occur in the middle of a recording.
      
@ENDNODE


@NODE "Notes about recording"

   @{B}Notes about recording and master volume settings@{UB}


      As you can read in the @{"Mixer" LINK "Mixer"} section, everytime a sample is loaded
   or recorded, the volume range is increased. As the size of the master volume
   slider isn't changing, this means that your master volume setting on the
   slider will have a different meaning depending on the amount of samples you
   have loaded. On the other hand, because mixing is done by adding up all
   samplevalues for each track and then diving by the amount of samples, you'll
   probably loose some dynamics because not every track will be using the full
   dynamic range at every moment.
   So, if you would keep the master volume fixed and then play more and more
   samples, you would loose volume instead of gaining it. Also, if you would
   record a track while playing another track, you would hear the already
   recorded track too soft.
   
      PlayHD tries to prevent this by adding some volume everytime you load
   or record a sample. Note that this might lead to some distortion when you
   are playing or recording samples that are very loud.
   
      Additionally, when you're going to record something, you should check your
   input gain in the @{"Record Options window" LINK "RecordOptions"}. Make sure you have a good dynamic
   range and peaks near the -1 or 0 dB for loud pieces, but make sure you don't
   set it too high, because recording too loud on digital equipment sounds
   really bad!

      These two things will most likely reduce volume problems and of course
   you can always set your mastervolume yourself!
   
   
   @{B}Note:@{UB} With the 'Fast' AHI-modes the volume will be crudely rounded
   to levels like 100%, 50%, 25% and so on. This of course will limit your
   level adjustments but takes far less CPU-time.
   
@ENDNODE


@NODE "PCG Notes"

   @{B}Notes on PCG (Pre-Computed Graphics) files@{UB}

   PCG's are little files that hold graphical information on how a sample looks
   like. They are computed and stored at a given zoomfactor, for example 256
   pixels per second. In this way, a sample can be shown quickly at different
   zoom levels using the PCG, because the graphical data is already in memory
   and doesn't have to be computed from the actual sample each time you zoom in
   or out. The size of these files are around 1/650th of the real samplesize
   for stereo samples at 44.1 Khz.
   
   The PCG's are currently only used for the timeline display, but will also
   be used in the sample edit window in the future. Zooming further in then
   the zoomlevel that was stored in the PCG will change in a different method
   to show the sample in the future.
   
   Samples with and without PCG's can be used interchangeabily.
   
@ENDNODE
