Electronic Arts Sound eXchange

From MultimediaWiki
Jump to: navigation, search

Sound eXchange (SX) was a tool distributed by Electronic Arts that supports conversion of audio to and from the various EA game formats.

Observations

SX requires an ending chunk (e.g. SCEl) to be present in the input file, when decoding EALayer3. If no ending chunk is present, SX will exit stating "Couldn't allocate memory for EALayer3 buffer."

Command Line Help

sx v3.01.01 (Sound eXchange) Sep 22 2004 by Dave Mercier, EAC
USAGE: sx <format> [options] <sourcefiles>
VERSION: WIN NT v3.01.01 (Sound eXchange), Spit v3.19
SUMMARY: sx is a sample format converter
        SPIT environment variable is SX_OPTS

   -aiff            Export Apple AIFF/AIFC
                        (s16b_int)
                        (s8_int)
                        (dvi_int)
                        (s24b_int)
   -wave            Export Microsoft Wave
                        (s16l_int)
                        (u8_int)
   -cdxa            Export CD-ROM XA
                        (cdxa)
   -vag             Export Sony VAG
                        (vag_blk)
   -raw             Export RAW (no header)
                        (s8_int)
                        (s8_blk)
                        (u8_int)
                        (s16b_int)
                        (s16b_blk)
                        (s16l_int)
                        (s16l_blk)
                        (eaxa_blk)
                        (cdxa)
                        (vag_blk)
                        (dvi_int)
                        (mt_blk)
                        (mt5_blk)
                        (s24l_int)
                        (s24b_int)
   -pcbank          Export SND PC bank
                        (s8_blk)
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
                        (vag_blk)
                        (xboxadpcm)
                        (gcadpcm)
   -pcstream        Export SND PC stream
                        (s8_blk)
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -macbank         Export SND MAC bank
                        (s8_blk)
                        (s16b_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
                        (vag_blk)
                        (xboxadpcm)
                        (gcadpcm)
   -macstream       Export SND MAC stream
                        (s8_blk)
                        (s16b_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -ps2bank         Export SND PS2 bank
                        (vag_blk)
                        (s8_blk)
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -ps2stream       Export SND PS2 stream
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -gcbank          Export SND GC bank
                        (s16b_blk)
                        (gcadpcm)
                        (mt_blk)
                        (eaxa_blk)
                        (mt5_blk)
   -gcstream        Export SND GC stream
                        (s16b_blk)
                        (mt_blk)
                        (eaxa_blk)
                        (mt5_blk)
   -xboxbank        Export SND XBOX bank
                        (s16l_blk)
                        (xboxadpcm)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -xboxstream      Export SND XBOX stream
                        (s16l_blk)
                        (xboxadpcm)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -sndstream       Export SND Generic stream
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -xenonbank       Export SND XENON bank
                        (s16b_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -pspbank         Export SND PSP bank
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
                        (vag_blk)
   -xenonstream     Export SND XENON stream
                        (s16b_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -pspstream       Export SND PSP stream
                        (s16l_blk)
                        (eaxa_blk)
                        (mt_blk)
                        (mt5_blk)
   -raw<samplerep>  Import RAW with given sample data representation
                        (s8_int)
                        (s8_blk)
                        (u8_int)
                        (s16b_int)
                        (s16b_blk)
                        (s16l_int)
                        (s16l_blk)
                        (s24l_int)
                        (s24b_int)

Sample data representations that may be specified:
   -s16l_int        Signed 16-Bit Little-Endian Interleaved
   -s16b_int        Signed 16-Bit Big-Endian Interleaved
   -s8_int          Signed 8-Bit Interleaved
   -mt_blk          MicroTalk Block (10:1)
   -vag_blk         Sony VAG Block (3.5:1)
   -s16b_blk        Signed 16-Bit Big-Endian Block
   -s16l_blk        Signed 16-Bit Little-Endian Block
   -s8_blk          Signed 8-Bit Block
   -eaxa_blk        EA-XA Block (3.7:1)
   -u8_int          Unsigned 8-Bit Interleaved
   -cdxa            CD-XA Interleaved (3.5:1)
   -dvi_int         DVI Interleaved (4:1)
   -gcadpcm         GameCube ADPCM (3.5:1)
   -s24l_int        Signed 24-Bit Little-Endian Interleaved
   -xboxadpcm       Xbox ADPCM (3.5:1)
   -s24b_int        Signed 24-Bit Big-Endian Interleaved
   -mt5_blk         MicroTalk Block (5:1)

   -noprogress      Do not display progress bars
   -rawc<channels>  Specify RAW input channels (default 1)
   -raws<rate>      Specify RAW samplerate (default 22050 Hz.)
   -split           Split multi-channel into multiple single-channel files
   -onetomany       Break multi-element files into individual files
   -element<offset> Adjust destination element positions by this offset
   -notruncate      Don't remove samples after loop (default truncates)
   -det<cents>      Specify new detune in cents for playback (default is 0)
   -br<semitones>   Specify bend range for playback (default is 0)
   -vol<0-127>      Specify volume for playback (default is 127)
   -rd<cents>       Specify random detune range in cents (default is 0)
   -mrd<cents>      Specify master random detune range in cents (default is 0)
   -rv<0-127>       Specify random volume range for playback (default is 0)
   -pan<0-127>      Specify pan offset (default is 64)
   -rp<0-127>       Specify random pan offset range (default is 0)
   -fps<0.1-120.0>  Specify chunk rate for stream (default is 15.0)
   -renv<-1-127>    Specify release envelope (default is -1)
   -envi<0-127>     Specify initial envelope volume (default is 127)
   -env<dur,vol[,dur,vol,...]> Specify playback envelope as a series of
                               segments, each with a duration and volume.
                               duration is in 1/100ths of a second and volume
                               ranges from 0..127
   -az<0..65535[,...]>         Specify directional azimuths for each channel.
                               First azimuth listed corresponds to the lowest
                               channel. An azimuth of 0 would be directly
                               ahead, 16384 would be directly to the right.
   -loops<sample>
           The loop start value sets which sample the loop section begins on.
               "sample" - Specify the sample to begin the loop section, -1 
               indicates no loop start point. Allowable range is -1 .. 
               2147483647.
   -loope<sample>
           The loop end value sets which sample the loop section ends on.
               "sample" - Specify the sample to end the loop section, -1 
               indicates no loop end point. Allowable range is -1 .. 
               2147483647.
   -ifnoloops<sample>
           The loop start is set to the value given, if there isn't one 
           currently in the file.  -1 means no loop start point.
               "sample" - Specify the sample to begin the loop section, -1 
               means no loop start point Allowable range is -1 .. 2147483647.
   -ifnoloope<sample>
           The loop end is set to the value given, if there isn't one 
           currently in the file.  -1 means no loop end point
               "sample" - Specify the sample to end the loop section, -1 means
               no loop end point. Allowable range is -1 .. 2147483647.
   -markertouser
           Explicitly transfer all the AIFF markers to user data.  This is not
           done by default
   -cbr<bitrate>
           The constant bit rate is used to set the level of compression.
               "bitrate" - Specify in bits per second. Allowable range is 8000
               .. 960000.
   -vbr<quality>
           The variable bitrate quality is used to set the level of 
           compression.
               "quality" - Specify compression quality, 0 = highest 
               compression (bad sound quality), 100 = lowest compression (good
               sound quality) Allowable range is 0 .. 100.
   -playloc<location>
           The play-back location determines what system a sound will be 
           played from.
               "location" - Location can be one of 'default', 'spu', 
               'maincpu', 'iopcpu', 'ds2dhw', 'ds3dhw', or 'dsp'.
   -priority<value>
           Set priority for voice allocation.
               "value" - Specify priority for playback (default is 0, 100 is 
               highest). Allowable range is 0 .. 100.
   -fxzero<level>
           Set level for effect bus 0.
               "level" - Specify effect level for bus 0 (default is 0). 
               Allowable range is 0 .. 127.
   -embeduser
           Attach user data to a sample.
               "data" - Specify user data to attach to sample. Specify as a 
               file name.
   -embedts<window>
           Generate and embed additional data needed to perform run-time time 
           stretch.
               "window" - Window size to use to correlate sample data, 
               specified in microseconds. 9000 is a good default. Allowable 
               range is 1000 .. 100000.
   -removeuserbyid<id>
           Remove user data chunks from a sample, which ID matches the given 
           value.
               "id" - Specified as the id of the chunk(s) to be removed.  It 
               must be a four-letter id. (eg. MYID)
   -removeuserbyvalue<value>
           Remove user data chunks from a sample, which ID matches the given 
           value.
               "value" - Specified as the id of the chunk(s) to be removed.  
               The value entered can be of any standard format, but you must 
               specify it clearly. (eg. 0x4F64EA6C) Allowable range is 
               -2147483648 .. 2147483647.
   -removeuserall
           Remove all user data from a sample. (No parameter is required)
   -rs<rate>
           Resample to a new rate.
               "rate" - Specified as new sample rate in Hertz. Allowable range
               is 400 .. 96000.
   -dstofit<frames>
           Ensure sample uses no more than N frames by reducing sample rate 
           until it fits.
               "frames" - Specify maximum amount of frames allowable in 
               sample. Allowable range is 1 .. 2147483647.
   -alignloop<alignment>
           Resample and insert silence to line loop points up to alignment 
           restrictions.
               "alignment" - Specify the alignment restriction. Allowable 
               range is 2 .. 1024.
   -padloop<padding>
           Extend and/or replace samples after loop end point with the samples
           that begin at the loop start point.
               "padding" - Specify the amount of samples to pad out after the 
               loop end point. Allowable range is 0 .. 2147483647.
   -sa<amplitude>
           Scale amplitude of sample.
               "amplitude" - Specified as percentage of original volume. 
               Allowable Range is -10000.0 .. 10000.0.
   -fadein

Binary details

SX.EXE
size: 577536 bytes
md5:  daffbcd5b48579801afe780140520c78
sha1: 5252db36c709ad1a47fecdd4060a1fd40f83f387