home *** CD-ROM | disk | FTP | other *** search
- Convert (C) Jesus Villena, 1994
- Version 1.4B
-
- Universidad Politecnica de Valencia
- Facultad de Informatica
- Valencia, Spain
-
- INTERNET: usufi4@finf.upv.es
-
-
- [This is a slightly edited version of the author's original document. - T.A.]
-
-
- INDEX
-
- Copyright {Convert 29}
- Introduction {Convert 39}
- Motivation {Convert 47}
- Features {Convert 62}
- Format Identification {Convert 114}
- Syntax {Convert 165}
- Recognized Input Formats {Convert 295}
- Notes {Convert 345}
- Acknowledgements {Convert 404}
- Petitions {Convert 413}
- Internet Sound Sites {Convert 423}
- Frequently Asked Questions {Convert 447}
-
- COPYRIGHT
-
- This program is Freeware and may be distributed without any permission by
- the author. Its development has been carried out by and for the Internet
- community. Contribute to its improvement and extension!!!
-
- This software is provided "as is". The author makes no warranties regarding
- Convert. You use it at your own risk.
-
-
- INTRODUCTION
-
- Convert is a DOS tool which translates samples between several formats. It
- tries to preserve as much as possible of the information present in the
- original file, e.g. name, loop points, number of data bits, number of
- channels, etc.
-
-
- MOTIVATION
-
- Convert started out as a domestic project with the goal of obtaining high
- quality instruments for the Gravis Ultrasound card from sound files produced
- with professional samplers (Ensoniq EPS, Roland [S] 50, Yamaha TX16W...). The
- source code was designed so as to be easily extended to additional formats.
- In fact, support for the most well-known modules (MOD, MTM, FAR, S3M...) was
- soon added. A little later the MIDI Sample Dump Standard formats (SDS and SDX)
- followed, as well as other formats used by various manufacturers (AIFF,
- IFF, SMP ...).
-
- Whenever possible, new formats were made available for both input and output,
- so that virtually any input format could be converted to any output format.
-
-
- FEATURES
-
- - Large number of input and output formats: see list.
-
- - Automatic recognition of input format: it is not necessary to
- specify type of input file; Convert detects it automatically.
-
- - Possibility of converting several files in one pass using wildcards
- and of sending them to a specified target directory.
-
- - Ease of use: operation is intuitive, complicated combinations of
- input parameters need not be memorized (for instance, if you want
- to use the samples contained in a PAT file for creating a MOD
- module, simply use the -MOD switch and Convert will translate
- all waveforms to SAM format, readable by all MOD editors, without
- specifying SIGNED or UNSIGNED).
-
- - The program handles input files using up to 16 data bits and 2
- sound channels, converting these values as needed for generating
- the output format (for instance, a 16 bit Stereo WAV file will be
- converted to 8 bits Mono when going to VOC).
-
- - High success rate: This program has succesfully converted 98% of
- my files (other conversion programs generate many errors). In
- particular, I have all GKH and AIFF files on ftp.reed.edu (now on
- oak.oakland.edu) and it has converted all very well (except for
- a few corrupted files).
-
- - Varios Keyboard Disk Images have been added: Directly supports the
- disk image formats GKH and Giebler Enterprises (the most common on
- the Internet) for VFX-SD, SD-1, TS-10 (DD and HD), VFX-SD, EPS
- (normal, 16 and 16+), and ASR keyboards and racks units. As opposed
- to other tools, Convert doesn't need external programs for
- converting these disk images.
-
- - LoopPoints and WaveSample Length show samples, not bytes, as do
- other packages. Sizes are still in bytes.
-
- NEW!! - Full support for the SoundBlaster AWE32 format. Now, you can read
- and write SBK files (Vienna compatible) with many features. Try it.
-
- NEW!! - Stereo support for SBK files, using the multiyering capabilities of
- the SoundBlaster AWE32.
-
- NEW!! - Bidirectional to Forward looping conversion, useful in formats
- without bidirectional capabilities.
-
- NEW!! - Three pro formats have been added as output: Yamaha TX16W, Yamaha
- SY-85/SY-99 and Ensoniq Instrument file. The files generated with
- this option haven't been tested. Please test it and tell me.
-
-
- FORMAT IDENTIFICATION
-
- Convert currently handles the following file formats:
-
- Alias Description
- ----- -------------------------------------------
- 669 669 Tracker Module
- AIFF Audio Interchange Format File (AIFF)
- AU Sun/Next Audio File
- DMF Delusion Digital Music File
- DSF Delusion Digital Sound File
- DSM Digital Sound Module
- DSP Dynamic Studio Professional Module
- FAR Farandole Composer Module
- FSM Farandole Composer WaveSample
- F2R Farandole Linear Module
- F3R Farandole Blocked Linear Module
- GKH Ensoniq Disk Image (VFX, SD, EPS, ASR, TS)
- IFF Interchange Format File (IFF)
- INS Ensoniq Instrument File
- KRZ Kurzweil K2000 File
- MED MED/OctaMED Module
- MOD Protracker/Fastracker/Startrekker Module
- MTM MultiTracker Module
- OKT Oktalizer Module
- PAC SBStudio II Package or Song
- PAT Gravis Ultrasound Patch
- PSM Protracker Studio Module
- RAW PCM Signed Raw Sound File
- SBK Emu SoundFont Bank (AWE32 Bank)
- SDK Roland S-550/S-50/W-30 Disk Image
- SDS MIDI Sample DUMP Standard File
- SDX Sample DUMP Exchange File
- SF IRCAM Sound File"
- SMP Samplevision File
- SND PCM Unsigned Raw Sound File
- SOU SBStudio II Sound File
- STM Scream Tracker 1 & 2
- S3I Digiplayer/ST3 Sample File
- S3M Scream Tracker v3 Module
- SYW Yamaha SY-85/SY-99 Wave File
- TXW Yamaha TX-16W Wave File
- ULT UltraTracker Module
- UNI UNIMOD Module
- UWF UltraTracker WaveSample
- VOC Creative Lab's Sound File
- WAV Microsoft Windows RIFF WAVE
- XI Fastracker 2.0 Instrument File
- XM Fastracker 2.0 Module
-
-
- SYNTAX
-
- Convert is invoked as follows:
-
- Convert [[<InputPath>/@<SearchFile>] [<OutputPath>] [<OutFmt>] [<Switches>]]
-
- where
-
- <InputPath> is the name of the files to convert. It consists of a directory
- name and a file name, optionally using DOS wildcards. Examples of <InputPath>
- would be: \SAMPLES\*.*, ..\SAMPLES\ENSONIQ\*.INS, SAMPLE?.*, etc.
-
- <SearchFile> is optional and consists of a text file which lets you specify
- files to convert, one filename per line. Comments can be included behind the
- # symbol. Order can be specified by also writing <number>=<filepath>. This
- feature is supplied mainly to support AWE32 program numbers, although it works
- for all formats. An example (file SAMPLE.INI):
-
- # Sample File to obtain the bank sample.bank
- # Use convert @sample.ini -sbk
- 0=c:\sounds\bdrum1.wav
- 1=c:\insts\snare2.aif
- 8=d:\krz\voices.krz
- # This bank will have the sound bdrum1.wav as program 0
- # the sound snare1.aif as program 1
- # and sounds included in voices.krz as programs 8,9,...
-
- <OutputPath> specifies the destination directory where Convert will place the
- output files. If this directory doesn't exist, Convert will create it.
-
- <OutFmt> is a switch descriping the output format.
-
- <Switches> can take on the values -8 and -1, and serves to force 8 data bit
- and mono output.
-
- <OutFmt> may be one of the following:
-
- OutFmt Extension Offered Features (Resume)
- ------ --------- --------------------------------------------------
- -669 SND PCM Unsigned Raw, 8 bits, Mono
- -AIF AIF 8/16 bits, Mono/Stereo, Rate, Loop
- -AU AU 8/16 bits LINEAR, Mono/Stereo, Rate
- -DMF, -DSF DSF 8/16 bits, Mono, Rate, Loop
- -DSM WAV 8 bits, Mono, Rate, Loop
- -FAR, -F2R
- -F3R, -FSM FSM 8/16 bits, Mono, Loop
- -GKH, -INS INS 16 bits, Mono, Rate, Loop
- -IFF IFF 8 bits, Mono/Stereo, Rate
- -MOD, -STM
- -MED, -OKT SAM PCM Signed Raw, 8 bits, Mono
- -MTM RAW PCM Unsigned Raw, 8/16 bits, Mono
- -PAC, -SOU SOU 8/16 bits, Mono, Loop
- -PAT PAT 8/16 bits, Mono, Rate, Loop, Multiple Waveforms
- -RAW RAW PCM Signed Raw, 8/16 bits INTEL, Mono/Stereo
- -SBK SBK 16 bits, Mono, Rate, Loop
- -SDS SDS 8/16 bits, Mono, Rate, Loop
- -SDX SDX 8/16 bits, Mono, Rate, Loop
- -SF SF 8/16 bits, Mono/Stereo, Rate
- -SMP SMP 16 bits, Mono, Rate, Loop
- -SND SND PCM Unsigned Raw, 8/16 bits INTEL, Mono/Stereo
- -S3M, -S3I SMP 8/16 bits, Mono/Stereo, Rate, Loop
- -SYW W00 16 bits, Mono, Rate, Loop
- -TXW W00 12 bits, Mono, Rate, Loop
- -UWF, -ULT UWF 8/16 bits, Mono, Loop
- -VOC VOC 8 bits, Mono, Rate
- -WAV WAV 8/16 bits, Mono/Stereo, Rate, Loop
- -XM, -XI XI 8/16 bits, Mono, Loop
- -OUT depends variable (see notes)
-
-
- Notes:
-
- If you run Convert without parameters, the program displays a small help page.
-
- If you have specified only <InputPath> (or <SearchFile>), the program shows
- information on the contents of the input files (sample name, number of Bits,
- number of channels, loop points, etc...). For example: Convert flute.pat
-
- ·····················································EXAMPLE Output
- CONVERT v1.4B, (c) 1994 Jesus Villena
- Converts sounds among several kinds of music and sample files
-
- File : FLUTE.PAT
- Text : Copyright 1992,1993 EYE&I Productions and Advanced Gravis
- Source : Gravis Ultrasound Patch
-
- Name Length Rate Lo Root Hi Ste 16B Loop Begin End
- --------------------------------------------------------------------------
- Flute ············■■■■ INSTRUMENT ■■■■···········
- 00 NoName 6015 41666 A0 G#5 C8 - x --> 5564 6014
-
- 1 WaveSample(s) use 12030 Bytes
- ······················································
- This file is a Gravis Ultrasound Patch and describes an instrument called
- Flute, which contains a unique waveform called NoName, comprised of 6015
- samples, sampled at 41666 Hz at G#5, and can be used in the range A0..C8.
- The waveform is mono (Ste= - ), 16 bits (16B = x ) and has a Forward Loop
- (Loop = --> ) from sample number 5564 to sample number 6014.
-
- If you haven't specified <OutputPath>, Convert will use the current directory
- as target.
-
- The output file is given the same name as the input file, if the latter
- contains one waveform. If the input file contains several waveforms, the name
- of each file generated is the original name plus an index differentiating
- it from the others (caution: existing files with the same name may be
- overwritten). If the output format is SBK, the file generated will be named
- sample.sbk, unless you use the @<SearchFile> option to specify file paths; in
- this case the ouput file will have the same name as the SearchFile, with
- extension SBK.
-
- The switch -OUT has a special meaning and it is only available for some
- formats. Basically its meaning is to extract all the waveforms present
- in the input file to individual output files of the same (input) format.
- This switch is therefore only available for those formats which may have
- multiple waveforms in a single file:
-
- 669 --> SND (each instrument to PCM RAW 8 bits Unsigned)
- DMF --> DSF
- FAR, F2R, F3R --> FSM
- GKH --> INS
- MOD, STM, MED, OKT --> SAM (each instrument to PCM RAW 8 bits Signed)
- MTM --> RAW (each instrument to PCM RAW 8/16 bits Unsigned)
- PAC --> SOU
- PAT --> PAT (each WaveForm is converted to a new PAT file)
- ULT --> UWF
- S3M --> S3I
- XM --> XI
-
-
- RECOGNIZED INPUT FORMATS
-
- So that a file may be automatically recognized, it should have a header
- defining it. PCM RAW files are therefore not accepted for input (this format
- is supported by the SOUND2WAV utility). Valid input formats are:
-
- Format Recognized features (Resume)
- -------- --------------------------------------------------------
- 669 Several waveforms, 8 bits Mono, Loop, Name, Text
- AIFF 1 waveform, 1..16 bits, Mono/Stereo, Rate, Loop, Name, Text
- AU 1 waveform, 8/16 bits LINEAR/ULAW, Mono/Stereo, Rate, Text
- DMF Several waveforms, 8/16 bits Mono, Rate, Loop, Name, Text
- DSF 1 waveform, 8/16 bits Mono, Rate, Loop, Name
- DSM Several waveforms, 8 bits Mono, Rate, Loop, Name, Text
- DSP
- FAR Several waveforms, 8/16 bits Mono, Loop, Name, Text
- FSM 1 waveform, 8/16 bits Mono, Loop, Name
- F2R Several waveforms, 8/16 bits Mono, Loop, Name, Text
- F3R Several waveforms, 8/16 bits Mono, Loop, Name, Text
- GKH, INS Several waveforms, 16 bits Mono, Rate, Loop, Name
- IFF 1 waveform, 8 bits, Mono/Stereo, Rate, Name, Text
- KRZ Several waveforms, 16 bits Mono, Rate, Loop, Name
- MED Several waveforms, 8 bits Mono, Loop, Name, Text
- MOD Several waveforms, 8 bits Mono, Loop, Name, Text
- MTM Several waveforms, 8/16 bits Mono, Loop, Name, Text
- OKT Several waveforms, 8 bits Mono, Loop, Name
- PAC Several waveforms, 8/16 bits Mono, Loop, Name, Text
- PAT Several waveforms, 8/16 bits Mono, Rate, Loop, Name, Text
- PSM Several waveforms, 8/16 bits Mono, Loop, Name, Text
- SBK Several waveforms, 16 bits Mono, Loop, Name, Text
- SDK Several waveforms, 12 bits Mono, Rate, Loop, Name, Text
- SDS 1 waveform, 1..16 bits Mono, Rate, Loop
- SDX 1 waveform, 1..16 bits Mono, Rate, Loop, Name, Text
- SF 1 waveform, 1..16 bits LINEAR, Mono/Stereo, Rate, Text
- SMP 1 waveform, 16 bits Mono, Rate, Loop, Name, Text
- SOU 1 waveform, 8/16 bits Mono, Loop, Name
- STM Several waveforms, 8 bits Mono, Rate, Loop, Name, Text
- S3I 1 waveform, 8/16 bits, Mono/Stereo, Rate, Name
- S3M Several waveforms, 8/16 bits, Mono/Stereo, Rate, Loop, Name, Text
- SYW
- TXW 1 waveform, 12 bits Mono, Rate
- ULT Several waveforms, 8/16 bits Mono, Rate, Loop, Name, Text
- UNI Several waveforms, 8/16 bits, Mono/Stereo, Loop, Name, Text
- UWF 1 waveform, 8/16 bits Mono, Rate, Loop, Name, Text
- VOC 1 waveform, 8 bits Mono, Rate, Loop, Text
- WAV 1 waveform, 1..16 bits, Mono/Stereo, Rate, Loop, Name, Text
- XI
- XM
-
-
- NOTES
-
- The GKH format describes Giebler Enterprises images. Class One files have the
- extension GKH and include various Ensoniq formats. Class Two files have the
- extension ED?, where ? is character denoting disk tipe (e.g. EDA is an ASR
- disk image file by Giebler Enterprises, EDT is a TS-10 disk image, and so on).
- These formats are (basically) an Ensoniq disk image. When translating to other
- formats, Convert will first create DOS (INS) files, and then translate those.
- I recommend you use the -OUT option with this format in order to prevent a
- repetition of this process every time the file is accessed.
-
- The INS and KRZ formats support multisample instruments, that is, they allow
- the assignment of different waveforms to different ranges on the MIDI keyboard.
- This feature is supported upon conversion to PAT if and only if the ranges do
- not overlap. This way, a complete percussion kit would generate just one
- multisample PAT file.
-
- All supported formats can be handled even when compressed or packed. An error
- will be displayed if you try to extract the waveforms in a file using
- unsupported compression or packing.
-
- The KRZ format supports stereo waveforms, but this version of Convert doesn't
- recognize it, and some waves are converted incorrectly (sounds at lower pitch).
-
- For the SBK format, Convert shows only wavesamples for the RAM area. It
- does not display ROM based wavesamples because they cannot be extracted (for
- this reason, SYNTHGM.SBK, which comes with SoundBlaster AWE32, doesn't display
- anything: this bank uses only the General Midi Set stored in the board's ROM
- area, and the file only contains nothing but instrument info).
-
- I have included the SearchFile (@<SearchFile>) in this version mainly to let
- you specify which files will make up the SBK bank and which programs will play
- each sound. This can be achieved using <number>=<sound> (like ULTRASND.INI
- but using full path names). Files with multiples waves can cause Convert to
- misinterpret the number chosen (only in SBK conversion). An example:
-
- 1=TR808.KRZ
- 2=KISS.WAV
-
- If for example TR808.GKH has 15 wavesamples, it will be played through programs
- 1 to 15. The user wants KISS.WAV in program 2, but this can't be because
- program 2 is already in use. The program seeks an available program (16) and
- assigns it to KISS.WAV.
-
- How do you use SBK banks generated with Convert? Once you have obtained a
- SoundFont Bank (e.g. SAMPLE.SBK) you have to download it into the AWE's memory.
- First, fill out the "USER=" field of the [AWE32] section of your SBWIN.INI
- file, in your Windows directory, with the path to the bank generated
- (e.g."USER=C:\SB16\SFBANK\SAMPLE.SBK"). Second, inside Windows click the AWE
- Control Panel and find "User Custom Synth" in the Synthesizer Bank section.
- Then click on Establish and if you have enough memory, you will have the
- sounds in memory. You can now use sequencer programs to sound the samples,
- using any program number you have specified.
-
- You can load SBK files generated with Convert into Vienna too. This version
- of Convert supports all feautures of SBK formats and is compatible with the
- Vienna SF editor.
-
-
- ACKNOWLEDGEMENTS
-
- I thank Cris-(tobal) for his disinterested help in the previous test phase
- and for his contribution of formats, Jordi for his beta testing and for his
- suggestions, as well as the creators of all anonymous sources where I have
- obtained the specifications of the various formats (a special thank to F.
- Markus Jarsson for the KRZ and SYW formats).
-
-
- PETITIONS
-
- As initially stated, this tool was born with extension in mind. I therefore
- ask all users interested in including other formats that they send me a
- description of the format, and if possible, some file(s) for testing. I am
- especially interested in the Maui and Rio Patch, Drum and Bank formats.
-
- Please e-mail any bugs or possible improvements to usufi4@finf.upv.es.
-
-
- START NOW
-
- To start enjoying new and vibrant sounds, here's a small list of sites where
- you will find them on the Internet. Personally, I have more than 200 Mbytes
- of these samples!!!
-
- GKH, INS, EFE, AIFF: ftp.reed.edu in /eps
- oak.oakland.edu in /pub2/eps
- TXW: ftp-ls7.informatik.uni-dortmund.de in /pub/tx16w
- SDK: lotus.UWaterloo.ca in /pub/sgroup
- SDS, SDX: alf.uib.no in /pub/sds
- sweaty.palm.cri.nz in sds
- PAT: archive.epas.utoronto.ca in /pub/pc/ultrasound
- wuarchive.wustl.edu in /systems/ibmpc/ultrasound
- KRZ: ftp.uwp.edu in /pub/music/lists/kurzweil
- cs.utk.edu in /pub/martin/K2000
- bach.nevada.edu in /pub/K2000
- SBK: moon.earthlink.net in /pub/software/AWE32
-
- You will find a larger list on ftp.cs.ruu.nl in the file
- /pub/MIDI/DOC/archives.
-
- HAPPY CONVERSION!!!!!
-
- -------------------------------------------------------------------------------
- CONVERT: FREQUENTLY ASKED QUESTIONS
- -------------------------------------------------------------------------------
-
- INDEX
-
- Clicks in loops {Convert 462}
- Loop points in WAV files {Convert 480}
- Avoiding Bidirectional to Forward Conversion {Convert 489}
- Avoiding Stereo to SBK Conversion {Convert 500}
- Working with DrumKits {Convert 509}
- Error loading instruments into Scream Tracker 3 and others {Convert 520}
- Using the -g switch {Convert 532}
-
- ···············································································
- Q. I have converted some files with loops, but they contain clicks. Why?
-
- A. This may have several causes.
-
- The first and often the most important cause is the bad loop points
- chosen in the original file.
-
- The second reason is that several formats (e.g. PAT and INS) use a
- loopfraction to achieve optimal tuning of the loop points; here, loop
- points are not located in a sample, they are located between samples
- (1/3, 1/5 of sample...). Since these wavesamples never have exact loop
- points, the conversion process will create a light click. Convert tries
- to aproximate the wavesample loop points to the closest sample.
-
- Another reason can be that several formats (e.g. SMP) contain multiple loop
- points, and Convert uses the first one. This point may not be the best.
-
- ···············································································
- Q. How can I use loop points in WAV files with Convert?
-
- A. Convert stores loop points in WAV files as CUE points. You can manipulate
- loop points with programs which let you work with CUE points (standard WAV
- specification). Cool Edit (select the "Loop Range" CUE point) and
- GoldWave (select the "Loop Start" and "Loop End" CUE points) are such
- programs.
-
- ···············································································
- Q. I understand the Bidirectional to Forward Looping conversion but I want to
- convert my bidirectionally looped wavesample without looping, how can I do
- that?
-
- A. Convert carries over bidirectionally looped wavesamples to formats which
- only have forward loops by increasing the wavesample size. This might be
- undesirable. You can then use the "-b" switch, which maintains the original
- wavesample size and loop points, but loses the perfect loop, in order to
- change to forward.
-
- ···············································································
- Q. I understand the Stereo to SBK conversion but I want to convert my stereo
- wavesample to SBK in mono, how can I do that?
-
- A. Convert uses multilayering to work with stereo wavesamples. This is done
- using the left channel and the right channel as two layers with different
- panning positions (0 and 127). This can be avoided by specifying the "-1"
- switch (the standard force mono switch).
-
- ···············································································
- Q. How can I separate drum sounds from Drum Kits?
-
- A. Often, a Drum Kit is an instrument with many waveforms (generally
- percussion), each one assigned to one MIDI key. Convert treats Drum Kits as
- standard instruments, that is, when you convert to a format with instrument
- capabilites, it maintains the same structure. To extract individual
- waveforms, you can first convert to a format without instrument
- capabilities, such as WAV, and later convert each waveform to an instrument
- (Convert *.WAV -SBK).
-
- ···············································································
- Q. I have several good stereo 16 bit instruments, but once converted by
- Convert to S3I format, Scream Tracker 3 sounds bad. Why?
-
- A. Although the S3I format has been designed for supporting stereo 16 bit
- samples, Scream Tracker 3 only works with 8 bit samples. Convert supports
- S3I at 16 bits/stereo in view of future versions of Scream Tracker, but in
- order to use samples in Scream Tracker version 3, you must to add the
- "-8 -1" switches at the command line to force 8 bit mono samples. Other
- tracker formats have similar problems, in each case you must use the "-8"
- and/or "-1" switches to fix this.
-
- ···············································································
- Q. What does the -g switch mean?
-
- A. The Gravis Ultrasound Drivers are designed to actually use only the portion
- of the sample defined until the loopend point, that is, when you loop a
- wave, the sustain and the release parts use the loop range to maintain or
- fade out the sound. There are PAT files around the Internet (for example
- ProPATs) which have some click or some kind of noise in the last part of
- the wavesample (between the loopend and the end of the wave) not audible
- with the GUS. The "-g" switch (means Gravis correct) forces Convert to save
- only up to the loopend point of a PAT file, avoiding this noise at the end
- of the wavesample. Use it if you find some kind of noise at the end of a
- PAT file.