Soundplant 26.1



Introduction & Features

Installation & Requirements

Usage Instructions

Usage Hints

About / History

Note on the limitations of the computer keyboard

.ini File

Manually Editing .keymap Files

Known Bugs & Other Issues

Support the Author / Invest in Soundplant

Contact

Planned / Considered for Future Versions

Credits

Legal







Introduction & Features

Soundplant 26.1 is a self-contained digital audio performance program that turns your computer keyboard into a fully customizable sample-triggering device. It allows the assignment of sound files of unlimited size to virtually all keyboard keys, with no external devices needed and no MIDI involved. It can be used as a drum pad, to add a live track to an already made song, to mix together tracks in realtime, to create music or loops from scratch, to quickly sketch sound designs, to give new life to old sounds, or as a performance or installation tool. Because it is not a synthesizer and instead uses your own digital samples, Soundplant is a virtually limitless electronic instrument. A 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, and panning; keyboard configurations can be saved and loaded. Here is a list of features:

Installation & Requirements

No formal installation is required; simply extract the files contained in the archive into a directory. To start the program, run Soundplant_261.exe. If desired, create a start menu shortcut to this file. A Windows 9x/NT/ME/2000/XP machine and a sound card are required (an experimental Mac OS 8.1 - 9.x version is also available). The program runs optimally when using a 450MHz or better CPU, a full duplex PCI sound card supporting DirectSound (or Quicktime if DirectSound is unavailable), and at least 64 MB RAM; but it also runs acceptably on much lesser-configured systems. Processor cache memory tends to have a significant effect on program performance, i.e. Athlons and Pentiums will perform noticeably faster than Durons and Celerons.

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







Usage Instructions

Aside from a few items, Soundplant is largely self-explanatory; simply drag and drop single or multiple sound files onto keys in the on-screen display of the computer keyboard. Use the mouse button, the mouse wheel, or the Control key to select keyboard keys for configuration, and then play around with the key options. Pressing any keyboard key will cause its assigned sound to play. A more detailed explanation of the usage of Soundplant follows. The least obvious items probably come up in the Key Configuration section.



The program window is divided into 3 sections: a top toolbar portion containing buttons for general program functions along with a realtime meter displaying sound channel use; a middle portion displaying the on-screen representation of the computer keyboard keys; and a lower portion that serves as a dynamic key configuration control panel.

General Function Toolbar and Channels Meter

A row of global function buttons at the top of the screen provide standard file operations. Keyboard configurations can be saved and loaded as '.keymap' files. These are small text files which contain references to the locations of the assigned sound files and their configurations; they do NOT contain audio data (Soundplant is non-destructive). Keymaps can also be loaded by dragging keymap files anywhere onto the stage, or by dragging keymap files onto the Soundplant program or shortcut icon (you can configure Windows to automatically open Soundplant when keymap files are double clicked). Clicking the 'New' button will reset all configurations and blank all sound file assignments (it will also clear the system memory of RAM-based sound files that were being used). 'RAM' gives you an instant snapshot of your system's available RAM (useful for determining whether or not sound files should be loaded to RAM as well as getting an idea of the cpu's overall resources at any given time; Soundplant does not differentiate between virtual and physical RAM, but heavy virtual RAM use will lead to decreased performance). 'Options' allows you set default folders for keymaps and sounds, select an external audio editing program, control the size of the program window, and set the size in bytes above which sound files will not automatically be loaded to RAM. Under 'Options' you can also adjust the sound mixing engine if you are having sound output problems. Soundplant's preferences are saved in the file 'soundplant.cfg', located in the same folder as the executable. If it is deleted, Soundplant will create a new version and revert to the default options. At the top right of the screen is the sound channels meter, which gives a real time indication of how many of the program's 8 stereophonic sound channels are in use (if all 8 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).

On-screen Keyboard

The keyboard display provides an overview of all of the useable keyboard keys. Each key can be color coded (in the configuration screen) for ease of reference. Keys show a green hilight while their assigned sound plays. Sound files can be dragged from any Windows Explorer or other OS file list window 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). The 'Esc' key is a universal silence key which stops all currently playing sounds. The Backspace key has a similar universal function but won't stop sounds that have a 'channel priority' set to 'high' (see below for more info on the channel priority setting).

Configuring Keys

