SAP Specification
(S)-disc (A)scii (P)rotocol

Version 1.10; Last Updated 5/29/96

Disclaimer

Introduction

Advantages

Examples

Archives

 

GSP-USERS Mail-List Information

Contributors


Format Rules - "The Spec"


General

  1. Comments are specified by use of the '#' character. Any text following a '#' character is a comment. That simply means that you can put anything you want there to describe the data.

  2. Blank and comment lines are completely skipped. Except where otherwise noted, spaces and blank lines can be used freely as desired to make the file look nice and sensible.

  3. A SAP ascii file may contain one and only one GSP-2101 program/algorithm description ( at least for now ).

  4. By convention, each SAP definition should start with a comment section that fully describes the program, the guitar/amp used, type of pickup, etc. In addition, the author's name and email address could be provided. This is a comment, so it can really be formatted just about any way you want. It doesn't neccessarily need to take up this much room, but here is an example:
      #============================================================
      #============================================================
      #
      #   Program:        Death Metal Haze
      #   Author:         John Doe  
      #   Date Created:   4/5/65
      #   
      #   Description:
      #
      #         This is a way cool program if you like to play REALLY
      #         fast.  It sounds best cranked REALLY loud until
      #         your ear feels like its gonna start bleeding.  
      #         I wish I could remember what it sounds like.
      #         Let me know what you think!!
      #
      #   Notes:
      #   
      #         Program was created using an Ibanez with humbucker
      #         going into a Marshall stack turned up all the way.
      #
      #============================================================
      #============================================================
    


Sections

  1. Each SAP definition will contain a Header section, a Module Parameters section and an optional Algorithm Link section. There are no section labels, just convention that they exist in that order within the file. The only hard and fast rule is that the Header section MUST come first.


