Return to Main Index for the CDP System.
This is a Release 3 Update 4 program which is being retained in Release 4 for the sake of continuity. Although its functions are more than adequately included and extended in the Release 4 program set, it's a great program which I've always found to be very powerful and useful existing users may be familiar with the way it works and like it to remain available. (Ed.)
| Usage | Mix Sources | Marker Speed | Segment Length | Spatial Distribution |
| Amplitude Variation | Splice Length | Search Range | Pitch Variation | Conclusion |
In all cases where the parameter may be a breakpoint (breakpoint) file, the name of this file is placed immediately after the flag, e.g., -udurfile. In the breakpoint file, each pair or triple set of values is placed on a separate line. The values themselves are, as usual, separated by spaces or tabs. Note that times in the function files relate to the infile(s) and that the shortest soundfile in the list determines the maximum duration over which processing will take place. As usual, brackets in the usage indicate options which may be omitted in the command line. However, the brackets themselves are not used when the option is placed in the command line. See A Sausage Tutorial.
infilelist textfile list of source soundfiles (Mono or Stereo, all at the SAME SAMPLE RATE);
+weighting (optional) an integer following the filename after a space (the '+' is not used): e.g., filename 2. There may be only one soundfile in the list.
outfile output soundfile name
speed scanning pointer: 1.0 (no change); > 1 (reads later in the infile: its movement is faster than the file read, output is shorter); < 1 (reads earlier in the infile: its movement is slower than the file read, output is longer)
-udur single float value or time duration breakpoint file; length of segments to be cut, expressed in seconds. This parameter is now optional; it defaults to 0.05 sec.
-vmaxdur single float value or time duration breakpoint file; introduces random lengths between dur and maxdur
-c use this option for cyclical sequence of source files. Default: source soundfiles are chosen in random order, but with the specified weighting.
-Mmove | -mmove with M, move is a textfile list of position values, one per line; with -mmove, move is a time position breakpoint file; position values: 0 (L) <> 1 (R); -M or -m on its own creates a random spatial placement (stereo input soundfiles will not be spatialised).
-nmovelim movelim is a time Left_limit Right_limit breakpoint file triple; NB need a -M or -m option in the command line as well.
-aamprange -a used on its own gives random amplitude variation over the full amplitude range; the optional file for amprange (over which this scattering occurs) is a time minamp maxamp breakpoint file triple with amplitude values between 1.0 (max) and >0.0 (min)
-esplice splice is the length of the splice window expressed in seconds (note this!). E.g., for a 20ms splice, enter 0.020. (Default, if not set, is 15 ms). Splice may be a single value or a time splice breakpoint file.
-rrange range is a single float value or a time range breakpoint file; range is the time-range before 'now' in the input file from within which the current segment is selected. (Default = 0).
-ppshift single float value or time value breakpoint file; value is transposition ratio; OR
-Ppshift pshift is a textfile with list of float values (separated by spaces); the transpositions will cycle around this list
-zarraysize single integer value: size of breakpoint table (Default: 100 pairs)
Return to Contents Buttons at top of
this file
SAUSAGE will operate on one or several source files (Mono or Stereo, SAME SAMPLE RATE). The mixing together of segments from several different soundfiles is potentially a very powerful tool in the creation of sound collages.
To use several sources, list these in a text file, and flag the filename with infilelist where infilelist is the name of your file containing your list of one or more soundfiles to be used. Remember that the splice window parameter can help to control the sharpness or smoothness with which the segments are joined.
With several sources, the 'marker' moves through all the source files
simultaneously and selects which source file to use for a particular
segment in any of the following ways:
SUMMARY:
infilelst a textfile listing source-filenames, with or without weightings (leave a space).
-c option to have a cyclical sequence of infiles (cycles around the list). If the parameter is not specified, the program defaults to a sequence randomly selected from the list (all source files are used).
Return to Contents Buttons at top of
this file
You may imagine a marker moving through the original file, selecting segments to cut at appropriate moments. Let us imagine the simplest case, in which all the segments are of the same length, 1 second. If this marker moves at speed '1', then it 'keeps up with' the original file, so that at time 2 seconds in the new file it selects a segment from time 2 seconds in the source file.
If the speed is > 1, then the marker is moving faster than the source and a segment for the 2 second slot in the new file will use a segment from later in the source file: because the marker is moving faster than the source, more of the source will have been scanned when the marker reaches its 2 second point. The marker will therefore reach the end of the source in a time shorter than the duration of the source, causing the resulting soundfile to be shorter than the original.
If the speed is < 1, the marker is moving slower than the source and a segment for the 2 second slot in the new file will use a segment from earlier in the source file: the marker is moving slower than the source, so less of the source will have been scanned by the time the marker reaches its 2 second point. The output file (relating as it does to the movement of the marker) will therefore be longer than the source.
If the segments are sufficiently short, SAUSAGE acts like a 'harmoniser', whereas, if the segments are longer, SAUSAGE forms a montage of the source file, as with BRASSAGE.
Speed may also be altered in a time-varying way. In this case, create a breakpoint file of time speed pairs, and use the name of your file as the parameter to -s instead of a numerical value.
SUMMARY:
speed a single floating point value OR a breakpoint file in the form time speed. Filenames MUST NOT begin with a digit; speed is the speed of scanning the source file. (The range parameter also affects the results described below). Examples:
1.0 the 'scanning pointer' will move at the same speed as the soundfile is read. Thus the scanning pointer will be located exactly at the end of the segment cut and the next segment will begin where the last one ended: ie no change!use of breakpoint file again, this is a very important option because it allows the speed of scanning to be changed at specified time points in the file, for example, getting gradually faster or slower.
> 1 the 'scanning pointer' will move faster than the soundfile is being read, with the result that the new file created will be shorter than the source file.
< 1 the 'scanning pointer' will move slower than the soundfile is being read, with the result that the new file created will be longer than the source file, meaning that some of the same data will be used more than once.
Return to Contents Buttons at top of
this file
The length of segments cut from the sourcefile:
Return to Contents Buttons at top of
this file
SAUSAGE will create a stereo output file with spatial movement of the sound-stream, if the appropriate parameters are specified. Spatial position is specified between 0 (Left) and 1 (Right). To do this, one of these three options must be present in the command line.
The spatial positioning may be:
There is another option which may be used to fine-tune the motion:
Return to Contents Buttons at top of
this file
The amplitude of segments may be varied between 1.0 (max) and (>) 0.0
(min), as follows:
Return to Contents Buttons at top of
this file
The length of splices joining segments may be specified, in seconds. The default value is 15ms (entered as 0.015). Shorter values will give harder-edged splices, and longer values will give smoother transitions between the segments. The splice length may be specified as an absolute value (e.g., -e0.040 for a 40ms splice), or as a time-varying value, by creating a breakpoint file of time splice_length pairs, and giving the breakpoint filename as the parameter to -esplice where splice is the breakpoint filename.
The use of the breakpoint option can lead to very interesting and effective results. The value is the splice window length, and changing this over time, e.g., from a short to a very long splice window, will result in significant aural changes. For example, if the splice window is changed gradually from a short to a rather long window, the sound will become gradually smoother and fused because the mixing action which takes place in the splice window as the segments overlap gradually includes more and more of the given segments.
Return to Contents Buttons at top of
this file
In this case, the marker moves as normally, but when a segment start-point is chosen, it is selected at random from a time range prior to the current marker position. The range may be given as an absolute value, or as the name of a breakpoint file containing the pairs of values for time-in-source-file range-in-source-file. (NB to force use of all of the existing file before 'now', make the range very large.)
-rrange range is a single float value or a time_in_source_file range_in_source_file breakpoint file. The default is 0.0, leaving the positioning of the scanning pointer unaffected. As the range is increased, more of the source sound is used. If increased gradually in the breakpoint file, more and more of the source sound(s) will be heard: the segments will get longer.
Return to Contents Buttons at top of
this file
The segments may be pitch-shifted by some factor, specified as a ratio of frequencies. This means that the value provided by the user is a ratio, i.e., a multiple. 1 = no change, 2 = twice as high = one octave higher, 0.5 = half as high = one octave lower. To find the precise value required for a specific transposition, especially if microtonal, use the program UNITS. The Default is no shift (1.0). Values <= 0.0 are not valid.
Pitch variations may be created as follows:
SUMMARY:
Return to Contents Buttons at top of
this file
We are familiar with brassage-like action from the use of a searchfield in LOOP. SAUSAGE extends the fine-tuning with which this can be done, is able to work on several files at once and to spatialise the resulting soundfile at the same time. SAUSAGE processes a file by chopping it up into (possibly overlapping) segments and mixing these segments back together into a new file. SAUSAGE is, however, a very flexible program, and the various possibilities are indicated above as headings for the various groups of parameters.
Note in particular that almost all parameters may be caused to vary
through time. For a parameter with a fixed value, just enter a numeric
value. For varying values, depending on the parameter in question, you
must create one of the following files:
(1) a breakpoint file with time value pairsand then give the name of the file as a parameter, instead of a single numeric value. (NB - Don't begin filenames with numbers!!).
(2) a breakpoint file with time value1 value2 triples
(3) a file with a list of values
Let's think about the fine-tuning. DUR is the length of the segment cut, and SPEED is another way of achieving a loopstep (determining where the next segment will begin). The addition of the MAXDUR value provides two values which serve as limits within which durations will be chosen at random. Thus the resulting montage will have segments of varying lengths; the 'delay line' effect caused by regularly spaced steps will be minimised and the montage will fuse into a more natural flow.
The ability to extract segments from several soundfiles means that the range of sonic variety in the mix can be extended, controlled by the selection of soundfiles.
The MOVE options add panning effects, and amplitude scatter means that the amplitude will vary flexibly, the range of amplitude possibly changing during different 'time zones' of the resulting soundfile.
Finally, transposition features can also be defined, whether as cyclically or continously changing values.
Fully exploring all these possibilities with different types of source material will undoubtedly be endlessly fascinating and has great potential to provide sonic passages of great variety and subtlety.
See A Sausage Tutorial by Archer Endrich and the programs BRASSAGE (Release 3 Update 4 version in the 'extras' programs set), as well as MODIFY BRASSAGE and its graphic version GrainMill in Release 4, and MODIFY SAUSAGE, which, in Release 4, is derived from MODIFY BRASSAGE.
As an overview of these immensely powerful tools, I would suggest that:
Return to Contents Buttons at top of
this file
Return to Main Index for the CDP System.
Converted to HTML 26 July 2001
Last Updated: 22 February 2000