Soundplant 39
User Guide


Soundplant home page: http://www.soundplant.org

Introduction & Features

Minimum System Requirements

Usage Instructions

--Quick Start

--Onscreen Keyboard

--Key Configuration Panel

--Detailed Channels Meter

--Global Function Toolbar

--Preferences

--Other Usage Miscellany

Contact

Usage Hints

Manually Editing .keymap Files

Known Quirks and Other Issues

About / History

Invest in the Development of Soundplant & Support the Author by Registering

Soundplant Customization & Feature Sponsorship

Planned for Future Versions

Credits







Introduction & Features

Soundplant is a self-contained digital audio performance program that turns your computer keyboard (yes, your QWERTY keyboard!) into a versatile, low latency sample-triggering device. It allows the assignment of sound files of unlimited size and any format onto virtually all keyboard keys, with no external devices needed and no MIDI involved. It can be used as a performance, presentation, or installation tool, as a drum pad, to mix together tracks in realtime, as an educational aid, to trigger sound effects or background tracks during a show, to create music or loops from scratch, to quickly sketch sound designs, or to give new life to old sounds. Because it is not a synthesizer and instead uses your own digital samples - it's a 'software sampler' - Soundplant is an infinitely flexible electronic instrument limited only by the variety of sounds that you feed it. An elegantly simple graphic interface provides for drag-and-drop, point-and-click configuration of each key, including several options which control the way each sound is triggered, along with pitch, offsets, looping, volume, fading, and panning; keyboard configurations can be saved and loaded; every sound that plays is visually displayed with a progress bar and track time; and you can turn on 'background key detection' mode to trigger Soundplant sounds even while using other software.

Soundplant was designed to do one thing and do it well: to trigger sounds from the computer keyboard with maximum speed, efficiency, and ease of use. Users love its rock-solid stability for live event use, its simple one sound per one key metaphor which eliminates the usage complications of many other software samplers, and its ultra-optimized use of the computer keyboard with lowest-possible latency requiring no extra hardware. Soundplant is not an audio editor, an effects processor, or a sequencer, but it is way more than a media player. Here is a list of features:

  • 72 keyboard keys can be used to trigger sounds, all with very low latency
  • drag and drop sound files on to keyboard keys for quick and easy key assignment
  • *new* plays virtually all sound file formats including .wav, .aif, .mp3, .mp4, .m4a, .flac, .wma, .alac, .wv, .ogg, even audio from video files like .wmv, .mov, .avi, .divx, .mpg, .flv, and .3gp, and many many more; free-for-non-commercial-use version is limited after 25 launches to loading only 16- and 8-bit .wav and .aif uncompressed files
  • *new* 'background key detection' mode allows Soundplant to continue receiving key input while minimized or hidden; trigger sounds even while working in other programs
  • *new* intuitive visual interface displays detailed configuration and playback progress info for all sounds in 'detailed view', or switch to 'simple view' for a smaller display of only essential info
  • *new* waveform display for every sound
  • samples can be loaded to RAM for virtually instant cueing, or played from disk, allowing for minimal RAM usage and unlimited sound length; RAM management can be controlled by the user
  • *new* in addition to keyboard key triggering, Soundplant can also play sounds via mouse click, like a 'virtual cart machine'
  • pitch adjust allows micro-tuning to the 100th of a semitone and a 10 octave range; easily batch assign the same sound to multiple keys at varying pitches
  • auto-'splice' pieces of a sound across multiple keys (for example, easily extract individual drum sounds from a drum loop); precise sound start and end offset control to the 100,000th of a second
  • *new* support for wav file cue points; easily set offsets to cue points defined in any audio editor
  • memory-efficiently copy key configurations onto other keys using the same sample
  • realtime volume, panning, and pitch control for each key, all non-destructive
  • *new* randomization settings for varying the playback of sounds
  • no external hardware needed
  • customizable sound triggering, allowing for looping, sustains, restarts, muting, pausing, and *new* fading
  • onscreen keyboard keys are highlighted and animated as they play and can be color-coded to create visual metaphors;
  • a true performance program in which sounds can be played and triggered even while configuring or loading new sounds, and multiple instances of the program can be opened simultaneously
  • capable of playing 8 stereo or mono samples simultaneously (i.e., 8 * (L+R) = 16 channel polyphony)
  • saves and loads keyboard configurations as .keymap files
  • *new* works virtually identically on Windows or Mac; .keymap files can be easily transferred between different computers and posted for others to download
  • efficient and lightweight, runs well even on older computers and includes several options for minimizing CPU and RAM usage; Soundplant can give new life to that slow, dusty old laptop you thought you'd never use again






Minimum System Requirements

Soundplant is not very demanding. It requires an 800MHz or better processor, 256MB or more of RAM, and of course, a sound card (your built-in cheapo soundcard will work fine, and so will any add-on professional quality card). For optimal display, minimum 1024x768 screen resolution is recommended, but not required.

The Windows version supports Windows 7, Vista, or XP sp2+; Vista or higher is recommended.

The Macintosh version is a universal binary optimized for both Intel and PPC processors, and requires OS 10.4 or later; 10.5 or higher and Intel recommended.







Usage Instructions

Quick Start

Aside from a few items, Soundplant is designed to be largely self-explanatory; simply drag and drop single or multiple sound files onto keys in the onscreen display of the computer keyboard. Pressing any keyboard key will cause its assigned sound to play, and so will double-clicking the onscreen key. Hitting the same key with 'Shift' held down stops the sound, and hitting 'Escape' or 'Backspace' (or big 'delete' on Mac) stops all playing sounds. Click any key to select it and set its options in the Key Configuration Panel on the bottom of the screen to have finer control over how sounds are triggered. Save and load .keymap files using the buttons along the top of the screen.

A more detailed explanation of the usage of Soundplant follows. The least self-evident items will be marked **not obvious**, for those who want to just skim these instructions.


In 'detailed view' (the default view mode), the Soundplant program window is divided into 4 main sections:

  • the Onscreen Keyboard in the center
  • the Key Configuration Panel on the bottom, containing controls for editing the behavior of each key, sound waveform display, sound properties information, and the Key Function Buttons; all of these controls pertain to individual keys
  • the Detailed Channels Meter on the right, displaying realtime sound channel use and playback progress
  • the Global Function Toolbar along the top, containing buttons for global program functions such as keymap file operations and preferences; all of these buttons pertain to general program functionality and not to specific keys

Onscreen Keyboard

The keyboard display provides an overview of all of the usable keyboard keys and their assigned sound filenames. Each key can be colored (in the Key Configuration Panel) for ease of reference. Keys show a green glow while their assigned sound plays, which gradually lessens in relation to sound playback progress. Sound files can be dragged from any folder window in Explorer (Windows) or Finder (Mac) and dropped over any unassigned key. If multiple files are dropped, then all dropped files will be assigned to successive keys on the keyboard, starting from the key under the mouse and moving from left to right and top row to bottom row (the top-left-most key being F1 and the bottom-right-most key being the right arrow; the edit keys and the arrow keys serve as their own rows). While in 'detailed' view, a single click to any key brings up its settings in the key configuration panel, and you can scroll the mouse wheel to toggle between keys in the order that they are laid out. The 'Esc' key is a universal silence key which stops all currently playing sounds (either by hitting the actual key or by single clicking its on-screen representation). **not obvious** The Backspace key has a similar silence function but won't stop sounds that have a 'channel priority' set to 'high' (see below for more info on the 'channel priority' setting).