In the lower portion of the screen, key configuration options can be set to control how a key starts and stops (kills) sounds. Each of the 72 assignable keyboard keys can have its own unique configuration. Click on any key to bring up its options; key options can also be cycled through by scrolling the mouse wheel button, or selected individually via the keyboard by holding down 'Ctrl' and pressing almost any key. The name and path of the key being configured is displayed, along with its assigned sound properties if the file has been loaded to RAM. A description of all options follows. Below that is an explanation of the key configuration function buttons.

Key and Shift+ Mode: This setting affects how Soundplant will respond if the key is pressed after the assigned sound has already been triggered previously and is still playing. In 'sustain' mode (default), Soundplant will simply trigger another instance of the sound over 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. 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 'Shift+' key mode controls the behavior of the key if pressed in conjunction with the 'Shift' key, allowing for additional key mode possibilities using the same key. The default 'Shift+' mode is 'kill', meaning that holding down the Shift key and pressing any key will kill sounds triggered by that key.

Color: Using the mini-keypad to the right of the displayed key name, you can select a color which determines how the key will appear on the main keyboard screen. Clicking on the thin rectangle bordering the colored mini-keys is equivalent to setting the key's color to the default unassigned color (brown). Soundplant will automatically assign a new color to keys every time a sound or batch of sounds is loaded.

File Mode: Sounds set to disk-based will use the least amount of cpu resources by playing directly from the source disk, but may not trigger as quickly/accurately as RAM-based ones (this depends mostly on the cache size and speed of the hard drive and cpu). Sounds under 5MB are loaded to RAM by default (this size limit can be changed under 'Options'). The main difference between the 'RAM' and 'disk' settings, aside from program performance issues, is that only RAM-based sounds can have loop, pitch, and offset settings. Loading a file into RAM may take several seconds depending on the size of the file and speed of the computer (if there is not enough free RAM, an error message should appear and the sound will be reset to disk-based). Generally, smaller files should be set to RAM-based, and longer ones to disk-based; Soundplant does this automatically by default, but specific situations will certainly require otherwise, and there is little noticeable difference between playing very small sound files from disk or RAM on fast machines. If you are using a computer with plenty of RAM to spare, then you should use the 'Options' function to increase the auto-load to RAM file size. Note that in normal circumstances, setting a sound from 'RAM' to 'disk' will instantly free up and make available 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 feels like allowing it to be available for stability reasons).

Loop: (for RAM-based sounds only) Sounds set to loop will do so ad infinitum until they are killed. Sounds are set to 'don't loop' by default. If the sound has offsets defined, then the loop will only occur between the two defined offset points.

Channel Priority: This setting enables fine tuning the manner in which sounds are killed by Soundplant. '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; the only other way to kill a 'high' priority sound is to have the key mode set to 'kill'. 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.

Offsets: (for RAM-based sounds only) This allows you to limit the portion of the assigned sound that is played when the key is pressed. Define a start point and end point for the offset in milliseconds using the left and right sliders or adjust on a finer level using the arrow buttons. Click and drag the colored space between the two sliders to move both the start and end point markers simultaneously. Use offsets to extract individual sounds out of a larger track; see 'batch offset' below for a quick and automatic way to splice portions of the assigned sound across multiple keys.

Pitch Shift: (for RAM-based sounds only) Use the slider to adjust the pitch (speed) of the sound in semitones. 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. Octave markers are provided along the pitch shift 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. Unfortunately, the 'pitch shift' setting does not function in realtime and only effects the next trigger of the sound (but, it can still be toggled in realtime while repeatedly triggering the key to create pitch-sliding effects). Double clicking anywhere along the pitch slider bar will reset the pitch to 0.

Volume and Pan Control: If the 'realtime' box is checked, these controls will effect the volume or pan of all previously triggered instances of the key's sound that are currently playing. If 'realtime' is unchecked, then the setting will only apply to the next time the key is pressed. Double clicking anywhere along the pan slider bar will reset the pan to 0; double clicking the volume bar will reset the volume to 255.

Key Configuration Function Buttons:

Open: Brings up a dialog box for manually browsing for sound files. It is generally easier to assign sound files to keys by dragging and dropping them rather than by using 'open' to select them one by one. However, 'open' is useful when you want to replace the key's sound file but retain its configuration settings.

Reset: Blanks the key's settings, reverting it back to its unassigned state. If a file had been assigned to the key and loaded to RAM, 'reset' will unload the sound and free that RAM.

Copy: Duplicates the key's assigned settings onto another key in a memory efficient manner (i.e., if the assigned sound is RAM-based, 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 use the mouse to select a target key on the keyboard display. You can only select an unassigned key as a target.

