LabChirp version 1.60

By Labbed

About

LabChirp is a powerful but simple-to-use free program for creating sound effects to use for anything you want, with a lot of precision and control.

If you find any bugs or have a great suggestion on how to improve LabChirp, please let me know!

Contact information can be found at the end of this manual.

License

LabChirp is free to download and free to use. Any sounds you create with LabChirp (including randomized ones) are yours, which means you may use them however you want, even for commercial projects.
Feel free to redistribute LabChirp in any way you want, but please include this manual unmodified along with the program and make sure you don't charge anything for LabChirp itself in any way.

You do not have to pay anything to use LabChirp. However, if you find it useful, and if you feel generous, you can support me by donating using the instructions found on the About page on my website. It would be very appreciated! See Contact below for more details.

Changelog

What happened since last version?

v1.60

  • Improved mutator!
    Batch save has been added to Mutator, and the option to randomly change waveform.
  • Higher precision!
    A second decimal place has been added to frequency and volume/amplitude of all waves.
  • Higher frequencies!
    All waves' frequencies can now go up to 9999.99 Hz.
  • Better Mac compatibility!
    Mac users should now be able to hear the sound when pressing play.
  • Better visuals for envelopes!
    Envelopes are now filled (with configurable opacity).
  • Bug fixes!
    • Changing sample rate while sound is playing caused the playback indicator to appear at an incorrect position.
    • Trying to save a Randomizer preset caused another preset to load for some people, making it impossible to save.

v1.50

  • Effects!
    Apply cool sound filters/effects such as Reverb and Flanger to your sound!
  • Trim silence!
    Automatically trim silence at the beginning and/or end of your sound.
  • Various bug-fixes and smaller layout/convenience adjustments:
    • Clickable stop button.
    • Playback indicator.
    • Envelope preview in the Randomizer.
    • Splash screen.
    • Wave frequency accuracy correction (was 0.05 % off before).
    • Loud sounds could overflow and "loop" instead of being clipped.
    • Small Mono compatibility fixes.
    • Probably some other bug fixes that I forgot about.

v1.25

  • More quality options!
    You can now apply dither and oversampling.
  • A more intuitive way of editing envelopes!
    Simply click anywhere to add a point, and move a point by dragging it.
  • Curves for the envelopes!
    To create some really smooth envelopes without having to add many points.
  • Mutator!
    To randomly tweak a sound.
  • Back/forward buttons for the randomizer!
    If you accidentally skipped a cool random sound you can restore it.
  • Batch save random sounds!
    Select a preset in the randomizer and save a whole bunch of sounds at once!
  • Faster sound generation!
    Taking advantage of multiple cores.
  • Copy/paste for envelopes!
    Copy one envelope and paste it into another!
  • Added shortcuts to switch channels.
    Ctrl + Tab/Ctrl + Shift + Tab or Ctrl + 1-8.
  • More customization.
    You can choose your own colors for the envelopes, among other things!
  • Save/export split!
    Before, both a WAV and LCH file was created when you saved. Now you can choose to save only one of these, if you want.
  • General UI fixes.
    Such as grayed out buttons for muted channels, double buffered panels and DPI compatibility.

v1.00

  • Higher quality sound!
    You can now choose between 22050/44100 Hz and 8-bit/16-bit.
  • More envelopes!
    Modulation waves also have envelopes now.
  • New waveform!
    Noise2! Which is like Noise with a linear interpolation. Also, modulations have the Custom Wave too now.
  • Randomizer!
    To generate random sounds!
  • General interface redesigns.
    Some things has been moved to a more logical position and some other stuff has been added or removed.
  • More wave accuracy.
    There were some problems with offset and Noise but it should be fixed now. Also, most values now have one decimal.
  • Easier value edit!
    You can now click on the number next to a slider to edit its value.
  • Undo!
    You can now undo and redo.
  • Other not very interesting stuff.
    Like settings, bugfixes, an about box, menubar and more!

v0.85

  • Initial release.

Usage

Here follows a complete explanation for every control in LabChirp.

Overview

Sounds in LabChirp are generated based on the parameters found inside the Wave tab. Up to eight channels can be edited individually. Additionally, effects can be applied to the sound from the Effects tab.

Channels