Header Section

  1. The First four non-comment lines are always the header section lines. Four data values are always provided here. There are no labels. They must always be provided on a seperate line for each value and in the following order:
         <device_id>
         <firmware_version>
         <program_name>
         <algorithm_number>
    
    Here is an example. Comments are optional, but highly reccomended:
         GSP-2101                     #  Device ID
         3.00.00                      #  Software Version
         Death Flange Soup            #  Program name
         F9                           #  Algorithm Number
    
  2. If an 'F' is placed in front of the algorithm number, then its a factory algorithm. If a 'U' is placed in front of the algorithm number than its a custom user algorithm and should be defined below. If a 'U' is there with no number, then that means that the algorithm is defined below, but software will figure out where to put it in the GSP-2101(next available slot).

  3. An optional algorithm name may be provided in parenthesis following the algorithm number. For example:
        GSP-2101                      #  Device ID
        3.00.00                       #  Software Version
        Death Flange Soup             #  Program name
        U ( Joe's Mixer Madness )     #  Algorithm number/name
    


Module Parameters Section

  1. The module section will list each of the analog and digital modules that are used in the GSP-2101 program. It will also contain two special modules called MVol and MMix even though they don't appear to be thought of technically as dedicated FX modules(see below).

  2. Each module definition will begin with the abbreviated name of the module and contain a list of parameters seperated by commas and enclosed in parenthesis. For example:
        Dist (On, Saturated Tube, 10.3, 8.5 )
    
  3. The abbreviation for each module name should be used. These can be obtained from the GSP-2101 screen by pressing the <Next> button once from the program's main screen, which then displays the algorithm and all of the abbreviated module names being used in it.

  4. The parameters should appear in the same order as they appear in the GSP-2101 window while editing effect settings manually.

  5. Numeric parameters do not need to indicate the type of units. Just the numeric value is required, even when the type of unit is displayed in the GSP-2101 window. For example, if the value for a particular parameter is 12db, the module parameter definition can simply be 12 (without the 'db') and that will work just fine. The unit type will be automatically presumed.

  6. Non-numeric parameters should use the same spelling as indicated in the GSP-2101 window. For example, for the Distortion Type parameter, a valid value might be 'Saturated Tube'; as it is spelled in the GSP-2101 window.

  7. If a particular module is not listed in the description, but exists in the algorithm being used, then "default" parameters will be used. In many cases, "default" means Off, but in some cases it may not. These defaults are entirely dependent on which PC software is being used.

  8. If a particular module does not have enough parameters specified, then certain defaults for the missing parameters will be assumed. Note, however, that its highly adviseable to include values for every parameter, even if the default is desired, or the Module is Off.

  9. Spacing between parameters does not matter. In fact, they can even be placed on seperate lines. The comma seperates them and the parenthesis enclose them. Different variations can be employed to make it easier to read or to save space. For example the following two examples produce the same results:
            4x2A (100, 100, -50, 50, 100, 100, 0, 0) 
    Or seperate lines with comments for each parameter:
            4x2A  ( 100,              # parameter 1
                    100,              # parameter 2
                    -50,              # parameter 3
                     50,              # parameter 4
                    100,              # parameter 5
                    100,              # parameter 6
                      0,              # parameter 7
                      0 )             # parameter 8
    


Algorithm Link Section

  1. Algorithm Links define where the input signal for a given module comes from. For example, to define what signals coming from either the analog section or from the output of other modules will feed into the four inputs of the 4x2A module, an Algorithm Link definition would be made for that module.

  2. No Algorithm Link section is needed for GSP-2101 programs using factory algorithms.

  3. Algorithm Links do not apply for modules in the analog section. The analog section is hard-wired. Therefore Algorithm Link definitions for analog modules would be meaningless.

  4. The signal coming from the analog section output is referred to as 'Right Input' and 'Left Input', the same as is used in the GSP-2101 window to refer to the analog section output. If you want to connect the analog output directly to the input of a digital FX module, then use these terms.

  5. The final output stage should always be to a phantom module called MMix. It takes 2 inputs which are automatically sent out to the final Left and Right outputs of the 2101(see below).

  6. Algorithm Link definitions are expressed by using "<-" between the abbreviated module name and a list of inputs enclosed in parenthesis and seperated by commas. Each input will be defined with the same text that is displayed in the GSP-2101 window for input links. For example, the following would define inputs 1, 2, 3 and 4 of the 4x2A module to be receiving their signals from the output of SCho and from the analog section respectively:
        4x2A <- ( SCho Out 1, SCho Out 2, Left Input, Right Input )
    
    

CC Links

  1. The Continuous Controller links can be assigned to individual parameters by putting the following syntax after a particular parameter value:
        <parameter_value> cc[<min>,<max>]
    
    For example:
        Dist (On,Saturated Tube, 10.3 cc[1,11], 8.5 cc[11,1] )
    
  2. If an external controller needs to be used instead of the built in pedal on the foot controller, then you may specify that with the following syntax:
        <parameter_value> cc:<cc_number>[<min>,<max>]
    
    For example:
        Dist (On,Saturated Tube, 10.3 cc:3[1,11], 8.5 cc[11,1] )
    
  3. The acronyms 'INT' and 'EXT' may be used to refer to default internal and external continuous controller numbers. If no CC number is provided, then the default internal CC is presumed.

  4. If no min/max values are provided, then default values will be assumed. Normally the default values will be the full range of the parameter, but this is entirely dependent on the PC software being used. Following are several example CC assignments that would all be perfectly legal assignments with different outcomes:
        Dist (On,Saturated Tube, 10.3 cc:7[1,8], 8.5 )
        Dist (On,Saturated Tube, 10.3 cc[1,5], 8.5 )
        Dist (On,Saturated Tube, 10.3 cc, 8.5 )
        Dist (On,Saturated Tube, 10.3 cc:3, 8.5 )
        Dist (On,Saturated Tube, 10.3 cc:EXT, 8.5 )
    
    

Function Key Assignments

  1. There are 3 function keys on the front panel of the GSP-2101 and specific parameters can be assigned to each one so that when the user presses the function key, that particular parameter will come up on screen to be edited with the big black knob on the front panel. Function keys can be assigned to individual parameters with the following syntax:
          <parameter_value> fk[n]
    
    For example, to attach the distortion type to function key #2:
          Dist (On, Saturated Tube fk[2], 10.3, 8.5 )
    
  2. Note that you can assign both a function key and a CC link to a particular parameter by simply including them both. For example:
          Dist (On, Saturated Tube, 10.3 cc[1,11] fk[2], 8.5 )
    

Examples

Example 1 - Factory Program 198

Example 2 - Program with Customer User Algorithm