Snippit Synth

Licence and limited warranty
Snippit Synth may be freely distributed on FTP and Web sites, cover CD-ROMs and disks, so long as all the files pertaining to the program remain unaltered and present in the archive, and no charge is made for the software. Although Snippit Synth has been thoroughly tested, neither its author, or Electronic Cow will be held accountable for any loss, consequential or otherwise, incurred during the use and/or misuse of the software. This program is freeware. Consequently, there is limited technical support (via the Cow-net Web site at www.cow-net.co.uk), no upgrades, and no promise of new versions is implied.

Contents


Toolbar
Snippit Synth’s user interface is divided into three distinct sections: the sample window, the synthesis control panels, and across the top of the window, the toolbar. It is here that all of the program’s main functions are accessed.

Open
[control]+[o]
To load a Snippit patch from disk, press the load button. All previous versions of the Snippit Synth file format are supported in version 1.4, although due to changes in the user waveform calculations, and improvements in the synthesis engine, some sounds may vary ever so slightly. You can often compensate for this by adjusting a couple of parameters once the sound is loaded.

Save
[control]+[s]
All your Snippit patches can be stored as special files on disk for later retrieval. As of version 1.4, all of the Options settings, including the sampling rate, are stored in the patch file, so you can carry on editing exactly where you left off. If the sound uses a wavetable in any of its chunks, this too is saved alongside the sound’s settings, and so the file will be considerably larger than normal.
Sounds may also be saved as samples, so that you can use them in other programs such as direct-to-disk recorders, tracker programs, editors such as Squash it!, and sequencers like Breakthru 2. Snippit Synth supports eight or 16-bit export, in AVR, AIFF, or SPL (a sample with no header information) formats. Press [control]+[e] or choose ‘Export sample...’ from the File menu (you must have a sample in memory else nothing will happen!), and the ‘Save data as...’ dialogue will appear. From here it is possible to choose the file format, or optionally save the sound as a patch file. If you want an eight-bit sample, ensure that the ‘8-bit’ button is highlighted, else it will be saved in 16-bit format. Press Cancel to quit without saving.

New
[control]+[n]
To reset Snippit Synth to its default sound status, press the New button. This function also clears all the sample memory.

MIDI sample transfer
[control]+[m]
As well as saving sounds as samples to disk, Snippit Synth will also you to send them, via MIDI, to an external sampler. Currently, Snippit Synth’s MIDI sample dump has drivers for the Akai S900/S950/X7000/S700, and the MIDI Sample Dump Standard (the latter encompasses all new samplers, and keyboard workstations, such as the Kurzweil K2000, Yamaha SY99, and Korg T-series).
Before sending a sample, you must first ensure that you have connected your sampler to the Atari (MIDI out to MIDI in on the sampler, and vice versa). A closed loop system (where both inputs and outputs are connected) isn’t essential, but it may help if you are having trouble receiving a sample properly. Next, in the Sample Dump dialogue box, set the MIDI channel to send on, and the sample number to send to. The latter setting is very important, since you might not want to over-write a sound in that location in the sampler’s memory. Finally, choose the driver best suited to your sampler, and press the send button.
Whilst the sample is being sent, Snippit Synth draws a progress bar, and reports the number of sample packets transferred. During this time, you may abort the sample dumping by pressing the [escape] key.

Calculate sound
[control]+[c]
By pressing the calculator button, you are telling Snippit Synth that your sound is ready to be rendered. Once Snippit has started to create your sound, a progress bar will appear, to let you know how long it will take. It doesn’t usually take too long to render a sound, unless of course, it is very complex. But at any time, you may press the [escape] key to abort the process. In the event that there is insufficient memory available for the sample, Snippit Synth will report an out of memory error soon after starting. More memory can be made available by running the Atari with less desktop accessories and TSR programs (like NVDI), but if there really isn’t any more RAM, then you’ll have to make your sound a bit smaller.

Sample draw
[control]+[d]
Most of Snippit Synth’s main window is taken up with a huge window. This displays the sample currently held in memory as a graphic waveform, and can be very useful for visualising how grains are dispersed by the different patterns. There are four different drawing modes (none of them are any quicker to redraw, it’s just a case of which one suits you better), and the Pencil button toggles between them.

Play
[p] or [shift]+[p]
When a sample has been successfully rendered, you can then audition it by pressing the play button, to hear if you need to adjust any parameters. Snippit Synth will play back the sample at whatever sampling frequency is chosen (or the nearest available for the hardware), and you can even choose a different rate to ‘pitch’ up or down the sound (see Sample Rate section below).

Chunk Select
[alternate]+[1]...[4]
Buttons A, B, C, and D correspond to the four sound ‘chunks’ in a Snippit Synth patch. By selecting a button, you make that chunk available for editing; all of the on-screen synthesis controls underneath the toolbar automatically update to display the settings for the selected chunk.