To the right you will see eight buttons corresponding to the different channels. Each channel generates an output based on its individual parameter settings defined in the Wave tab. When the sound is generated, the output of each enabled channel is combined.

To edit the parameters of another channel, switch to it by clicking on the button with the channel's number. Make sure the channel is enabled if you want it included in the sound.

To enable (unmute) a channel, check the box next to that channel's button.

You can copy elements from one channel to another using the controls below the column of channel buttons. See Copy channel for more information.

Wave tab

The Wave tab is where you edit a channel's parameters that define its output.

At the top, you will see settings for Length and Delay.

Length:
The length of the channel's output. One length value is equal to 1/22050 seconds (one sample for 22050 Hz and two samples for 44100 Hz). You can also input the length in seconds by clicking on the value shown to its right.
Delay:
How much silence is added before the channel's output starts. Same unit as Length.

Below the Length and Delay settings are three different groups of controls, labeled Main wave, Frequency modulation and Volume modulation. These are the basic waves that make up the channel's output. See Waves below for details.

Below these controls, you will see the Envelope/Custom wave edit box. This is where you define the nine different envelopes/custom waveforms for the different waves. To switch envelope, click on the button to the left of the slider corresponding to the value whose envelope you wish to define. To define a custom waveform, click the button below the corresponding waveform selector on the right side. See Envelopes below for more details.

Effects tab

The Effects tab is where you add and edit effects that will be applied to your sound, or a channel's output individually.

There is a button to add different effects, and a checkbox to determine whether the effects should be applied to all channels at once, or to individual channels. See Effects below for more details.

Playback

The large button to the lower right is used to play your current sound. The WAV graph on the bottom displays a visual representation of your generated sound.

Mutator and Randomizer

The Mutator button to the lower right brings up the Mutator, which is used to apply slight transformations to the parameters of your sound. See Mutator below for more details.

The Randomizer button to the lower right brings up the Randomizer, where you can generate a new completely randomized sound. See Randomizer below for details.

File operations

All file operations can be found under File in the menu bar, and can also be accessed with keyboard shortcuts.

New

If you want to start over, click File ▸ New (or press Ctrl + N). This will reset all parameters and start a new project.

Open

To load a previously saved sound, click File ▸ Open... (Ctrl + O), locate the file and click Open.

Save

You can Save a project file (.lch) so you can edit it later, or you can use Export WAV... to create a wave file (.wav) so you can use it elsewhere, or you can do both at the same time with the Save and Export... option.
The output quality of the wave file depends on the quality settings found under the Quality menu. See Quality below for more details.

Settings

To edit settings, click Edit ▸ Settings.... This will open the settings window which contains two tabs:

General

Default output quality
determines the default quality setting of new projects.
Default Dither and Default Oversampling
determine the default dither/oversampling setting of new projects.
Trim leading silence and Trim trailing silence
determine the default settings for silence trimming.
Show splash screen
determines whether or not to display the splash screen when the program starts.
Envelope editing
lets you choose your preferred envelope editing behaviour.
Max undo
lets you limit the amount of available undo steps per channel.
Ctrl+S =
determines what happens when you press Ctrl + S.

Appearance

Line smoothing
determines whether or not the envelope lines are drawn anti-aliased.
Point shape
determines the appearance of the envelope points.
Fill opacity
determines the opacity of the fill of the envelope.
Color settings:
The color boxes let you edit the colors of the different elements of the envelopes and the WAV graph. There is a sample envelope at the bottom. Use the selector to switch between envelopes to see how they will look.

Click OK to save your settings ("settings.cfg" will be created in the same directory as "LabChirp.exe").

Quality

22050 Hz/44100 Hz

Hertz (Hz) determines the sample rate (values per second) of the output sound. Higher sample rate allows for higher frequencies and better sound fidelity.

8-bit/16-bit

Bit depth determines the resolution of the samples. An 8‑bit sound has a resolution of 256 values per sample, while a 16‑bit sound has 65536 values per sample. Higher resolution allows for finer detail. You can clearly hear a difference for instance at the end of long fade outs.

Trim silence

Leading:
This option will remove all silence at the beginning of your sound.
Trailing:
This option will remove all silence at the end of your sound.

Dither

