Soundplant 50.7
User Manual
Soundplant home:
https://soundplant.org
Introduction:
Usage Instructions:
Contact
Usage Hints
Manually Editing .keymap Files
About / Release History
Soundplant Customization & Feature Sponsorship
Planned for Future Versions
Credits
Introduction
Soundplant is live performance audio software that turns your computer keyboard (yes, your QWERTY keyboard) into a versatile, low latency, multitrack sample trigger and playable musical instrument. It allows the assignment of sound files of any format and length onto virtually all keyboard keys, giving you hours of instantly-playing random access audio at your fingertips with no extra hardware needed. Use Soundplant as a performance, presentation, or installation tool, as a drum pad, as an educational aid, to mix together tracks in realtime, trigger sound effects or background tracks during a show, create music or loops, sketch sound designs, make beats, and give new life to old sounds - all via an input device you've been practicing on for as long as you've been typing. Because it's a standalone software sampler that uses your own samples to create custom soundboards, Soundplant is an infinitely flexible electronic instrument limited only by the variety of sounds that you feed it. An easy to use interface provides drag & drop configuration of each key, including options which control the way each sound is triggered along with several realtime effects. Playing sounds are displayed with a progress bar and track time, and you can even trigger sounds with Soundplant hidden while using any other program.
Soundplant is not a synthesizer, plugin, editor, or sequencer, but it is way more than a media player. Soundplant was designed to do one thing and do it well: to trigger sounds 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, its versatility for handling sounds of all types from short effects to full length songs to hours-long mixes, and its ultra-optimized use of the computer keyboard with lowest-possible latency requiring no extra hardware.
v.50.7 System Requirements
The Windows version runs on minimum Windows 7 or higher, 64-bit required
The Macintosh version runs on minimum macOS 10.13 High Sierra or higher & natively supports Apple Silicon & Intel
For best performance, a computer from 2016 or later with a 4+ thread CPU, 8+GB RAM, & a dedicated GPU is recommended; for basic use, Soundplant can run on most computers made in the last 10+ years, but on older/slower machines you may have to turn down some settings. Your built-in cheapo soundcard will work fine, and so will any professional quality audio interface. For optimal display, minimum 1280×720 screen resolution is recommended.
Licensing
Soundplant is independently produced software distributed as free for non-commercial use, with a 25-launch trial of the registered version features. If you use Soundplant commercially (defined as: if you make money while using Soundplant), and/or require the professional features of the registered version, please purchase a license at the Soundplant web site. Your support will help improve this program in the future (see planned improvements section). The 25-launch trial allows you to try all features before you buy so that you can be sure it completely meets your needs before purchasing. Soundplant's flexible Single User License permits one person to run Soundplant on multiple Windows and Mac computers. For organizations, Soundplant offers multiuser and unlimited user licensing options.
The registered (paid licensed) version permits unlimited use of the following pro features:
- expanded sound file format support for sounds above 16-bit, compressed files (.mp3, .mp4, .flac, etc.), and audio from video files
- input & output recording
- background key input
- sound output device selection, including ASIO on Windows
- MIDI triggering
- multiple instances
- output sample rates up to 384 kHz
Usage Instructions
Quick Start
Soundplant is designed to be largely self-explanatory. For the most basic usage, simply drag and drop sound files onto onscreen computer keyboard keys. Pressing any keyboard key will play its assigned sound, and so will double clicking the onscreen key. In the default configuration, hitting Shift + the same key stops the sound, and hitting Escape stops all playing sounds. Click any key to select it and configure its settings 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 in the Global Function Toolbar along the top of the screen.
A more detailed explanation of the usage of Soundplant follows. The least self-evident items will be marked with a red flag for those who want to just skim these instructions.
In the default detailed view mode, the Soundplant window is divided into 5 main sections:
- the Onscreen Keyboard in the center
- the Key Configuration Panel on the bottom, with controls for editing the behavior of each key, the sound waveform, and sound properties information; all of these controls pertain to individual keys
- the Key Function Toolbar within the Key Configuration Panel, with key-specific functions
- the 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 and custom-labeled (in the Key Configuration Panel) for ease of reference. Keys show an animated white glow while their assigned sound plays, which gradually lessens in relation to sound playback progress, moving out toward the edges of the key as the sound reaches its end. This glow animation can be turned off under Preferences ➔ interface ➔ animated key glow to force it to display a fixed highlight while playing instead of an animated one. Keys that are queued or paused have a pause icon; keys that are looping have an infinity icon. Keys show a thin yellow border while they are pressed which disappears when released.
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 at once, 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.
Key configurations (including assigned sound and settings) can be moved from one key to another by clicking and dragging a key and dropping it onto another key; if done while holding Ctrl (Windows) or Option (Mac), the key assignment is copied rather than moved. Keys can also be dragged from one Soundplant window to another.
There are 3 collapsible-expandable keyboard sections, divided into main keys (all main numbers & letters), navigation keys (Home/End/arrows/etc.), and numpad (the numeric keypad). Sections can be collapsed by clicking on the blue minimize button that appears in the upper right corner of each section when hovered over (see pic). At least one section must remain expanded at any time. If the navigation keys are collapsed but the main keys remain open, the arrow keys slide over to the main keyboard area, as on most laptops layouts.
While in the default detailed view mode, a single click to any key brings up its settings in the Key Configuration Panel, and a double click to any assigned key plays its sound; in 'simple' or 'info' view, a single click plays its sound, and a mouseup simulates a key release. A double click to any unassigned key opens an open sound dialog.
The Escape key is a universal silence key which kills (stops) all currently playing sounds, and the onscreen Escape key can be single clicked to achieve the same function.
The Backspace/Mac Delete key has a similar silence function but can be configured to have a more finely targeted functionality in conjunction with the channel priority and fade settings, and it won't kill sounds that are queued.
By default Ctrl+Shift+Backspace (Windows)/Ctrl+Shift+Delete (Mac) performs a fade out all that initiates a fade out in all currently playing sounds using the fade out length set in each key's fade time. This behavior can be changed under Preferences ➔ miscellany ➔ Backspace/Delete function.
Key Configuration Panel
In the lower portion of the screen, key configuration options control how a key starts and kills sounds, realtime effects can be set, MIDI triggers can be assigned, and information about the sound is displayed, including a visualization of its waveform. Each of the 88 assignable keyboard keys can have its own unique configuration. Key configurations can only be modified while in the default detailed view mode.
Selecting Keys
To select a key for configuration, do any of the following while in '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 Key Configuration Panel.
If the key has a sound file assigned, a visualization of its waveform is displayed on the bottom. On the top, the file's name, path, and sound properties are shown including the bit depth, sampling rate in kHz, number of channels, length in h:m:s:ms, and file size in MB Note that in the case of compressed files like .mp3, .mp4, .flac, etc., the displayed file size is the uncompressed size, e.g. the actual size of the decompressed audio loaded in RAM at 32-bit depth. Soundplant, unlike typical media players, decompresses sounds in their entirety on loading rather than during playback, allowing for lowest latency and best quality.
An alternative way to play the selected key's sound (e.g. simulate a key press) via single mouse click is to click the large letter of the key in the upper left corner of the Key Configuration Panel, where a green play button will appear on mouse hover (see pic); this can be especially helpful for use with touchscreens.
Multiple keys can be selected by holding down Ctrl (Windows) or Command ⌘ (Mac) and single-clicking the desired keys, or Ctrl/⌘+clicking and dragging to select a range of keys, or Shift+clicking to select all keys between the clicked key and the last selected key. This allows for settings to be adjusted in bulk for many keys simultaneously in realtime. Multi-key selection mode can be exited by single clicking any key, or by pressing the Escape key (note: hitting Escape while in multi-key selection mode will not stop any sounds). When in multi-key selection mode, settings that differ between keys will appear blurred out or invisible until they are adjusted to make the settings identical. If the keys selected all have the same sound file assigned then the waveform will display and start and end offsets are bulk-settable; if offset settings differ between keys with the same sound then the differing offset slider will have a contrasting color until clicked to make the settings identical.
Key Settings
A custom key label can be set by clicking on the large sound file name text. A cursor will appear allowing editing the label; Soundplant will ignore sound triggers while typing into this field. By default Soundplant will automatically label the key with the name of the sound file minus the file extension, but you can use this function to set it to any text you like. Or, for playlist-triggering keys that have no assigned sound, the default playlist key label "[playlist]" can be changed to a custom name. Only a key with a sound file assigned or a playlist can have a custom label.
Clicking full sound file path text beneath the large key label opens a new window in Explorer/Finder to the containing folder of the sound file.
keymode and shift+ mostly affect how Soundplant will respond if the key is pressed or released after the assigned sound has already been triggered and is still playing. It's important to understand that if the key's sound is not yet playing, then pressing the key will always start its sound regardless of which keymode is set. 'shift+' controls the behavior of the key if pressed in combination with the Shift key, allowing the flexibility of an additional keymode function on the same key.
- In sustain mode (default), if the sound is playing, Soundplant will simply trigger another overlapping instance of the sound in the mix.
- In restart mode, if the sound is playing, Soundplant will stop the sound and restart it from the beginning.
- In kill mode, if the sound is playing, Soundplant will stop the sound instantaneously. If multiple instances of the sound are playing (triggered by sustain mode), 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 kill/hold mode, pressing and holding starts the sound, and releasing stops the sound.
- fade mode enables triggering fade ins and fade 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 over the fade in duration set in the fade time controls; if the sound is already playing, then hitting the key fades out the sound from its current volume to 0% using the set fade out duration and then kills the sound. To adjust fade times, click and drag the time values for in and out in the fade time panel (hold shift while dragging for high precision adjust mode). When a sound is in the process of fading, a fade progress indicator line displays over the sound's representation in the Channels Meter, moving up from bottom to top along with the sound's volume level as the sound fades in, and down from top to bottom as it fades out. 'fade' can be used in conjunction with other keymodes via 'shift+' to start and stop sounds with and without fades as needed for maximum flexibility. For example, with Tab set to 'keymode':'kill' and 'shift+':'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. You can also set the fade in or out time to 0 if, for example, you only want a fade out but no fade in, or vice-versa, without needing to use Shift.
Fade times are automatically overridden in certain situations: fade in length is clamped to the lesser of the sound length or the preset fade in time, and fade out time is clamped to the lesser of the sound's time remaining at the moment of the triggered fade out or the preset fade out time.
To fade out all currently playing sounds, the key combo Ctrl+Shift+Backspace (Windows)/Ctrl+Shift+Delete (Mac) serves as a global 'fade out all' function and will use the fade out time set under fade time for each individual sound.
Also note that sounds can be set to automatically fade out on the next start of any sound using 'autofade' channel priority.
The fade time panel includes 2 togglable options:
- fade out to end gives the sound a dynamic fade out time based on its playback progress at the moment that the fade out is triggered. For example, if a track is playing and has 30 seconds remaining and then a fade out is initiated, with 'fade out to end' on, the sound would fade out over those final 30 seconds, reaching 0% volume at the instant the sound reaches its end.
- fade to pause makes the sound fade out to a paused state or fade in from a paused state. If a sound has not been started yet, pressing its key in 'fade' mode with 'fade to pause' on simply starts the sound fading in. Likewise, if a sound is playing and has less time remaining than the set fade out time, even with 'fade to pause' on, if the key in 'fade' mode is pressed it will simply fade out to the end.
- In fade/hold mode, pressing and holding the key starts the sound fading in, and releasing the key initiates the fade out; this can be used to mimic traditional synthesizer attack/release behavior. Note that with the fade keymodes, if the sound is already playing and in the middle of a fade out, pressing the key again will trigger a new overlapping instance of the sound fading in (similar to 'sustain' but with a fade in).
- In mute mode, if the sound is playing, it's muted, continuing to occupy a sound channel and playing at 0% 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 essentially becomes a mute/un-mute toggle switch while the sound is playing.
- In mute/hold mode, pressing and holding starts the sound, releasing the key mutes it, and pressing again unmutes, such that the sound is only audible while the key is being pressed.
- 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. A paused sound in the Channels Meter appears with a pause icon, as does its key.
- In pause/hold mode, pressing and holding starts the sound, releasing the key pauses it, and pressing again unpauses, such that playback only progresses while the key is being pressed.
Sounds set to loop will do so ad infinitum until they are killed. If the sound has start and/or end offsets defined, then the loop will only occur between the two defined offset points. The loop setting is realtime and will apply to all currently playing instances of the key's sound. If you want a sound to repeat only a fixed number of times, or start from one point but loop from another point, instead of using this infinite loop function create a playlist.
The channel priority setting enables fine tuning the manner in which sounds are killed automatically by Soundplant. This setting has no effect on the behavior of a key's individual 'kill' keymode for explicitly killing single sounds, but it does effect the behavior of the global silence keys Escape and Backspace/Mac Delete, and it can be used to set specific keys to kill other keys. It has the following options:
- normal priority sounds (the default setting) are killed when Escape or Backspace/Delete is pressed.
- high priority sounds are killed when Escape is pressed, but are ignored by Backspace/Delete. For example, you can set long background sounds to 'high' and short foreground sounds to 'normal' to ensure that you can use Backspace/Delete to abruptly stop multiple foreground sounds as needed while avoiding eliminating the higher priority background track from the mix.
- highest priority sounds can only be killed by pressing the key itself in 'kill' keymode; neither Escape nor Backspace/Delete will stop it.
- autofade sounds will automatically fade out on the next sound trigger by any key. The fade out will have the duration set under fade time (unless the time remaining in the track is shorter than the set fade out time, in which case the fade out will occur over the remaining duration of the sound).
'autofade' makes it easy to automate crossfades between tracks when used in conjunction with the fade keymode.
- autokill is similar to 'autofade' except the sound is instantly killed on the next sound trigger by any key. As such, only 1 sound set to autokill can be playing at any time.
If you want to limit Soundplant to playing 1 sound at a time, simply set all keys to have 'autokill' priority.
- autokill group # allows even finer tuning monophonic kill behavior by setting groups of keys to only autokill sounds in the same group. This can be useful in complex keymaps where standard 'autokill' does not allow enough specificity, and can be used to simulate monophonic or "single voice" instrument sections; for example if you want to have a monophonic drumpad on one side of the keyboard and a monophonic synth on the other but you want to be able to play both groups of keys at the same time, each can be assigned a different 'autokill group'. Soundplant allows an unlimited number of groups to be created, and each time a new autokill group is assigned, an additional autokill group number option becomes available in the channel priority menu. By their nature, only 1 sound set to a specific autokill group can be playing at any time.
Blank unassigned keys can also be set to an autokill group to serve as a custom kill-only key to kill any key in the group.
If limit 1 play is on, the sound will only be permitted to play once per session. Once the sound ends (whether on its own or manually killed), subsequent presses to the key have no effect. But while it is playing, keymode functions can still be triggered using the key, for example it can be paused, killed, faded, etc. as per its keymode. When the key reaches "finished playing once" status, the onscreen key appears dimmed out, though it is still selectable and editable. Its "finished playing" status can be reset by turning off 'limit 1 play', or reloading the keymap, or:
Key combo Ctrl+Shift+1 resets the "finished playing" status of all 'limit 1 play' keys at once, so they can be played again.
'limit 1 play' is ignored while in zoom waveform view to allow playing repeatedly while fine tuning offset points.
Realtime Effects
There are 7 realtime effects units which can be used in combination to tweak the sound or alter it beyond recognition, all non-destructively (not permanently saved in the source sound file). Soundplant is more intended for low latency sound triggering than serious DSP use, but offers this balanced selection of relatively cpu-light filters to modify and tune sound without harming latency (when used in moderation). Effect labels are highlighted to indicate whether they are active or not; when turned on, an effect is a part of the sound's realtime processing graph and is actively using computer resources, which can effect latency and sound quality if used heavily on many keys at once, especially at high output sample rates.
In addition to clicking and dragging, effect knobs can be modified by using a mousewheel or trackpad scroll while hovering over the knob.
Holding down Shift while adjusting any knob enables high precision adjust mode allowing smaller fractional value increments.
Most effects are computed uniquely per-key, which allows infinite possibilities for sound design but also means that turning on a lot of different effects on a lot of different keys can quickly multiply the CPU resources required and potentially lead to audio glitches especially on slower computers. Volume, pan, and pitch speed are all computationally negligible, but other effects can require more intensive processing. The processing graph starts with the volume gain unit as the base sound emitter, which is connected to all other units in a chain ending at reverb. Since reverb is the most cpu-expensive effect, reverb processors are paraphonically shared between keys for efficiency. The effects chain is routed in the following order:
┌─────────┐ ┌──────┐ ┌────┐ ┌────────────────┐ ┌───────────┐ ┌─────────┐ ┌──────────┐ ┌────────────┐ ┌──────────────┐ ┌──────────┐
│dry sound├─►volume├─►pan*├─►processed pitch*├─►distortion*├─►ring mod*├─►eq/filter*├─►reverb send*├─►shared reverb*├─►master out│
└─────────┘ └──────┘ └────┘ └────────────────┘ └───────────┘ └─────────┘ └──────────┘ └────────────┘ └──────────────┘ └──────────┘
*if active
So in a typical Soundplant session, with sounds assigned to the Q and W keys and several instances of both the Q and W sounds playing at once, the realtime effects graph would look like this, with each key's unique effects paraphonically shared by the different instances of each key's sound, and then all keys paraphonically sharing reverb (provided they are all using the same reverb impulse response type):
┌──────────┐
│ Q key │
│ sound ├──┐
│instance 1│ │
├──────────┤ │
│ Q key │ ┌▼─────┐ ┌────┐ ┌────────────────┐ ┌───────────┐ ┌─────────┐ ┌──────────┐ ┌────────────┐
│ sound ├─►volume├─►pan*├─►processed pitch*├─►distortion*├─►ring mod*├─►eq/filter*├─►reverb send*├─┐
│instance 2│ └▲─────┘ └────┘ └────────────────┘ └───────────┘ └─────────┘ └──────────┘ └────────────┘ │
├──────────┤ │ │
│ Q key │ │ │
│ sound ├──┘ │
│instance 3│ │
└──────────┘ ┌▼─────────────┐ ┌──────────┐
│shared reverb*├─►master out│
┌──────────┐ └▲─────────────┘ └──────────┘
│ W key │ │
│ sound ├──┐ │
│instance 1│ │ │
├──────────┤ │ │
│ W key │ ┌▼─────┐ ┌────┐ ┌────────────────┐ ┌───────────┐ ┌─────────┐ ┌──────────┐ ┌────────────┐ │
│ sound ├─►volume├─►pan*├─►processed pitch*├─►distortion*├─►ring mod*├─►eq/filter*├─►reverb send*├─┘
│instance 2│ └▲─────┘ └────┘ └────────────────┘ └───────────┘ └─────────┘ └──────────┘ └────────────┘
├──────────┤ │
│ W key │ │
│ sound ├──┘
│instance 3│
└──────────┘
*if active
Randomizing Effects
Each effect knob has a randomize button to toggle its random mode. This powerful feature allows setting a value range along the knob within which Soundplant will select a random value and assign it to each subsequent triggered instance of the sound; this can be used to create interesting variations in sounds. Set the random range boundaries by clicking and dragging either end of the knob.
Adjust both boundaries simultaneously while maintaining range size by clicking and dragging from the center of the knob or using the mousewheel or trackpad scroll.
Double click any randomized knob to set the random value range to the maximum range.
With great power comes great responsibility! When randomization is on, multiple playing instances of the same key's sound can no longer paraphonically share the same effect processors between each instance. This applies to the randomized effect unit and all effect units behind that effect in the chain so that each playing instance maintains its own unique effects processing path. This enables richer sound variation, but can lead to greater cpu demands and, in intensive scenarios (like when playing dozens of sounds at once) and on slower computers, a higher chance of audio glitching unless latency settings are increased, because of the potential exponential increase in processing demands. Drawing from the example above, if each key Q and W have randomized ring mod effects, the processing needs inflate for almost every effect along the chain:
┌──────────┐
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │
│ Q key │ │instance│ │instance│ │instance │ │instance │ │randomized│
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├──┐
│instance 1│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘ │
└──────────┘ │
┌──────────┐ │
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │ ┌▼─────────┐ ┌────────────┐
│ Q key │ │instance│ │instance│ │instance │ │instance │ │randomized│ │key shared│ │key shared │
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├─►eq/filter*├─►reverb send*├─┐
│instance 2│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘ └▲─────────┘ └────────────┘ │
└──────────┘ │ │
┌──────────┐ │ │
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │ │ │
│ Q key │ │instance│ │instance│ │instance │ │instance │ │randomized│ │ │
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├──┘ │
│instance 3│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘ │
└──────────┘ ┌▼─────────────┐ ┌──────────┐
│shared reverb*├─►master out│
└▲─────────────┘ └──────────┘
┌──────────┐ │
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │ │
│ W key │ │instance│ │instance│ │instance │ │instance │ │randomized│ │
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├──┐ │
│instance 1│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘ │ │
└──────────┘ │ │
┌──────────┐ │ │
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │ ┌▼─────────┐ ┌────────────┐ │
│ W key │ │instance│ │instance│ │instance │ │instance │ │randomized│ │key shared│ │key shared │ │
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├─►eq/filter*├─►reverb send*├─┘
│instance 2│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘ └▲─────────┘ └────────────┘
└──────────┘ │
┌──────────┐ │
┌──────────┐ ┌────────┐ ┌────────┐ ┌────────────────┐ ┌───────────┐ │instance │ │
│ W key │ │instance│ │instance│ │instance │ │instance │ │randomized│ │
│ sound ├─►volume ├─►pan* ├─►processed pitch*├─►distortion*├─►ring mod ├──┘
│instance 3│ └────────┘ └────────┘ └────────────────┘ └───────────┘ └──────────┘
└──────────┘
*if active
As you can see, we went from 7 potential effects processing nodes for each of 2 keys for 14 total processors in the chain, to 17 potential nodes per key for a total of 34 processors. And if eq or reverb wet were randomized also then those nodes would have to be multiplied as well because they could no longer be shared by the concurrent instances of the same key. This is not to discourage use of Soundplant's effects capabilities - by all means go nuts and create some awesome sounds! - but knowledge of these effects routing implications of randomization and multiple sound instances can help diagnose latency bottlenecks and enable more judicious use of effects when processing limits are hit up against.
The following effects are available and separately configurable for each key:
volume sets the sound's amplitude level. This volume control uses processed amplification at values above 100%, which can be helpful for quiet sounds but can lead to distortion. Note that volume is the one effect unit that is always on/active. When other effects are active, the volume controls the base input gain of the dry unprocessed sound into the rest of the effects chain.
Double clicking the knob while not randomized sets the volume to 100%.
pan sets the sound's location in stereo space, implemented as a "true pan" in which both left and right channels are mixed and shifted simultaneously and remain audible rather than one channel simply being faded out. For example, a pan of -100% means that both the left and right channels are audible entirely on the left channel.
Double clicking the knob while not randomized resets the pan to 0%.
pitch+time offers different ways to adjust the pitch of the sound in semitones, with precision to the cent or 100th of a semitone enabling microtonal accuracy if Shift+drag is used. Both speed and processed can be used in combination to change the tempo of the sound without altering pitch, either automatically via the lock pitch toggle or manually (for example, to lower the speed by 20% while maintaining the original pitch, lower the speed knob to -3.85 semitones and raise the processed knob by the opposite amount to +3.85 semitones to compensate).
Double clicking either knob while not randomized resets its value to 0.
- The speed knob uses a "resample" pitch shift which affects the duration of the sound in addition to its pitch, i.e., lowering pitch will slow down the sound and raising pitch will shorten the sound; when adjusting speed, the sound's duration display will adjust to reflect the modified length of the sound. For example, a sound with a pitch setting of +24.00 semitones will be two octaves higher than, 4× the speed of, and 1/4 the duration of the same sound set to its default speed (0.00 semitones). This type of shift does not increase CPU use or latency, and pitch accuracy is perfect at any amount of shift.
- The processed knob uses realtime processing to alter pitch without changing speed, which can introduce distortion and incur a CPU use cost which varies depending on the timestretch quality setting and the amount of shift.
- The default low quality uses a fast low latency Doppler-delay pitch shift method with minimal CPU expense but imperfect pitch accuracy especially at larger shifts (though it can generate some interesting effect artifacts). CPU use does not increase with larger shifts.
- high quality uses a more CPU-intensive overlap-add method with post-filtering to maximize quality. It performs best on a high core CPU, and typically adds ~10ms of latency due to its using a small buffer for greater accuracy. Larger shifts bring more audible distortion and increased CPU use, but pitch accuracy is generally maintained. Warning: Having many instances of 'high quality' pitch shift processing simultaneously can lead to higher global latency or audio glitching especially on older/slower CPUs.
(Note that a higher quality non-realtime timestretch can be obtained by prerendering in a dedicated audio editor using algorithms favoring accuracy over latency/processing time, but Soundplant's realtime processed pitch shift can be handy for fine tuning adjustments, realtime slides, and randomization.)
- lock pitch enables pitch-preserving tempo shift by automating processed pitch shift compensation while adjusting speed. While 'lock pitch' is on the 'processed' pitch knob is disabled and only 'speed' is user-adjustable. Pitch becomes locked at its setting at the time of activating 'lock pitch', taking into account both the 'speed' and 'processed' knob settings. For example if 'speed' is set at -2 semitones and 'processed' is at +3 semitones and then 'lock pitch' is toggled on, the sound's pitch will then be maintained at 1 semitone above its original unmodified pitch while changing speed.
The filter unit allows suppressing or emphasizing different frequencies of the sound and contains 3 effect options:
- eq, the default option, is a 3 band equalizer separating the sound's frequencies into 3 knobs which can each be adjusted from 0% (off entirely) to 300% processed amplification. It can be used, for example, to cut out the bass by decreasing the low knob to 0, or to isolate desired frequency ranges. The resonance knob controls the Q value of the filter which affects damping and bandwidth overlap between the knobs' frequency ranges and can subtly modulate the resulting sound's warmth to achieve interesting effects and highlight different frequencies. Its default value of 10 most closely resembles typical stereo equalizer behavior. Resonance will have no effect on the sound unless one of the frequency knobs is active (above or below 100%). By default the low knob controls frequencies below 225Hz, the mid knob between 225Hz and 3500Hz, and the high knob above 3500Hz.
Double clicking the low, mid, or high knob while not randomized resets the knob to 100%, the equivalent of inactive (dry) for that frequency range.
Double clicking the resonance knob while not randomized resets it to 10.
The equalizer can be fine tuned by clicking and dragging on the low and high knob labels to adjust the specific crossover frequencies of each knob (see pic); note that both the low and high crossover settings will affect the mid knob as well by altering which frequency range it covers.
Double clicking either crossover frequency resets both to their default values of 225Hz and 3500Hz.
- lowpass allows eliminating all frequencies from the sound above the threshold set by the frequency knob, which can be set between 22000Hz and 8Hz and used as a bass frequency highlight. post-gain allows amplifying or decreasing the output gain of the resulting effect, and the resonance or Q control adjusts the behavior of the filter at the edge of the frequency cutoff. Post-gain and resonance have no effect if the frequency knob is off.
The lowpass filter is less computationally expensive than the full eq filter and can be used in place of eq to conserve CPU resources if all you need is a simple isolation of the lower frequencies.
Double clicking any knob while not randomized resets its value to off or unaffected.
- highpass allows eliminating all frequencies from the sound below the threshold set by the frequency knob, which can be set between 8Hz and 22000Hz and used as a treble frequency highlight. post-gain allows amplifying or decreasing the output gain of the resulting effect, and the resonance or Q control adjusts the behavior of the filter at the edge of the frequency cutoff. Post-gain and resonance have no effect if the frequency knob is off.
As with lowpass, the highpass filter is less computationally expensive than the eq filter and can be used in place of eq to conserve CPU resources if all you need is a simple isolation of the higher frequencies.
Double clicking any knob while not randomized resets its value to off or unaffected.
distortion processes the sound with a Chebyshev waveshaper algorithm. The distortion knob adjusts the seed number used to generate the Chebyshev polynomial. Different values can create widely varying effects but generally the higher the setting, the greater the frequency range that is effected, and the more noise is produced; also, even and odd values affect the sound in different ways. wet adjusts the mix between processed and unprocessed sound that is output by the unit, such that at 0% the effect is inactive, and at 100% only the processed version of the audio can be heard.
Double clicking the wet knob while not randomized has a different function depending on the state of the knob; if it was inactive (0%), double clicking sets it to 50% thus activating the effect, or if it was greater than 0% double clicking sets it to 0% deactivating it.
ring mod processes the sound with a frequency shifting ring modulator, shifting all frequencies by an equal amount, destroying the harmonic relationship between them. The ring mod knob adjusts the frequency of the modulator. wet adjusts the mix between processed and unprocessed sound that is output by the unit, such that at 0% the effect is inactive, and at 100% only the processed version of the audio can be heard.
Beware, ring mod can be particularly computationally expensive when active on many sounds at once. When using randomization on this effect, it can be much less cpu-heavy to only randomize the wet knob because then all instances of the key's sound can paraphonically share a single unrandomized ring mod processor while having individually randomized effect send gains.
Double clicking the wet knob while not randomized has a different function depending on the state of the knob; if it was inactive (0%), double clicking sets it to 50% thus activating the effect, or if it was greater than 0% double clicking sets it to 0% deactivating it.
convolution reverb is the final effects unit in each key's processing chain. This type of reverb processing uses prerecorded impulse responses modeling the reverberation characteristics of a real or simulated environment, yielding a wide array of reverb, echo, and tone-shaping effects. Soundplant includes 31 preset impulse responses to choose from, some synthesized and some from public domain recordings of real spaces; in the menu they are sorted by their length which determines how long of a reverb tail they create, or how long they stretch out the source signal. Soundplant also enables supplying your own custom impulse response file to add to the list by clicking open sound... from the impulse response menu (many free IRs and synthetic IR generators can be found on the web). Impulse responses are typically recordings of a brief decaying impulse (such as a sine wav or hand clap) in an enclosed space, but can also be generated from any audio file to produce unique and interesting results (for example, try modulating a piano playing a melody by using as an IR a recording of strings playing a similar melody). Custom provided impulse response file references are saved in the Soundplant .keymap. In addition to the echo and decay found in typical reverbs, convolution reverb can affect sound tone as it allows simulating complex textures and the unique ways sound bounces off of different materials like wood or metal. wet adjusts the mix between processed and unprocessed sound that is heard, such that at 0% the effect is inactive, and at 100% only the processed version of the audio can be heard.
Because reverb can be very computationally expensive, in Soundplant the convolution reverb units are paraphonically shared among all keys for efficiency. This means that having multiple keys with reverb active does not increase CPU usage as long as each key is using the same impulse response. CPU usage is only increased with each key that uses a different impulse response. This also means that the wet knob works in a subtly different way than other effect wet controls in that it essentially controls the send of the dry sound to the globally shared reverb unit and the amount that the dry sound bypasses the unit.
Other factors affecting the degree of reverb CPU usage are the length of the impulse response (longer = more CPU) and the overall sample rate set via Preferences ➔ audio ➔ sample rate (higher = more CPU).
Note that since reverb adds a tail to the sound, killing a playing sound that has reverb active can mean that audio will continue to be audible several seconds after the source sound ends (depending on the length of the selected impulse response).
Double clicking the wet knob while not randomized has a different function depending on the state of the knob; if it was inactive (0%), double clicking sets it to 50% thus activating the effect, or if it was greater than 0% double clicking sets it to 0% deactivating it.
The waveform display at bottom shows an overview of the sound's waveform. While the sound is playing, a moving playhead indicates the playback position of the most recent trigger instance of the key, and you can click anywhere along the highlighted part of the waveform to seek the playhead to that point in the sound. The waveform display includes controls for setting the sound's start offset and end offset. This allows limiting the portion of the sound that is played when the key is pressed; use offsets to, for example, trim silence, remove an unwanted song introduction, refine a loop, or extract individual sounds out of a larger track (see the slice multi-key function for a quick automated way to splice portions of a sound across multiple keys). Define start and end points using the left and right sliders, or more precisely by entering zoom view to edit offset points in a full screen zoomable version of the waveform with finer control down to the individual sample level. Offset changes are applied in realtime allowing start and end points to be adjusted while playing the sound, especially handy when adjusting loop points. Along the bottom of the waveform, the start offset and end offset positions are shown; note that these value are relative to the duration of the sound at its default normal speed and won't reflect any speed changes made with pitch shift. Double click the waveform to reset the offset selection back to the entire length of the sound.
zoom displays the waveform in a detailed full screen mode, hiding all other controls and enabling more precise setting of start and end offsets and examining of sound properties, with separate waveforms for each channels if the sound is stereo:
In zoom view, the small waveform along the bottom of the screen becomes a thumbnail for viewing the larger version of the waveform above. You can zoom in and out by using the mouse scroll wheel or by clicking the zoom buttons detailed below. Offset start and end points are represented by draggable boundaries positioned over the large waveform and duplicated underneath over the thumbnail waveform. When zoomed in, a scrollable slider appears over the thumbnail indicating the currently visible area of the large waveform section. Along the bottom, in addition to the start offset and end offset position values, the length in seconds of the current viewable area, and the total offset selection length are displayed; as with the displayed offset positions, these values are relative to the duration of the sound at its default normal speed and don't reflect any speed changes made with pitch shift. Note that very short sounds less than 1/4 second in length can not be zoomed into due to lack of enough waveform data to display. Click anywhere along the large waveform to start the sound playing from the clicked point, or, if the sound was already playing, to seek to that point; you can also play by pressing the assigned keyboard key, or clicking the play buttons detailed below, and you can continue to trigger other sounds via the keyboard as normal while in 'zoom view'.
The following function buttons are available in zoom view:
- play starts the sound playing according to its existing offset, loop, and effects settings.
- play from view start starts the sound playing from the point represented by the left edge of the current zoom view, regardless of the start offset setting. This is convenient for fine tuning an end offset point without having to play the sound from the beginning. If the end offset point is after the view start point, then play will end at the end offset; if the end offset is before the view start, then it will play to the end of the sound.
- stop kills all playing sounds.
- zoom in increases the magnification by 30%, maintaining the current center point of the sound in the view. Scrolling the mouse wheel (or touch pad) up provides an alternate method to zoom in that orients the zoom position based on cursor location rather than the current view center. Eventually a maximum zoom level is reached, which differs depending on the length and quality of the sound as well as system resources, after which this button becomes disabled.
- zoom out decreases the magnification by 30%, maintaining the current center point of the sound in the view. Scrolling the mouse wheel (or touch pad) down will also zoom out.
- zoom out full sets the view to show the entire sound.
- zoom to offset selection sets the start view point equal to the sound start offset minus a few pixels, and the end view point equal to the sound end offset plus a few pixels. Depending on the view set prior to clicking this button it can function as either a zoom in or out.
- zoom in full to start and zoom in full to end jumps to the maximum possible zoom level with the view centered on the start or end offset position, making it easier to fine tune the offset point at highest resolution.
- set offsets to current view sets the sound start and end offsets to the currently visible portion of the waveform. This is a convenient way to bring the offset points into the current view, or when fully zoomed out, to reset the offsets to select the entire sound.
- previous and next zero-crossing sets the sound start or end offset to the next closest zero-crossing point (where the waveform crosses zero); this is helpful to avoid clicks/pops in loop points by preventing rough transitions between different pieces of audio. For stereo sounds, this function finds the next point at which both channels cross "close enough" to zero, because it can be impossible to isolate a single point in the sound at which both channels happen to cross zero simultaneously. Shift+clicking these buttons changes their function to previous and next sample, allowing adjusting selection points by the finest available precision (typically around 100,000th of 1 second).
- The red exit zoom button in the upper right corner closes the zoom view, restoring the standard Soundplant interface. Hitting the Escape key will also close the zoom view, unless the sound is currently playing in which case it will stop all sounds as normal.
Key Function Toolbar
In the upper right corner of the Key Configuration Panel are a row of key-specific function buttons.
open sound brings up a dialog box for browsing for sound files to assign to keys (providing an alternative method for loading sounds other than dragging and dropping them). Soundplant supports virtually all digital audio file formats in existence as well as audio from video files, of any bitrate and up to 384 kHz sampling rate, both compressed and uncompressed. Here is a non-exhaustive list of supported formats: wav, aif, mp3, mp4, flac, m4a, aac, ape, alac, ogg, snd, bwf, au, swa, wma, m4b, m4r, m4p, oga, mp2, mp1, ra, rm, rv, rmvb, wv, amr, ogv, 3gp, 3g2, m4v, wmv, mov, avi, divx, mpg, flv, f4v, asf. With compressed sound files, Soundplant decompresses them to RAM on loading for lowest latency and best quality, rather than decompressing while playing like most players; this means that uncompressed wav files tend to load faster than compressed mp3/mp4/flac/etc. You can select multiple sound files in the open sound dialog; if more than 1 file is selected, then the files will be assigned to successive unassigned keys on the keyboard, starting from the currently selected key and moving from left to right and top to bottom. If the currently selected key 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. If you assign the same sound to multiple keys, Soundplant will automatically do this in a memory efficient manner keeping only 1 copy of the sound in memory.
Pressing Ctrl+ any assignable key twice in a row also opens the 'open sound' dialog.
Double clicking any unassigned key also opens the open sound dialog.
The free version only loads .wav, 16-bit, uncompressed files.
reset key reverts the key's settings back to its initial blank unassigned state with the default empty key configuration, and, if the key had a sound assigned, unloads the sound from memory (unless the same sound file is also being used by another key).
copy multi-key... duplicates the key's settings onto a set of adjacent keys. Activating the copy function will temporarily disable all other buttons and prompt to select target keys on the onscreen keyboard. Mousing over the onscreen keyboard will highlight sets of keys next to the current key to enable making a selection. Only unassigned keys can be selected as targets. Alternatively to using this function, a key can be copied to another by simply clicking and dragging the key while holding down Ctrl (Windows) or Option (Mac) and dropping it onto the desired target key. Keys can also be moved by clicking and dragging the key without holding down Ctrl or Option and dropping it onto the target key, bringing about a reset of the source key.
pitch assign multi-key... enables the batch assignment of the sound at varying pitches onto multiple keys in 2 easy steps. This is a convenient way to simulate a polyphonic instrument using a single sample with a designated range of pitches. Clicking this button will temporarily disable all other buttons aside from the pitch shift panel and prompt to select a group of adjacent unassigned keys. Mousing over the onscreen keyboard will highlight sets of keys next to the current key to enable making a selection. The start pitch for the multi-key assignment can also be adjusted using the pitch slider during this step before selecting the key group. Clicking on the keyboard to select the key group will then prompt to set the end pitch for the batch. You can select the speed or processed pitch shift knob. An unmovable marker on the pitch knob shows the range's start pitch, and you can drag the knob to set the end pitch. 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 complete the process and duplicate the start key's configuration onto all selected keys with the specified pitch variation. 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", or sharps and flats, of the chromatic scale). The pitch assign function can also be used to take advantage of the precise microtuning features of Soundplant to discard the bias of western compositional technique and create custom scales.
slice multi-key... enables the easy cutting up of a sound across multiple keys by auto-setting offsets. It can be used, for example, to extract individual drum sounds from a drum loop by taking a 4/4 beat and splicing it across 4 keys (or 8 or 16 keys to achieve smaller splices). Clicking the the button will temporarily disable all other buttons and prompt to select a group of unassigned keys in a manner similar to 'pitch assign'. Mousing over the onscreen keyboard will highlight keys indicating the size of the selection as the waveform below graphically reflects the positioning of the resulting offsets. Clicking on the keyboard will apply the key group selection and duplicate the key's configuration to all selected keys with the specified offset variations to divide pieces of the sound across the selected keys. This function offers 3 different slicing methods for choosing how to chop up the sound:
- use peak detection, the default method, analyzes the sound's amplitude data to intelligently position the offsets at the attack points of the highest peaks in the sound based on the amount of keys selected - for example, if 4 keys are selected, Soundplant tries to extract the 4 highest peak points of the sound. In music samples this would typically be at the rhythmic accents such as the bass drum hits which demarcate the different sections of a track. The 'use peak detection' method does not take equal timing or spacing into account when searching for peaks, rather it just extracts the highest peaks wherever they may be found. This makes it good for extracting individual sounds out of a complex sample but not as good if you're looking for slices that adhere to a fixed rhythm, in which case see the next option. For example if you use this method with a breakbeat sample, it will try to extract the individual drum sounds regardless of where they fall in time, which is probably what you want if you're looking to create a drum pad. But if you're looking to chop up a loop at equal intervals this would be undesirable.
- use hybrid method uses peak detection but with slices targeted at an approximately fixed rhythmic duration apart. Unlike 'use peak detection', this method aims to create slices that are about the same length in duration, and is best used with loops that you know the tempo and time signature of. This method ignores peaks that fall too far between equal slice divisions and determines the target length of each slice based on the number of keys selected to divide the sound onto. For example with a 10 second sound, if you have a 4/4 loop that you want to slice onto 16 keys (1 for each beat), this hybrid method will find the peaks that fall closest to offset points that are 10 ÷ 16 = 0.625 seconds apart. Human-played music rarely has perfectly accurate rhythmic timing, and this method uses peak detection to assist in finding the best sounding beat attack points that are small fractions of a second greater or less than what they might be in perfectly kept time.
- use equal length slices avoids peak detection entirely and simply divides the slices into exactly equal durations apart.
launch editor is for the editing of audio files in an external editing program. As Soundplant is non-destructive, with effects that favor fast realtime processing over highest quality, you may find that work will sometimes need to be done in a dedicated audio editor or DAW in order to fine tune and add permanent higher quality effects to your sound files. The 'launch editor' button will open the application set as the Preferences ➔ miscellany ➔ audio editor and attempt to make it load the key's assigned sound file (if a sound has been assigned). If no editor program has yet been chosen, it will first prompt you to select one. The first time you return to Soundplant from the editing program, Soundplant will check if the sound file has been modified and if yes, automatically reload the modified sound; if the sound had been copied or multi-key-assigned to other keys, then those other keys will also refer to the newly edited sound data. When reloading the sound, all key configuration settings will remain in place, but note that if you changed the length of the sound, offset settings may need to be adjusted manually. If you save changes to the sound in your editor after returning to the Soundplant window for the first time after launching the editor, Soundplant will no longer automatically check for modifications to reload, but you can use the reload sound button. Holding down shift while clicking this button allows selecting a different audio editor if one had already been previously set (a shortcut for changing the editor setting without having to open the Preferences).
reload sound manually forces reloading the sound file, for example if you have made changes to it in an external editing program. After clicking launch editor, 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, or if the sound file is modified by means other than 'launch editor', you can make Soundplant reload the sound file with 'reload sound'. All key configuration settings will remain. When reloading a sound file, if the sound had been copied or multi-key-assigned to other keys, then those other keys will also refer to the newly loaded sound data.
record from input opens the input recording panel allowing recording from any audio input source on your computer (whether a microphone, a line in, or your Stereo Mix/What U Hear for sampling from a streaming player or browser):
Soundplant's input record function is designed for flexible live recording on the fly while continuing to use Soundplant for triggering other sounds and even simultaneous output recording, and also enables optional live monitoring and processing of your input source through Soundplant's realtime effects; it can be useful for live looping performance, podcast and mixtape production, and as a teaching tool. Soundplant begins recording as soon as the record button is clicked and the panel opens, with a timer showing the length of the current recording and a stereo levels meter and oscilloscope visualizing the input. When completed, recordings are instantly loaded onto the selected key for subsequent triggering while also saved to a file. If the selected key previously had a sound loaded, it will be replaced by the new recording with all key configuration settings preserved. The recording format is 32-bit and uses the sample rate set under Preferences ➔ audio ➔ sample rate and file format set under Preferences ➔ audio ➔ recording format.
The following recording panel controls are available:
- input source selects the recording device.
- restart recording discards the current recording in progress and starts a new recording, resetting the recording timer.
- record mono/record stereo is set to stereo by default, as it is not possible for Soundplant to identify whether an input source is mono or stereo. Many mics and line instruments are mono but input as a stereo signal with 2 identical channels, while others provide only a left channel signal with an empty right channel which can result in unintended panning. If you know your input source is mono (you can visually check for yourself looking at the stereo input meter display), select mono to force recording in one channel, which also has the benefit of halving the memory needed and removing inefficiency for devices that provide 2 identical input channels.
- monitor input makes the input audio audible through Soundplant's master output, mixed with any other sounds Soundplant is currently playing, and is always off by default at the start of any Soundplant session. Latency can vary depending on input device driver quirks, system settings, and computer speed.
Warning, this can lead to feedback when recording from a mic.
If a Soundplant output recording session is in progress, the input audio is mixed into to the resulting recording when 'monitor input' is on.
- monitor dry/monitor through realtime effects allows toggling the processing of the input audio in realtime through the selected key's realtime effects graph. If 'monitor through realtime effects' is chosen, the key's effect knobs appear in the recording panel and become adjustable, enabling input volume adjustment along with more interesting live transformations of the input audio.
The wet post-processed audio is not included in the resulting input recording, rather the input recording always saves the unaffected dry input stream. However the effect knob adjustments are saved to the selected key's configuration once the recording is complete, and thus triggering the recording from the key without further adjustments will result in playing the key through the same effects configuration for exactly the same audible result as the live processed audio.
If a Soundplant output recording session is in progress and 'monitor through realtime effects' is selected, the resulting output recording will include the realtime effects mixed in.
Input volume gain can usually be adjusted at the source via the device's own control panel or system settings. For example in Windows most input sources have adjustable input volume under the Sound Control Panel, and on Mac under the Sound System Preferences.
- save recording to key closes the panel and makes the recording immediately triggerable by the selected key. It also writes the recording to disk and by default will prompt for a recording save location; the prompt can be turned off via Preferences ➔ audio ➔ auto save input recordings.
- cancel closes the panel and discards the current recording in progress.
The input record toggle shortcut Ctrl+Shift+A opens the panel and starts recording, then hitting it again closes the panel and saves the recording. This in combination with the Preferences ➔ audio ➔ auto save input recordings setting can make a recording without needing to touch the mouse.
Escape cancels and closes the input recording panel (it will not stop any sounds if hit while the panel is open).
If you plan to make very long input recordings over 2 hours in length, you must use the 'compressed' recording format option set under Preferences ➔ audio ➔ recording format to conserve RAM and avoid hitting up against memory limits.
Recording is available in the registered version only.
save key settings as default sets the currently selected key's configuration as the global default key configuration, meaning the key configuration that automatically applies to all currently empty keys, the 'reset key' button, and all keys in subsequent new keymaps, overriding Soundplant's built-in defaults. For example, Soundplant's factory default key configuration has 'shift+mode' set to 'kill'. But if the currently selected key's 'shift+mode' is set to 'fade', and you 'save key settings as default', then all currently unassigned keys and 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, sound start and end offsets, and MIDI assignment (and of course sound file). If this function is invoked on a playlist key, it will save the current playlist key settings such as queue mode (though it won't save the playlist toggle on). To set more complex empty keymap configurations with different sets of keys having different preset configurations including MIDI assignments and colors, save an empty .keymap template. Holding down shift while clicking this button restores Soundplant's original factory default key settings.
Select a key color to define how the key appears (in the onscreen keyboard as well as when playing in the channels meter) by using the palette to the right of the displayed key name. There are 24 preset color choices available as well as a custom color picker offering the full 16 million color 24-bit palette (see pic). If you set a custom key color on any key, the chosen color is saved as a preset in the custom color picker popup, and these saved custom presets are stored with .keymaps. Soundplant will automatically give a random color (chosen from its 24 presets) to each newly assigned key unless the key already has a color set.
Playlist
playlist provides several methods for flexibly triggering multiple sounds, whether in sequence as in a traditional playlist, or synchronizing the simultaneous start of multiple tracks. Queued sounds - that is, sounds which have been sequenced in a playlist but are inactive and waiting to start playing - appear in the Channels Meter with a pause icon, displaying in the order that they will play from top to bottom, and keys of queued sounds have a pause icon as well (think of a queued sound as a sound paused at 00:00). Soundplant enables queuing to be as simple or as complex as you need, with playlist length limited only by Soundplant's maximum 88 loaded sounds per instance (playlists can contain repeats of the same track, and there is no limit to the total amount of tracks in a playlist). Soundplant even allows multiple playlists to play simultaneously, and multiple playing instances of the same playlist. Playlists can be a daylong sequence of album-length tracks, or 5 different snare sounds triggered simultaneously with a single key, or a brief melody made out of a composed series of tones, or stem tracks of a single song all starting in sync, or endlessly shuffled breakbeat slices. Any and all of these kinds of playlists can be active while you continue to manually trigger other sounds in realtime.
In essence, playlist keys send simulated key presses to other sound-assigned keys in Soundplant, in a preset or shuffled order, or all at once. These individual sound-assigned keys can still be controlled by their own keys and settings while part of a playlist, for example to to alter its realtime effects or keymode behavior.
Only blank unassigned keys can become a playlist trigger; the playlist switch is disabled for keys which have a sound loaded. Turning on the 'playlist' switch activates the playlist editing interface, with configuration options specific to playlists only, and the bottom section of the Key Configuration Panel becomes a drag-and-drop editable list:
Click and drag already-loaded sounds from onscreen keyboard keys in the into the desired position in the playlist, or drop in sound files from an Explorer or Finder window. Playlist tracks display with their list position number followed by their source key and then track name. To reorder the list, click and drag sounds in the playlist to new positions; to remove an item from the list, drag and drop the sound outside of the playlist area. You can load new sound files while in playlist editing mode by dropping files either onto specific keys or onto the playlist itself, or by using the open sound button on the Key Function Toolbar; if using 'open sound' or dropping files directly into the playlist, the selected sound file(s) will be automatically appended to the current playlist and assigned to the first available keyboard key(s) starting from F1. As you edit the list, the total length of the list is displayed. While in playlist editing mode, you can still press other keys to trigger sounds as normal. When a key has a playlist assigned to it, a playlist icon appears in the upper right corner of the onscreen key.
All items in a playlist play according to their individual key configuration settings including effects settings and keymode, unless overridden by the playlist key's own keymode; there are no playlist-global effects.
To jump to a playlist sound's key configuration for editing, double click any playlist item.
To select all keys whose sounds are in the playlist simultaneously for bulk editing, double click any empty portion of the playlist area (anywhere that does not contain a track).
In the playlist editing interface, several playlist settings are available:
- Deactivating the playlist toggle discards the playlist and exits the playlist editing interface. If the playlist was actively playing then it is killed.
- keymode and shift+ sets the playlist triggering key's behavior on secondary press, Shift+press, or key release, similar to the way regular sound triggering keymodes work. Playlist keymodes are only available for playlists with a queue mode of play sequentially, meaning traditional play-one-track-after-the-other playlists (see below for more info on queue modes).
- sustain, the default option, starts a new overlapping instance of the playlist if the key is pressed again while the playlist is actively playing.
- restart stops and restarts the entire playlist if the key is pressed again while the playlist is actively playing.
- kill stops the entire playlist if the key is pressed again while the playlist is actively playing.
- kill/hold stops the entire playlist on key release.
- fade fades in the first track of the playlist (according to its fade in time and regardless of its own keymode), and pressing again fades out the currently playing track of the playlist (again, according to its fade out time and regardless of its keymode) and stops the remainder of the playlist.
- fade/hold fades in the first track of the playlist on key press and fades out the currently playing track and stops the remainder of the playlist on key release.
- mute mutes the currently playing track (and all subsequent tracks) of the playlist if the key is pressed while the playlist is actively playing, and pressing again unmutes.
- mute/hold plays the playlist while holding down the key, mutes when releasing, and unmutes when holding down again.
- pause pauses the currently playing track of the playlist if the key is pressed while the playlist is actively playing, and pressing again unpauses.
- pause/hold plays the playlist while holding down the key, pauses when releasing, and unpauses when holding down again.
- queue mode sets playlist triggering behavior and has 3 options:
- play sequentially, the default option, behaves as a conventional gapless playlist, with sounds playing in their preset order, and the next sound in the list automatically starting immediately after the previous sound ends. Sequential playlists that are set to both loop and shuffle will automatically reshuffle their order on every loop iteration to create infinitely varied sequences.
- start all simultaneously sets the sounds in the list to play at once in sync rather than in a sequence, useful when wanting to trigger synchronized loops or multiple stem tracks of a single song, or when you want to trigger multiple sound effects simultaneously. Releasing a 'start all simultaneously' playlist key also sends a simultaneous keyup to all sounds in the list, allowing the incorporation of 'hold' keymode functionality from the sound-assigned keys; for example, if a key set to 'kill/hold' is put in a 'start all simultaneously' playlist, releasing the playlist key will send a simulated key release to the 'kill/hold' key which will stop that key's sound. This can be used to achieve a rich variety of behaviors with the playlist key release causing some sounds to fade out, others to stop immediately, and others continuing to play.
- single key step through sets an automatic pause at the end of each track, and on pressing the playlist-triggering key again, the next track in the list begins playing. This provides a convenient way to create a sequence of sounds allowing each individual sound to be triggered exactly when needed from the same key. With shuffle on, the playlist order is randomized, which also enables 'single key step through' to serve the function of triggering one randomly selected sound from a larger list of sounds. When shuffled, a 'single key step through' playlist will play through each sound in the list in a random order until all sounds have been played once, after which a new iteration in a different randomized order will begin. By default, if the playlist-triggering key is repressed before the previous track in the list has stopped playing, the next track begins playing in a new channel while the previous track continues to play, overlapping in the mix. If you want a hit to the playlist-triggering key to kill the previous sound if it has not yet finished playing on its own, set the channel priority of all of the individual keys in the playlist to 'autokill' (or 'autofade' if you prefer a fade out instead of a hard stop). Release of a 'single key step through' playlist key also sends a keyup to key that was last triggered, allowing the use of 'hold' keymode functionality; for example, if a key set to 'fade/hold' is put in a 'single key step through' playlist, releasing the playlist key will send a simulated key release to the 'fade/hold' key which will fade out that key's sound while leaving the next track in the playlist paused until the next press of the playlist key. Note that it is only practical to use 'hold' keymodes 'kill/hold' and 'fade/hold' to respond to key releases in this way, since after the playlist key release the next press of the playlist key will always start the next sound in the playlist.
- loop toggles playlist repeating, and is only applicable to sequential playlists.
- shuffle randomizes the playlist order, and is only applicable to sequential and single key step through playlists.
Here is a step-by-step example for setting up and triggering a simple preset 'play sequentially' playlist of 3 sounds:
- Click an unused key on the onscreen keyboard to configure as the playlist-triggering key, for example the Q key.
- With the Q key selected, in the Key Configuration Panel click the 'playlist' button. This will bring up the playlist editing interface showing an empty playlist, with the default 'play sequentially' mode set, prompting you to drop sounds into the list. The Q key is now a playlist-triggering key and its onscreen key shows a playlist icon.
- Drop your first sound, Soundfile1.wav, into the playlist area at the bottom where the waveform would normally be. This loads Soundfile1 into Soundplant (automatically assigning it to the 1st available visible keyboard key, typically F1) and sets it as the 1st sound in the playlist.
- Drop Soundfile2.wav into the playlist underneath Soundfile1. This loads Soundfile2 and makes it occupy the 2nd position in the playlist.
- Do the same for Soundfile3.wav, dropping it below Soundfile2 in the playlist and making it occupy the 3rd position in the list.
- Press the Q keyboard key. Soundfile1 will immediately start playing and display in the Channels Meter with its progress actively updating. Beneath Soundfile1 in the Meter, Soundfile2 and Soundfile3 will also appear but will be inactive and have a pause icon indicating that they are queued. Soundplant will play the sounds back to back in the order that they were set in the playlist: Soundfile1 followed by Soundfile2 followed by Soundfile3, with their respective display in the Meter updating in realtime.
Some general things to note about the behavior of playlists in Soundplant and how they work in conjunction with Soundplant's other functions:
- Queued sounds will respond to the keymode of their originating keys when pressed, enabling finer control than what the playlist key keymode provides. For example, if a playing sound that is part of a playlist has a 'keymode' of 'pause', pressing the sound's key will pause it (and thereby pause the playlist). If you want a queued sound to fade in when it starts, have it's 'keymode' set to 'fade'. When a playlist sound starts playing, it is essentially the equivalent of a simulated key hit. It will play with all of the settings of its key applied, including any changes made to its realtime settings after the playlist has already been queued such as volume, pitch, etc., and it can be killed (and thus the playlist advanced) using all standard methods by way of its keymode and channel priority settings.
- Queued sounds can be deleted from an active queue before they start playing just like any other sound can be killed: either click on the red 'X' corresponding to the sound's position in the Channels Meter; or, press a queued key that is set to 'kill' keymode to kill the last queued instance of that sound; or, press the Escape key to kill all sounds including any queued ones. Note that individually killing an actively playing sound that is part of a queue sequence has the effect of advancing to the next sound in the queue, forcing the start of the next sound. Note also that killing queued sounds that are part of a playlist does not permanently delete that sound from the stored playlist, rather it only deletes them from the current actively playing sequence; to delete a sound from a playlist permanently, you must edit the playlist.
- Key combo Ctrl+Shift+Q acts as a kill all queues command, having the special function of killing all queued sounds and all actively playing sounds which are part of playlists, without killing any other playing sounds that are not in a playlist.
- The Backspace/Mac Delete key has a notable special function when it comes to queues: it will not kill any queued sound but it will kill non-high channel priority playing sounds that may be part of a playlist, essentially giving Backspace an 'advance to next in queue' function.
- Loops in playlists - Keep in mind that a 'play in sequence' queue won't advance to the next track in the playlist until the currently playing sound in the list ends, which means that a looping sound in a playlist effectively prevents the queue from advancing until it's manually killed, since a sound set to loop will loop forever. If you want a sound to loop within a playlist for a limited fixed number of loops, simply set the sound to have loop turned off, and insert the sound into the playlist back to back as many times as desired. Playlist tracks advance seamlessly with no pause between tracks, so the same track repeated multiple times in a playlist will loop smoothly.
- The Preferences ➔ miscellany ➔ select key on press option works with playlists in conjunction with Preferences ➔ miscellany ➔ select playlist key on press. If 'select playlist key on press' is off, then when a queued sound starts playing, it is treated as a key press and its key will be selected if the 'select key on key press' setting is set to 'always', but 'only on sound trigger' will only cause playlist key presses that immediately lead to a sound start to result in the playing key being selected. For 'start all simultaneously' playlists, triggering the playlist results in the last key in the list being selected with 'select key on key press' on 'always' or 'only on sound trigger'. If 'select playlist key on press' is on then on triggering a playlist the playlist key will remain selected as tracks play, and, for 'play in sequence' and 'single key step through' playlists, the currently playing track is visually highlighted within the playlist interface as it plays.
- Playlists are made up of individual sounds that are each assigned to a different keyboard key, in keeping with Soundplant's one sound per one key metaphor. This can become inconvenient with long playlists if you need to trigger your playlists using background key input while running another program that has its own key functions which conflict with assigned keys in Soundplant. To work around this you can turn on the Preferences ➔ background key input ➔ only trigger playlists setting which makes Soundplant ignore hits to non-playlist-triggering keys while running in the background.
- Custom channel priority autokill groups have a special use in playlists such that they can be used to autokill entire active queue lists, essentially allowing one playlist to cancel out/end another. For example if you have 3 different playlists but you only want one to be able to play at any time, setting all keys used in all 3 playlists to the same autokill group will make it so that if you start one playlist while another is already playing that will automatically kill the earlier playlist in progress.
- In older versions of Soundplant prior to v.50, playlist keys were permitted to also have a unique sound assigned to the key which was fixed as the first sound in any playlist triggered by that key. As this caused confusion and configuring quirks, this behavior has been eliminated; in Soundplant 50 keys can be either sound triggering keys or playlist keys that trigger sounds from other keys, not both. When loading an older version keymap that used this type of hybrid sound/playlist key, the assigned sound is moved to a new key in the numeric keypad (unused in previous Soundplant versions which did not support the numpad) and the original key is treated as a playlist-triggering key with the previously assigned sound maintained as the 1st sound in the list.
MIDI assign enables triggering Soundplant keys via any connected MIDI device that emits noteon messages (virtually any MIDI keyboard, grid controller, or instrument). If the device emits noteoff also, Soundplant can support that with the "hold" keymodes; for example with a keymode of "kill/hold", a noteon starts playing the sound and noteoff stops the sound (note that not all MIDI devices send noteoff messages). Clicking 'MIDI assign' causes Soundplant to poll the system for any connected MIDI devices, and if found, it will prompt you to trigger the desired note/button on your device to associate with the selected Soundplant key, listing all detected MIDI input devices:
You can use the same note to trigger multiple keys if desired, and if you have multiple MIDI devices connected, you can assign different device notes to different keys in any desired combination. Soundlpant is MIDI channel agnostic or "omni"; it will respond to MIDI messages from any MIDI channel. Once a key has a MIDI assignment, its onscreen key will get a keyboard icon in its upper left corner. The MIDI assign switch, if active, can be clicked again to deactivate and remove the MIDI assignment. MIDI assignments are saved in keymaps.
The Escape and Backspace/Mac Delete keys can also be MIDI assigned, by clicking on the keyboard icon that appears in the upper left corner when hovering over either key (see pic).
MIDI input triggers Soundplant whether or not its window is in focus.
MIDI assign is available in the registered version only.
Soundplant 50.7 includes a special alpha preview of MIDI Control Change support which can be toggled on or off by Shift+clicking MIDI assign (note: this must be activated manually for each Soundplant session in which you want to use it, which means every time you restart Soundplant, load a new keymap, or launch a new Soundplant window, MIDI CC listening will be turned off in that new session by default). This enables Soundplant's knobs to be adjusted in response to MIDI CC messages from physical knobs, sliders, or other encoders. In this initial alpha implementation, MIDI CC mappings are fixed (hard-coded to specific CC numbers noted below), and MIDI CC messages affect the currently selected onscreen key(s) & only work while in detailed view mode. This functionality will be fleshed out fully in the next release which will allow richer configuration; in the mean time feel free to send feedback about how you might prefer for CC to work in Soundplant and what kind of more flexible setup capability you envision. For now, mappings are "omni" and respond to messages from any connected MIDI device emitting the relevant control change message once this mode is activated, with mapping values fixed as follows (roughly corresponding to the default CC mappings of the Korg nanoKONTROL):
MIDI CC Number |
controls this Soundplant knob |
0 |
global master volume |
1 |
key volume |
2 |
pan |
3 |
pitch speed |
4 |
pitch processed |
5 |
eq filter low band or lowpass filter post-gain (depending on active filter mode) |
6 |
eq filter mid band |
7 |
eq filter high band or highpass filter post-gain (depending on active filter mode) |
16 |
filter resonance (eq, highpass, & lowpass) |
17 |
filter frequency (highpass & lowpass) |
18 |
reverb wet |
19 |
distortion |
20 |
distortion wet |
21 |
ringmod |
22 |
ringmod wet |
Channels Meter
At the right edge of the screen is the sound Channels Meter, which gives a realtime indication of which sounds are playing including playback progress, total sound length, key name, and sound name. Soundplant is capable of playing an unlimited number of sounds simultaneously, however for practical reasons the amount of channels visibly displayed in the meter is limited to 24 maximum, depending on the Preferences ➔ interface ➔ channels meter size setting. An indicator on the bottom of the meter shows the total number of channels in use at any time. Channels are displayed in a dynamic top-to-bottom, first come first shown order, such that if there are more sounds playing than the channel display limit, the earliest sounds triggered will be displayed, however as sounds end or are killed they are dynamically removed from the meter and previously hidden overflow channels will come into view as space permits. Sounds that are paused or queued display with a pause icon. Sounds that are looping display with an infinity icon. Sounds that have a fade in progress show a realtime fade progress indicator in the form of an animated volume level line moving up (fade in) or down (fade out).
The Channels Meter can be interacted with in the following ways:
- click on the red X kill button in the upper right corner to instantly stop a channel's sound
- click on the dynamic time display to toggle between a time elapsed count up (default) and time remaining count down (this can also be set in the Preferences)
- click anywhere else in the channel to select the sound's key for configuring
Global Function Toolbar
Along the top of the screen are a row of controls with general program functionality which affect the entire keymap as a whole, and realtime animated audio visualizations.
new keymap empties all sound file assignments and clears them from memory, and resets all key configurations to the default key settings.
open keymap, save keymap, and save keymap as allow saving and loading of keyboard configurations, which Soundplant stores 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. 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). When saving keymaps, absolute paths to sound files are stored in keymap files, but when opening keymaps, if Soundplant can't find them in the originally stored location, it will automatically attempt to search for files in best-guess paths relative to the keymap file's location as well as in the following additional locations: the same folder as the keymap; every folder in which it has already successfully loaded sounds for the current keymap; the Soundplant program folder; the Desktop; the Documents folder; and the last recently accessed sound-containing folder. If Soundplant can not find a file, it will prompt with an option to allow manually selecting the new location of the file (or a different file to load in its place). You can safely transport keymaps between different computers, including between Windows and Mac, and Soundplant will be able to load the keymaps as long as it can find the needed sound files in one of the above locations (it is usually easiest to keep the .keymap and sound files together in the same folder when transporting keymaps, especially using save with sounds). 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 50 saves keymaps in a new format that can be opened only in versions 50.0 or later, and can open older keymaps saved in previous versions of Soundplant going back to v.40 (2012).
As Soundplant 50 uses a new audio engine different from prior versions of Soundplant, note that when loading an older keymap from an earlier version, some settings and effects are interpolated to their approximate v.50 equivalent and will sound subtly different. Expect that properties like volume levels and effect intensities may need to be tweaked to reproduce the desired sound more precisely. V.50 does not have an exact equivalent to earlier versions' "LFO" effect, but you can get a similar sound from the ring mod unit.
If you need to load a keymap created in v.39 or earlier in v.50, you'll need to first resave it in previous version 47 before it can then be loaded into v.50. Old major versions of Soundplant are still available on the Soundplant website.
Note that system-standard key combos like Ctrl/⌘+S for save won't work in Soundplant because it prioritizes using the computer keyboard for sound triggering with hundreds of available combos; for this reason many standard key combos are intentionally ignored by Soundplant, which means that you must click the save button to save your keymap.
The recent keymaps button in the lower right corner of 'open keymap' activates a pull-down menu giving one-click access to the 24 most recently saved and loaded keymaps, in the order that they were last accessed (if there are no recent keymaps, this button has the same effect as clicking 'open keymap'). Hovering over an individual keymap name will display the full path of the keymap file (helpful if you have multiple keymaps with the same name in different locations).
Holding down Shift and clicking any recent keymap opens it in a new Soundplant window.
Shift+clicking the 'recent keymaps' arrow clears the history list.
save with sounds in the lower right corner of 'save keymap' creates a folder and saves a copy of the current keymap and all of its associated sound files in it. 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 transport to other computers (because Soundplant will automatically find all of the keymap's associated sound files if they are kept in the same folder as the .keymap file). If you are working on a keymap that has already been saved with sounds once, doing a 'save with sounds' again to the same folder will copy into that folder any sound files that may have been added since the last save.
preferences opens the Preferences panel.
launch another Soundplant opens a new Soundplant window instance with an empty keymap. Soundplant can run in an unlimited number of simultaneous instances, enabling outputting to multiple audio devices simultaneously, preloading multiple banks of sounds, recording multiple tracks of Soundplant output at once (or recording only select sounds while excluding others from the mix), triggering multiple sounds simultaneously with one key with finer control than the playlist function offers, and other possibilities. Used creatively, this can be a powerful feature that adds more flexibility to your use of Soundplant. With multiple instances open, you can have multiple keymaps open and send key input to multiple instances by turning on background key input, and use modifier keys to selectively send input to different instances as set in Preferences ➔ background key input ➔ only trigger input with key combo.
'launch another Soundplant' is available in the registered version only.
print keymap prints the current keymap layout in a landscape orientation, either to an actual printer or to a PDF file, in a format similar to the onscreen keyboard, listing which sounds are assigned to which keys.
Soundplant web site / check for updates directs your default browser to soundplant.org and checks for updates (the web site will alert you if you are running an outdated version of Soundplant). There you can purchase a license, download updates, access free keymap and sound file downloads, and view FAQs and links to recommended software and hardware for use with Soundplant. The web site will alert you if you are running an out of date version of Soundplant.
help activates Soundplant's contextual help mode, allowing clicking any onscreen item to obtain instructions on using it. Clicking this button turns the cursor into a question mark with which you can highlight and select any of Soundplant's interface elements. Click the button/slider/screen region you want to learn more about to open this Soundplant User Manual to the appropriate section heading. Clicking the 'help' button while already in contextual help mode - e.g., double clicking the button - opens this file at the beginning of the document in your default browser.
about displays version, copyright, credits, and license status information.
The record Soundplant's output button toggles the record function, which captures Soundplant's 32-bit mixed output into a single file using a direct internal recording method for highest quality and lowest impact on latency. Click once to instantly start recording; an elapsed time display will appear. When finished with the recording session, click again to stop recording; a file dialog will prompt to select a destination for the the resulting file. The save format depends on the Preferences ➔ audio ➔ recording format setting. The default lossless format saves an uncompressed .wav file with the same sampling frequency as the current Preferences ➔ audio ➔ sample rate setting. The compressed format saves a much smaller Opus-encoded 48kHz .webm file (comparable quality to .mp3). Soundplant records to RAM in the specified format and doesn't write the recording to disk until you choose a save file. This results in higher quality and lower latency, but also means that for very long lossless recordings, a lot of memory can be consumed up until you stop and save the recording. The compressed option allows recordings to take up significantly less memory and avoid hitting any limits or slowing down the computer and is recommended if you plan on making recordings over 2 hours long. If you want to record multiple output tracks at once, or only record certain sounds while not recording others, use multiple simultaneous instances of Soundplant.
Recording can be toggled on and off by the keyboard shortcut Ctrl+Shift+R. This can be especially useful when recording multiple tracks at once using multiple instances of Soundplant with background key input on, so that all record tracks have a synced start time.
Recording is available in the registered version only.
Soundplant has 3 view modes to allow customizable window sizes and configurations. detailed is the default view and exposes all Soundplant controls. simple shrinks the interface to show just the bare essentials, hiding the Key Configuration Panel and the Channels Meter (though note that you can still get a general idea of which sounds are in use and their playback progress by watching each playing key's glow animation). info is a compromise between detailed and simple, keeping the Channels Meter and waveform but hiding all key configuration settings. The 'simple' and 'info' views are essentially "read-only" playback modes which hide most settings, and can be handy for use with young students or beginners, or as a performance mode when you know that your keymap settings are final and won't need further modification. You can still assign sounds to keys in these views by dragging and dropping audio files onto the desired key, or by opening the open sound dialog by double clicking any unassigned key in 'info' view or single clicking any unassigned key in 'simple' view. In 'simple' and 'info' view, all Global Function Toolbar buttons are hidden, with audio visualizations expanding to take up the entire toolbar area (unless all visualizations are turned off in the Preferences); toolbar buttons can be accessed when in in these modes by hovering over the toolbar area. The view mode setting is saved in Soundplant's configuration and persists after quitting the program.
'simple' and 'info' views make keys easier to click-to-trigger, which can be especially helpful for use with touchscreens. While in 'simple' or 'info' view, you can send a simulated key hit to any key (i.e., play its sound) by single clicking the key, and then a simulated key release on mouse up; in 'detailed' view, the same thing is accomplished by a double click. This behavior can be turned off under Preferences ➔ miscellany ➔ click key to play sound.
Running in 'simple' view provides a slight performance gain, especially on older computers and when playing many sounds simultaneously, because the Soundplant interface uses less resources with a smaller window size and fewer animated elements; for absolute fastest possible triggering, 'simple' view can shave microseconds off of latency.
background key input enables Soundplant to respond to keys while its window is not in focus. This powerful feature opens many possibilities as it allows triggering 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. Additionally, in the background key input Preferences, Soundplant can be set to only respond to background key input if a modifier key combo such as Ctrl/Alt/Option is pressed. By default, the background key input state persists after quitting, such that if left on, the next time Soundplant is launched background key input will still be on, but this can be changed in the Preferences. On Windows, when 'background key input' is on, a Soundplant icon appears in the system tray.
Use with care — keep in mind that with 'background key input' on, Soundplant will respond to keys even when you may not expect it like when entering a login, replying to a message, or typing in a save dialog.
At any time you can hit the panic key combo Ctrl+Meta+Shift+Escape (Ctrl+Win+Shift+Escape on Windows or Ctrl+⌘+Shift+Escape on Mac) to immediately turn off 'background key input' and kill all sounds in all currently running instances of Soundplant.
On Windows, the Soundplant 'background key input' system tray icon 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 them noticing!).
'background key input' is available in the registered version only.
activity logging toggles logging Soundplant's playback activity to a file stored in the folder location set under Preferences ➔ miscellany ➔ logs folder, useful if you need to document the tracks you play in Soundplant. With activity logging on, Soundplant logs and timestamps the following events in a tab-delimited text file: sound start; sound end; sound kill; sound pause; sound resume; new keymap; open keymap; save keymap; log start; log end. If multiple Soundplant instances are running then each instance will create its own separately named log file. By default the logging state persists after quitting, thus if it is left on, the next time Soundplant is launched logging will begin immediately at startup, but this can be changed in the Preferences. Each time a new logging session is started, a new log file is created.
The keyboard shortcut Ctrl+Shift+L also toggles logging.
master volume controls the master level of Soundplant's mixed output. When this setting is above 100%, realtime processed amplification occurs; this is useful for turning up quiet sounds, but can result in distortion when playing sounds which are loud to begin with or when playing many sounds at once.
This setting is saved in keymaps.
Double clicking the knob sets the volume to 100%.
Realtime audio visualizations display at the right end of the toolbar and can be turned off by clicking the red X button in the upper right corner that appears in each panel when hovering over, or toggled in the Preferences. Turning off one will cause those remaining to take up the available space allowing for higher resolution rendering of the remaining visualization(s). Or turn them all of if you find them annoying, which will slightly decrease Soundplant's CPU and GPU use.
Preferences
Clicking the preferences button on the Global Function Toolbar opens the Preferences panel for customizing Soundplant's behavior. The 1st time Soundplant is launched, it will search for existing preferences from older versions of Soundplant going back to version 50.0.8 and import them if found, otherwise it will use factory default preferences. Keys can still trigger sounds while the Preferences panel is open.
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 will have a different set of Preferences.
apply saves the current Preferences and closes the panel. It is only clickable if settings have been modified.
cancel discards any modified settings and closes the panel.
Audio Preferences
The audio section controls sound quality, device settings, and performance tuning:
- The output device menu allows setting a specific sound output device for computers with multiple sound devices connected, and specific channels for devices with multiple output channel pairs. When this is set to 'default', Soundplant will output to the sound device set as the operating system's default device. If an output device saved in the Preferences is not connected at the time of Soundplant's launch, it will automatically fall back to using the system default. On Windows, Soundplant supports both standard system WASAPI devices as well as ASIO devices, and in this menu ASIO driver output choices are prefixed with "ASIO"; note that due to quirks of audio drivers on Windows, sometimes ASIO offers lower latency and best performance. Note also that your device's ASIO control panel enables tweaking buffer size settings which allows you to further adjust performance in Soundplant; typically 128 works best, but lower buffer size can give lower latency while larger size reduces glitching especially in high sample rate settings and with many realtime effects in use.
On older/low core count machines, sometimes using the system default device, and setting your desired output device at the system level, brings best performance, because outputting to the default device uses less CPU. But in some cases, especially newer/faster processors, selecting a specific device can improve performance. When Soundplant's output is set to "default" it uses a system-shared connection to the audio device (which conserves resources), whereas when you set a specific device Soundplant communicates with the device on its own separate exclusive high priority thread (which can bring lower latency on higher core count processors that can handle it).
Several troubleshooting modes are available by combo clicking the 'output device' button if you are encountering problems accessing a desired output in certain edge case scenarios sometimes caused by corrupt or improperly uninstalled driver remnants or oddly configured systems that don't respond well to Soundplant's default aggressive low latency output parameters:
- Shift+clicking open the 'output device' menu activates a more permissive device scan that waits longer for the system to respond with the full device list. This can be helpful to work around "Failed to retrieve audio output device list" timeout errors which occur if the request to the system for device information takes too long.
- On Windows, Ctrl+Shift+clicking open the menu skips probing the ASIO subsystem for devices and scans only for WASAPI devices. This can avoid problems in certain rare cases where corrupt registry or ASIO drivers leads to errors, crashes, or lag when listing devices.
- Ctrl+clicking open the menu forces a fallback to using an older, less optimized and higher latency output API. Use only if having problems with normal settings such as if your desired device is not selectable in the menu or fails to output properly.
Output device selection is available in the registered version only; the free version always outputs to the system default device.
- sample rate sets the sampling frequency of Soundplant's output mix. The higher the rate, the higher the sound quality, but also the higher the CPU load, RAM usage, and latency. The default setting is the system default rate at the time of Soundplant's start (typically 48 kHz or 44.1 kHz). On older/slower computers or when using many active effects, lowering the sampling rate can reduce audio glitches and free up RAM, though note that certain frequency-dependent effects like pitch shift and filter are less useful at sample rates below 44.1. Often just going from 48 down to 44.1 frees up enough extra processing headroom to allow for using more effects without audibly harming quality. Changing the sample rate may require restarting Soundplant to take effect.
Not all audio hardware properly supports all sampling rates.
Sample rate selection, including professional quality rates 96 kHz and above, is available in the registered version only.
- latency tuning adjusts tradeoffs between triggering speed and playback stability, with slower latency settings using higher buffer sizes and longer output delays for prerendering. On slower computers or when many effects are active, if audio processing takes too long to render by the available CPU power, the resulting playback can have audible glitches which can usually be solved by increasing the latency giving the system more time to render audio before playing it. This should be set at the fastest setting at which audio does not glitch, which can vary depending on hardware quirks, CPU & GPU speed, the sample rate setting, and how many realtime effects are active on different sounds. For most newer computers with typical Soundplant usage the default fastest setting should work well, but for best Soundplant performance, some experimentation with this setting can be fruitful. Changing the latency setting may require restarting Soundplant to take effect.
- save & load output device in keymaps allows overriding the preferences output device setting when opening a keymap by an option saved within the keymap. This is handy if, for example, you want to associate a keymap with a certain output device, especially when managing multiple running instances of Soundplant with each instance outputting to a separate device. When this is turned on, keymaps are saved with an output device, and keymaps that include a saved output device are obeyed. Soundplant will load the output device setting from a keymap if the following conditions are met: the keymap was saved on the same OS platform as the current running instance of Soundplant (i.e. if running Windows then the keymap must have been saved on any Windows computer); the saved audio output device is currently connected/available and has the same exact name (note that occasionally driver updates slightly change the identifying name of the device such as by adding a driver version number); the keymap was saved with 'save & load output device in keymaps' turned on; the loading Soundplant instance has 'save & load output device in keymaps' turned on. If any of these conditions are not met, Soundplant will ignore any saved output setting and default to the setting defined in the Preferences.
This option is available in the registered version only.
- fade curve sets the shape of the attack of fade ins and decay of fade outs, leading to different degrees of audibility and perceived speed of the fade. linear (default) uses a steady fade rate, while with exponential the most audible part of the fade occurs in the middle of the fade duration (see illustrations).
- recording format determines whether Soundplant's input and output recordings are saved as highest quality lossless .wav (default) or lossy compressed .webm. Soundplant records audio to RAM until the recording session is stopped and saved to disk, for best quality and least effect on latency, but this means that the longer the recording duration, the more memory is used. The compressed option provides a way to reduce memory usage during recordings and keep resulting recording files small in size in exchange for sacrificing some quality; it uses good quality VBR Opus compression, comparable to mp3. This setting can't be modified while a recording is in progress.
For very long recording sessions >2 hours in length it is necessary to use the compressed option due to technical limitations.
- auto save output recordings and auto save input recordings allow recordings to be made without prompting for their save name and location. This can be useful to remove distractions while recording especially if starting and stopping recordings frequently. The default auto save location is in the folder of the currently loaded .keymap file, or the Desktop if no .keymap is loaded, and the filename is automatically generated using an incremented unique number, e.g. "Recording #1". For output recordings, the auto generated filename also has the name of the keymap prepended.
With input recordings, if you first manually set a save location for input recordings that is different from the .keymap location, and then turn on 'auto save input recordings', Soundplant will remember that alternate location for the remainder of the Soundplant session.
- With auto delete overwritten input recordings on, when recording from input onto a key that already had an input recording assigned to it made earlier in the same session, the older recording file will be deleted from disk. This can be convenient when making many multiple recording takes to avoid ending up with a bunch of unused recording files filling up your drive.
- Adjusting auto trim initial silence in input recordings can be useful when recording from input in a live performance setting to avoid having to adjust the start offset, if you are trying to tightly record a particular sound with a mic with inexact timing in an environment where lower volume ambient background noise might get picked up beforehand. This setting is only available when recording format is 'lossless' and is ignored when 'compressed'.
- audio editor sets the application that Soundplant opens via the launch editor Key Function Toolbar button. Click to select an executable file (or a shortcut/alias to it).
Interface Preferences
The interface section controls Soundplant's cosmetic appearance, mouse interactivity, and graphics performance tuning:
- color theme sets the UI to a dark mode (default, light text on dark background color scheme) or light mode (dark text on light background color scheme) to suit your preference. obey system dynamically sets the mode based on the system setting, for example if your system is set to enter dark mode at night and light mode in the morning.
- refresh rate adjusts the frame rate at which the interface is updated (including playback progress animations, time elapsed displays, and audio visualizations). Higher framerates require more CPU & GPU use, and lowering this setting can help to eliminate audio glitches and general sluggishness on older/slower computers with poor quality GPUs, especially with intensive use when playing many sounds simultaneously. Soundplant makes use of available GPU acceleration to render interface animations, freeing up the main CPU for audio processing, but a slow/underpowered GPU can cause performance bottlenecks, and lowering the refresh rate is the most effective way to reduce Soundplant's GPU load. A lower refresh rate also often reduces energy use on battery-powered devices.
- channels meter size controls the size and detail level of sound progress displays as they appear in the Channels Meter. In the default auto shrink mode, channels dynamically decrease in size as the number of concurrently playing channels increases to maximize the amount visible; channels do not automatically increase in size when the number of sounds in use decreases, avoiding a confusing back and forth, rather they will return to the largest size only once there are no more sounds playing. full auto both shrinks and enlarges channels to fit the available space dynamically (some may find the jumping around disorienting). The other options set a fixed channel size which some users may find more intuitive and less jarring; also, on older/slower computers, setting a fixed size can improve performance. The smaller size options don't fit as many details about the sound as large mode but have the benefit of fitting in more visible channels. Note that this setting has no effect on Soundplant's polyphony, which is unlimited, rather it only controls how many playing channels are visibly displayed.
- channel time display sets the behavior of the Channels Meter time display to be either a time elapsed count up (default) or a time remaining count down. This can also be toggled by clicking on any channel's time display in the Channels Meter.
- MIDI note display sets the style of the note details shown on the MIDI Assign panel, showing either the numeric note value or the musical note letter and octave.
- animated key glow controls whether or not onscreen keyboard keys show a glowing animated indication of playback progress. This animation can be a helpful visual indicator complementing the Channels Meter, or even more so when in simple view mode and the Channels Meter is hidden, and aids hand-eye coordination when playing the keyboard while looking at the screen. However, turning it off can reduce CPU usage and increase performance, especially on older/slower computers and when playing many keys at once. When set to off, keys are still highlighted when playing, but are not animated. When on unless looping (default), looping sounds' keys won't animate, but non-looping sounds do; this can be a more visually intuitive way to observe looping keys since a looping sound never ends, especially when using short loops like single tones. When set to on both non-looping and looping keys animate their progress, and for looping keys the animation resets each time the loop restarts.
- key labels font size adjusts the display size of onscreen keyboard key label text; the larger the text size, the less text can fit overall. The default medium size allows for 3 lines of text per key, while large shows text about 35% larger allowing only 2 lines.
- knob drag orientation sets the click and drag behavior of Soundplant's adjustable knobs. In the default vertical mode, drag knobs up to increase their value, or down to decrease. In radial mode, drag knobs circular clockwise to increase, or counterclockwise to decrease, offering a more true-to-life knob behavior if preferred.
- knob sensitivity/precision adjusts the speed of the drag behavior of knobs. Ease of dragging Soundplant's knobs to the desired setting can vary based on factors specific to your computer and setup such as pixel density/dpi of your display, system scaling settings, mouse/trackpad settings, screen resolution, and how you size the Soundplant window. This setting allows fine tuning if you're finding it difficult to set knobs precisely. If knobs drag too slow and you're having to drag annoyingly long distances to get the adjustments you want, decrease the sensitivity; if it's hard to set the exact value you want because the knob drags too fast, increase sensitivity. Note that regardless of this setting, all knobs in Soundplant can be adjusted in super high precision mode by holding down shift while clicking and dragging, which lowers dragging speed to about 1/16 default speed.
- With knob adjust by mouse scroll, on by default, hovering over any knob in Soundplant (all key effects plus master volume) and scrolling the mouse wheel or trackpad modifies the knob. This provides an alternative to clicking and dragging knobs which may be preferable for those on a laptop trackpad.
Holding Shift while scrolling adjusts in high precision mode.
- levels meter visualization, oscilloscope visualization, and spectrogram visualization allow toggling the display of the realtime audio visualizations that appear in the Global Function Toolbar. By default all 3 are on; if any are turned off, the remaining visualizations expand to take up the extra space, and therefore are able to show more precision with more pixels. Visualizations are animated at the framerate set under refresh rate (note that the lower the refresh rate, the less useful and accurate the visualizations are). On some older/slower computers especially with weak GPUs, disabling all visualizations may improve performance.
Visualizations can also be turned off by clicking on the red X close button that appears in the upper right corner of each visualization panel when hovering over them.
Background Key Input Preferences
The background key input section adjusts behavior related to the background key input function:
- startup state sets whether the background key input toggle state persists after quitting. By default, with remember last used, Soundplant starts with background key input in the same state it was left at when Soundplant was last run. Since it can be potentially dangerous and cause unintended sound triggers, always off is offered as a safer option if needed.
- only trigger with key combo restricts how Soundplant responds to background key presses. In the default off setting, if 'background key input' is on and the Soundplant window is in the background, Soundplant will respond to all key input, which means that typing anything into any other program can trigger sounds in Soundplant. But sometimes this behavior can be undesirable or inconvenient, particularly if a foregrounded program has its own functions mapped to keys which you do not want to activate, or if you have multiple Soundplant instances running with different sounds assigned to the same keys. When an 'only trigger input with key combo' option is selected, if 'background key input' is on and Soundplant is in the background it will ignore all keys unless the selected key combo is used. For example, with this set to Ctrl+, if 'background key input' is on and Soundplant is minimized, hitting Ctrl+A will play the sound assigned to the 'A' key, but hitting just 'A' by itself will be ignored by Soundplant. When running multiple Soundplant instances, this setting can be used to selectively access different instances' banks of sounds, allowing for each key to trigger up to 8 different sounds depending on which key combo is used.
Keep in mind that some key combos have system functions that may conflict and you may want to avoid (or disable in system settings) like Alt+Tab, Ctrl+Alt+Delete, Ctrl+Escape, ⌘+Space, ⌘+Tab etc.
- If obey key combo setting even when in focus is off (default), when the Soundplant window is in focus it responds to bare key presses as normal with no modifier combo needed, regardless of the 'background key input' and 'only trigger input with key combo' settings. But if on, if 'only trigger input with key combo' is set, Soundplant's key input behavior is forced to be the same whether or not its window is backgrounded; thus if 'only trigger input with key combo' is set to 'Ctrl+', then Soundplant will always only respond to key presses if the Ctrl combo is pressed even when in focus. This is a convenience option that can help avoid confusion and build muscle memory especially if you're juggling multiple instances of Soundplant with different key combo settings and especially with foreground window on sound trigger on, by making it so that each instance of Soundplant responds to keys in the same way regardless of whether or not it's window is in focus.
- With only trigger playlists (off by default) turned on, if 'background key input' is on and Soundplant is in the background, Soundplant ignores key hits unless it's a playlist-triggering key. This can be useful when using large playlists containing many sounds occupying many keyboard keys, but you only want to trigger them as part of a playlist; it can be especially helpful in conjunction with the 'single key step through' playlist mode and/or when using another program that has many of its own keyboard functions. When this is on, non-playlist keys can't be triggered but certain global key functions are still usable: Escape, Backspace, and Ctrl+Shift+Q for killing sounds, and Ctrl+Win/⌘+Shift+Escape for deactivating 'background key input'.
- When foreground window on sound trigger (off by default) is on, if 'background key input' is on and Soundplant is in the background, the Soundplant window is automatically brought into focus whenever a key is hit that triggers a sound. This can be useful when juggling multiple running instances of Soundplant and you want the frontmost visible window to always be the instance with the most recently triggered sound, or as a way to quickly switch back into Soundplant after switching away to work in another program.
- minimize to system tray when on (Windows only) hides the Soundplant window when minimizing if 'background key input' is on. The window can be restored by clicking the Soundplant icon in the system tray notification area.
- save & load background key input settings in keymaps allows overriding the above preferences when opening a keymap by settings data saved within the keymap. When this is turned on, when a keymap is saved all background key input preferences are stored in the keymap file, and if a keymap containing this data is opened the settings in the keymap will be obeyed. This is handy when using multiple Soundplant windows with background key input, for example if each need to be set to a different key combo.
Miscellaneous Preferences
The miscellany section covers other general items:
- If select key on press is on, hitting a key automatically selects it for editing in the Key Configuration Panel. This can be convenient in most situations, but keep in mind that if this is on you won't be able to configure one key while simultaneously pressing other keys, because the Key Configuration 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 when rapidly pressing many keys in succession, especially on older/slower computers; for absolute fastest possible triggering, turn this off. When set to always (default), hitting any key will select it, even if the key has no assigned sound. When set to only on sound trigger, hitting a key will only select it if it has a sound assigned and the hit triggers the sound. For example, with only on sound trigger, hitting a key set to kill whose sound has already been playing will not select the key, since the hit is killing the sound and not triggering it. This can be useful when managing multiple Soundplant windows, for example if you have some keys assigned in one instance but unassigned in another, to avoid unintentionally selecting keys.
- select playlist key on press controls whether playlist keys (which trigger other keys) are themselves selected when pressed or if the key(s) the pressed playlist triggers are selected. This setting only takes effect if select key on press is not off. When select playlist key on press is off (default) and select key on press is always and a sequence playlist is triggered, on every step of the playlist the next track's key is automatically selected when it starts. But if select playlist key on press is on, the playlist key itself is selected and remains selected as the playlist plays through all tracks, with the actively playing playlist track highlighted in the playlist editing interface.
- Backspace function (Windows) or Delete function (Mac) controls what the Backspace/Delete key does. By default a hit to Backspace/Delete stops all sounds that are set to a channel priority of 'normal' or lower, and the combo Ctrl+Shift+Backspace/Delete fades out all sounds 'normal' priority or lower according to their set fade out time. But this behavior can be reversed using this setting, with fade out all but high priority making it so that a bare hit to Backspace/Delete with no combo fades out all and Ctrl+Shift+Backspace/Delete stops all immediately. none turns off Soundplant's response to Backspace/Delete altogether, which can be especially helpful when using 'background key input' while typing into another program such as a word processor in which you might frequently be hitting Backspace/Delete.
- use space key as global pause/unpause (off by default) allows designating the space bar as a convenient pause/resume toggle key rather than as an ordinary sound triggering key. When on, at any time a space key hit will pause any currently playing sounds and unpause any paused sounds, and sounds can not be assigned to the space key (if a keymap is loaded which contains a sound assignment on the space key with this setting on, that assignment will be ignored). The space key can still have a MIDI assignment with this setting on.
- click key to play sound enables mouse clicking the onscreen keys to play sounds, and is on by default. In 'detailed' view mode, double click a key to simulate a key hit; in 'simple' or 'info' view modes, single click. Note that since this is simulating a key press, clicking a key does exactly what a press to the physical key would do depending on its settings including 'keymode'; for example, if the 'keymode' is set to 'kill', and the sound is already playing, clicking the key will stop the sound. If the key is set to any of the */hold keymodes, a second click on the key simulates a key release.
- mouseup over key simulates key release sets whether releasing the mouse button over an onscreen key after clicking the key to play its sound triggers a key release. This facilitates the functionality of 'hold' keymodes when using a mouse or touchscreen to simulate key presses. It only takes effect if click key to play sound is on, and only when in 'simple' or 'info' view modes.
- disable key move in simple & info view can be helpful if you use Soundplant in those view modes and find that rapidly clicking onscreen keys to play them often unintentionally leads to dragging the keys (as if clicking and dragging to move keys). This removes an annoyance that can happen depending on your clicking style or when using a touchscreen, especially if using 'hold' keymodes with mouseup over key simulates key release.
- If mouse scroll cycles through keys is on, scrolling the mouse wheel (or trackpad) toggles which keyboard key is selected for configuring, successively selecting neighboring keys on the keyboard in left-to-right, top-to-bottom order. This can act as a convenient shortcut for quickly switching between editing adjacent keys without having to move the mouse (though it is off by default because it can be jarring or activated by accident especially when using a sensitive laptop trackpad). Even when on, the mouse wheel is ignored or has different behavior in certain contexts where appropriate, such as while in waveform zoom view, while multiple keys are selected, while the Preferences panel is open, while using any of the multi-key assignment functions, while in simple view mode, if mouse scroll adjusts knobs is on and hovering over a knob, etc.
- system keep awake level controls to what extent Soundplant blocks system power saving mechanisms to allow best, fastest, and most responsive Soundplant performance while running (at the expense of power conservation). This is most useful for when Soundplant is open but has been idle or backgrounded for a while, but you need Soundplant to always respond immediately and at low latency on demand. Typically, to save energy, modern operating systems try to intelligently "sleep" applications that they detect haven't been used in a while, lower CPU speed when not in use, and cut power to audio devices when silent, especially on laptops; this can all result in initial unresponsiveness or latency when you need to trigger Soundplant but the OS has to first "wake" it. In default medium mode, Soundplant prevents its own "app suspend" or "app nap" by the OS, and prevents the computer from sleeping/hibernating while Soundplant is running even if it hasn't been used in a while, which helps avoid nasty surprises like unexpected latency during live performance. In high mode Soundplant tries more aggressively to force the audio output to remain on, and prevents even the monitor from sleeping; this mode can be used if you are finding that audio is still delayed when used for the first time after being idle for a while, and can be especially helpful when encountering such problems while using an external audio device. In off mode, the OS is left free to impose all power saving mechanisms per system settings, helpful for conserving battery on laptops (keep in mind that battery-powered devices typically have their CPU performance throttled by the system by default, especially when idle, and can hamper performance of bus-powered USB devices).
- activity logging startup state sets whether or not the activity logging toggle state persists after quitting. With remember last used, when Soundplant launches, 'activity logging' keeps the same state it was left in at the time Soundplant was last run, thus if it is left on, the next time Soundplant is launched logging will begin immediately at startup. Note that regardless of this setting, when Soundplant first starts, if 'activity logging' is active, a new log file is started and named with a timestamp corresponding to the time of Soundplant's launch; it does not continue logging to the same log file last used in Soundplant's previous session.
- logs folder sets the location where activity logging log files are saved; by default it's a subfolder of the system Documents folder named "Soundplant Logs".
Shift+clicking this button opens an Explorer/Finder window to the folder if it exists, a convenient way to quickly access stored logs. The folder is not created until logging is turned on for the first time.
- license sets the program's licensed state. enter registration code... brings up a code entry dialog where you can enter the license code you receive when you purchase Soundplant in order to unlock the registered features; note the convenient paste from clipboard buttons to the right of each field. Follow the instructions given to you with your purchase to activate your registration (a step-by-step infographic can be viewed here). If the program is registered, this button becomes remove registration..., which removes your personal license information from the computer and reverts Soundplant to freeware mode, useful if you need to switch license type or hand over the computer to another user who is unlicensed or has their own license.
Other Usage Miscellany, Computer Keyboard Quirks, & Known Issues
The Soundplant program window is resizable by the standard system methods of clicking and dragging anywhere around the edge of the window border. Note that when resizing, as the height of the Soundplant window is increased, the font size of sound name text labels increases, while as the width of the window is increased, the amount of text that is fit onscreen increases but the font size does not increase. 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), 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', 'info', and 'simple' view modes and the 'key labels font size' setting 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. While in 'detailed' view, if you downsize the window too much such that Soundplant's controls would be unusable, Soundplant will automatically switch to 'info' view. After resizing the window, double clicking anywhere in the program's interface that is not an interactive button restores the window's size to its default dimensions, which are 1184x680 multiplied by your system scaling settings. Ctrl+Alt/Option+Shift+Enter toggles a distraction-free fullscreen view which hides the window title bar and taskbar/dock.
Those looking for more advanced realtime processing of Soundplant's output than Soundplant's own minimal effects provide, or to record Soundplant's output into a DAW, can use 3rd party software to reroute Soundplant's audio into another program's input using a virtual output device. On Mac you have the system-built-in option of creating an "Aggregate Device" via Apple's Audio MIDI Setup utility. There is also the cross platform Jack, or on Windows only check out Virtual Audio Cable or VB-CABLE. This technique allows realtime effects processing of Soundplant's output in programs like Max, or to send Soundplant's output into a DAW like GarageBand, Audition, Pro Tools, etc. You would need to set Soundplant to output to the virtual audio output device in the Soundplant Preferences, and then set your recording/processing software's input to the virtual input device. Keep in mind that the easiest and most efficient way to record Soundplant is to use Soundplant's own built-in record function, but using these virtual audio device methods allows more flexibility when doing realtime processing or recording from many sources at once.
When pressing multiple keys simultaneously (what you might call 'chords'), you may find that certain keys do not work as expected; on many cheap generic keyboards, you won't be able to trigger more than 4 or 5 keys simultaneously due to keyboard hardware limitations. At worst, some Windows laptops have a really annoying "feature" where the computer emits a system beep when many keys are pressed at the same time (sometimes this "beep on keyboard error" setting can be turned off in the BIOS or under Device Manager ➔ Non-Plug And Play Drivers). Intensive Soundplant use can be hampered by these kinds of keyboard quirks, which vary widely among different keyboards; some simply don't support pressing multiple keys at once (aside from 'modifier' keys - Shift, Ctrl, Alt), while others support this only partially and will allow certain keys to be pressed down simultaneously and not others. This is because on cheaper keyboards, multiple keys share the same sensor, and each sensor can only report a single key hit at any given time. Also, many keyboards have better support for detecting multiple simultaneous keys if connected via a PS/2 port rather than USB. If you find that the behavior of your keyboard has a limiting affect on what you are trying to do in Soundplant, consider upgrading your keyboard (or using a MIDI device instead). For the best possible computer keyboard experience, look for a keyboard that has "n-key rollover" aka "NKRO", which means that each key has its own dedicated sensor and guarantees that the keyboard supports detection of an unlimited number of keys simultaneously. One excellent maker of high end n-key rollover keyboards is Das Keyboard, and you can find many others, often marketed for gamers such as those by Razer. A high quality keyboard is a worthwhile investment as it enhances all use of your computer, not only Soundplant!
Soundplant is optimized for use with the computer keyboard and MIDI, but it is possible to use it with other input devices with the help of other software. If you want to use an OSC device with Soundplant's sound triggering engine, you can use 3rd party software such as OSCulator or OSC Keypress to convert OSC input into computer keyboard hits; there also exist many utilities for converting OSC to MIDI. There are many other hardware and software options that can convert input from various other devices into keyboard key hits which work well with Soundplant, including MaKey MaKey (invention kit that can make virtually any object send keyboard key hits), JoyToKey or GamePad Companion (converts input from game controllers into keyboard hits), Webcam Zone Trigger (converts motion detected in video feeds to key hits), and P.I. Engineering X-keys (custom programmable keypads).
Soundplant is made for use with a standard U.S.A. QWERTY keyboard, but has been found to work well on other common keyboards layouts (like AZERTY, U.K. QWERTY, QWERTZ, etc.) with some minor quirks. For example, some keys on non-U.S. keyboards 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 (easily found for under $10) or a MIDI device.
While Soundplant can open virtually any digital audio file format, it can not play DRM-encrypted files.
Soundplant can load most surround sound audio files (e.g. files with more than 2 channels of audio), however as Soundplant can only output in 2 channels, it automatically mixes down multichannel audio to 2 channels.
There are some atypical situations where getting 'background key input' to work from within another program requires extra tweaking. Some games and other intensive programs enter a low level input mode while they are in the foreground which can prevent Soundplant from receiving key input. The solution to this is usually to run Soundplant as administrator. In most versions of Windows, you can right click on the Soundplant program icon and then in the menu that comes up click "Run as administrator". If you want it to always run as admin automatically, in most versions of Windows right click Soundplant ➔ Properties ➔ Compatibility tab ➔ check "run this program as administrator". Also, there are certain rare specific cases where 'background key input' may not work because of low level OS security restrictions, some of which are unavoidable: for example, while entering a password in another program some systems prevent background programs from detecting key presses to prevent malicious key logging. If you are still having difficulty with 'background key input' even while running Soundplant as admin, try disabling any antivirus software you may have running and checking your system security or antimalware settings for any kind of keyboard restrictions.
On Mac, Soundplant requires system "Accessibility" permissions for receiving keyboard input and will request these permissions the first time it is launched. This is due to security restrictions Apple has put in place on apps that monitor keyboard input, and is an unavoidable onetime annoyance for using Soundplant. While Soundplant should automatically prompt you to grant these permissions, if you ever need to do this manually go to System Preferences ➔ Privacy tab ➔ Accessibility and if you see Soundplant in the list, make sure its box is checked, or if it's not in the list you can either drag Soundplant into the list or click the plus sign and add Soundplant as a permitted program. If you deny these permissions, Soundplant can still run and play sounds by mouse click or MIDI input, but won't be able to respond to keyboard presses until this permission is granted. If you are using a restricted or public Mac in an institutional setting such as a school which does not allow you to grant this permission, you'll need to ask your IT staff to enable it.
The function keys F1 through F12 are sometimes by default reserved for system functions, especially on laptops, and you typically have to combo hit the "Fn" key + the desired function key in order for Soundplant (or any other program) to receive the standard key input for F1-F12. But this can almost always be remedied by changing a system setting. On Windows it can be hard to locate the setting to change this because the configuration depends on the computer manufacturer. Sometimes Windows laptops have a "Fn lock" capability that allows you to lock the Fn key in the on position by hitting Fn+Escape, and this tends to be the quickest and easiest solution. But for a more permanent solution, you'll have to locate the software setting, which may be in the Windows Control Panel, or in a manufacturer-branded dedicated program or system tray icon for input device settings, or in the system BIOS. On Mac it's easy: under System Preferences ➔ Keyboard, check the box for "Use all F1, F2 etc. keys as standard function keys" (note that even with this option enabled, it is still possible for certain function keys to be assigned as special system operation shortcuts, usually F11 to show the desktop and F12 to show the dashboard; these shortcuts can be disabled under System Preferences ➔ Keyboard ➔ Shortcuts). On Macs with a Touch Bar, at any time you can hold down the "Fn" key to temporarily access the function keys in the Touch Bar, or, you can also set the function keys to always be available on the Touch Bar when Soundplant runs by going to System Preferences ➔ Keyboard ➔ Shortcuts and then selecting "Function Keys" in the left sidebar, and then clicking the "+" symbol and selecting Soundplant; keep in mind that if you want to use Soundplant in the background while using other programs and want to trigger sounds with the function keys, you can also add those desired foreground programs to this list, or alternatively you can go into System Preferences ➔ Keyboard ➔ Keyboard and simply set "Touch Bar shows" to "F1, F2, etc." and the function keys will be available at all times from all apps system-wide.
If you desire to achieve the absolute lowest possible sound triggering latency at the expense of some interface niceties, here are some things to keep in mind to reduce as much non-essential overhead as possible (helpful for slower computers, and also for latency freaks who want the best possible Soundplant performance for the most demanding applications such as millisecond-accurate drum pad use):
Key Combo Shortcuts
Generally Soundplant is designed to avoid using keyboard keys for anything other than triggering sounds. However there are a select few global functions mapped to keyboard shortcuts for convenience. All of these have already been mentioned above, but here is a complete list of them all in one place for ease of reference:
- Ctrl+Shift+Backspace (Windows) / Ctrl+Shift+Delete (Mac) - Activates the secondary function set under Preferences ➔ miscellany ➔ Backspace/Delete function, which by default is fade out all sounds
- Ctrl+Shift+R - output record on/off - toggles the state of recording Soundplant's output, especially useful when trying to record multiple tracks simultaneously across multiple Soundplant instances with 'background key input', as it will sync the recording tracks
- Ctrl+Shift+A - input record on/off - toggles the state of recording Soundplant's input; hit once to open the input recording panel, and again to save the recording and close the panel
- Ctrl+Shift+L - logging on/off - toggles the playback activity logging state; each time a logging session starts a new log file is created
- Ctrl+Win+Shift+Escape (Windows) or Ctrl+⌘+Shift+Escape (Mac) - background key input off - useful as an emergency failsafe, turns off 'background key input' and kills all sounds whether the Soundplant window is in focus or not; this is not a toggle
- Ctrl+Shift+Q - kill all queues - kills all queued sounds and any actively playing sounds which are part of a playlist, without killing any non-playlist sounds which may be playing at the same time
- Ctrl+Shift+1 - revert all 'limit 1 play' keys to unplayed status - allows keys with 'limit 1 play' on which have been disabled during the session due to having already been played to undim and be playable again
- Ctrl+[any key] - select key - selects key for editing in the Key Configuration Panel
- Ctrl+[any key repeated 2×] - open sound - opens the open sound dialog for that key; this was added as an easier way for visually impaired users to load sounds
- Ctrl+Alt+Shift+Enter (Windows) / Ctrl+Option+Shift+Enter (Mac) - fullscreen mode on/off - toggles fullscreen view which hides the window title bar and taskbar/dock.
Thus concludes the primary usage instructions. You might also want to check the latest Soundplant FAQs containing newer info than this document at https://soundplant.org/spfaq.htm.
Contact
Please send all bug reports, questions, problems, comments, suggestions, criticisms, reactions, etc. to: soundplant@soundplant.org. I would love to hear about your experiences using this program, the crazier the better! Check the web site for program updates, FAQs, and free keymap downloads at https://soundplant.org.
Further remarks, hints, history, credits, and supplemental information for advanced users are below.
Usage Hints
Here are a few ideas to help get you started thinking in terms of the creative 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, full length tracks, single notes, chords, phrases, melodies, effects, loops, voice, ambiance, field recordings, plundered music/media, etc...
- experiment with the pitch assign multi-key and slice multi-key functions; when pitch assigning, create custom scales to invent new chords and note relationships; use slice multi-key with long sounds to create new, shorter sounds
- experiment with playlists: use them as a poor man's sequencer to compose drum patterns or melodies; use 'shuffle' in combination with 'loop' to create interesting randomized sequences; use 'start all simultaneously' to make interesting combinations of sound effects; use 'single key step through' in combination with 'shuffle' to trigger randomly chosen 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 a little more lifelike and realistic when it is overlapped repeatedly on itself
- try creating entire keymaps based around a single sample multi-key-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
- take advantage of running multiple simultaneous instances of Soundplant with 'background key input' to trigger multiple sounds from different instances; have each instance output to a different audio device when using large multichannel setups; set each instance to have a different 'only trigger input with key combo' setting so that each instance can be selectively triggered using a different key combo
- use the multi-key select feature to modulate effects on many keys simultaneously to create interesting realtime effects
- use the record function in combination with multiple Soundplant instances to record multiple tracks at once, or to exclude certain sounds from the recording if desired; use the Ctrl+Shift+R recording shortcut in combination with 'background key input' to make all instances begin recording simultaneously to generate synced multitrack recordings.
- 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 an existing track
- use fade/hold keymode with looping tones to mimic synthesizer-like sustain-and-release behavior
- make new beats out of old ones by extracting drum sounds using the slice multi-key function and chop up your beats in realtime
- use samples that are timed to loop in sync with each other (for example, use a sequencer or DAW 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, mixing the song in realtime
- take advantage of the option to configure keys and alter sounds while playing them
- use the 'shift+' keymode to vary playback without having to reconfigure a key
- utilize the autokill group channel priority setting to create more lifelike sounding instruments, for example when playing drumkit sounds, setting an open hi-hat sound to be autokilled by a closed hi-hat can give a more realistic behavior
- control in realtime the timestretch effect using slice multi-key across many keys in 'use equal length slices' mode in conjunction with loop and autokill channel priority to loop very small portions of the sound, which is what timestretching typically does to create the illusion of elongating sounds
- add live 'solo' tracks to otherwise pre-programmed songs, such as those created with sequencing software
- use the copy function to endlessly duplicate your sounds onto other keys to create varying effects and to allow 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 computer keyboard playing skills, play old school arcade games like those available in MAME
Manually Editing .keymap Files (for advanced users)
Keymap files created by Soundplant are Unicode text files with data stored in the JSON format. They represent a database of all of the keyboard keys and all of the attributes of the assigned sounds. Keymap files are fairly easily editable - meaning you can open them in any text editor (like Notepad++ or Sublime) or JSON-specific editor (like JSON Editor Online or JSON Blob) and change items such as file paths and other properties. This can be useful for example for making mass modifications to key properties that might be tedious to make in Soundplant such as changing all keys' sound file names, especially in conjunction with advanced find-and-replace or text processing tools. Additionally, some visually impaired users have found it easier to create and edit keymaps in this manner (if you wish to create a keymap from scratch this way, I recommend starting with an already existing keymap as a template).
The Soundplant v.50 keymap file contains an optional initial line with a special bracketed list for backwards compatibility, followed by the main JSON data starting on line 2. All content from line 2 onward uses strict JSON formatting; the 1st line of data can be omitted if desired to create a perfectly conforming JSON file. The keymap JSON contains a set of object definitions enclosed in curly braces {}, 1 for each key on Soundplant's keyboard, each containing a set of property definitions corresponding to key configuration settings. Each of these key objects are named by a numeric keycode that internally represents the key. Every key on the keyboard has a unique keycode integer which will be unrecognizable to those unfamiliar with such inner workings, however for human readability each key object stored in the keymap has a property named "displayKeyID" which corresponds to the name of the key; for example the object named with keycode "13" has a "displayKeyID" of "=" because it represents the settings for the equals key.
There are 30+ modifiable properties for each key, which have mostly self-explanatory names. The property for file paths is "filename", which defines the full path of the assigned sound. If you want to change the file path, replace the existing "filename" value with the new path; conforming with JSON requirements, the path must be in quotes and must have certain characters escaped with backslashes. If your sounds have moved to a different drive or folder, you can use a find-and-replace to change all occurrences in the .keymap file of the old path to the new path, just make sure to abide by those character escaping rules (for example the Windows path delimiter backslash must be escaped by using a double backslash). This can be done automatically using a JSON editor such as those linked above without having to worry about character escaping.
Key properties have 4 different possible values types: boolean (true or false, as in on or off), number (positive or negative, fractional or whole), string (block of text enclosed in quotes), and array (comma-separated series of values enclosed in brackets). More on JSON data types here. It is important to retain the proper formatting of these values. For example "loop" is a boolean property and can have a value of either true for on or false for off. Note that all numbers which appear in Soundplant suffixed with measurement units like "%", "semitones", or "Hz" appear in .keymap files as bare numeric values without these suffixes.
In addition to individual key properties, at the very end of the keymap JSON is an object of global properties named "globalSettings". This contains properties such as master volume.
About / Release History
The earliest version of Soundplant was written back in 1999 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 as a child which had a similar function (and also worked with video); 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. Though initially intended as an experimental music-making tool, Soundplant's feature set has evolved over the years to meet the needs of DJs, sound designers, and audio technicians in applications such as radio, television, and theater.
When I first started this project, I found Macromedia Director (later Adobe Director) to have the perfect combination of artist-friendliness and complex functionality through its programming languages Lingo and JavaScript and extensibility with C++. After years of Director being neglected by Adobe and my fighting an uphill battle of keeping Soundplant up to date through custom extensions, starting in 2019 I rewrote Soundplant mainly in JavaScript using Electron. The rewrite took about a zillion times longer than I hoped, delayed in part by a global pandemic, but was able to enter public beta in late 2020.
This eighth major release of Soundplant, v.50, was produced during 2019-23. It has the following additions & improvements over previous release v.47:
- rewritten from scratch with full 64-bitness optimized for modern multicore CPUs & GPUs
- new audio engine with unlimited simultaneous sound channels & higher quality mixing up to 384kHz
- MIDI assign for triggering sounds via MIDI
- numeric keypad support adding 16 more assignable keyboard keys
- new per-key effects including 3 band eq, Chebyshev distortion, timestretch pitch shift, ring modulation, highpass, and convolution reverb with support for loading custom impulse response files
- faster asynchronous sound loading & .keymap opening
- improved memory handling especially when loading many large sounds
- spectrogram, oscilloscope, and volume meter realtime visualizations
- dark and light ui themes
- collapsible/expandable keyboard sections
- new 'info' view mode, a compromise between 'simple' & 'detailed' views
- 'fade to pause' setting allows fading in/out from/to paused state
- 'copy multi key' allows easily duplicating a key onto multiple keys at once
- backspace can be set to 'fade out all' via the preferences
- fullscreen mode togglable via ctrl+alt+shift+enter
- recording format preference allows lossless or compressed recordings
- waveform zooming has increased detail, deeper zooming, & channel separation for stereo sounds
- improved latency for background key input
- peak/beat detection for more automated offset slicing
- custom key color selection
- channel priority autokill groups for finer control over customizing what sounds can kill other sounds
- fade curve setting
- Command/Windows/Meta modifier key combos added to 'only trigger input with key combo', adding 4 more combo options to background key input
- 'obey key combo setting even when in focus' background key input setting added
- backspace key function options added, can be set to fade out all or ignore
- activity logging startup state setting added
- v.50.7 update (April 2023):
- 'limit 1 play' key setting for preventing sound from playing more than once per session, helpful for idiot-proofing keymaps
- 'system keep awake level' preference manages the prevention of system power saving from interfering with optimal Soundplant audio output & eliminating live performance annoyances like display sleep
- optional higher quality timestretch method
- 'lock pitch' toggle for easier pitch-preserving tempo shift
- waveform zoom improvements:
- 'next'/'previous zero crossing' & 'next'/'previous sample' buttons for finest possible offset control
- 'zoom in full to start'/'end' buttons for convenient quick jumping to offset points
- MIDI improvements:
- 'MIDI note display' preference for showing note as number or name
- MIDI assignment details tooltip shows on mouse hover over MIDI assigned key
- alpha preview of MIDI CC support
- playlist refinements:
- keymodes for 'play sequentially' playlist-triggering keys
- visual indicator of which track is currently playing in playlist editor UI
- 'start all simultaneously' playlist keys also send key release, allowing for richer configurations with 'hold' keymodes of playlist tracks
- 'single key step through' playlists trigger key release with each step, supporting 'hold' keymodes of playlist tracks
- 'select playlist key on press' preference
- more consistent handling of keymodes of sound-assigned keys in playlists & edge cases with multiple simultaneous playlists
- contextual help enables clicking specific UI elements for help on that topic
- 'color theme' preference added new option 'obey system'
- 'channel meters size' preference added new option 'full auto' to dynamically shrink and enlarge while playing
- 'mouseup over key simulates key release' preference, helpful with touchscreens
- 'disable key move in simple & info view' preference, removes a potential annoyance that comes up in certain cases especially with touchscreens
- many optimizations & efficiency improvements
- output device troubleshooting modes added & related bugs fixed (unable to retrieve output device menu list under certain conditions; Windows ASIO failure to connect to some outputs in certain complex setups with multiple ASIO drivers or virtual devices)
- many other minor fixes
- v.50.5 update (July 2022):
- native Apple Silicon support for M1/M2 Macs
- input recording, from mic or any other source, with optional monitoring through realtime effects
- randomizable effects, including importing randomization settings from pre-v.50 keymaps
- variable channel meter sizes allowing up to 24 visible and auto-sizing
- drag & drop keys between Soundplant windows
- adjust any knob via mousewheel/trackpad scroll
- shift+click recent keymaps list items to open keymap in a new window
- ring mod effect improved performance & expanded frequency range to -4000Hz-4000Hz
- highpass, lowpass, and ring mod knob adjustment curves improved with more intuitive logarithmic scale and fatter sweet spots
- eq/filter processing moved to end of effects chain for more intuitive sounding results
- chosen custom key colors are saved as presets in the color picker palette
- midi assign dialog lists all detected MIDI input devices
- 'auto save recordings' preference to skip prompt for recording filename
- extensive optimizations lowering cpu & gpu use
- bugfix: waveform displays blank under certain conditions
- bugfix: on older/slower computers sounds sometimes play silently
- bugfix: playlist sequences not perfectly gapless in certain scenarios with short sounds
- bugfix: if Soundplant window is unfocused at a certain point in the startup process, Soundplant takes background key input even with that setting off
- Windows bugfix: Reaper ReaRoute virtual devices not showing up in Soundplant's output device menu
- Mac bugfix: if a keymap file is double clicked in Finder when Soundplant is already running, the clicked keymap doesn't open
- Mac bugfix: audio output glitching in certain scenarios if playing sounds while loading new sound files or launching audio editor app
- Mac bugfix: Cmd+` macOS combo (same app window switch) erroneously triggers Soundplant ` key
- many other minor fixes
- v.50.3 update (December 2021):
- Windows ASIO support
- improved audio routing: fixed some devices and secondary output channels not appearing in audio output device menu; moved device routing to a separate higher priority thread for better performance
- shift+click+drag knobs for ultra high precision parameter adjust mode
- smoothed audio transitions when adjusting effects knobs & stopping & muting tracks, for better sound and elimination of clicks/pops; also improved volume knob adjustment curves for greater sensitivity and accuracy
- optimizations lowering cpu/gpu use significantly
- "save & load output device in keymaps" preference reenabled
- "save & load background key input settings in keymaps" preference
- Windows background key input system tray icon reenabled & "minimize to tray" preference added
- levels meter visualization improved for greater accuracy
- all visualizations can now be disabled in the preferences if desired
- "set offsets to current view" button added to waveform zoom view
- autokill group keys with no sound assigned can kill other sounds, allows creating custom kill-only keys
- background key input instant off combo changed to Ctrl+Win+Shift+Escape (Windows) or Ctrl+⌘+Shift+Escape (Mac) to better avoid conflict with combos in other software
- Mac bugfix: Soundplant was responding to key hits with background key input off when typing in Spotlight search box
- bugfix: crash when adjusting window size to very oblong dimensions, including when trying to snap window using Win+left/Win+right on Windows under certain display settings
- bugfix: freeze when using autokill groups in combination with looping playlists under certain conditions
- bugfix: pitch wavering when outputting to non-default devices under certain conditions
- bugfix: couldn't set activity logging folder to non-default location
- bugfix: canceling "This keymap has unsaved changes" dialog sometimes quit anyway
- bugfix: MIDI assignments for Escape & Backspace didn't always save in keymaps
- bugfix: MIDI input ignored shift key, couldn't use shift+mode
- bugfix: waveform zoom view thumbnail only showed left channel data
- bugfix: Ctrl+Shift+R record on/off combo wasn't working with background key input under certain conditions
- many other minor fixes
A brief history of prior major versions of Soundplant:
- beta 12 (June 1999), the 1st public release of Soundplant, produced in 1999 in Buffalo, New York, USA, for Windows 9x/NT
- v.26 (September 2002), produced between 2001-02 in Brooklyn, New York, USA
- v.39 (May 2010), the 1st official version with Mac support, produced during 2009-10 in Staten Island, New York, USA
- v.42 (November 2014), major overhaul with FluidSynth audio engine, produced during 2012-14
- v.43 (January 2016), produced during 2015
- v.45 (July 2017), produced during 2016-17
- v.47 (September 2018), produced during 2017-18
Soundplant Customization & Feature Sponsorship
Soundplant is available for new feature sponsorship or customization to meet your 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 musicians, museums, theaters, retailers, schools, and audio engineers. Please send customization or feature sponsorship inquiries to soundplant@soundplant.org.
Planned for Future Versions
- improved full support for MIDI CC control of Soundplant knobs, with settable ranges & key selections
- customizable onscreen keyboard layouts, perhaps a grid mode, to better match the infinite variety of keyboard layouts, MIDI controllers, and custom devices, and allow moving beyond the 88-sounds-per-keymap limit
- making output device settable at the per-key level for a better way to output to multiple sound devices at once
- undo/redo
- more realtime effects and options, including sweep mode for effects to auto adjust the effect up and/or down while playing
- better support for non-USA keyboard layouts especially AZERTY
- more fading options like additional fade curve types settable at the per-key level and ability to fade to/from non-0% values while the sound remains playing
- support for additional input devices, perhaps gamepads and mouse
Credits
- Soundplant was programmed and designed by Marcel Blum
- Soundplant was written primarily in JavaScript with some C/C++
- Soundplant gratefully uses open source libraries by Yotam Mann, Benjamin Taylor, Alexander Barker, Almog Hamdani, katspaugh, Sindre Sorhus, Stefan Schaermeli, Gary Scavone, Andrey Klebanov, Matt DesLauriers, INCORS, Legokichi Duckscallion, David Lindkvist, Alexander Drozdov, Mano, Gon & Olivier, Mihai Bazon, and Timofey Kachalov
- Soundplant includes a distribution of FFmpeg, © Fabrice Bellard et al., used under the GNU General Public License, source code available at the Soundplant website
- Soundplant splash screen backgrounds were generated using Carson Britt's KeySim 3d keyboard simulator
- Soundplant uses fonts designed by Steve Matteson, Joe Prince, Stephen Hutchings, PolarSys, Nicolas Chauveau, Thomas Paillot, Jonathan Favre-Lamarine, and Jean-Luc Vinot, used under the Open Font and Apache licenses
- Some icons were adapted from designs by Alvaro Cabrera, Arthur Shlain, Sophia Bai, Keyamoon, Heydon Pickering, John Caserta, Dave Gandy, Ed Merritt, and Stephen Hutchings
- Some convolution reverb impulse responses were generated by an open source library by Alan deLespinasse, and adapted from freeware and Creative Commons recordings by Fokke van Saane, Andreas Bernhard, Chris Warren, Big Gee, Juha Merimaa, Timo Peltonen, and Tapio Lokki
- Feature sponsorship thanks to Nike, Man or Astro-man?, Marie-Andrée Pellerin, John Wingert, Jeremy Gold for Project KITT Jeep, Bob Wong/Audio Image Engineering Singapore, and Dan McGee
- Thanks also to Thirteen/WNET, Squeaky Wheel/Buffalo Media Resources, Ed Novick, John-Hans Melcher, Direct-L and the Adobe Director community, Antoine Schmitt, Valentin Schmidt, and everyone else who has helped and encouraged the development of Soundplant over the years!
- (seriously if anyone mentioned above wants to be comped a Soundplant license do not hesitate to hit me up!)
March 27, 2023
© Marcel Blum
Stapleton, Staten Island, New York, United States Of America
https://soundplant.org
Soundplant is a registered trademark of Marcel Blum