Editor 2.20 ----------- by Grekim Jennings Editor is a text-based wavefile building program. The user specifies filenames, in, out, and destination points in a plain text file. When the program is run, all edits are built into a new destination file in an amount of time not unlike what many DAW's take just to draw the waveform. Rather than performing one edit at a time, you can list up to 512 edits or source files in one control file. The program is run from the command terminal and a basic text editor is needed. There are no dependencies other than the C libraries. There is no built-in audio playback or visual of the waveforms. Commands: --------- Note: commands must start on a new line and tabs must be placed between the command and the entry that follows. The commands must be in a plain text file with the name task.txt or you may enter a different control file name as the command line argument. src is followed by the name of a source wavefile xin is followed by the copy start point in the source file (in seconds) xout is followed by the copy stop point in the source file (in seconds) ins is followed by the insert point in the destination file (in seconds) trim is followed by the time from the end of the source file to be removed or it will alter the xout point if xout is specfied (in seconds) lvl is followed by the volume level for the edit (in dB) dest is followed by a name for a destination file Using Sample Mode: ------------------ By default the editor uses seconds. But, you can use sample values if you add "using_samples" to the first line of the task.txt file. Operation Specifics: -------------------- 1. There can only be one destination file which has to be specified just once in the control file. 2. The source files must be .wav files of the same samplerate, bit depth (16 or 24), and channel number (1 or 2). 3. The destination file will be built on the same samplerate, bit depth, and channels as the source files. 4. The xin, xout, ins, trim and lvl commands must be listed below the filename they refer to. 5. Unless you are appending one edit to another (see below), each new edit in the list will overwrite any overhanging audio data from a previous edit in the list, but it will not overwrite data that is already in the destination file from a previous edit which is beyond the range of the new edit. Note that the order in which edits are applied is soley based on their insert point with earliest insert points written first. 6. When appending, the order you place the file to be appended in your list DOES matter, such that it will follow the placement of the previous edit that has an actual insert value. 7. Important: Be sure to check what your destination file name is because it will be completely overwritten! 8. In version 2.20 you do not need to specify all parameters. If the commands are not used, then the the following default values will be used: 'xin' will be 0, the start of the source file 'xout' will be the end of the source file 'ins' will be at the end of the last edit. This is the append function. 'trim' will be 0. 'lvl' will be 0 dB, no level change. Note: Entering xin or another command initiates the command and a value is expected to follow. To get the default values, omit typing the command name all together. Trim Function: -------------- Beginning in version 2.20, the trim command can be used to modify the xout point. If the xout point is not specified it will calculate from the end of the file. For example, a 60 second source file with a trim set to -3, will get be used from the xin point to 57 seconds. Automatic Edit Ordering: ------------------------ The edits can be placed out of order in the controlling text file. The program will sort them based on insert location. If you wish to append a previous edit in the list, follow the ins command with app instead of a time value, or omit the ins command for that edit. Crossfades: ----------- Version 2.0 of Editor introduced crossfades. Crossfades allow for a smooth transition from one segment to the next, without clicks in the audio from unmatched waveforms. Crossfades are not automatic and must be specified with the 'xf' command. This is placed anywhere in the edit such as before or after the 'ins' command. You then specify the width of the crossfade and then the type of crossfade, with 'xf' and values tab separated. A crossfade of width 1000 is a 1 second crossfade, with 500 msec on either side of the splice point. The fade will begin 500 msec before the splice point (the insert position) and continue for 500 msec after the splice. Note that this requires both files involved in the splice to have data available for the crossfade space before (and after) the splice. Therefore, you cannot crossfade a file if its "xin point" is time zero or too close to the beginning of the file that there is not enough data to work with. The fades are currently of 4 types: Type 1 achieves a exact 50/50 mix of both files at the splice point with an overall increase in gain to achieve an equal power effect. It is best used on non-correlated material, such as you would find in a mix file. Type 2 also achieves a 50/50 mix at the splice point, but without power compensation. It has a linear slope with respect to "voltage". Type 3 begins with a slow fade of the file to the left of the splice and then fades more quickly with time. Type 4 begins with a fast fade of the file to the left of the splice and then fades more slowly with time. An example of a 200 millisecond crossfade of type 1: xf 200 1 EXAMPLES: --------- Example 1: Make a file called build1.wav from 3 source files. The files will be added to the build file one after the other. The build file length will be the sum of the source tracks. src track1.wav src track2.wav src track3.wav dest build1.wav Example 2: Make a file called build1.wav from selected parts of two source files. Build file length will be 10 seconds from the first file plus 5 seconds from the second file. src track1.wav xin 10 xout 20 src track2.wav xin 5 xout 10 dest build2.wav Example 3: Make a new file from the source file, but remove 3 seconds from the end. src track1.wav trim -3 dest build3.wav Example 4: Make a new file from the source file at a volume 2.4 dB lower. src track1.wav lvl -2.4 dest build4.wav Example 5: Create a new file that begins with 10 seconds of silence. At the insert point, the source file will start from its original time 0. src track1.wav ins 10 dest build5.wav Example 6: Create a new file with 10 seconds of silence, but is in sync with the original source file. Note that xin and ins values are the same. src track1.wav xin 10 ins 10 dest build6.wav Example 7: Build a composite file in sync with two take files. Note that the xin values and ins values are the same. src take1.wav xin 30 xout 50 ins 30 src take2.wav xin 50 xout 70 ins 50 dest build7.wav Example 8: In this example, file2.wav will be added to the build file first even though it appears second in the list because of the earlier insert time. src file1.wav ins 90 src file2.wav ins 30 dest build8.wav Example 9: Think of the build file as a canvas. File 1 will span from 0 to 60 seconds. Then file 2 will be inserted from 20 to 30 seconds. At the 30 second mark, file 1 will resume. src file1.wav xin 0 xout 60 ins 0 src file2.wav xin 0 xout 10 ins 20 dest build9.wav Example 10: Create a 1000 millisecond crossfade of type 1 between two edits. Note: We need at least 0.5 second (500 msec) from track2 to be used in the crossfade. In addition track1.wav should be at least 30.5 seconds for the other half of the crossfade. src track1.wav xin 0 xout 30 ins 0 src track2.wav xin 0.5 xout 60 ins 30 xf 1000 1 dest build10.wav