With a limited resolution, the program needs to round a generated value to fit the resolution. Imagine a really quiet sine wave with values ranging from -0.4 to +0.4. If the rounding is consistent, all its values will be rounded to 0.
Dither is basically inconsistent rounding, to get a more accurate average representation, so you can still hear the wave even after you really shouldn't be able to with the current resolution. Although it can be a bit noisy.

There are two different methods of dither in LabChirp:

Floyd-Steinberg
simply forwards the rounding error to the next sample and adds it to its value, which gives a very even and reliable estimation of the sound. May however in some cases result in audible artifacts.
Noise
adds a really subtle noise to the sound, making the rounding more chaotic. Results in no audible artifacts.

Keep in mind that dither is not guaranteed to improve the quality of the sound, and may add unwanted noise. Experiment and use your own judgement!

Oversampling

Oversampling can greatly improve the quality of the sound. It is especially noticeable with sounds featuring sharper waveforms, like saw and square, at high frequencies.
With oversampling, each sample will become an average of adjacent values between the previous sample and the next. This gives a much better representation of the actual value.
A higher setting means better quality, as more adjacent values are gathered per sample, but the sound will take longer to generate.

Note that dither and oversampling does not affect the output sound's file size.

Waves

Sound in LabChirp is generated through wave calculations. Three waves each play a different role in creating the sound:

Main wave:
The basic wave of your sound.
Frequency modulation:
Modulates ("vibrates") the pitch of the main wave.
Volume modulation:
Modulates the volume of the main wave.

Wave parameters

Each wave has its own frequency, volume/amplitude, waveform and waveform offset:

Frequency
determines how fast the wave will repeat (in Hz).
Volume/amplitude
determines the strength of the wave.
Waveform
is the shape of the wave. There are eight different waveforms to choose from, including a user defined Custom wave. These are selected from the waveform selector to the right. Try them out to hear the difference!
To edit the Custom waveform, click the Custom button below the waveform selector. See Envelopes below for details on how to edit envelopes and custom waveforms.
Offset
is adjusted using the slider below the waveform selector. This determines the offset/phase of the waveform. This can be useful for a bit more advanced sounds.
When Noise or Noise2 is selected, offset instead determines the random seed for the noise generation.

Note that the frequency slider stops at 3000 Hz for the Main wave, and at 1000 Hz for modulation waves, but all can reach up to 9999.99 Hz by manually entering a value into the text box to the right of the slider, or by using the buttons around the slider.

Envelopes

With envelopes, you can freely control a parameter of the sound over time. A simple example would be to make the frequency gradually increase, or the volume lower and lower (like a fade-out), but you can give the envelope any shape you want.
The envelope editor is also used to create custom waveforms, where the graph instead represents the shape of the wave.

Main wave, Frequency modulation and Volume modulation have two envelopes and one Custom wave each.

Volume/Amplitude:
This changes the volume or amplitude of the wave over time.
Frequency:
This changes the frequency of the wave over time.
Custom wave:
This lets you create your very own waveform! Be sure to have the Custom waveform selected in the waveform selector.

Select the envelope you want to edit by clicking the button to the left of the slider for that parameter. To edit custom wave, click the button located below the waveform selector.
After having selected the envelope, use the envelope panel to edit the points of the envelope.
The text above the envelope panel will indicate which envelope is currently selected.

Editing the envelopes

The following two methods can be used to edit the points of the envelope. Choose the one you prefer in the Settings.

Mode A:

  • Move a selected point to the cursor with left-click.

Mode B (default):

  • Create a point by left-clicking on an empty space.
  • Select a point with left-click.
  • Move a point by dragging it with the left mouse button.
  • To remove a point, drag it outside the envelope panel.

The following applies to both editing modes:

  • To select a point, right-click on or near it. You can also use Shift + Left or Shift + Right to select the previous or next point respectively.
  • You can move the selected point a single step using the Arrow keys for more precision. Holding Ctrl will move it five steps.
  • To add a point to the envelope, click + to the right (or Numpad+/Insert) and a point will be added between the currently selected point and the next one. Note that no point can be created with the last point selected.
  • To remove a point from the envelope, click - to the right (or Numpad-/Delete) and the currently selected point will be removed. Note that the first and last point of the envelope cannot be removed.