Pitch Assign: (for RAM-based sounds only) This 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 use the mouse to select a group of unassigned keys next to the current key. As you roll the cursor over the keyboard display, 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: (for RAM-based sounds only) As powerful as 'pitch assign', this feature 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 use the mouse 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 and text displayed below will dynamically report the potential length in milliseconds of each key's slice of the sound (depending on the amount of keys selected and the length of the original sound). 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.

Edit: This button is for the editing of audio files in an external editing program. You may find that while using Soundplant, work will often need to be done in an audio editor in order to fine tune (literally and figuratively) your sound files. The 'edit' button will launch the audio editing program selected under 'Options' and attempt to make it load the key's assigned sound file. If the sound file had been loaded to RAM, then when you return to Soundplant from the editing program, Soundplant will prompt to ask if the newly edited file should be reloaded to RAM to replace the currently loaded data; if the sound file had been copied or batch-assigned to other keys, then those other keys will naturally also refer to the new sound in memory. If you want to create new, edited/processed versions of a sound, simply use the 'edit' function and then use your editor's 'save as' function.

More Usage Remarks...

Soundplant plays its sound through whichever sound device is selected as the Windows default. You will be able to record the output of this program internally by setting your full duplex sound card's input to 'wave' or 'loopback' or 'wave out' and using any audio editing/recording program (see bugs section for issues related to recording). When I describe this program as 'stand-alone,' I refer to the fact that it requires no external devices and involves no MIDI; but in order to get the most out of this program, an audio editing application obviously must be kept handy in order to create and/or edit the samples you will use with Soundplant. You will get even more use value out of this utility by using the music that you create with Soundplant in conjunction with other sound applications and vice-versa.

For sound mixing, Soundplant defaults to using DirectSound; if this is not available, the program will try to load Quicktime 3 or greater (available free from Apple). Using Quicktime mixing will decrease program performance slightly, but is still acceptable. If neither of these options are available, Soundplant will use its internal mixing routines (by Macromedia) which give unacceptable reaction times (but it will still work).

Email bug reports to soundplant [at] soundplant.org.

That's all there is to know for now. You may want to take a look at the planned future features section.







Usage Hints

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

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 freeware 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 to have the perfect combination of artist-friendliness and complex functionality through Lingo.

The first release version of Soundplant, 'beta 12', was produced between January and June of 1999 in Buffalo, New York, USA. Through August 2000, later versions with bug fixes and minor enhancements were made available to registered users. This second public freeware release, version 26, was produced in spurts in September 2001, and February, April, August and September 2002 in Brooklyn, New York, USA. It has the following major additions & improvements over the old version: keymap and sound file drag and drop support; program completely reengineered for maximum efficiency; control of 22 more keyboard keys (function keys, edit keys, arrow keys); pitch control & batch pitch assignment; volume and pan control; visual indication of which keys are playing; 'pause-play' key mode; channel priority control; Shift+key mode for each key; sample offset control; batch offset assignment; sound properties displayed; key copy function; mouse wheel support; most (all?) annoying old Soundplant bugs fixed; config file for storing preferred file paths, sound editing app path, and window size. Epilogue: in late September, a 26.1 version was released which allows the user to choose the sound mixing method that works best on his/her machine.









Note on the limitations of the computer keyboard

When any key is held down continuously, Soundplant detects multiple key presses (at rates which differ between computers; this can be set in the Windows 'Keyboard' Control Panel) 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 (but see the planned future features section). 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. With regards to simultaneously pressing multiple keys (what you might call 'chords'), you may find that certain keys do not respond well to this; generally, you won't be able to press more than 4 or 5 keys simultaneously as a 'chord.' This will vary among different keyboards. You may initially find it awkward making live music using the computer keyboard, but you'll get used to it; there are advantages as well as disadvantages over similar music-making systems.







Soundplant_261.ini

The ini file is self-documenting and contains some settings which can be toyed with if you are having sound output problems. There is a parameter controlling which sound device on the system to use for sound output (for use if you have more than one sound card or a multitrack sound card), although I have not gotten it to work consistently for me. There is also a setting which controls (limits) the fidelity of the mixed sound output (and thereby controls/limits overall cpu resource usage). This of course is set by default to the highest quality, but it can be changed to suit slower computers if desired.







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 a program like Notepad. This may be necessary if you want to restore a keymap whose sound files you have moved or renamed or if you have moved to a different computer. 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. Soundplant 26 keymaps are in a different format than older version keymaps (though you can still load older keymaps) and are not as easy to 'human read', since keyboard keys are not explicitly referred to by their letters, but rather by a more efficient numbering system. However, altering file paths is just as easy; 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:\oldsounds" to "d:\newsounds".