Chunk Copy
[control]+[x]
Getting chunks to mix well, particularly when cross-fading them, is quite an art. This is because different size chunks often produce different pitches, and having to go through all the parameters matching their settings can be very cumbersome. Instead of having to endure this labour, Snippit Synth allows you to copy the settings from one chunk to another. When you press the Copy button a dialogue box will appear, asking which chunk, if any, you would like to copy the current one to. You may choose any of the other three (the currently selected chunk is disabled, so you can’t copy it onto itself!), or abort the operation. After copying, Snippit Synth will switch to the destination, so you can edit the newly copied chunk.

Back to top

Synthesis Parameters
Snippit Synth’s synthesis architecture isn’t at all new. Granular synthesis has been around for more than fifty years, and was conceived by Denis Gabor as an alternative to Fourier’s ‘all sounds are made of sine waves’ theorem. Instead, granular synthesis works on the notion that, like a dot matrix print-out, composite sounds are made from lots of tiny little dots, scattered around the three axes of sound: amplitude, time, and frequency. Since it would take a very long time indeed to set three properties for each dot, or sound grain, Snippit Synth uses a set of pre-defined patterns, giving you a much higher level of control, much like programming in a basic language versus programming in assembler code...
Snippit Synth’s synthesis controls can be grouped into two types: radio buttons (where one button is selected from a group), or numeric fields. The latter controls can be edited using the up and down arrows next to them, or by clicking directly upon the text with the left (down) or right (up) mouse buttons. By simultaneously holding down [shift], [shift]+[control], or [shift]+[control]+[alternate], the value can be changed in steps of 10, 100, and 1,000.

DCO
The first panel is where the grain’s timbral characteristics are set. Snippit Synth has five different waveforms to choose from: sine, square, sawtooth, triangle, and custom. The latter allows you to load in any AVR, AIFF or raw sample data to use as a complex wavetable (by pressing [alternate]+[l]), and can produce some very odd effects. Once imported, a sample is automatically optimised, and tidied using amplitude attack and decay curves on its start and end. By doing this, Snippit Synth ensures that as few clicks, caused by sudden changes in amplitude, occur as possible. These samples can then be saved as User waveforms using a selection in the File menu (or by pressing [alternate]+[s]), and re-used on other sounds later on. To load an existing User wavetable, press [control]+[w], or choose the option from the File menu.
Up to five hundred grains can be placed in one chunk, and the greater the number, so the likelihood of them overlapping and modulating each other increases. Other by-products of increased granular density include more harmonics, a pitch increase, and greater amplitude. Snippit Synth will never distort a sound, since all of the sounds are rendered in thirty-two bits, so you can pile on as many grains as you like!

Time displacement
This section controls the length in sample points of the chunk, up to a maximum of 100,000 samples. It is worth noting that, depending on the sampling frequency, this will equate to a different length in seconds. For example, at 25KHz, the maximum length is four seconds; at 50KHz it is only two seconds. The buttons at the bottom of the panel describe how the grains are to be placed in the chunk, in order: randomly, with an attraction to the sample’s start, attraction to the end, or uniform. The latter is more commonly used, though the other three are very useful for effects and percussive sounds.
By reducing the size of a chunk, you effectively increase the granular density, since now there are more grains per sample. To explain: imagine a field full of cows, a field in which the farmer decides that, in half of it he will plant some crops. The cows then only have half as much space, and so the herd density is much greater (everyone’s packed more tightly together!), even though there are still the same number of cows. Equally, by increasing the chunk size, so the grains will have more space between them.

Frequency dispersion
Changing the granular density is one way of affecting the overall pitch, but altering the actual frequency of the grains themselves is far more direct. As with all of the synthesis controls, the frequency affects all grains in the chunk, but this doesn’t mean that they all have to be the same pitch. Rather, as well as having a setting for the fundamental frequency (with snap to note A and C buttons for quick reference), the frequency panel also has a dispersion value. When this is set to a value greater than zero, Snippit Synth will alter certain grains’ frequencies from the fundamental by as much as the dispersion value set. How it does this is dependent on the shape buttons on the bottom of the panel. In order: randomly, swept down, swept up, mid-peak, and end-peak. Also, the fundamental frequency can be deviated from in either direction, and a set of polarity buttons sets this. You can even make it disperse either side of the fundamental by selecting the plus and minus button.
This may all sound very complicated, but an example should clarify things: if a sound’s fundamental frequency is 1,000Hz, and its dispersion value is 100Hz, then setting the shape to sweep upwards, and the polarity to minus would have the following effect. Grains at the sample’s start would be mostly 1,000Hz, and as the sound continues, so they would become progressively lower in frequency until, at the end, the grains are all 900Hz.