The coordinates of the selected point are displayed to the right above the envelope panel.

To the right of the envelope there is an Edit button, which opens a menu with more commands:

Flip Horizontally:
Flips the points of envelope horizontally.
Flip Vertically:
Flips the points of the envelope vertically.
Copy:
Copies the current envelope to clipboard.
Paste:
Pastes a copied envelope into the current one. Note that different kinds of envelopes can be copied between each other. You can for instance copy the Main Frequency envelope and paste it into the Main Volume envelope.
Reset:
Resets the envelope to its default state.

Check the Curves checkbox to interpolate between points with a Bézier curve instead of straight lines.

Copy channel

To copy elements of a channel to another channel, follow these steps:

  1. Select the channel from which you would like to copy by clicking its button.
    The text below the channel buttons should say "Copy Channel X to:" where X is the currently selected channel.
  2. Select the destination channel from the drop down list.
  3. Click Go!.
    The copy window will appear, containing options for which elements to copy.
  4. De-select anything you do not want to copy from that channel and then click Copy.

Effects

To make your sound more exciting, you can try adding effects.
Switch to the Effects tab and select an effect to add from the menu opened by clicking the Add effect... button.
The effect you chose will show up as a panel with relevant controls in the effect list below. You can add more effects if you want. Effects are applied in the order they appear from top to bottom.

On an effect panel's title bar (gray area at the top) you will find its name, and some controls:

Collapse/expand (˅/˃):
Use this to collapse or expand the contents of the effect panel, so it takes up less visual space.
Enable/disable ():
Enable/disable effect. If this is unchecked, the effect will be ignored/not applied.
Move up/down (/):
Move the effect up or down in the list. You can also use the title bar to drag and drop the effect to the desired position.
Remove (X):
Remove the effect from the list.

Inside an effect panel, on its right side, there are eight checkboxes numbered 1 through 8. If "Apply to all channels" is unchecked, these checkboxes determine which channels the effect will be applied to.

All effect types are different, and thus each have their own set of parameters:

Echo

Adds a set number of repetitions over the sound, with a given delay and decay value.

Delay:
The delay between each repetition in milliseconds.
Decay value:
The relative volume for each repetition.
Iterations:
The number of repetitions to add over the sound.

Reverb

This effect makes the essence of the sound linger for a while, simulating the acoustics of a large room.

Room size:
An arbitrary size of the "room" the sound echoes through. Larger values means longer decay times.
Wet/dry:
How much of the original sound is heard. A value of 0 means that only the reflections will be heard, while 100 means only the original sound is heard.

Overdrive

Boosts the volume of the sound, but limits any parts exceeding the original maximum volume, resulting in a louder and grittier sound without actually increasing the volume.

Amount:
How much to amplify the original sound before limiting.
Soft:
Determines whether or not the sound will be hard clipped, or receive a softer treatment where the wave values are gradually limited approaching the clipping edge.

Flanger

Adds a slightly slower or faster copy over the sound, which results in a sweeping effect.

Speed:
How much the speed of the copy is increased or decreased. Values further from 0 results in a faster sweep.
Offset:
The original offset of the copy.
Inverted:
With this checked the copy will be inverted, or "upside down", resulting in a different and often more distinct sweeping sound.

Chord

Combines several pitch-shifted versions of the sound. Note that the pitch is different, but the length remains the same.
You can have four voices with different pitches and volumes at once.

Relative note (leftmost control):
How many semitones this voice will be pitched up or down.
Volume:
The volume for this voice. Set to 0 to disable.

Bitcrusher

This effect will reduce the apparent resolution of your sound, to achieve a more lo-fi or "retro" sound.

Note that Bitcrusher does not affect the actual bitrate of the sound file.

Depth:
Determines the amount of available values per sample the resulting sound will have, in bits. 8 bits means 256 values, 4 bits means 16 values and so on. You can even enter a non-integer value, such as 2.6 bits, to get 6 values.
Sample rate:
Determines how many samples per second the resulting sound will have.
Dither:
Adds noise to the input sound to eliminate consistent rounding. See a more detailed explanation of dither under Quality above.
Center:
With an even number of available values, there will be an equal amount of positive and negative values, but none at 0. With this option unchecked, the values will instead be shifted so that one of them will be at 0.
With an uneven number of available values, there will always be one at 0, so in that case this option does nothing.