Known Bugs and Other Issues

Recording Issues

This program does not come with its own recording feature, and therefore an audio recording/editing program must be used to internally record the sound output of Soundplant. If your sound card does not have an internal recording function (note: almost all sound cards do via the Volume Control/Recording Control panel; some include special software for this function as well), try using a program which simulates one such as Virtual Audio Cable (you would need to set your default Windows sound device to the VAC device, and your audio editing program recording source to the VAC device, in order for this to work). I have found that some very old ISA sound cards may not be able to properly record the output of Soundplant internally (sound play becomes distorted while loopback recording is taking place [but this creates some interesting effects in its own right]).

Sounds With Odd Sample Rates

Though Soundplant 26 supports all possible sample rates, sound output mixes most efficiently and seems to sound best if all samples played at any given time are 16-bit, 44 kHz. Because all sounds are resampled for the final 44.1 kHz mix, you may occasionally find that a low quality sound will sound better in the Soundplant mix if you first manually upsample the sound yourself in an audio editing program (rather than let DirectSound try to do this processing in realtime). Also, you may find that on some systems lower quality sounds will trigger faster if you first resave them as 16/44.

The Numeric Keypad

Soundplant does not treat the numeric keypad on the right end of the computer keyboard 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. For example, if numlock is on, pressing the '7/home' key will have the same effect as the '7' key; if numlock is off, it will be the same as the 'home' key. Feel free to use the numeric keypad with Soundplant as if it were a set of duplicate keys.

Random Sound Playback Problems

If Soundplant is playing sounds incorrectly or slowly, it is possible that you need to change the 'sound mixing' setting in the Options. Some software/hardware combinations can cause Soundplant to not be able to properly use the default and optimal sound mixing option, DirectSound. QuickTime is the second best option for performance; it requires the free download of QuickTime from Apple. Unless you know for sure that you can't use DirectSound on your system, you should try and update your sound card drivers and DirectX before resorting to using Quicktime.

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 in Windows, 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 such as Windows Media Player. As the sound plays, lower the Windows Media Player 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 generating sound.

Ctrl + key Issues

This feature is included to make it easier to quickly configure multiple keys for those who don't have a wheel/scroll mouse, but several keys do not work with it: F4, `, -, =, [, ], semicolon, comma, ', /, \ enter (strangely, this brings up the J config screen because ctrl-J = line feed).







Invest in the Development of Soundplant / Support the Author

This program is freeware. If you enjoy using this program or use it commercially, and have significant disposable income, go to the support area of the Soundplant home page and purchase the registered version. Soundplant 26 registered adds support for mp3 files; 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. You could also mail-order a cd of music and interactive artwork by the author, or even hire the author to create an interactive multimedia program (as of this writing, the author's main income source is programming and producing web-based and DVD/CD-ROM-based multimedia educational, documentary, and presentation software). Either option would help support the program and entitle you to discounted upgrade offers in the future.









Contact

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 an actual live performance/installation environment.

If you would like to send me something by postal mail (cd, vinyl, equipment donation, etc.), I would prefer that you check with me by email for a current address first.

Check the web site for updates at http://www.soundplant.org

Although many of these features may not be fully in place by the time you read this, I'd like to eventually include on this website: the very latest version of Soundplant; news and updates; links to an anonymous ftp site for uploading songs you made with Soundplant (I will choose the best songs feature them on the Soundplant website as a demonstration of the program); music and other artwork made by the author of the program.







Planned / Considered for Future Versions







Credits

Soundplant program and documentation by Marcel Blum;
intro screen art by Jen Russo;
thanks to those who know they deserve it and Kent Kersten, (Gary Smith * 3), W!d, Thirteen/WNET.






Legal

This software has not been tested on an extremely wide variety of machines; the user of this software acknowledges this and takes on all risks involved with the use of this software. Though there are no known harmful aspects of this program, the author can not be held responsible for any unintentional damage to end-user equipment or body parts resulting from the use of this program.

This program is 'registerable' freeware; the freeware version may be freely redistributed over the internet provided that the original archive contents remain intact. Please notify the author (soundplant [at] soundplant.org) before redistributing on any fixed media (such as CD-ROM).







September 22, 2002
(c) Marcel Blum
http://www.soundplant.org