Amplitude properties
Now you understand the idea of Snippit Synth’s grain dispersion patterns, the amplitude properties panel should be perfectly clear (if not, just experiment a bit, and it soon will be!). Instead of a fundamental frequency, you have a relative amplitude setting (from 0 - 100%). At the maximum setting, all the grains will vehemently follow the shape and polarity parameters set in the amplitude panel, so you can create envelope shapes such as fades. At 0%, all of the grains will have a uniform amplitude, though this doesn’t necessarily mean that the entire sound will have a constant volume (this can depend on whether grains overlap, and if frequency dispersion is used)! Various settings in-between the two extremities will produce more subtle amplitude fades and shapes.

Multiple chunk mixing
A Snippit Synth patch can comprise up to four separate pieces, or chunks. In a way, these are just like oscillators in a synthesizer, except of course, each chunk is actually a whole sound in itself! The idea behind multiple chunks is to allow you to form more complex sounds by overlaying, modulating, or cross-fading (just like a wave sequencer!).
The final synthesis panel has four switches, labelled A, B, C, and D, and these correspond to the four available chunks. Any number of chunks can be used in a sound, although they must be sequential. For example, A and B, A, B, and C, are all valid, but not A and C, or B, C, and D. By enabling chunk D, Snippit Synth will automatically enable chunks A, B, and C. Likewise, if you switch off chunk A, chunks B, C, and D will also be disabled.
Underneath the switches are four mode buttons, and these are used to determine how multiple chunks are mixed. If you have only one chunk active, you needn’t worry about setting these buttons. In order they are: sequential/cross-fading, ring modulate, amplitude modulate, and mix. The first mode has an additional control below for setting the length of the fade, from 5% to 50% of the chunk.

Back to top

Additional features
Sample Rate
[control]+[1]...[6]
The sampling rate determines the frequency at which sounds are rendered, and so has a direct bearing on the outcome of any synthesized sound. There are five preset sampling frequencies to choose from: 12, 16, 25, 33, and 50KHz, and one user-definable, set in the Options menu. You may change the frequency after rendering a sound, and replay it. Depending on the original frequency selected, and the new one, the sound will either be shorter and pitched higher, or lower and longer. When the sample is exported, it will use the currently selected frequency, so it can be useful for pitching effects.

Options
[alternate]+[o]
Various settings pertaining to the operation of Snippit Synth can be set in the Options dialogue. These include changing the waveform colour (obviously, this only has affects colour systems), and check boxes for enabling the progress bar, and various post-synthesis processing effects (explained below). You can also change User-defined sampling rate here. To alter the value, click upon the text box with the left or right mouse button to decrease or increase the frequency. By simultaneously holding down [shift], [shift]+[control], or [shift]+[control]+[alternate], the value can be changed in steps of 10, 100, and 1,000 Hertz.

Once a sound has been rendered there are a number of post-synthesis effects that can be applied to it, including some to ‘tidy up’ the sample ready for export. Some of these can be automatically called each time a new sound is rendered, by checking the appropriate button in the Options dialogue; others can be chosen from the Effect menu. You may apply these effects to a sample in any order, and as many times as you like...

Optimise
[control]+[v]
This process increases the amplitude peak to around 100% of the maximum allowable threshold of a 16-bit sample (96dB), thus giving your sound a better signal-to-noise ratio.

Crop
[alternate]+[x]
Whilst Snippit Synth usually fills up all of the allotted space with grains, some sounds, particularly those with granular attraction to sample start or end, do tend to have blank spaces. Auto-crop is designed as a post-processor, to ready your newly created sound for exporting as a sample or sending to an external sampler via MIDI, removing any ‘dead space’ before and after the sound, saving you the bother of editing it later.

De-clicker
[alternate]+[d]
The De-clicker option is designed to ‘soften’ dramatic transitions in the amplitude domain (those around 36dB), working a little like a passive low-pass filter. It won't remove clicks entirely (else all of your square waves would sound very dull), but will make sounds created with the user waveforms a bit tidier.

Chorus
[alternate]+[c]
Chorus allows you to ‘thicken’ a sound, thus creating some really fat analogue-style pad sounds. Although it has no parameters to set, by re-applying Chorus to a sample, it is possible to gradually detune the sample to the point where the ‘chorused’ part is as loud as the original.

Resonant filter
[control]+[r]
The resonant filter is actually an FIR Comb filter with very tight bands. In addition, it is pre-programmed with an envelope shape for a really dynamic sweeping effect. A side effect of using this processor, is the volume of the waveform tends to be quite low afterwards. Use Optimise to return it to normal.

Back to top