Key Configuration Panel

In the lower portion of the screen, key configuration options can be set to control how a key starts and stops (kills) sounds, and information about the sound is displayed, including a visualization of its waveform. Each of the 72 assignable keyboard keys can have its own unique configuration. To select a key for configuration, you can:

  • in 'detailed view', click any key on the keyboard, or any active sound channel
  • **not obvious** in detailed or simple view, hold down the 'Control' key and press any key (if a Control+key combo is pressed while in 'simple view', Soundplant will automatically switch to 'detailed view' to display the key's settings)
  • key configurations can also be cycled through by scrolling the mouse wheel
  • key configurations can also be set to display in response to key hits via the 'show config after key hit' option in the Preferences
  • if in 'simple view' and the 'click key to play sound' option is off in the Preferences, click any key to select it and automatically go into 'detailed view'

After selecting a key to configure, the key is highlighted in the onscreen keyboard, and the name of the key is displayed in the upper left corner of the configuration panel. If the key has a sound file assigned, the file's name, path, and relevant sound properties are displayed, along with a visualization of its waveform. If the key's sound is currently playing, an animated playhead appears on the waveform showing the progress of the playback of the most recent trigger instance of the key (**not obvious** if multiple overlapping instances of the key's sound have been triggered, and you want the waveform playhead progress to reflect a particular instance other than the last one pressed, you can click on that instance in the Detailed Channels Meter). Also note that the size of the sound displayed in MB is the uncompressed size (e.g. the size loaded to RAM), with the exception of mp3 files which can be loaded to RAM in compressed form and decompressed in realtime during playback (this behavior can be configured in the Preferences).

A description of all key configuration options follows. Below that is an explanation of the Key Function Buttons.

keymode and shift+mode mostly affects how Soundplant will respond if the key is pressed after the assigned sound has already been triggered and is still playing. The 'shift+mode' controls the behavior of the key if pressed in conjunction with the 'Shift' key, allowing flexibility for additional keymode possibilities using the same key.

  • In sustain mode (default), Soundplant will simply trigger another overlapping instance of the sound in the mix, creating a delay effect.
  • In restart mode, Soundplant will stop the sound that was playing and restart the sound.
  • In kill mode, Soundplant will stop the sound from playing altogether. If multiple instances of the sound are playing, then 'kill' will successively stop the most recently triggered instance as it is pressed multiple times. 'kill' is the default 'shift+mode', meaning that holding down the 'Shift' key and pressing any key will kill sounds triggered by that key.
  • In mute mode, the sound will be muted, but remain playing (and occupying a sound channel) at zero volume; pressing the key again will un-mute the sound if it has not already finished playing. When a key is set to 'mute', it becomes a mute/un-mute toggle switch.
  • In pause mode, the key becomes a pause/unpause toggle. As with 'mute', sounds that are paused continue to occupy a sound channel until killed.
  • The fade mode allows you to trigger fade ins and outs of the sound. If the sound is not playing, then pressing the key in 'fade' mode causes the sound to start playing from 0 volume and fade in to the currently set key volume; if the sound is already playing, then hitting the key fades out the sound from its current volume to 0. Precise fade in and out times can be set via the 'fade time' controls. Use 'fade' in conjunction with other keymodes via the 'shift+mode' to start and stop sounds with and without fades as desired for maximum flexibility. For example, with 'Tab' set to 'keymode':'kill' and 'shift+mode':'fade', hitting 'Tab' will start its sound at full volume, and then 'Shift'+'Tab' will fade it out. Or, starting the sound with a 'Shift'+'Tab' will fade it in, and then pressing 'Tab' without 'Shift' will stop the sound immediately.

The volume and pan sliders set the key's volume and location in stereo space. If the 'realtime' button is on (default), these sliders will effect the volume or pan of all currently active instances of the key's sound. If 'realtime' is off, then the setting will only apply to the next time the key is pressed. Turning on 'random' allows you to set a value range along the slider within which Soundplant will select a random value and assign it to each subsequent triggered instance of the sound. Set the random range boundaries by clicking and dragging either end of the slider. Adjust the left and right boundaries simultaneously while maintaining range size by clicking and dragging the middle portion of the slider. Turning on 'random' automatically turns of 'realtime' for logical reasons. **not obvious** If 'random' is off, double-clicking anywhere along the pan slider bar resets the pan to 0, and double-clicking the volume bar resets the volume to 255; if 'random' is on, double-clicking either bar sets the random range to the maximum range.

pitch adjusts the pitch (speed) of the sound in semitones, with accuracy to the cent or 100th of a semitone. This is a "resample" pitch shift which effects the duration of the sound in addition to its pitch, i.e., lowering pitch will stretch out the sound and raising pitch will shorten the sound; when adjusting pitch, the sound's duration display will adjust to reflect the modified length of the sound. Octave markers are provided along the slider bar (12 semitones = 1 octave). For example, a sound with a pitch setting of 24 will be two octaves higher than, and 1/4 the duration of the same sound set to 0. The up and down arrow buttons to the left of the slider bar allow fine tuning of the pitch setting more precisely than the slider. The 'realtime', 'random', and double-clicking behavior of the 'pitch' slider is identical with that of 'volume' and 'pan' described above.

Sounds set to loop will do so ad infinitum until they are killed. Keys are set to 'no loop' by default. If the sound has offsets defined, then the loop will only occur between the two defined offset points. Note that the loop setting is not realtime and only applies to the next trigger of the sound.

The channel priority setting enables fine tuning the manner in which sounds are killed automatically by Soundplant. **not obvious** 'low' priority sounds are automatically killed on the next sound trigger by any key (i.e., 'low' can be used to create or simulate monophonic or "single voice" instruments). Sounds set to 'norm' (default) will only be automatically killed if necessary when a new sound is triggered and all 8 sound channels are already in use (in this case, the oldest 'norm' sound triggered will be killed to make room for the new sound). 'high' priority sounds will never be killed automatically, even when all sound channels are in use. The Backspace key kills all sounds except those set to 'high', and the Escape key kills all sounds including 'high' ones. For example, you can set long background sounds to 'high' to ensure that you can use all of the rest of the available sound channels with other sounds and not have to worry about accidentally knocking off the higher priority background track from the mix.

play from allows you to override Soundplant's management of sounds in memory as set in the Preferences. Sounds set to 'disk' use the least amount of memory resources by playing directly from the source disk, and also load into Soundplant faster, but may not trigger as quickly/accurately as 'RAM' sounds; this depends mostly on the cache size and speed of the cpu and source disk. In the worst case, for example when the disk source is a very slow cd-rom drive or a drive being heavily used by other applications running in the background, trying to play several sounds simultaneously from the same slow disk has the potential to cause playback to break up because the drive can not give Soundplant the data off the disk fast enough, but this type of situation is extremely unlikely. Sounds which you require the absolute fastest possible triggering of should be set to 'RAM', and sounds stored on a slow disk source which you think might be overtaxed should also be set to 'RAM'. By default, any sound under 50MB (about 5 minutes of CD-quality audio) is automatically loaded to RAM (this size limit can be changed in the Preferences) and this is generally suitable for most users, since longer sounds are most often used as background tracks and not for things requiring superfast triggering like short sound effects or drum sounds. Loading very large files into RAM can take some time depending on the size of the file and speed of the computer and source disk. Overall, in most situations, there is barely any noticeable difference in triggering time between sounds played from disk or RAM on modern machines, as long as the disk source is a relatively recent model hard drive. If you are using a computer with plenty of RAM to spare, then you might want to consider increasing the 'sounds loaded to RAM by default if smaller than' setting in the Preferences. Changing a sound from 'RAM' to 'disk' will instantly free up the RAM that was being used by that file; however, if a sound is set to 'disk' from 'RAM' while it is playing, the RAM won't be freed until after the sound has stopped playing (in some cases, the RAM won't become available until the OS allows it to be available for stability reasons). Keep in mind that the amount of memory that would be used by the sound in RAM is shown in MB in the sound properties display; for compressed sounds, for all but mp3 files, Soundplant loads the entire uncompressed data when loading to RAM, and the uncompressed file size is the number displayed.

fade time sets the fade in and fade out times used in conjunction with the 'fade' keymode. Turning on 'fade out to end' gives the sound a dynamic fade out time based on its playback progress at the time that the fade out is triggered.

The waveform display includes controls for setting the sound's start offset and end offset. This allows you to limit the portion of the assigned sound that is played when the key is pressed; use offsets to, for example, trim silence out of a track, or to extract individual sounds out of a larger track (see the 'offset assign' function below for a quick and automatic way to splice portions of a sound across multiple keys in batch). Define a start point and end point for the offset using the left and right sliders or adjust on a finer level using the arrow buttons along the bottom. Click and drag the highlighted space between the two sliders to move both the start and end points simultaneously. Double-click the waveform to reset the offset selection back to the entire length of the sound. If the sound is a wav file containing cue points saved with an audio editor, 'start cue' and 'end cue' controls appear which allow toggling through the cue points to set the start and end offsets. Soundplant can read cue points in 8-bit, 16-bit, and 24-bit wav files, and in compressed Shockwave Audio files (.swa format, which is essentially an mp3 with cue points). Though Soundplant enables finer control over offset points than most editors, allowing offsets defined to the 100,000th of a second, using cue points saved in an external editing program provides an easier way to set a complex array of precise offset points than Soundplant's handy but small waveform display. Note that the offset settings are not realtime and only apply to the next trigger of the sound.

Select a key color to define how the onscreen key appears by using the mini-keypad to the right of the displayed key name. Note that Soundplant will automatically give a color to newly assigned keys unless it had a previous color set.

In the upper right corner of the Key Configuration Panel are a row of Key Function Buttons:

open sound brings up a dialog box for manually browsing for sound files to assign to keys. The initial browse folder that opens can be set in the Preferences. You can select multiple sound files in this dialog. You can also bypass this dialog entirely and assign sound files to keys by dragging and dropping them from an Explorer (Windows) or Finder (Mac) window. **not obvious** If the currently selected key configuration already has an assigned sound, you can use 'open sound' to to select a single file to replace the current key's sound file but retain its configuration settings. If you select multiple files in the 'open sound' dialog and the current key already has a sound assigned, the current key's sound will not be replaced, rather the new assignments will be bumped to the next available keys.

reset blanks the key's sound assignment and reverts its settings back to its initial unassigned state with the default empty key configuration. If a file had been assigned to the key and loaded to RAM, 'reset' will unload the sound and free that RAM. **not obvious** If the key has a sound assignment, holding down 'shift' while clicking 'reset' reloads the sound file and retains the existing key configuration settings. This is useful for example if you've edited the sound in another program since Soundplant loaded it.

copy duplicates the key's settings onto another key in a memory efficient manner (i.e., if the assigned sound is set to 'play from RAM', then the target key will conserve RAM and refer to the same data in memory rather than reload the file). Activating the 'copy' function will temporarily hide all other buttons, change the cursor, and prompt you to select a target key on the onscreen keyboard. You can only select an unassigned key as a target.

pitch assign is a powerful feature allowing the memory efficient batch assignment of the assigned sound at varying pitches onto multiple keys in 2 easy steps. This will allow you to simulate a polyphonic instrument using just a single sample, as well as alter the sound's speed to extremities that will virtually make it into a totally different sound. Clicking this button will temporarily hide all other buttons aside from the pitch slider, change the cursor, and prompt you to select a group of unassigned keys next to the current key. As you roll the cursor over the onscreen keyboard, you will see various keys light up as you adjust the mouse to make a selection; you can also adjust the start pitch for the batch assignment using the pitch slider. After clicking on the keyboard to make your selection of keys, you will be prompted to set the end pitch for the batch. An unmovable marker on the pitch slider bar designates the start pitch for the batch, and you may drag the pitch slider to set the end pitch for the batch. A dynamic display of the semitonal distance between the keys in your selection will appear and adjust as you slide the controller. Clicking 'apply' will instantly assign the start key's configuration to all selected keys with the specified pitch variation. You can use this function take advantage of the precise microtuning features of Soundplant to discard the bias of western compositional technique and create your own custom scales. Note that the traditional western chromatic scale places notes 1 semitone apart; distance in semitones away from the base "A" note in the standard diatonic scale are as follows: B-2, C-3, D-5, E-7, F-8, G-10 (with the whole semitone points in between constituting the "accidentals" of the chromatic scale).

offset assign, as powerful as 'pitch assign', allows the easy dividing up of equal-sized slices of a sound across multiple keys by auto-setting offsets. It can be used to extract individual drum sounds from a drum loop, for example, by taking a 4/4 beat and splicing it across 4 keys (or 8 keys to achieve 'higher resolution' splices). Clicking the 'offset assign' function will temporarily hide all other buttons, change the cursor, and prompt you to select a group of keys on the keyboard display. As you roll the mouse over the keyboard, keys will highlight indicating the size of your selection, the text displayed below will dynamically report the potential length of each key's slice of the sound (depending on the amount of keys selected and the length of the original sound), and the waveform display will graphically reflect the positioning of the resulting offsets. When you click on the keyboard to designate your selection, Soundplant will instantly create memory-efficient copies of the current key's assignment onto each key in the batch, and auto-adjust each key's offsets to precisely divide pieces of the sound across the selected keys. Note that the division points between slices are completely mathematically determined at equal-length points along the sound, which means that you may need to manually adjust the generated offset settings to match inexact timings of events in the sound that you want to extract in order to get a more perfect sound (keeping in mind that, for example, a human-played drum set will never produce a rhythm accurate to the 100,000th of a second).

edit is for the editing of audio files in an external editing program. You will find that while using Soundplant, since Soundplant is non-destructive, work will sometimes need to be done in an audio editor in order to fine tune and add effects to your sound files. The 'edit' button will launch the external audio editing program selected in the Preferences and attempt to make it load the key's assigned sound file (works with most editors). When you return to Soundplant from the editing program, if the file has been modified, Soundplant will prompt to ask if the newly edited file should be reloaded to replace the currently loaded data; if the sound had been copied or batch-assigned to other keys, then those other keys will also refer to the newly edited sound data. **not obvious** Soundplant only checks for sound file modification the first time you return to the Soundplant window from the audio program. If you modify the sound later, you can make Soundplant reload the sound file by clicking the 'reset' key while holding down 'Shift'. Note that for sounds set to 'play from disk', even if you don't choose to reload a modified sound, Soundplant will of course still play the modified data since it is reading it directly from the disk; but if the sound was set to 'RAM', if you choose not to reload an edited sound, Soundplant will continue playing the pre-edit copy of the sound currently loaded in memory.


Detailed Channels Meter

At the right edge of the screen is the sound channels meter, which gives a realtime indication of which key's sounds are playing in each of the program's 8 stereophonic sound channels, including playback progress, total sound length, key name, and sound filename. Soundplant keeps latency low by limiting sound mixing to 8 simultaneous sounds. If all 8 channels are being used and an additional sound is triggered, the least recently triggered sound with a 'channel priority' not set to 'high' will automatically be eliminated from the mix to make room for the new sound. You can interact with the channels meter in the following ways:
  • click on the "x" button to instantly stop a channel's sound.
  • **not obvious** click on the dynamic time display to toggle between a count up (default) and count down
  • **not obvious** click anywhere else in an active sound channel to bring up that key's settings in the key configuration panel

Global Function Toolbar

Along the top of the screen are a row of buttons with general program functionality.

new keymap -- Empties all sound file assignments, resets all key configurations to the 'default key' settings (which can be customized in the Preferences), and clears the system memory of sound files.

open keymap, save keymap, & save as -- Keyboard configurations can be saved and loaded as '.keymap' files. These are small text files which contain references to the assigned sound files and their configurations; they do NOT contain audio data (Soundplant is non-destructive), though they do contain cached waveform data to speed up the loading of saved keymaps, as analyzing waveforms can take time on large files. Keymaps can also be loaded by dragging keymap files anywhere onto the program window, or onto the program icon (including the dock icon on Mac). The narrow button to the right of 'open keymap' activates a pull-down menu giving one-click access to the 20 most recently loaded keymaps. **not obvious** Holding down 'Shift' and clicking the recent keymap list button clears the list. When saving keymaps, absolute paths to sound files are stored in keymap files, but when opening keymaps, Soundplant will search for files in the following additional locations if it can't find them in the originally stored location: the same folder as the keymap; the default sound file browsing folder set in the Preferences; the default keymap file browsing folder set in the Preferences; the Soundplant program folder; the Desktop; and the Documents folder. You can also save empty keymap templates to load sounds onto in the future and preserve key settings. For example, if you want all of the arrow keys to be colored red and set to loop, you can set this on an empty keymap with no sounds loaded, and in the future when you load this empty keymap template and open sounds onto those keys, they will retain the previously set key configurations. Soundplant 39 can load older keymaps saved in all previous versions of Soundplant. Note that when a keymap loads, a small progress bar appears underneath the Onscreen Keyoard showing overall keymap loading progress.

save w/ sounds -- Saves a copy of the current keymap and all of its associated sound files in a folder. This is handy for creating unique copies of used sound files and putting them all into a single location. It is also helpful in packaging up keymaps for use on other computers (because Soundplant will automatically find all of the keymap's associated sound files is they are in the same folder as the .keymap file). If you are working on a keymap that has already been saved w/ sounds once, doing a 'save w/ sounds' again to the same folder will copy into that folder any sound files that may have been added since the last save.

list keymap -- Creates a temporary tab-delineated text file listing the contents of the current keymap (all loaded sound files and their assigned keys) and opens it in your computer's default text-editing program (normally Notepad on Windows or TextEdit on Mac). From here it can be printed, or saved or copied-and-pasted anywhere you wish and further manipulated in other programs such as a word processor or spreadsheet if desired. Note that the text file that is displayed is written to a temporary location and will be deleted automatically, so if you want to save the file you must do a manual 'save as' through the text editor and select a permanent location for the file.

prefs -- Opens the Preferences panel. See below for a detailed explanation of each option.

docs -- Opens this user guide documentation file.

web site -- Directs your browser to the Soundplant home page, www.soundplant.org, where you can find the latest version, news, free keymap downloads, and links for purchasing registration.

about -- Displays credits, copyright, and registration info.

background key detection -- Turning this on enables Soundplant to respond to key input even while its window is not in focus. This powerful feature opens many possibilities as it allows you to trigger Soundplant sounds while using other audio software, or while typing a document, or while using another instance of Soundplant with a different keymap loaded, or while doing anything in any other program, even if Soundplant is minimized, hidden, or behind other program windows. On Windows, when 'background key detection' is activated, a Soundplant icon appears in the system tray; it can be clicked to toggle the visibility of the Soundplant window and hide Soundplant entirely from the taskbar (yes, this can be used to play tricks on people by running Soundplant in the background without their knowledge). **not obvious** If 'background key detection' is on, at any time you can hit the panic key combo 'Contol'+'Shift'+'Tab' to immediately turn off 'background key detection'. Note that when triggering sounds while Soundplant is not in focus, there is a slight increase in latency, because of the way key events are passed through the operating system. For absolute fastest possible triggering, input keys directly into Soundplant while its window is in focus. Also note that when triggering sounds from within other programs, Soundplant can not detect the automatic "key repeat hits" that result when holding down keys; it can only detect these while Soundplant's window is in front.

view mode -- Soundplant has 2 view modes to allow customizable window sizes. 'detailed' is the default view and includes the entire Soundplant interface. 'simple' shrinks the interface to show just the bare essentials: it hides the Detailed Channels Meter and the Key Configuration Panel, and instead shows a small minimal channels meter displaying only the number of simultaneously playing sounds (though note that you can still get a general idea of sound progress by watching each playing key's glow animation). On older computers, you may notice a slight performance gain when in 'simple' view, because the Soundplant interface is less complicated and requires less system resources. **not obvious** While in 'detailed' view, you can send a simulated key hit to any key (i.e., play its sound) by double-clicking the key; while in 'simple' view, the same thing is accomplished by a single click; this functionality can be adjusted in the Preferences.

master volume -- Controls the master volume of either the Soundplant program's own output ('master volume') or the entire computer's sounds ('system master volume'), depending on how this is configured in the Preferences. Soundplant defaults to setting this to control whichever option allows the finest degree of volume control (something which can vary from computer to computer or soundcard to soundcard). On quitting Soundplant, if the system master volume had been modified, it is automatically restored to its value at the time of Soundplant's start.

free physical RAM -- (Windows only) Displays a realtime meter of total RAM usage by all currently running programs, useful for determining whether or not sound files should be loaded to RAM or played from disk. If you run out of physical RAM by loading too many large sounds to RAM or having too many other programs open simultaneously, your computer will be forced to use virtual RAM which will negatively affect performance.


Preferences

Clicking the 'prefs' button on the top Global Function Toolbar opens the Preferences panel, which contains some settings that customize the program's behavior to your liking, and other settings that need not be touched unless there is a specific reason due to your system's configuration or your particular way of using of Soundplant. Note that you can still trigger sounds while the Preferences panel is open. Also note that Soundplant stores separate Preferences for every user on a multi-user computer, so if you log in as a different user and run Soundplant, you can have a different set of Prefs. The following options are configurable.

The keymap file browsing folder is the default location that opens when you click 'open keymap' or 'save keymap'. Click 'select' to choose the folder.

The sound file browsing folder is the default location that opens when you click 'open sound'. Click 'select' to choose the folder.

external audio editing program is the application that Soundplant launches when you click the 'edit' button in the key configuration panel. Click 'select' to choose either an executable file or a shortcut/alias to it.

master volume control sets the behavior of the master volume slider on the global function toolbar. It can be set to control either the Soundplant program's own master output volume, or the overall master volume for the entire operating system. Note that in different system configurations, different settings will allow finer overall degrees of volume control from within Soundplant, and Soundplant chooses by default whichever of the 2 methods is detected to allow finest control the first time it runs (on most Windows 7 and Vista systems, it's usually the program master volume, but on XP and Mac, it's usually the system master) - but here you can override the default and set this to whichever method you prefer. Note that certain uncommon soundcard configurations may prevent Soundplant from having full control of the system volume. On quitting, if the system master volume had been modified from within Soundplant, the system master volume is automatically restored to its value at the time of Soundplant's start.

display progress time as sets the behavior of the channels meter time display to be either a count up (default) or a count down. **not obvious** This can also be toggled by clicking on the time display in the channels meter.

If show key config after key hit is turned on, hitting a key automatically selects it for display in the Key Configuration Panel. Off by default. This can be convenient in many situations, but keep in mind that if this is turned on you won't be able to configure one key while simultaneously pressing other keys, because the Key Config Panel changes with every key hit, displaying the most recently pressed key. Also, note that having this feature on can cause a slight performance hit, especially on older computers when rapidly pressing many keys in succession; for absolute fastest possible triggering, keep this turned off (of course Soundplant plays the sound before updating the screen with the selected key's configuration, but on slow computers this can cause a bottleneck when many keys are pressed quickly, for example in a drum pad situation).

click key to play sound, on by default, enables clicking the onscreen keys to simulate key hits and play they key's sound. In 'detailed view', double-click a key to play its sound; in 'simple view', a single click will suffice. Note that if this setting is turned off, single-clicking a key in 'simple view' will select and display it in the Key Configuration Panel and automatically go into 'detailed view'.

Turning on low power mode forces Soundplant to use a smaller percentage of the CPU at the expense of slightly worse performance (slower sound triggering and screen refreshes). This is primarily meant for laptop users to help conserve battery life and/or to prevent cooling fans from going on. The relatively small performance hit that results may not be noticeable depending on how you are using Soundplant; only users requiring as-instant-as-possible sound triggering for millisecond-accurate activities such as drum pad use will likely notice the difference. **not obvious** This function yields especially dramatic results on Macs, where Soundplant's engine can be a little overzealous in reserving a lot of the CPU for itself in advance in case it needs it, to allow for as instantaneous random-access triggering as possible. Soundplant dynamically adjusts its CPU usage in relation to other programs running at any given time, so if it detects that other programs need the CPU, it automatically lowers its own usage. But in situations where no other programs are running, Soundplant can take a higher percentage of the CPU for itself, and turning 'low power mode' on prevents that. Also note that on Mac, enabling this mode disables sound file drag-and-drop-to-load functionality, because of a quirk in the way the OS passes drop events.

asynchronous dialogs & file loading (on by default) allows Soundplant to run with maximum playback seamlessness, so that loading a new sound file or displaying a system dialog does not interrupt audio playback, because it runs in a separate process. However this feature is not essential for basic Soundplant functionality and does use around 15-30MB of extra RAM and a small amount of extra CPU. This amount is insignificant on modern computers but on much older machines can make a difference on overall system performance. Only turn this off if you really need to conserve every last bit of system resources.

Clicking save current key config as default stores the currently selected key's configuration as the overall default key configuration, meaning the key configuration that automatically applies to all empty keys in a new keymap and when clicking the 'reset key' button, overriding Soundplant's built-in defaults. For example, Soundplant's factory default key has 'shift+mode' set to 'kill'. But if the currently selected key's 'shift+mode' is set to 'fade', and you 'save current key config as default', all future keys in subsequently created new keymaps (i.e., the next time you click 'new keymap' or 'reset' an individual key, or restart Soundplant) will have their 'shift+mode' set to 'fade'. With this function, you can store all possible key configuration settings except for key color, offsets, 'play from', and of course sound file. To set more complex empty keymap configurations with different sets of keys having different preset configurations, consider saving an empty keymap template. **not obvious** Holding down shift while clicking this button restores the default key setting to Soundplant's original factory defaults. Also note that clicking this button immediately sets the default key for the remainder of the current session of Soundplant even if you don't hit the 'Apply' button. This can be useful if you need to temporarily change your default key settings.

mp3 handling controls how mp3s are loaded by Soundplant, which can have a significant affect on file loading times. Normally, when Soundplant loads compressed formats like mp4, flac, etc., Soundplant must decompress the entire file first, and then load the uncompressed audio data for waveform analysis and playback. This allows for fastest triggering since Soundplant does not have to do the work of decompressing the sound in realtime at the instant that you trigger it; the downside is that the decompression process can take time for loading long sounds especially on older computers or when loading many compressed sounds at once. But for mp3s, Soundplant has the special ability to quite efficiently decompress mp3s in realtime during playback, with barely any noticeable affect on mp3 triggering latency, especially not on newer computers. Therefore, by default, Soundplant loads mp3s in this manner ('decompress while playing'), directly in their compressed form, saving time and memory. However, changing this setting to 'decompress on loading' makes Soundplant not treat mp3s as a special case, thus forcing Soundplant to decompress mp3s fully upon loading them. Change this setting to 'decompress on loading' if you require absolute fastest possible triggering on mp3 files (for example, for use as a drum pad with samples in mp3 format), and/or if you notice that playing mp3s with Soundplant negatively affects performance on older computers. Just keep in mind this has the potential to slow file loading: for example, loading a keymap containing 20 mp3s of about 3-5 minutes each on a 2008-era computer takes under 10 seconds with the default 'decompress while playing', but with 'decompress on loading' on the same computer the same keymap takes about 1:30 to load. Note that this setting has the most noticeable effect on the time it takes to open an already saved keymap containing mp3s. This is because when loading an mp3 for the first time, even if it will 'decompress while playing', Soundplant must temporarily decompress the file to analyze its waveform - but when loading a saved keymap, the waveform data is already stored in the keymap file and therefore the file never has to be decompressed again on subsequent loads.

sounds loaded to RAM by default if smaller than sets the size in megabytes above which sound files will not automatically be loaded to RAM. Adjust this to tune Soundplant's performance to your liking and to the abilities of the computer it is running on; sounds played from disk trigger slightly slower than sounds played from RAM, but load faster (especially when loading from keymaps) since their entire contents don't have to be copied into RAM. The default setting is 50MB, which is the equivalent of a 5 minute uncompressed cd-quality file. On older computers with less RAM, you may want to lower this setting, and on newer computers with more RAM you can up this setting to guarantee fastest triggering even for huge files. **not obvious** For compressed sounds, Soundplant uses the UNcompressed size of the sound to decide whether or not to load it to RAM (because the uncompressed data is what would be loaded to RAM), with the exception of mp3s depending on the 'mp3 handling' setting. Note that if Soundplant runs out of physical RAM to loads sound into, the OS will keep feeding RAM to Soundplant in the form of virtual memory, which can result in poor performance. For best performance, try to avoid making Soundplant's RAM usage exceed the limitation of your installed physical RAM. Most of the situations that require changing the 'sounds loaded to RAM' size setting are uncommon, such as if you are loading many huge audio files, or running a really old computer with little RAM. Note that you can always override this setting for each key by manually clicking 'RAM' or 'disk' in the key's configuration panel.

The apply button saves the current Preferences settings and closes the Preferences panel.

The cancel button discards any currently modified Preferences settings and closes the Preferences panel.

The register button allows you to enter in your registration code to unlock the registered version features. Follow the instructions given to you with your registration code to activate your registration.

sound mixing (Windows only) allows changing the sound mixing engine Soundplant uses from the default DirectSound (which works best on the vast majority of systems) to 2 other options just in case DirectSound is not working well on your machine, for example if you hear clicks or glitches during playback, or if sound triggering seems to be unnecessarily slow; this is very uncommon, but it does happen with certain hardware and software combinations or with soundcards that come with poorly implemented DirectSound support. QuickTime is the 2nd-best option, and requires installation of the free QuickTime from Apple. MacroMix has no requirements but can be very slow. Most strange unexplained Windows audio playback quality issues in Soundplant can be solved by changing this setting to QuickTime, but first try installing the latest drivers for your soundcard to try and get DirectSound to work, because DirectSound (when it's working properly) has better performance than QuickTime.

The launch another Soundplant button (Mac only) allows Mac users an easy one-click way to automatically launch multiple simultaneous instances of Soundplant, something that the MacOS makes tricky to do manually (note that on Windows this can be done easily by simply double-clicking the program icon to launch as many desired instances, so there is no need for this special button). With multiple instances open, you can have multiple keymaps open and send key input to multiple instances at once by turning on 'background key detection'. This function requires Mac OS 10.5 or later; the only way to run multiple simultaneous instances of Soundplant on 10.4 is to create a copy of the Soundplant .app bundle and launch your secondary instance by double-clicking the copy (you will need as many copies as you want instances).


Other Usage Miscellany

  • You can move the Soundplant window by clicking and dragging its title bar, or by clicking and dragging anywhere in the program's interface that is not an interactive button. Using this latter method is recommended, as when you drag Soundplant by clicking and dragging within the Soundplant window, Soundplant's interface continues to animate as the window moves. Dragging by the titlebar temporarily halts the refreshing of the Soundplant window as the window moves.
  • You can resize the Soundplant program window by the standard method on Windows of clicking and dragging anywhere around the edge of the window border, or on Mac by clicking and dragging the resize icon in the bottom right corner of the window. **not obvious** Double-clicking anywhere in the program's interface that is not an interactive button automatically restores the window's size to its default dimensions. Keep in mind when resizing that if you increase the height of the Soundplant window, the font size of text labels (sound file names and button labels) increases, but when you increase the width of the window, the font size does not increase but rather the amount of text that is fit onscreen increases. This means that if you want to fit more text on the screen (for example, if your sound file names are long and you want them to not be cut off in the Onscreen Keyboard display), expand the width of the window more than the height; if you want the text to be larger and more easily readable, expand the height. Use these resizing options in conjunction with the 'detailed' and 'simple' view modes to customize Soundplant to display as much or as little as you want, as large or as small as you want. The Soundplant window is sized to fit most optimally on modern monitors with HD aspect ratios.
  • Soundplant outputs sound to whichever sound device is selected as the system default (set in the Sound Control Panel in Windows, or in System Preferences->Sound->Output on Mac). **not obvious** On Windows, Soundplant outputs to whichever device is selected as the system default at the time of Soundplant's startup. You can change your system output device after Soundplant launches and Soundplant will continue to output to the original setting for the remainder of that Soundplant session. You can use this technique to have multiple instances of Soundplant open, each outputting to a different device.
  • On Windows, you can record the output of Soundplant internally with any audio recording software by setting your input source to your sound card's own output, which is usually called something like the 'wave', 'loopback', 'stereo mix', or 'wave out' device. The exact name for the input source that refers to recording your soundcard's own output varies from system to system, but it should have an obvious name. Sometimes it is even called 'what you hear'. You can also search online for programs that make this process easier; there are several Windows programs available for the purpose of recording other program's sound output. Even better, for more advanced users, you can use a program like Virtual Audio Cable to reroute Soundplant's audio into another program's input, such as for realtime effects processing of Soundplant's output (in programs like Max, Audiomulch, etc.), or also for direct recording of Soundplant's output.
  • On Mac, you can record Soundplant's output using any recording software with the aid of one of several free third party software intermediaries, since Soundplant is a Core Audio application. One way is to install the free Jack OS X which allows you to route Soundplant's output as its own virtual sound device into other programs for realtime recording or processing. You can also try the free Soundflower which provides similar functionality. These utilities can be used to record or even process Soundplant's output (in programs like Max, Audiomulch, etc.). For less advanced users, if all you want to do is record the output of Soundplant, there are several programs available that make the recording process easier which you can find by searching online.
  • When any key is held down continuously, Soundplant detects multiple key presses (at rates which differ between computers; this can be set or turned off in the Windows Keyboard Control Panel or under the Mac System Preferences->Keyboard) and reacts accordingly. This is a main difference between the Soundplant program and an actual sampling keyboard; there is no touch sensitivity or note-sustaining by key depressing involved (this is because reliability of detecting sustained key presses varies between different computer keyboard hardware, so there is no reliable way to implement this). However, you can get some interesting delay effects by experimenting with this, especially in conjunction with the mute, sustain, and pause key modes, and the pitch shift and offset sliders.
  • When pressing multiple keys simultaneously (what you might call 'chords'), you may find that certain keys do not work as expected; on most Windows keyboards, you won't be able to trigger more than 4 or 5 keys simultaneously due to computer keyboard hardware limitations. This varies among different keyboards; some computer keyboards simply don't support pressing multiple keys at once (aside from 'modifier' keys - shift, ctrl, alt), while other keyboards support this only partially and will allow some keys to be pressed down simultaneously and not others. If you find that the behavior of your keyboard has a limiting affect on what you are trying to do in Soundplant, consider buying a new one (easily found for under $10). I've found that some of the cheapest, no-name keyboards will support unlimited simultaneous key presses, whereas some Dell-branded keyboards even have trouble with modifier key support. If I can source an inexpensive keyboard that I can guarantee works perfectly in Soundplant, I may start offering them for sale on the web site.
  • Soundplant is optimized for use with the computer keyboard for lowest latency, but if you want to use a MIDI device with Soundplant's sound triggering engine, you can try using 3rd party software such as Bome's Midi Translator to convert any MIDI device's input into computer keyboard hits. This has been found to work well with Soundplant by many users with MIDI controllers.
  • Soundplant is optimized for use with a standard U.S.A. QWERTY keyboard, but has been found to work well on other common keyboards (like AZERTY, U.K. QWERTY, etc.) with some minor quirks. For example, some keys on your non-U.S. keyboard may not exactly match their onscreen equivalent, and 'shift+mode' may respond differently than expected on a couple of keys. You will have to do some testing with your non-U.S. keyboard to learn how it works with Soundplant. If you find that the operation of your non-U.S. keyboard hinders your use of Soundplant, consider buying a cheap U.S. keyboard for optimal Soundplant use (again, easily found on eBay for example for under $10).
  • Reiterating from the above instructions, but in order to list it all conveniently in one place, here are some things to keep in mind to facilitate the lowest possible sound triggering latency by reducing as much non-essential overhead as possible (especially helpful for slower computers, but also for those who want the best possible Soundplant performance for more demanding applications such as millisecond-accurate drum pad use): make sure all samples are set to 'play from RAM'; run Soundplant in 'simple' view mode and do not manually resize the Soundplant window to a custom size; use 44.1 kHz samples; make sure 'low power mode' is off; make sure 'show key config after key hit' is off; keep 'background key detection' off; set 'mp3 handling' to 'decompress on loading' for fastest mp3 triggering; and of course, use a fast computer.






Contact

Thus concludes the primary usage instructions. Please send all bug reports, questions, problems, comments, suggestions, criticisms, reactions, etc. to: soundplant [at] soundplant.org. I would love to hear about your experiences using this program, especially in live use. Check the web site for program updates, FAQs containing newer info than this document, and maybe even some free keymap downloads at http://www.soundplant.org.

Further remarks, hints, history, information for advanced users, known quirks, etc. are below.





Usage Hints

Here are a few ideas to help get you started thinking in terms of the potential of Soundplant:

  • you have an unlimited universe of sounds available to you; use a healthy mix of found sounds, real instruments, synthesized instruments, processed sounds and instruments, full length tracks, single notes, chords, phrases, melodies, effects, loops, voice, ambience, plundered music/media, etc...
  • experiment heavily with the batch pitch and offset assignment functions; when pitch assigning, create custom scales to invent new chords and note relationships; use batch offset assign with very long sounds to create new, shorter sounds
  • experiment with the randomization settings; use big random ranges to create wild variations in your sounds, or use very small ranges to make subtle variations in samples that will be triggered many times in succession, for example to make a snare or high hat sound sound a little more lifelike and realistic when it is overlapped repeatedly on itself
  • create entire keymaps based around a single sample batch assigned or copied onto multiple keys with varying settings
  • assign the same or similar sounds with different effects at different keys; employ techniques of slight variation to make your keymap a unique playable instrument
  • use with drum sounds and beat fragments to create a drum pad and manually create beats or drum loops, or add a drum track to another track
  • make new beats out of old ones by extracting drum sounds using the batch offset assign function; 'amenize' your beats in realtime
  • use a healthy mix of long tracks, loops, and short sounds; keep in mind that by using disk-based mode, the length/size of your assigned sounds is limited only by your disk space
  • use samples that are timed to loop in sync with each other (for example, use a sequencer to export tracks as individual files) in conjunction with the mute, pause, and fade modes and realtime volume and panning to bring in and out each track, thereby mixing the song in realtime
  • take advantage of the option to configure sounds while playing them
  • use the 'shift+mode' setting to vary playback without having to reconfigure a key
  • utilize the 'low' channel priority setting to create more realistic sounding monophonic instruments
  • control in realtime the 'time stretch' effect found in audio editors using batch offset across many keys in conjunction with loop and low channel priority (i.e., you will then be looping very small portions of the sound, which is what 'time stretching' does to create the illusion of elongating sounds)
  • great for adding live 'solo' tracks to otherwise pre-programmed songs, such as those created with sequencing software
  • use the memory efficient copy function to endlessly duplicate your sounds onto other keys to create varying effects and to allow the playing percussive samples more rapidly (for example, to simulate drum rolls)
  • think of Soundplant as a digital instrument; abandon all established notions of pre-digital music and scales, tonal systems, harmonics, instrumentation, etc; listen to Harry Partch and Pierre Schaeffer for inspiration...
  • for practicing your keyboard skills, try something like this






Manually Editing .keymap Files

Keymap files created by Soundplant are standard text files which contain no line feeds. They represent a database of all of the keyboard keys and all of the attributes of the assigned sounds, and can be edited manually in any text editing program like Notepad or TextEdit. This may be necessary if you want to restore a keymap whose sound files you have moved to a location that Soundplant can't find in its standard search locations. Basically, the keymap file contains one giant, comma-delineated, bracketed list of data [] inside of which are many smaller bracketed lists, one for each key. Each of these lists contains several property definitions preceded by a #. The property of concern will be #fname, which defines the file path of the assigned sound. If you need to change the file path, just replace the text that is there with the new path. Simply follow the syntax of the other lists in the file: the path must be in quotes and must be the full path and filename. For example, if your sounds have moved to a different drive or folder, you can use a text editor 'find and replace' function to change all occurrences in the .keymap file of "c:\oldpath" to "d:\newpath". You can also use this technique to, for example, quickly change every key's fade setting or similar mass modifications that might be tedious to make in Soundplant. Note that these files are not very human-readable, as keyboard keys are not explicitly referred to by their letters, but rather by a more efficient numbering system. Soundplant 39 keymaps use an extension of the format of version 26 keymaps. They are not fully supported by version 26, but they will usually still load in version 26 if need be, but with some quirks and of course without any new features functional. The most likely quirk is an easily fixable one: v.39's new key colors are not fully supported in v.26, so you will have to manually change key colors within v.26 to get keys to display properly.







Known Quirks & Other Issues

  • low resolution monitors -- The Soundplant default 'detailed' view mode window size is 928x667 pixels. On monitors with lower overall resolutions than this (for example, many netbooks are only 600 pixels high), Soundplant may appear cut off when it first launches, but it can be forced to resize itself to squeeze within the screen by hitting the window's 'maximize' button. In these situations, 'simple' view mode is recommended.
  • numeric keypad -- Soundplant does not treat the numeric keypad (on the right end of full sized keyboards) as unique keys. Hitting these keys will have the effect of hitting their corresponding 'real key' on the left portion of the keyboard, which of course will vary depending on whether your 'numlock' is on or off. You can use the numeric keypad with Soundplant as if it were a set of duplicate keys.
  • sound card hiss -- While you have Soundplant running with no audio playing, you may hear a background hissing sound coming out of your speakers/headphones. This is not Soundplant generating analog noise, but rather it is your sound card's own normal interference. Usually, the only time when this interference would be audible is when the sound card is actually playing a sound over the noise. However, in order to ensure fastest possible sound triggering, Soundplant keeps the sound buffer constantly open. This means that your sound card is essentially fooled into thinking that it should constantly keep the virtual floodgates of its audio stream open, so that at any time Soundplant can send audio through the gate and not have to spend time opening and shutting the gate each time sound starts and stops. What you are hearing is your sound card's version of digital silence. Although theoretically digital audio has no background noise, standard cheap sound card hardware picks up interference from the electronic impulses that are being generated by other components surrounding it in the motherboard (more professional/expensive sound cards have hardware specially designed to avoid this). Normally the sound buffer is only in use when audio is actually playing, and therefore the sound card's interference is drowned out by actual audio (unless the audio being played is very quiet) when it would be heard. To confirm this, you can open a sound file in a media player application. As the sound plays, lower the program's volume control as much as possible (but don't pause it). You will now be hearing your sound card's 'normal' noise, the same noise you would hear if Soundplant is open and not playing sound sounds.
  • Control+key issues -- This feature is included to provide an additional way to quickly select and configure keys without moving the mouse, but a few keys may not work with it because of the OS converting certain key combos into other commands. This will vary on different systems.
  • timing & the system clock -- Soundplant relies on the computer's system clock for tracking the visual displays of sound playback progress, because polling the system clock comes with less overhead than polling the soundcard. However, some computers have slightly inaccurate system clocks. These inaccuracies are usually only at the microsecond level and of no major consequence. But in rare situations involving very short looping sounds that have been left playing for many thousands of loops, system clock timing flaws can cause the playhead on the waveform and the progress meters to become slightly out of sync with the playing audio of the loop.
  • low sample rates -- Soundplant mixes audio at 44.1 kHz. Any sounds loaded that are not 44.1 kHz are automatically resampled in realtime by Soundplant for the mixed output. For sounds at much lower sample rates, you may find that sound quality is improved if you manually resample them in an audio editor with high quality resample filters rather than let Soundplant do this work in realtime.
  • realtime pitch shifting -- Adjusting the pitch slider with 'realtime' turned on while the sound is playing can in some situations cause temporary crackles/clicks in audio playback of that particular sound. This can vary by soundcard and frequency range of audio, and happens less in higher quality sounds.
  • function keys on Mac -- By default in Mac OS the function keys are reserved for operating system functions and you would have to hit fn+the function key in order for Soundplant to receive the standard key input. But this can be easily remedied under System Preferences->Keyboard by checking the box for "Use all F1, F2 etc. keys as standard function keys". Note that even with this option enabled, for F9-F12, which are specially reserved, you have to hit command+the key or option+the key to trigger it.
  • drag and drop on Mac -- Dragging files onto the Soundplant program window will not work while 'low power mode' is on in the Mac version.
  • invalid file names on Mac -- Soundplant does not support filenames containing double quote characters (") anywhere in the path. As Windows does not permit this character in filenames, this is a Mac-only issue.






About / History

The original version of this program was first written to fill what I saw as a gap in low budget sound software for the pc. It was inspired partly by legendary tracker programs such as Scream Tracker and Impulse Tracker which as a secondary function allow the user to play samples using the keyboard; by the single button professional samplers used in old-school rap; by a program that I saw on an Amiga years ago which had a similar function (and also worked with video), the name of which I can not remember; and by consumer level sampling keyboards. I intended to keep it simple so that all the user would need would be some good samples and some good ideas. I am more of a multimedia artisan than a computer scientist; for this project, I found Macromedia Director (now Adobe Director) to have the perfect combination of artist-friendliness and complex functionality through its programming language Lingo. Though originally intended as an experimental music-making tool, Soundplant's feature set has evolved over the years to also meet the needs of DJs, audio engineers, and sound technicians in mainstream applications such as radio, television, and stage performance.

The first release version of Soundplant, 'beta 12', was produced between January and June of 1999 in Buffalo, New York, USA. The second public release, version 26, was produced in spurts in September 2001, and February, April, August and September 2002 in Brooklyn, New York, USA. This third public release, version 39, was produced on and off during 2009-10 in Staten Island, New York, USA. It has the following major additions & improvements over version 26:

  • virtually every audio file type supported
  • first non-beta Mac version, with an identical feature set to the Windows version
  • sounds set to 'play from disk' have all of the configurability of 'RAM' sounds
  • 'list keymap' function
  • master volume control
  • keymaps easier to transport between computers and fully cross-platform compatible, with intelligent sound file locating
  • redesigned interface with onscreen keyboard enlarged for better clarity and names of sounds appearing under each key, and channels meter enhanced with info and progress bars
  • onscreen keys are animated as they play, showing progress
  • 'background key detection' mode
  • 'fade' keymode
  • sound length display updates with pitch and offset modifications
  • new key colors added
  • all time displays standardized to H:M:S
  • realtime RAM usage meter on Windows
  • overall performance optimized and efficiency increased, making this the lowest latency Soundplant ever
  • 'simple' and 'detailed' view modes
  • waveform display
  • key settings can be adjusted even if no sound is assigned to the key, allowing for saving of empty keymap templates
  • 'low power mode' option
  • 'show key config after key hit' option
  • randomization settings for pitch, pan, and volume
  • code-based program registration system
  • Windows installer program
  • asynchronous dialogs and file loading guaranteeing seamless playback even while loading new sounds
  • play sounds with a mouse click
  • recently loaded keymaps pulldown list
  • 'save w/ sounds' function
  • wav file cue point support
  • 'save current key config as default' option






Invest in the Development of Soundplant & Support the Author by Registering

This program is distributed free for non-commercial use. If you use it commercially, and/or require the expanded file format support offered in the registered version, please purchase a registration code at the Soundplant home page. Soundplant 39 registered allows support for virtually all audio file types in existence; also, periodically, minor updates and fixes will be made to the program that will be available exclusively to registered users. Your contribution would be applied towards improving this program in the future (see planned improvements section) and providing an income to the author. Note that the free version includes a 25-launch trial of the registered features.







Soundplant Customization & Feature Sponsorship

Soundplant is available for new feature sponsorship or customization to meet you or your company's needs, for example, if you need a special extra function not offered in the public version, custom splash screen or interface design, specialized version for kiosk use, etc. Past Soundplant customization customers have included schools, museums, musicians, theaters, retailers, and audio engineers. Please send customization or feature sponsorship inquiries to soundplant [at] soundplant.org.







Planned for Future Versions

  • new audio engine with unlimited sound channels and possibly realtime effects; the tricky part is finding a way to do this without increasing latency or decreasing sound quality
  • sound output device selection option for systems with multiple sound cards; ideally, allow configuration of each key to output to a different device
  • a function to directly record Soundplant's output that allows selecting which keys' sounds to include in or exclude from the recorded mix
  • include an option to customize layout of onscreen keyboard to match your keyboard (whether laptop, desktop, azerty, etc.), with an included set of pre-defined layouts to match standard keybaords; better support for non-US keyboards
  • queue/'wait in line' feature that allows queuing up multiple sounds to be played in sequence, and/or add support for playlist files
  • allow control over holding down and releasing keys to make them function more like a music keyboard - find a way to get around computer keyboard hardware limitations to allow complex "chord" sustaining of multiple keys held down simultaneously; ability to disable key repeat on holddown and/or change triggering to keyup instead of keydown
  • allow multiple open keymaps via a tabbed display
  • beatmatch function that automatically sets a key's pitch to change its duration to match another key's sound duration or fraction of that duration
  • a 'decompress while playing' function for mp4 files similar to how Soundplant treats mp3s, for faster loading of mp4/m4a files
  • more detailed waveform display with zooming






Credits

Soundplant programmed and designed by Marcel Blum;
splash screen art by Jen Russo;
Soundplant uses FFmpeg, (c) 2000-2009 Fabrice Bellard et al., used under the GNU General Public License, source code available at the Soundplant website;
Soundplant was developed in the Lingo language with Adobe Director and uses extensions by Valentin Schmidt, Gary Smith, Lee Pyong Sub, Antoine Schmitt, and Marmalade;
Thanks also to Thirteen/WNET, Bob Wong of Audio Image Engineering, John-Hans Melcher, Direct-L and the Adobe Director community, and everyone else who knows they deserve it!






May 8, 2010
© Marcel Blum
Stapleton, Staten Island, New York, United States Of America
http://www.soundplant.org