Mutator

If you want to slightly change something with your sound but you are not sure exactly what, you can use the Mutator.
Click the Mutator button below the channel buttons to open the Mutator. Adjust the sliders to determine how extreme the mutation of each element will be.
When you click Mutate!, the parameters of your sound will change randomly.
You can apply the mutation to all enabled channels or only the selected channel.

Randomizer

If you are lazy, in a hurry, or find everything in this manual confusing, you can use the Randomizer to let LabChirp generate a sound for you!
Click the Randomizer button below the channel buttons to open the Randomizer.
To quickly generate a random sound, simply select one of the presets and click Randomize!.
This will overwrite any current sound you might be working on, so remember to save before randomizing!

With the arrow buttons (< and >) next to the Randomize! button, you can re-generate a previously generated sound. Useful if you heard a cool sound but accidentally generated a new one.

You can also create and save your own presets!
The <New> preset has all parameters set to create the default sound, and is a good starting point for creating a new preset from scratch, but any preset can be edited.
The different tabs contain settings for the random generation. These settings can be saved by typing a name in the preset selector and clicking Save.

Main

In this tab you can set the range for most of the controls in the Wave tab, and the number of channels to be randomized. For instance, if you set Main Frequency to Minimum 100 and Maximum 200, the main frequency value of the generated sound will be somewhere between 100 and 200.

Waveforms

Select all waveforms to be included in the randomization for each wave. For instance, if you only want Noise, have only that selected.
"Custom" will generate a random Custom wave.

Envelopes

In this tab, you can adjust how the different envelopes will be generated.

Start:
Determines the position of the first point. For instance, if you want it to start at the top always, set both Minimum and Maximum to 100. To have it start somewhere between 20 and 50, set Minimum to 20 and Maximum to 50.
Next X:
Determines how far a new point will be placed from the previous in the horizontal (temporal) axis. "1" means it will be created only one step from the previous, and "500" means it will be created all the way at the end.
Next Y:
Determines how far up or down a new point will be placed relative to the previous. For instance, to make the envelope tend downwards, set the Minimum and Maximum value to something negative.

Hovering any of the colored areas to the left will display randomized previews for that envelope generated with the current parameters.

Effects

Effects can be added to a preset using the Add effect... button. Adjust the number next to the effect's name to determine the probability in percent that the effect will be added to the sound.
All effects have their own minimum and maximum values for their specific parameters. For on/off parameters, a numeric value is used to determine the probability of the parameter's checkbox being checked.

Batch save

Click the Batch save... button in the Randomizer or Mutator window to open the Batch save dialog. This allows you to generate several randomized/mutated sounds at once, based on the current Randomizer or Mutator settings.

Select the number of sounds to generate, and their file type (LCH and/or WAV), then click Save.... In the save dialog that appears, browse to the desired save location and input a base file name, and save. The generated files will use this name as a prefix, followed by a number.

Keyboard shortcuts

Here is a list of all the keyboard shortcuts you can use in LabChirp.

P
Play the sound
Esc
Stop currently playing sound
Ctrl + N
Reset/New
Ctrl + O
Load
Ctrl + S
Save
Ctrl + Z
Undo
Ctrl + Y
Redo
Ctrl + Shift + Z
Redo
Alt + F4
Exit LabChirp
Ctrl + Tab
Select next channel
Ctrl + Shift + Tab
Select previous channel
Ctrl + 1-8
Select specific channel
Ctrl + W
Switch to the Wave tab
Ctrl + E
Switch to the Effects tab
E
Set focus to the Envelope panel

Envelope
Up
Move selected point up one step
Down
Move selected point down one step
Left
Move selected point left one step
Right
Move selected point right one step
Ctrl + Up
Move selected point up five steps
Ctrl + Down
Move selected point down five steps
Ctrl + Left
Move selected point left five steps
Ctrl + Right
Move selected point right five steps
Shift + Left
Select previous point
Shift + Right
Select next point
Numpad+
Add point
Insert
Add point
Numpad-
Remove point
Delete
Remove point

Contact

You can contact me by sending an email to labbed@labbed.net.
Please also visit my website for other stuff, at Labbed.net!

Have fun!