# The &kwave; Handbook

## Introduction

This is "&kwave;", a simple sound editor built on the &kde-frameworks;. Its features include:

- a user interface that can be switched to SDI, MDI or Tab mode

- simple cut, copy and paste functions

- multi-level undo/redo

- labeling of signals

- Recording functionality, including pre-recording

- Playback via ALSA, PulseAudio, Qt, and OSS

- Recording via ALSA, PulseAudio, Qt, and OSS

- MP3 import/export

- Ogg/Vorbis and Opus import/export

- FLAC import/export

- some analysis functions such as Sonagram

- internally uses 24 bit fixed precision for sample data

- free selectable sample rates

- support for editing of multi channel files

- playback of multi channel audio files (audio output will be mixed down to mono or stereo if needed)

- extendible through an easy-to-use plugin interface

- import/export of other audio formats through audiofile

If you are interested what has been done and what has still to be done, then look at the files `CHANGES` and `TODO` included in the source package. Help and constructive critics are always welcome.

### &kwave; Resources

So if you want to get in contact with the developers, need some further help on using &kwave;, submit patches, bug reports or other stuff, the following resources might be of interest for you:

- Project Homepage

  For information about new up-to-date releases see the &kwave; page on apps.kde.org. For other information take a look at the &kwave; homepage .

- Git Repository

  The git repository is hosted on &kde;'s Gitlab instance here, and there is also a mirror repository on SourceForge.

### &kwave; Revision History

This project has been started by Martin Wilz in summer 1998 and has been developed and improved by him and some other people. In November 1999 Thomas Eschenbacher has started to fix some little bugs here and there and stepped into the source code of the program deeper and deeper. Up to today he has extended, rewritten or revised nearly every component of the program and spent much time on improving it.

Since &kwave; v0.8.0 the changelog is no longer included in this manual. So if you are interested in a complete list of changes, you can find the full history here: &url_changelog; or browse through the sources on your own through the git web interface.

&kwave; version v0.9.0 is the first version hosted on &kde; (kdereview) and SourceForge servers, followed by v0.9.1, the first version for &kf5-full;.

## Basics about digital audio

This chapter should give a short introduction about the basics of digital audio processing, without going too much into details.

### The analogue world

First of all, one must know that the world is analogue - but computers work digitally. So there are several ways to convert analogue audio to digital audio and back again. As the way from digital to analogue normally is the reversion of the way from analogue to digital, we only describe the way from analogue to digital.

Conversion from sound to bits

Conversion from sound to bits

Before continuing, analogue audio has to be transformed into electronic signals in order to find its way into a computer. One common way to do this is by using a microphone and an amplifier. This combination gets sound (changes of air pressure) at its input and a voltage at its output. Higher amplitude of the pressure changes will be represented by higher voltages at the amplifier's output. This output is also called a 'signal'. Instead of a microphone you can of course also imagine other sources of audio. And the "amplifier" can be the one that is integrated into your sound card, where you normally cannot see it.

Conversion to electronic signal

Conversion to electronic signal

At this stage, the electrical signal has three limitations that one should keep in mind:

1. The amplitude (volume) is limited to some maximum level. This is a consequence of the electronic (amplifiers) that are only able to handle voltages within some specific range. That's no problem as long as sounds are not too loud. In that case the signal would be clipped, which means that the electrical signal will run against its margins and the result will be disturbed.

2. The frequency range is also limited. Due to the mechanical constrains of microphones and the limited frequency range of amplifiers, a signal's frequency range is limited. There are no hard borders besides which the sound abruptly disappears, but below some low and above some higher frequency the amplitude of the signal starts to decrease more and more. The existence of a maximum frequency can be easily understood as a limited speed of the electrical signal to rise and fall. By using high quality amplifiers and microphones, the limits can be spread into ranges where the human ear is no longer able to hear their results and thus get out of interest. The human ear normally is not able to hear sound above 20 kHz.

3. The signal contains noise. Noise is the most ugly enemy of everyone who has to handle audio signals in any way. Noise is a typical analogue effect, that makes the audio signal "unsharp" and disturbed, it is always present and cannot be avoided. One can only try to use high quality components that produce as low noise as possible, so that one cannot hear it. Normally noise has a certain volume, so that the interesting sound should be much louder in comparison to the noise. This is called the signal to noise ratio (SNR), the higher it is the better the sound's quality will be. Sounds that have lower volume than the noise cannot be heart.

### Digitalization

When we want to store and play audio in a computer, we must convert the analogue sound into digital data first. This process is called digitalization. It converts an electronic signal into a sequence of digital values.

Digitalization of the electronic signal

Digitalization of the electronic signal

The conversion can be understood as a repetitive measurement of the electronic signal's value at certain time, thus taking a sample of the signal. The result is then encoded as a digital value.

The sampling could be done in arbitrary distances or in constant intervals. The later method is much easier to handle, and thus it is normally used, with a constant rate - the so-called sample rate. Usual sample rates are 8000, 11025, 22050, and 44100 samples per second. In practice sample rates are also given as frequencies, in Hz or kHz.

The sample rate limits the highest frequency a digitized signal can represent. Due to Shannon's theorem the highest usable frequency is half of the sample rate, so with 44.1 kHz sample rate you cannot sample signals with more than 22 kHz. To avoid a violation of that half-sample rate rule, your soundcard already has built-in filters that filter away frequencies that are higher than half of the used sample rate.

Sampled signal

Sampled signal

### Sample Encoding

The result of the digital sampling process is a sequence of single samples. One sample is a digital representation of a signal's value at a certain time.

The value of a sample can be interpreted and encoded in several ways. The simplest one is linear encoding. This means that each sample's value directly represents the analogue signal's value multiplied with a constant factor. This is easy to handle, but has the disadvantage that noise will be audible especially on low amplitudes, where it disturbs most, and less audible on high amplitudes, where it is less audible.

One way to reduce the influence of noise is non-linear encoding. This means that lower amplitudes are amplified before processing. As lower amplitudes are amplified, their distance from noise increases and the quality improves. The most common methods for this are A-Law and U-Law encoding - some standardized logarithmic amplification curves, used in digital telephony (ITU G.711 standard).

Nonlinear Encoding

Nonlinear Encoding

### Sample Formats

Samples can be stored in different formats and precisions. The most common ones are integer (fixed-point) formats, that store values with fixed quantisations. Depending on where the zero line is defined, it has to be destinguished between unsigned (only positive values, "zero line" is at half of the numeric range) and signed (positive and negative values) integer formats.

Signed Format

Signed Format

Unsigned Format

Unsigned Format

As the quantisation loses some accuracy, it produces noise, the so-called quantisation noise. That kind of noise has more effect on low amplitudes, so this method of storing samples is not optimal, but quite easy and very fast to handle (computers are fast in calculating with fixed point numbers).

The second way of encoding samples is with floating point numbers. With floating point numbers, noise is spread nearly equal over all ranges of amplitudes and has advantages especially on low amplitudes. However, this format is much slower when used for processing (computers are much slower on calculating with floating point values in comparison to fixed point numbers).

&kwave; internally uses signed integer format with 24 bit precision, stored in 32 bit integers. This has the disadvantage of higher memory consumption when processing files with lower precision (⪚ 8 bits), but processing 32 bit numbers is very fast and also leaves some reserves for internal calculations, as only 24 bits are normally used.

## Using &kwave;

Here is a little screenshot of the &kwave; main window, so that you get an impression what &kwave; looks like...

Here's a screenshot of &kwave; Screenshot of the Main Window

### User Interface Mode

Depending on your personal preferences or use cases you can configure how &kwave; handles multiple open files. You can switch this setting on the fly through the menu Settings Show Files in... .

The three possible settings are:

- Separate Windows (SDI): When using the Single Document Interface (SDI), each file will be shown in a separate main window. screenshot of &kwave; in SDI mode Screenshot of SDI mode

- Same Window (MDI): When using the Multi Document Interface (MDI), there is only one &kwave; main window, but within this window you have an area which shows sub-windows, which can be resized, moved, tiled, cascaded or minimized.

  You can select a window from the Window menu or cycle through the sub-windows with &Ctrl; . screenshot of &kwave; in MDI mode Screenshot of MDI mode

- Tabs: This is a variant of the MDI interface, where files are shown within separate tabs. You may know this mode from some popular Internet browsers.

  You can activate a tab via the Window menu or cycle through the tabs with &Ctrl; . screenshot of &kwave; in TAB mode Screenshot of TAB mode

### Command Line

#### List of Files or Commands

If you start &kwave; from the command line, you can specify a list of files that should be opened. The first specified file will be opened first, then the other files. Each file will be opened in an own new window or sub-window of the same &kwave; instance. If you specify wildcards, you can open a large number of files at once.

For example, the following command starts a &kwave; and opens all sounds provided by the freedesktop XDG sound theme, each in a new window or sub-window:

    % kwave /usr/share/sounds/freedesktop/stereo/*.ogg

It is also possible to pass &kwave; text commands, encoded as a special &URI;

universal resource identifier

, this will be described in a later section.

#### &GUI; Type

The parameter `--gui=`SDI`|`MDI`|`TAB`` lets &kwave; start in one of the three possible &GUI; modes: SDI, MDI or TAB.

#### Qt Toolkit options

In addition to a list of files, you can specify a list of Qt toolkit options like `-qwindowgeometry` for specifying the size and/or position of the first opened &kwave; window and/or `-display` for starting the &kwave; on a different display.

For example, the following command starts a &kwave; window with an initial width of 600 pixels and a height of 400 pixels, with the right border positioned 30 pixels away from the right and 0 pixels away from the top of the screen.

    % kwave --disable-splashscreen -qwindowgeometry 600x400-30+0

#### Startup Options

With the option `--disable-splashscreen` you can disable the splash screen that comes up when starting &kwave;. This might be useful when you start &kwave; from a script.

The command line option `--iconic` lets &kwave; start up minimized (iconified). This might be useful when you want to start &kwave; without &GUI; interaction, ⪚ when running from a script. This option also implicitly disables the splash screen!

By using the command line option `--logfile=`kwave.log`` you can log the sequence of actions of a &kwave; session into a file. This is useful for debugging, you might be asked for such a logfile when reporting an error.

### Opening and Saving files

Opening files with &kwave; works like in most other applications, you can

- specify a list of files on the command line when starting &kwave;,

- open an empty &kwave; window (for example with &Ctrl;W File New... ) and put a file into it via drag and drop, or you can

- open a file through the menu with &Ctrl;O File Open

- or one of the last recently opened files under File Open Recent

- save the current file with &Ctrl;S File Save ,

- save under a different name with &Shift;&Ctrl;S File Save As...

- save all areas that are separated by markers, each one to an own file, with File Save Blocks...

- or only the current selection with File Save Selection...

#### Supported File formats

&kwave; supports the following file formats:

- The favourite file format of &kwave; is (like you can guess from the name) `.wav`. This format is very common to other "operating systems" and also is commonly used within the &plasma; environment.

- The second format that &kwave; supports is "ASCII". You can export to and also import from ASCII. Please be aware that storing in this format might produce very large files! The file format will be described below.

- `.mp3` and `.mp2` import is available through libmad for the MP3 decoding in combination with id3lib for decoding ID3 tags and lame for encoding.

- Ogg/Vorbis (`*.ogg`) import and export. See &url_ogg_vorbis; for details.

- FLAC (`*.flac`) import and export. See &url_flac; for details.

- Additionally you can import file formats like `*.8svx` (Amiga IFF/8SVX Sound File Format), `*.au` (NeXT, Sun Audio), `*.aiff` (Audio Interchange Format), `*.avr` (Audio Visual Research File Format), `*.caf` (Core Audio Format), `*.nist` (NIST SPHERE Audio File Format), `*.sf` (Berkeley, IRCAM, Carl Sound Format), `*.smp` (Sample Vision Format), `*.snd` (NeXT, Sun Audio), `*.voc` (Creative Voice) and others through the audiofile plugin.

#### Converting to and from .wav

The best way to work with formats other than those supported by &kwave; is to use an external converter program. A good set of tools for this is in the SoX package, they have also some nice documentation!

The plans for future include support for import and also export filters for more formats and maybe some filter that uses a user-definable script with a call to an external filter, so that even formats not supported by `SoX` can be read and/or written.

#### Format of ASCII files

The ASCII format is quite useful for scientific and educational purposes. Due to its simple format, you can either write simple files on your own with a text editor or you can use the output of some other application and convert it into ASCII. As the format is really simple, you should not have big problems in writing a converter and most scientific applications use to have some kind of their own ASCII format for export.

The format of an ASCII file is quite simple and has the following rules:

1. At the start of the file comes a block of properties, with one property per line.

2. Each property line starts with `##`.

3. After the properties comes a list of samples, with one sample per line. When using multiple channels, the samples are separated by commas.

4. Lines might end with a carriage return and/or a line feed character (so DOS files are supported too). But when saving, files will always be saved with line feed character as the end of the line.

5. Empty lines and characters after a `#` are treated as comments and are ignored.

6. Values have to be given in signed integer format with a 24 bit range, which is the internal storage format of &kwave;.

7. Everything after a `#` (except property lines, see above) will be treated as comment and will be ignored. Empty lines will also be ignored.

Here is an example of a simple ASCII file that represents a sine wave with eleven samples:

##### content of an ASCII file with a single sine wave

    ## 'rate'=44100
    ## 'tracks'=2
    ## 'bits'=16
    ## 'length'=11
    ## 'Date'='2013-11-09'
    ## 'Software'='Kwave-0.8.11 for KDE 4.11.3'
      5930496,   5930496 #            0
            0,   8388352 #            1
     -5930752,   5930496 #            2
     -8388608,         0 #            3
     -5930752,  -5930752 #            4
            0,  -8388608 #            5
      5930496,  -5930752 #            6
      8388352,         0 #            7
      5930496,   5930496 #            8
            0,   8388352 #            9
     -5930752,   5930496 #           10
    # EOF

### Creating a New File

You can create a new and empty file menu under File New... .

Here's a screenshot of &kwave;'s new file dialog Screenshot of the File New Dialog

You can select the sample rate, resolution in bits per sample and the number of tracks. Per default the file format will be ".wav", but it can still be changed at the time when the file is saved.

The length of the new signal can be set by time (hours, minutes, seconds) or by the number of samples. Additionally you can select it relative to the highest possible length, which is limited by the available memory and &kwave;'s internal limit (2 GB).

### Recording

&kwave; is able to record audio data from various sources, with all sample rates, sample formats and other modes that your sound hardware supports. &kwave; can record with the ALSA, PulseAudio, Qt, and OSS backends.

The recording can be reached from the menu under File Record .

Here is a screenshot of the &kwave; record dialog, showing the first page with the recording controls during a running recording session. Like in most dialogs of &kwave; you can get some help or see tooltips on the controls.

Here's a screenshot of &kwave;'s record dialog Screenshot of the Record Dialog

Here you have the following controls:

- Pre-Record: If the pre-recording feature of &kwave; is enabled and the recording is started, &kwave; records into an internal buffer which is some seconds long. If you press the Record ( record button ) button again, then the recording really starts, and also keeps the already pre-recorded data. This is useful for example if you want to record your favorite song from radio, but you recognize too late that the song has started. In this case you can still press the record button and get the start of the song from what &kwave; has already pre-recorded before, so that you will no longer miss a start.

- Record Time: If the length of the recording should be limited to some time, you can activate this setting and select a time in hours, minutes, seconds for your recording. If this option is not enabled, the recording runs until you press the Stop ( stop button ) button.

- Start At: If this setting is activated, you can set a date and time when the recording will be started. Please keep in mind that if the configured time is in the past, the recording will start immediately.

- Record Trigger: If enabled, the recording starts only if the volume of the input goes over a certain limit, which can be defined from 0 to 100% of the highest possible input volume. This is useful if you do not want to record leading silence. (Hint: combine this with the prerecording feature mentioned above to catch also some seconds before reaching the trigger, so that you don't miss any silent fade-ins.)

- The New ( new button ) button is active when the recording is not running or is finished, to discard the current file content and start again.

- The Stop ( stop button ) button is active when the recording or pre-recording is running or &kwave; is waiting for the trigger. If pressed, the current progress will be stopped.

- The Pause ( pause button ) button is active when the recording or pre-recording is running. The first time you press it, the recording will be halted and the button starts blinking. When you press it again the button will stop blinking and recording will continue immediately, without waiting for a trigger.

- The Record ( record button ) button starts the recording and/or prerecording, depending on the features enabled above:

  1. If neither prerecording nor trigger level are used, the recording starts as soon as you press the record button.

  2. If prerecording is not used and a trigger level is set, the first press will let &kwave; wait for the trigger level to be reached. While waiting for a trigger, you can force the recording to start immediately by pressing the record button again, otherwise the recording will start automatically when the trigger level has been reached.

  3. If prerecording is enabled, the first press starts only the prerecording and the second press really starts the recording.

### Playback

Depending on the compilation options &kwave; is able to play sounds through one of the following playback methods:

- ALSA (Advanced Linux Sound Architecture): Supercedes OSS, supports more features and more hardware. Might collide with other sound applications like OSS does, but has a plugin called "dmix" as a way out. Newer versions of ALSA use a dmix like plugin per default, so this should the best choice for you!

- PulseAudio: Common general purpose sound server on Linux. PulseAudio might not be able to get as low latency as ALSA.

- Qt Multimedia: Not designed for low-latency audio, but works with large buffer sizes.

- OSS (Open Sound System): The oldest linux implementation, capable of mono and stereo output. Deprecated since linux kernel 2.6. Might collide with other sound applications, only one application at a time can use OSS playback !

Before trying to play sounds, you should take a look on the playback configuration dialog:

Here's a screenshot of &kwave;'s playback setup dialog Screenshot of the Playback Setup Dialog

If your sound file uses more or less channels than the playback allows, all channels will be mixed together during playback. For example if you have a file with three channels and you use stereo playback, the left channel will play channel 0 (upper) and half of channel 1 (middle), the right channel will play the half of channel 1 (middle) and channel 2 (lower).

For getting a smooth playback without interruptions, you should also set the buffer size to an appropriate value. If you encounter problems with interrupted playback, you should increase the buffer size here. But the bigger you set the buffer, the bigger is the latency between the audible sound and the display of the playback position in the signal display.

The playback settings dialog also provides a button for playing a simple test sound. You should hear a 440Hz tone that wanders over all speakers, from one to the next.

Once you have configured playback, you can use the playback controls of the &kwave; main window or through the Play menu or with keyboard shortcuts:

- P Play Start : Start playback of the current selection from its beginning or the whole file from the current cursor position if nothing was selected. Play only once.

- Play Loop : Like before, but repeat in a loop.

- &Space; Play Pause : Pause the playback at the current position. Only available when the playback is running.

- &Space; Play Continue : Continue the playback from the position where it has been paused. Only available if the playback is paused.

- Esc Play Stop : Stop the playback, go back to the start of the selection.

### File Properties

&kwave; is able to handle several meta information that is stored within an audio file. It tries to import and export as much of that information as possible. For example, if you import an MP3 file with ID3 tags, you can keep that information when exporting to a Wave file. If &kwave; would lose meta information when saving, it shows a warning.

You can view and modify the meta information under Edit File Properties... . There you can also change things like sample format, resolution and compression.

Here's a screenshot of &kwave;'s file properties dialog Screenshot of the File Properties Dialog

### Zooming and navigating

&kwave; provides several ways to zoom and navigate, using keyboard shortcuts, menu commands, toolbar buttons and by using the mouse. The following sections should give an overview on how to use all of these functions.

#### Zooming in and out

- zoom in: zooms in to see more details, magnifies by factor 3.

  - menu entry / keyboard shortcut: &Ctrl;+ View Zoom In

- zoom out: zooms in to see less details, shrinks by factor 3.

  - menu entry / keyboard shortcut: &Ctrl;- View Zoom Out

- zoom selection: zooms to a factor where the current selection is completely visible in the current view.

  - menu entry / keyboard shortcut: &Ctrl;&Space; View Zoom to Selection

- zoom to whole signal: selects a zoom factor that makes the whole signal visible in the current window.

  - menu entry: View Zoom to whole signal

- zoom to 100%: zooms in up to a scale where one sample is represented by one pixel on the screen.

  - menu entry: View Zoom to 100%

- select predefined zoom: select a zoom factor from the zoom combo box in the toolbar.

#### Scrolling left and right

- goto position: opens a dialog to enter the position where you want scrolls the current view.

  menu entry / keyboard shortcut: &Ctrl;G View Go to Position...

- to begin: scrolls the current view so that it starts at the beginning of the signal.

  menu entry / keyboard shortcut: &Ctrl;&Home; View Begin

- to end: scrolls the current view so that it ends at the end of the signal.

  menu entry / keyboard shortcut: &Ctrl;&End; View End

- previous page: scrolls to the position right before the current view (left).

  menu entry / keyboard shortcut: &PgUp; View Previous Page

- next page: scrolls to the position right after the current view (right).

  menu entry / keyboard shortcut: &PgDn; View Next Page

- scroll right: scrolls to the end of the signal by 1/3 of the current view.

  menu entry / keyboard shortcut: &Right; View Scroll right

- scroll left: scrolls to the start of the signal by 1/3 of the current view.

  menu entry / keyboard shortcut: &Left; View Scroll left

#### Using the overview

The main screen of &kwave; shows a small overview of the whole signal above the horizontal scroll bar of the main window. This overview also provides some functionality for navigating:

- single click with &LMB;: directly move the current view to the clicked position.

- double click with &LMB;: directly move the current view to the clicked position and additionally zoom in.

- double click with &LMB;, with &Shift; pressed: directly move the current view to the clicked position and additionally zoom out.

#### Vertical zoom

You can zoom the current view vertically by pressing the &Alt; key and scrolling with the mouse wheel.

### How to select

&kwave; allows you to select a continuous range of samples as well as any combination of channels (if you edit a multi-channel file). By selecting a range of samples (time scope) all following commands will be limited to that range and by de-selecting a channel its content will not be changed.

#### Selecting channels

Selecting or de-selecting a channel is quite simple. Just click on the lamp symbol on the left side of the signal to toggle its state:

green lamp a green lamp means "enabled", whereas

red lamp a red lamp means "disabled".

Note: If a channel is de-selected it will also not be audible for playback!

#### Selecting samples

If you select a range of samples in &kwave;, that range will be inclusive. That means that the first and the last selected sample both belong to the selection and will be used for the following actions. So even if you not selected a range but only a single sample, the selection will never be really "empty". So for example if you see no selected range, the "delete" function applies to that single sample.

The easiest way of selecting a range of samples is just to do that with mouse. It works like you are used from other applications: just press the &LMB; at the point you want to let the selection start and release the button where you want it to end.

If you want to adjust or move the selection's start or end, you can move the mouse cursor near to the start or the end of the selection until it changes from the standard arrow cursor into the left-right arrow cursor and then press the &LMB; and adjust.

You can also extend or shrink the selection to a specific point by holding down the &Shift; key while clicking with the &LMB;. Depending on which border is nearer, the left or right border of the selection will be set until the new position. If there was nothing selected, will be set from the beginning.

There are also some functions available via the menu and of course some keyboard shortcuts:

- select the whole signal: &Ctrl;A Edit Selection All

- select a range: R Edit Selection Range

- the currently visible area: V Edit Selection Visible Area

- the next block of samples, starting one sample after the end of the current selection and with the same length: &Shift;+ Edit Selection Next

  (Hint: use the "+" key from the numeric keypad!)

- the previous block of samples, ending one sample before the start of the current selection and with the same length: &Shift;- Edit Selection Previous

  (Hint: use the "-" key from the numeric keypad!)

- remove any selection and select "nothing": N Edit Selection Nothing

- expand the selection to the start of the signal (first sample): &Shift;&Home; Edit Selection To Start

- expand the selection to the end of the signal (last sample): &Shift;&End; Edit Selection To End

- expand the current selection left and right up to the next label (or start/end of the signal if there is none), starting at the current cursor position: E Edit Selection Expand to labels

- select the area between the next two labels that are right from the current selection or up to the end of the signal: &Ctrl;&Shift;N Edit Selection To Next Labels

- select the area between the previous two labels that are left from the current selection or up to the start of the signal: &Ctrl;&Shift;P Edit Selection To Previous Labels

### Clipboard

&kwave; uses the clipboard of &plasma;. This way it is possible to exchange audio data between different &kwave; windows. It might be possible as well to exchange data between &kwave; and other audio applications, depending on their ability to use the &plasma; clipboard.

When copying data to the clipboard through the `copy` function &kwave; uses the mime type `audio/vnd.wave` as data format, conforming to RFC 2361 which is the same as the well known `wav` format. When pasting from the clipboard into &kwave; all data formats that are available as file import formats are supported, like for example Ogg/Vorbis, FLAC and so on.

### Drag and Drop

&kwave; supports the &kde-frameworks; Drag and Drop protocol. This enables you to open files just by picking them up in a &dolphin; or &konqueror; window or the Desktop and let them drop into a window of &kwave;.

Please note that if you drop a file into a &kwave; window that already contains an opened file, the currently opened file will be closed first and then the file you dropped will be opened in it. If you don't want that, you should open a new empty &kwave; window first.

You can also select a range of samples and drag or drop them into a &kwave; window. Per default the drag operation is done in move mode where the selected range is deleted from the original place and inserted at the drop position. By pressing the &Ctrl; key you can modify this and drag in copy mode instead.

## Automization and Scripting with &kwave;

&kwave; since its first version uses an internal text command language. This command language is used internally for menu handling, &GUI; control, builtin effects and plugin invocations. The commands will be described later in the section title_kwave_commands.

### General Syntax

- All commands consist of a command name and an optional parameter list in round brackets, depending on the command.

- Allowed characters for command names are letters, digits and colon. Commands are case sensitive and are always in lower case.

- Parameters within a parameter list are separated by comma.

- Numerical parameters can be given as fixed point numbers or as floating point numbers, using a dot as decimal separator.

- String parameters are automatically trimmed (all white space at the start and at the end is removed). If that is not wanted, they can be surrounded by double quotes ("). If a string parameter contains special characters (like ,, ;, # or a \ itself), these special characters have to be escaped by preceding a \.

- Multiple commands can be concatenated to a command list by using a ; as separator.

Example:

    fileinfo(Comments,"This is an \"example\" comment.")

This example consists of the command `fileinfo`() and has two parameters: the keyword `Comments` and the text `"This is an \"example\" comment."`. (These parameters are explained in the corresponding section in the command reference).

### Using the Command Line

In addition to the command line options listed in the section Command Line which are used to start &kwave; in iconified mode or without splash screen, you can pass text commands on the command line, encoded in a special &URI; format:

`kwave:`command`[?`parameter`[,`parameter` ...] ]`

The rules for transforming a &kwave; text command into a valid &URI; are as follows:

- The &URI; starts with the word `kwave`, followed by a : and the command name.

- If the command has parameters, they have to be appended after the command name, using a ? as separator.

- Multiple parameters can be appended by using a , as separator.

- All special characters in command name and parameters have to be &URL; encoded. Here a list of the translations:

  ### &URL; Encoding Translation Table

  original | encoded | &no-i18n-unicode-0x0020; | original | encoded | &no-i18n-unicode-0x0020; | original | encoded | &no-i18n-unicode-0x0020; | original | encoded
  (space) | `&no-i18n-urlenc-20;` | &no-i18n-unicode-0x0028; | `&no-i18n-urlenc-28;` | &no-i18n-unicode-0x003A; | `&no-i18n-urlenc-3A;` | &no-i18n-unicode-0x005C; | `&no-i18n-urlenc-5C;`
  &no-i18n-unicode-0x0021; | `&no-i18n-urlenc-21;` | &no-i18n-unicode-0x0029; | `&no-i18n-urlenc-29;` | &no-i18n-unicode-0x003B; | `&no-i18n-urlenc-3B;` | &no-i18n-unicode-0x005D; | `&no-i18n-urlenc-5D;`
  &no-i18n-unicode-0x0022; | `&no-i18n-urlenc-22;` | &no-i18n-unicode-0x002A; | `&no-i18n-urlenc-2A;` | &no-i18n-unicode-0x003C; | `&no-i18n-urlenc-3C;` | &no-i18n-unicode-0x005E; | `&no-i18n-urlenc-5E;`
  &no-i18n-unicode-0x0023; | `&no-i18n-urlenc-23;` | &no-i18n-unicode-0x002B; | `&no-i18n-urlenc-2B;` | &no-i18n-unicode-0x003D; | `&no-i18n-urlenc-3D;` | &no-i18n-unicode-0x005F; | `&no-i18n-urlenc-5F;`
  &no-i18n-unicode-0x0024; | `&no-i18n-urlenc-24;` | &no-i18n-unicode-0x002C; | `&no-i18n-urlenc-2C;` | &no-i18n-unicode-0x003E; | `&no-i18n-urlenc-3E;` | &no-i18n-unicode-0x0060; | `&no-i18n-urlenc-60;`
  &no-i18n-unicode-0x0025; | `&no-i18n-urlenc-25;` | &no-i18n-unicode-0x002D; | `&no-i18n-urlenc-2D;` | &no-i18n-unicode-0x003F; | `&no-i18n-urlenc-3F;` | &no-i18n-unicode-0x007B; | `&no-i18n-urlenc-7B;`
  &no-i18n-unicode-0x0026; | `&no-i18n-urlenc-26;` | &no-i18n-unicode-0x002E; | `&no-i18n-urlenc-3E;` | &no-i18n-unicode-0x0040; | `&no-i18n-urlenc-40;` | &no-i18n-unicode-0x007C; | `&no-i18n-urlenc-7C;`
  &no-i18n-unicode-0x0027; | `&no-i18n-urlenc-27;` | &no-i18n-unicode-0x002F; | `&no-i18n-urlenc-2F;` | &no-i18n-unicode-0x005B; | `&no-i18n-urlenc-5B;` | &no-i18n-unicode-0x007D; | `&no-i18n-urlenc-7D;`
  &no-i18n-unicode-0x007E; | `&no-i18n-urlenc-7E;`

### &kwave; Script Files

#### General Structure

A &kwave; script consists of a list of lines, where each line can be:

- a single command,

- a command list, with two or more commands concatenated by a ;.

- a comment,

- a label

- or an empty line, that contains white space only

#### Comments and Empty Lines

All characters that follow a # (except when used in quotes or when escaped) are treated as comments, they will be silently ignored.

Lines that contain only white space or comments are ignored as well.

#### Termination

A &kwave; script terminates either when all commands have been executed successfully without an error or when a command has returned an error code. There is no special command for aborting the execution of a script. If you want to implement a possibility for the user to end a script, you can use the command `msgbox`(``text``). This shows a message box with the two buttons OK (which lets the script continue) and Cancel (which returns an error code and stops the script).

#### Labels

Lines that consist only of an identifier, followed by a : are treated labels. They can be referenced later in the script by the special keyword `GOTO`

Note: Please don't mix up the keyword `GOTO` with the text command `goto` (``position``) !

, which makes the execution of the script continue at the location of that label (see example below).

A line that contains a label must not contain any other content (except comments or white space) after the :.

Example:

    	    start:  # <= this is a label
    	            # do something...
    	            msgbox(once again?)
    	            GOTO start

### Command Reference

### Alphabetical Index

&no-i18n-tag;

### a

cmd_title_about_kde cmd_title_add_track

### c

cmd_title_clipboard_flush cmd_title_close cmd_title_continue cmd_title_copy cmd_title_crop cmd_title_cut

### d

cmd_title_delayed cmd_title_delete cmd_title_delete_track cmd_title_dump_metadata

### e

cmd_title_label_edit cmd_title_expandtolabel

### f

cmd_title_fileinfo cmd_title_forward

### g

cmd_title_goto

### i

cmd_title_insert_at cmd_title_insert_track

### l

cmd_title_label_add cmd_title_label_delete cmd_title_loadbatch cmd_title_loop

### m

cmd_title_menu cmd_title_msgbox

### n

cmd_title_newsignal cmd_title_next

### o

cmd_title_open cmd_title_openrecent

### p

cmd_title_paste cmd_title_pause cmd_title_playback_start cmd_title_plugin cmd_title_plugin_execute cmd_title_plugin_setup cmd_title_prev

### q

cmd_title_quit

### r

cmd_title_redo cmd_title_redo_all cmd_title_reenable_dna cmd_title_reset_toolbars cmd_title_revert cmd_title_rewind

### s

cmd_title_save cmd_title_saveas cmd_title_saveselect cmd_title_select_gui_type cmd_title_select_track_all cmd_title_select_track_invert cmd_title_select_track_none cmd_title_select_track_off cmd_title_select_track_on cmd_title_select_track_toggle cmd_title_selectall cmd_title_selectnext cmd_title_selectnextlabels cmd_title_selectnone cmd_title_selectprev cmd_title_selectprevlabels cmd_title_selecttoleft cmd_title_selecttoright cmd_title_selectvisible cmd_title_start cmd_title_stop cmd_title_sync

### u

cmd_title_undo cmd_title_undo_all

### v

cmd_title_view_scroll_end cmd_title_view_scroll_left cmd_title_view_scroll_next cmd_title_view_scroll_next_label cmd_title_view_scroll_prev cmd_title_view_scroll_prev_label cmd_title_view_scroll_right cmd_title_view_scroll_start cmd_title_view_zoom_all cmd_title_view_zoom_in cmd_title_view_zoom_normal cmd_title_view_zoom_out cmd_title_view_zoom_selection

### w

cmd_title_window_activate cmd_title_window_cascade cmd_title_window_click cmd_title_window_close cmd_title_window_minimize cmd_title_window_mousemove cmd_title_window_next_sub cmd_title_window_prev_sub cmd_title_window_resize cmd_title_window_screenshot cmd_title_window_sendkey cmd_title_window_tile cmd_title_window_tile_vertical

``

### &no-i18n-tag;a

#### &no-i18n-cmd_about_kde;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_about_kde;`()

Shows a dialog window with information about the &kde; community.

#### &no-i18n-cmd_add_track;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_add_track;`()

Adds a new track after all existing tracks.

##### See also

`&no-i18n-tag;&no-i18n-cmd_insert_track;`()

### &no-i18n-tag;c

#### &no-i18n-cmd_clipboard_flush;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_clipboard_flush;`()

Discards the current content of the clipboard (might free some memory).

#### &no-i18n-cmd_close;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_close;`()

Closes the current file. If the &GUI; is configured to MDI or Tab mode, this also closes the corresponding sub-window.

##### See also

`&no-i18n-tag;&no-i18n-cmd_open;`(`filename`), `&no-i18n-tag;&no-i18n-cmd_quit;`()

#### &no-i18n-cmd_continue;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_continue;`()

Corresponds to the Continue toolbar button and lets the playback continue if it is paused.

##### See also

`&no-i18n-tag;&no-i18n-cmd_pause;`()

#### &no-i18n-cmd_copy;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_copy;`()

Copies the content of the current selection to the clipboard. If the selection is empty, this command does nothing and the content of the clipboard remains unchanged. Only the content of the currently selected tracks is copied to the clipboard!

##### See also

`&no-i18n-tag;&no-i18n-cmd_paste;`()

#### &no-i18n-cmd_crop;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_crop;`()

Crops the signal to the current selection by deleting everything that is after and before the current selection. Affects all tracks. If nothing is selected this command does nothing.

#### &no-i18n-cmd_cut;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_cut;`()

Copies the content of the current selection to the clipboard and removes it from the signal. If the selection is empty, this command does nothing and the content of the clipboard remains unchanged. Only the content of the currently selected tracks is copied to the clipboard, but the selected range is deleted from all tracks.

### &no-i18n-tag;d

#### &no-i18n-cmd_delayed;

##### &i18n-cmd_syntax;`&no-i18n-cmd_delayed;`( `milliseconds`, `command` )

Executes a `command` after a given delay. Please note that the command is executed asynchronously after the given time has elapsed. Multiple commands can be queued, where the delays are relative to the last queued command. This command is intended to be used for queuing commands when taking screenshots for documentation purposes.

##### Parameters

`milliseconds`: | number of whole milliseconds to wait before executing the command
`command`: | a command, including parameters to be executed after the given delay

##### See also

`&no-i18n-tag;&no-i18n-cmd_sync;`(), `&no-i18n-tag;&no-i18n-cmd_window_resize;`(), `&no-i18n-tag;&no-i18n-cmd_window_click;`(), `&no-i18n-tag;&no-i18n-cmd_window_sendkey;`(), `&no-i18n-tag;&no-i18n-cmd_window_close;`(), `&no-i18n-tag;&no-i18n-cmd_window_screenshot;`()

#### &no-i18n-cmd_delete;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_delete;`()

Deletes the currently selected range of samples. If the selection is empty, this command does nothing. Affects all tracks.

#### &no-i18n-cmd_delete_track;

##### &i18n-cmd_syntax;`&no-i18n-cmd_delete_track;`(`index`)

Deletes a track, identified by its index (starting from zero). If no track with the given index exists, this command exits with an error.

##### Parameters

`index`: | index of the track to delete, starting with 0

#### &no-i18n-cmd_dump_metadata;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_dump_metadata;`()

Prints a list of all meta data entries to the console, for diagnostic purposes. (Only available when &kwave; has been compiled with the option `WITH_DEBUG` switched on).

### &no-i18n-tag;e

#### &no-i18n-cmd_expandtolabel;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_expandtolabel;`()

Expands the current selection to the labels left and right from the current selection borders. If the border of selection already is on a label, it stays unchanged. If there is no label left or right of the current selection, it will be expanded to the start or end of the file.

### &no-i18n-tag;f

#### &no-i18n-cmd_fileinfo;

##### &i18n-cmd_syntax;`&no-i18n-cmd_fileinfo;`(`index`)

Set a file info entry to a new value.

##### Parameters

`keyword`: | keyword of the entry
`value`: | value of the entry

#### &no-i18n-cmd_forward;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_forward;`()

Corresponds to the Forward toolbar button. If the playback is currently running, it skips forward by 1/10 of the visible range. If the playback is not running, this does the same as the command `&no-i18n-cmd_view_scroll_right;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_right;`(), `&no-i18n-tag;&no-i18n-cmd_rewind;`()

### &no-i18n-tag;g

#### &no-i18n-cmd_goto;

##### &i18n-cmd_syntax;`&no-i18n-cmd_goto;`(`pos`)

Sets the cursor to the given position and makes it visible in current view. After this the selection has zero length.

##### Parameters

`pos`: | position in samples where to go to

### &no-i18n-tag;i

#### &no-i18n-cmd_insert_at;

##### &i18n-cmd_syntax;`&no-i18n-cmd_insert_at;`(`pos`)

Inserts the content of the clipboard at the given position, like the command `&no-i18n-cmd_paste;`(). If the clipboard is currently empty, this function does nothing.

##### Parameters

`pos`: | position in samples where to insert

##### See also

`&no-i18n-tag;&no-i18n-cmd_paste;`()

#### &no-i18n-cmd_insert_track;

##### &i18n-cmd_syntax;`&no-i18n-cmd_insert_track;`(`index`)

Inserts a new track at the given index, using the current length and sample rate settings of the signal. If the index is higher than or equal to the current number of tracks, it will be appended as the last track, same as by the command `&no-i18n-cmd_add_track;`(). The index of all existing tracks at and after the given index will be incremented by one.

##### Parameters

`index`: | index of the track to insert, starting with 0

##### See also

`&no-i18n-tag;&no-i18n-cmd_add_track;`()

### &no-i18n-tag;l

#### &no-i18n-cmd_label_add;

##### &i18n-cmd_syntax;`&no-i18n-cmd_label_add;`(`pos`[,`text`])

Add a new label at a given position. If the given position already contains a label, then this command does nothing. The label can be given an optional description.

##### Parameters

`pos`: | position in samples where to insert the label
`text`: | some descriptive text (optional)

#### &no-i18n-cmd_label_delete;

##### &i18n-cmd_syntax;`&no-i18n-cmd_label_delete;`(`index`)

Deletes a label, identified by its index (starting from zero), or all labels when using the special value -1 as index. If no label with the given index exists, this command does nothing.

##### Parameters

`index`: | index of the label to delete, starting with 0 or -1 to delete all labels

#### &no-i18n-cmd_label_edit;

Screenshot Screenshot of the label editing dialog

##### &i18n-cmd_syntax;`&no-i18n-cmd_label_edit;`(`index`)

Opens a dialog window in which the user can edit the position and the description of a label, which is identified by its index (starting from zero). If no label with the given index exists, this command does nothing.

##### Parameters

`index`: | index of the label to edit, starting with 0

#### &no-i18n-cmd_loadbatch;

##### &i18n-cmd_syntax;`&no-i18n-cmd_loadbatch;`(`filename`)

Opens a &kwave; script file and processes the commands in it. Uses the context of the currently opened file or the current main window if no file is loaded.

##### Parameters

`filename`: | name of the kwave script file including path and extension

#### &no-i18n-cmd_loop;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_loop;`()

Corresponds to the Loop toolbar button. Starts the playback (if it is not already running) and lets it play in a loop.

##### See also

`&no-i18n-tag;&no-i18n-cmd_playback_start;`()

### &no-i18n-tag;m

#### &no-i18n-cmd_menu;

##### &i18n-cmd_syntax;`&no-i18n-cmd_menu;` (`command`, `path`, [`hotkey`], [`id`])

This is a very powerful command, which is used to add a new entry to the menu or to modify an existing entry. It determines which command is executed when the menu entry is activated, which icon is shown in the menu and which hotkey is used. Each menu entry can be disabled or hidden, can be assigned a unique id and can also join a menu group.

You normally do not need this command within a &kwave; script!

##### Parameters

`command`: | A text command (including parameters) or a command list that will be executed when the menu entry gets activated. If a menu entry does not have a corresponding command (for example if it is a sub menu and not menu entry), you should use the special command `ignore`().
`path`: | The path within the menu, using a / as separator. The last part of the path can be a sub command which modifies some property of the menu entry (see below). The last portion of the path (that is not a sub command) produces a menu entry, the parts before produce the main menu entry or sub menus that lead to it. Main menu entries or sub menus are automatically created when a menu entry is created, you do not need them manually.
`hotkey`: | A bitmask that consists of a combination of predefined keys and modifiers, concatenated with a +. The key can be either a digit, an upper case letter, a function key (F1 ... F12) or any other key name understood by the Qt class `QKeySequence`, including key names for predefined actions (like for example `::Copy`). Typical modifiers are `SHIFT`, `ALT` and `CTRL`.
`id`: | A unique id that can be internally used to identify this menu entry or menu / sub menu. Only uppercase letters, digits and `_` should be used and it should start with `ID_`. It is in your own responsibility to make sure that the same id is not used twice.

##### Sub Commands

`&no-i18n-tag;#checkable`: | Makes the menu entry checkable, so that it can be switched on or off.
`&no-i18n-tag;#disabled`: | Disables the menu, sub menu or menu entry.
`&no-i18n-tag;#enabled`: | Enables the menu, sub menu or menu entry.
`#exclusive`(`group`): | Adds the menu entry to an exclusive `group` (one of many selection). The group that is given as parameter should not be used for any other purpose. Only one entry within that group can be selected at a time.
`#group`(`list`): | Adds the menu, sub menu or menu entry to one or more a groups, so that the application can enable/disable a bunch of menu entries without need to know all their unique ids. Multiple groups can be passed as a list with a `,` as separator. Group names have to start with a `@`. The following groups are predefined: `&no-i18n-tag;@CLIPBOARD`: Only enabled when the clipboard is not empty. `&no-i18n-tag;@LABELS`: Only enabled when the current signal contains at least one label. `&no-i18n-tag;@NOT_CLOSED`: Enabled when the current signal is not closed (the signal might be empty or zero length). `&no-i18n-tag;@SELECTION`: Enabled when the selection is not empty (more than one sample is selected). `&no-i18n-tag;@SIGNAL`: Enabled when there is some signal loaded and it is not empty or zero length.
`&no-i18n-tag;#hidden`: | Hides the menu, sub menu or menu entry.
`#icon`(`name`): | Assigns an icon to the menu entry. The icon `name` should correspond to an icon file (without path and file extension) that is installed on the system or with &kwave;.
`#listmenu`(`id`,`command`): | Inserts a placeholder for a list of menu entries into a sub menu. The unique `id` specified in this sub command is used to add/remove or clear the list of menu entries. The `command` parameter has to contain `%1` as parameter, which will be replaced with the text of the menu entry when it is activated. This sub command is internally used for the list of recent files, list of tracks and window list.
`&no-i18n-tag;#separator`: | Inserts a separator into a sub menu.

#### &no-i18n-cmd_msgbox;

##### &i18n-cmd_syntax;`&no-i18n-cmd_msgbox;`(`text`)

Shows a message box with some `text` and the two buttons OK (returns without error code) and Cancel (returns and error code). You can use this command to give the user a possibility to abort a running script.

##### Parameters

`text`: | A message that will be shown in the message box, should contain a question that can be answered with OK or Cancel.

### &no-i18n-tag;n

#### &no-i18n-cmd_newsignal;

##### &i18n-cmd_syntax;`&no-i18n-cmd_newsignal;`( `samples`, `rate`, `bits`, `tracks`)

Creates a new signal, with a given length in `samples`, a `rate` in samples per second (floating point number), a number of `bits` per sample and number of `tracks`. You can calculate the length in samples by multiplying the desired length in seconds with the sample rate.

##### Parameters

`samples`: | Length of the signal in samples.
`rate`: | Sample rate in samples per second.
`bits`: | Number of bits per sample, must not be zero, should be a number from 8...32.
`tracks`: | Number of tracks.

#### &no-i18n-cmd_next;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_next;`()

Corresponds to the Next toolbar button. If the playback is currently running, it skips forward to the next label. If the playback is not running, this does the same as the command `&no-i18n-cmd_view_scroll_next_label;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_next_label;`(), `&no-i18n-tag;&no-i18n-cmd_prev;`()

### &no-i18n-tag;o

#### &no-i18n-cmd_open;

##### &i18n-cmd_syntax;`&no-i18n-cmd_open;`([`filename`])

Opens a file, which can be either a sound file or a &kwave; script. If no file name is passed, then a dialog window will be opened that allows to select an existing file. Depending on the &GUI; mode the file will be opened in the context of a new sub-window (MDI and tab) or in a new main window (SDI, if there was already something loaded).

##### Parameters

`filename`: | name of a file including path and extension

##### See also

`&no-i18n-tag;&no-i18n-cmd_close;`()

#### &no-i18n-cmd_openrecent;

##### &i18n-cmd_syntax;`&no-i18n-cmd_openrecent;`(`filename`)

Practically the same as the command `&no-i18n-cmd_open;`(), but intended to be used internally for the list of recently opened files in the menu File Open Recent . In this command the parameter `filename` is not optional.

##### Parameters

`filename`: | entry of the list of recently opened files

##### See also

`&no-i18n-tag;&no-i18n-cmd_open;`()

### &no-i18n-tag;p

#### &no-i18n-cmd_paste;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_paste;`()

Replaces the current selection with the content of the clipboard. If the clipboard is empty, this command does nothing. The sample rate of the inserted data is adjusted to match the sample rate of the current signal if necessary. Only enabled tracks are affected, disabled tracks remain unchanged. Please be aware that this might produce a time shift between enabled and disabled tracks! If the number of tracks of the clipboard data differs from the number of enabled tracks, then the data is mixed to be spread equally over all selected tracks.

##### See also

`&no-i18n-tag;&no-i18n-cmd_copy;`()

#### &no-i18n-cmd_pause;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_continue;`()

Corresponds to the Pause toolbar button and lets the playback pause if it is currently running, or continue if it is currently paused.

##### See also

`&no-i18n-tag;&no-i18n-cmd_continue;`()

#### &no-i18n-cmd_playback_start;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_playback_start;`()

Corresponds to the Start toolbar button and lets the playback start if it is currently paused.

#### &no-i18n-cmd_plugin;

##### &i18n-cmd_syntax;`&no-i18n-cmd_plugin;`(`name`, [`parameter` ...])

Executes a plugin, with an optional list of parameters. If no parameter list is given, then the setup function of the plugin will be called, using the parameters of the previous invocation or default parameters as input (normally shows a setup dialog, depending on the plugin). Please refer to the chapter about plugins for a description of the various plugins.

##### Parameters

`name`: | the (internal) name of a &kwave; plugin
`parameter`: | a list of parameters understood by the plugin (optional)

##### See also

`&no-i18n-tag;&no-i18n-cmd_plugin_execute;`(), `&no-i18n-tag;&no-i18n-cmd_plugin_setup;`()

#### &no-i18n-cmd_plugin_execute;

##### &i18n-cmd_syntax;`&no-i18n-cmd_plugin_execute;`(`name`, [`parameter` ...])

Similar to the command `&no-i18n-cmd_plugin;`(), but without calling the setup function of the plugin if no parameters were passed.

##### Parameters

`name`: | the (internal) name of a &kwave; plugin
`parameter`: | a list of parameters understood by the plugin

#### &no-i18n-cmd_plugin_setup;

##### &i18n-cmd_syntax;`&no-i18n-cmd_plugin_setup;`(`name`, [`parameter` ...])

Calls the setup function of a plugin, with an optional list of parameters. If no parameter list is given, the parameters of the previous invocation or default parameters will be used as input. This normally shows a setup dialog, depending on the plugin. Please refer to the chapter about plugins for a description of the various plugins.

##### Parameters

`name`: | the (internal) name of a &kwave; plugin
`parameter`: | a list of parameters understood by the plugin (optional)

#### &no-i18n-cmd_prev;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_prev;`()

Corresponds to the Previous toolbar button. If the playback is currently running, it skips back to the previous label or start of the selection. If the playback is not running, this does the same as the command `&no-i18n-cmd_view_scroll_prev_label;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_prev_label;`(), `&no-i18n-tag;&no-i18n-cmd_next;`()

### &no-i18n-tag;q

#### &no-i18n-cmd_quit;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_quit;`()

Closes the current main window, including all sub-windows. In SDI mode this is the same as the command `&no-i18n-cmd_close;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_close;`()

### &no-i18n-tag;r

#### &no-i18n-cmd_redo;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_redo;`()

Corresponds to the Redo toolbar button and repeats one operation that has been reverted with `&no-i18n-cmd_undo;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_undo;`()

#### &no-i18n-cmd_redo_all;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_redo_all;`()

Similar to `&no-i18n-cmd_redo;`(), but re-does as many operations as possible.

##### See also

`&no-i18n-tag;&no-i18n-cmd_undo;`()

#### &no-i18n-cmd_reenable_dna;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_reenable_dna;`()

Some message boxes offer the possibility to prevent them from appearing again (do not ask again). This command makes all of them appear again.

#### &no-i18n-cmd_reset_toolbars;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_reset_toolbars;`()

Resets all toolbar settings, like location, icon size and text location back to defaults.

#### &no-i18n-cmd_revert;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_revert;`()

Reverts the currently loaded file back to the last saved state, discarding all changes that are not saved.

#### &no-i18n-cmd_rewind;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_rewind;`()

Corresponds to the Rewind toolbar button. If the playback is currently running, it skips backward by 1/10 of the visible range. If the playback is not running, this does the same as the command `&no-i18n-cmd_view_scroll_left;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_left;`(), `&no-i18n-tag;&no-i18n-cmd_forward;`()

### &no-i18n-tag;s

#### &no-i18n-cmd_save;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_save;`()

Corresponds to the Save toolbar button. Saves the current file if it has modifications. If the file does not already have a name (⪚ a file that has just been created and does not yet have a file name), this command does the same as `&no-i18n-cmd_saveas;`().

##### See also

`&no-i18n-tag;&no-i18n-cmd_saveas;`()

#### &no-i18n-cmd_saveas;

##### &i18n-cmd_syntax;`&no-i18n-cmd_saveas;`([`filename`])

Saves the currently opened file under a given file name. If no file name is given as parameter, a dialog will be shown to select the directory and to enter a file name.

##### Parameters

`filename`: | file name for saving (optional)

#### &no-i18n-cmd_saveselect;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_saveselect;`()

This command does the same as `&no-i18n-cmd_save;`(), but saves only the currently selected range and the activated tracks instead of the whole file.

##### See also

`&no-i18n-tag;&no-i18n-cmd_save;`()

#### &no-i18n-cmd_select_gui_type;

##### &i18n-cmd_syntax;`&no-i18n-cmd_select_gui_type;`(`mode`)

Select a &GUI; mode, which can be either SDI, MDI or Tab mode. Please be aware that this change will immediately take effect!

##### Parameters

`filename`: | name of the mode, must be either SDI, MDI or TAB.

#### &no-i18n-cmd_select_track_all;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_select_track_all;`()

Mark all tracks enabled. This is the same as calling the command `&no-i18n-tag;&no-i18n-cmd_select_track_on;`() for all existing tracks.

##### See also

`&no-i18n-tag;&no-i18n-cmd_select_track_on;`()

#### &no-i18n-cmd_select_track_invert;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_select_track_all;`()

Invert the enabled state of all tracks. This is the same as calling the command `&no-i18n-cmd_select_track_toggle;`() for all existing tracks.

##### See also

`&no-i18n-tag;&no-i18n-cmd_select_track_toggle;`()

#### &no-i18n-cmd_select_track_none;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_select_track_none;`()

Mark all tracks disabled. This is the same as calling the command `&no-i18n-cmd_select_track_off;`() for all existing tracks.

##### See also

`&no-i18n-tag;&no-i18n-cmd_select_track_off;`()

#### &no-i18n-cmd_select_track_off;

##### &i18n-cmd_syntax;`&no-i18n-cmd_select_track_off;`(`index`)

Disables a single track, so that it does not get affected by most operations.

##### Parameters

`index`: | index of the track, starting with zero

#### &no-i18n-cmd_select_track_on;

##### &i18n-cmd_syntax;`&no-i18n-cmd_select_track_on;`(`index`)

Enables a single track, so that it gets affected by all operations.

##### Parameters

`index`: | index of the track, starting with zero

#### &no-i18n-cmd_select_track_toggle;

##### &i18n-cmd_syntax;`&no-i18n-cmd_select_track_toggle;`(`index`)

Enables a track if it is currently disabled, or disables it if it is currently enabled.

##### Parameters

`index`: | index of the track, starting with zero

#### &no-i18n-cmd_selectall;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectall;`()

Selects the range of the whole signal, from the first to the last sample.

#### &no-i18n-cmd_selectnext;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectnext;`()

Selects a range of samples that starts right after the current selection, using the same length as the current selection. The selection is automatically clipped to the end of the signal. For example: if you have selected samples 1000 ... 1019, then the result will be a selection from sample 1020 ... 1039.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selectprev;`()

#### &no-i18n-cmd_selectnextlabels;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectnextlabels;`()

Selects a range of samples between the next two labels after the current selection. If nothing is selected, it selects from the start of the signal up to the first label. Otherwise the left border of the new selection will be the position of first label after the selection (or the last label if there are no more labels right from the selection), and the right border of the new selection will be the first label after the left border of the new selection (or the end of the signal if there is none). This command returns an error when there are no labels at all.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selectprevlabels;`()

#### &no-i18n-cmd_selectnone;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectnone;`()

Resets the selection to zero length.

#### &no-i18n-cmd_selectprev;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectprev;`()

Selects a range of samples that starts left from the current selection, using the same length as the current selection. The selection is automatically clipped to the start of the signal. For example: if you have selected samples 1000 ... 1019, then the result will be a selection from sample 980 ... 999.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selectnext;`()

#### &no-i18n-cmd_selectprevlabels;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectprevlabels;`()

Selects a range of samples between the previous two labels before the current selection. If nothing is selected, it selects from the start of the signal up to the first label. Otherwise the right border of the new selection will be the position of first label before the selection (or the first label if there are no more labels left from the selection), and the left border of the new selection will be the first label before the right border of the new selection (or the start of the signal if there is none). This command returns an error when there are no labels at all.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selectnextlabels;`()

#### &no-i18n-cmd_selecttoleft;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selecttoleft;`()

Sets the start of the selection to the start of the signal, the end of the current selection stays unchanged.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selecttoright;`()

#### &no-i18n-cmd_selecttoright;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selecttoright;`()

Sets the end of the selection to the end of the signal, the start of the current selection stays unchanged.

##### See also

`&no-i18n-tag;&no-i18n-cmd_selecttoleft;`()

#### &no-i18n-cmd_selectvisible;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_selectvisible;`()

Selects the range of samples that is visible in the current window.

#### &no-i18n-cmd_start;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_start;`()

Corresponds to the Start toolbar button and lets the playback start from the beginning of the selection or continue if it is currently paused.

##### See also

`&no-i18n-tag;&no-i18n-cmd_stop;`()

#### &no-i18n-cmd_stop;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_stop;`()

Corresponds to the Stop toolbar button and lets the playback stop if it is currently running.

##### See also

`&no-i18n-tag;&no-i18n-cmd_start;`()

#### &no-i18n-cmd_sync;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_sync;`()

Waits until all commands which have been started asynchronously have finished. If nothing is currently queued for delayed execution this command has no effect.

##### See also

`&no-i18n-tag;&no-i18n-cmd_delayed;`()

### &no-i18n-tag;u

#### &no-i18n-cmd_undo;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_undo;`()

Corresponds to the Undo toolbar button and reverts the last operation.

##### See also

`&no-i18n-tag;&no-i18n-cmd_redo;`()

#### &no-i18n-cmd_undo_all;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_undo_all;`()

Similar to `&no-i18n-tag;&no-i18n-cmd_undo;`(), but reverts as many operations as possible.

##### See also

`&no-i18n-tag;&no-i18n-cmd_undo;`()

### &no-i18n-tag;v

#### &no-i18n-cmd_view_scroll_end;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_end;`()

Scrolls the current view to the end of the signal.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_start;`()

#### &no-i18n-cmd_view_scroll_left;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_left;`()

Scrolls the current view by 1/10 of the currently visible range towards the start of the signal. If the start of the signal is reached the visible area starts at offset zero.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_right;`()

#### &no-i18n-cmd_view_scroll_next;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_next;`()

Scrolls the current view towards the end of the signal by the currently visible range.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_prev;`()

#### &no-i18n-cmd_view_scroll_next_label;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_next_label;`()

Scrolls right and tries to show the next label centered in the view. If there was no label right from the current position, it will scroll to the end of the signal.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_prev_label;`()

#### &no-i18n-cmd_view_scroll_prev;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_prev;`()

Scrolls the current view towards the start of the signal by the currently visible range.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_next;`()

#### &no-i18n-cmd_view_scroll_prev_label;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_prev_label;`()

Scrolls left and tries to show the previous label centered in the view. If there was no label left from the current position, it will scroll to the start of the signal.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_next_label;`()

#### &no-i18n-cmd_view_scroll_right;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_right;`()

Scrolls the current view by 1/10 of the currently visible range towards the end of the signal. If the end of the signal is reached the visible area ends at the end of the signal.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_left;`()

#### &no-i18n-cmd_view_scroll_start;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_scroll_start;`()

Scrolls the current view to the start of the signal.

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_scroll_end;`()

#### &no-i18n-cmd_view_zoom_all;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_zoom_all;`()

Adjusts the zoom factor so that the complete signal is visible in the current view.

#### &no-i18n-cmd_view_zoom_in;

##### &i18n-cmd_syntax;`&no-i18n-cmd_view_zoom_in;`([`position`])

Reduces the zoom factor (in samples per pixel) by 30%, so that more details get visible. If a `position` is given, it tries to show that position centered in the current view, otherwise the center of the view before the zoom change is used for centering. The minimum zoom factor is limited to a minimum of five samples per width of the view.

##### Parameters

`position`: | a zero based position in samples to center the view (optional)

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_zoom_out;`()

#### &no-i18n-cmd_view_zoom_normal;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_zoom_normal;`()

Sets the zoom factor to one pixel per sample (factor 1.0) and tries to keep the previous center of the view.

#### &no-i18n-cmd_view_zoom_out;

##### &i18n-cmd_syntax;`&no-i18n-cmd_view_zoom_out;([`position`])`

Increases the zoom factor (in samples per pixel) by 30%, so that less details get visible. If a `position` is given, it tries to show that position centered in the current view, otherwise the center of the view before the zoom change is used for centering. The maximum zoom factor is limited to the number of samples of the complete signal and the width of the view.

##### Parameters

`position`: | a zero based position is samples to center the view (optional)

##### See also

`&no-i18n-tag;&no-i18n-cmd_view_zoom_in;`()

#### &no-i18n-cmd_view_zoom_selection;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_view_zoom_selection;`()

Adjusts the view (zoom factor and start of visible area) so that it matches the current selection. This command does nothing if the selection is empty.

### &no-i18n-tag;w

#### &no-i18n-cmd_window_activate;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_activate;`(`title`])

Activates a sub-window, identified by its window `title`. If the sub-window is minimized it will be restored. Only available if in MDI and Tab mode. This command is internally used by the Window menu.

##### Parameters

`title`: | the title of the sub-window that should be activated

#### &no-i18n-cmd_window_cascade;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_window_cascade;`()

Cascades all sub-windows when in MDI mode. All sub-windows that are currently minimized stay minimized, they will not be restored.

#### &no-i18n-cmd_window_click;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_click;`( `class`, `x`, `y` )

Sends a mouse click event to window, identified by its `class` name. The event will only be sent to the first window that has the given class name, therefore you should make sure that you have only one instance of the given window when this command gets executed.

##### Parameters

`class`: | name of the window class
`x`: | x position, relative to the left border of the window (in pixels)
`y`: | y position, relative to the top border of the window (in pixels)

#### &no-i18n-cmd_window_close;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_close;`( `class` )

Closes a window, identified by its `class` name. Only the first window that has the given class name will be closed, therefore you should make sure that you have only one instance of the given window when this command gets executed.

##### Parameters

`class`: | name of the window class

#### &no-i18n-cmd_window_minimize;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_minimize;`

Minimizes the currently active sub-window when in MDI mode or the current toplevel window when in SDI or Tab mode.

#### &no-i18n-cmd_window_mousemove;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_resize;`( `class`, `x`, `y` )

Sends a mouse move event to window, identified by its `class` name. The event will only be sent to the first window that has the given class name, therefore you should make sure that you have only one instance of the given window when this command gets executed.

##### Parameters

`class`: | name of the window class
`x`: | x position, relative to the left border of the window (in pixels)
`y`: | y position, relative to the top border of the window (in pixels)

#### &no-i18n-cmd_window_next_sub;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_window_next_sub;`()

Activates the next sub-window when in MDI or Tab mode. If the next sub-window is minimized it will be restored.

#### &no-i18n-cmd_window_prev_sub;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_window_prev_sub;`()

Activates the previous sub-window when in MDI or Tab mode. If the previous sub-window is minimized it will be restored.

#### &no-i18n-cmd_window_resize;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_resize;`( `class`, `width`, `height` )

Changes the size of a window, identified by its `class` name to a new `width` and `height`. The change will only be applied to the first window that has the given class name, therefore you should make sure that you have only one instance of the given window when this command gets executed.

##### Parameters

`class`: | name of the window class
`width`: | new width of the window (in pixels)
`height`: | new height of the window (in pixels)

#### &no-i18n-cmd_window_screenshot;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_screenshot;`( `class`, `filename` )

Takes a screenshot of a window, identified by its `class` and saves it to a file. The screenshot will be taken from the first window that has the given class name, therefore you should make sure that you have only one instance of the given window when this command gets executed. Currently the format of the file is hardcoded and has to be `*.png`.

##### Parameters

`class`: | name of the window class
`filename`: | name of the file to save the screenshot, must have the extension `*.png`

#### &no-i18n-cmd_window_sendkey;

##### &i18n-cmd_syntax;`&no-i18n-cmd_window_sendkey;`( `class`, `key code` )

Sends a key press and release event to a window, identified by its `class` name. The key will only be sent to the first window that has the given class name, therefore you should make sure that you have only one instance of the given window when this command gets executed.

##### Parameters

`class`: | name of the window class
`key code`: | the key code that should be sent, using the same syntax as used for setting up menus

##### See also

Description of the parameter `hotkey` of the `&no-i18n-cmd_menu;`() command.

#### &no-i18n-cmd_window_tile;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_window_tile;`()

Tiles all sub-windows when in MDI mode, using some scheme of &plasma;. All sub-windows that are currently minimized stay minimized, they will not be restored.

#### &no-i18n-cmd_window_tile_vertical;

##### &i18n-cmd_syntax;`&no-i18n-tag;&no-i18n-cmd_window_tile_vertical;`()

Tiles all sub-windows vertically when in MDI mode. All windows that are currently minimized stay minimized, they will not be restored.

## Plugins

### Plugin Reference

### Alphabetical Index

&no-i18n-tag;

### a

plugin_title_about plugin_title_amplifyfree

### b

plugin_title_band_pass

### c

plugin_title_codec_ascii plugin_title_codec_audiofile plugin_title_codec_flac plugin_title_codec_mp3 plugin_title_codec_ogg plugin_title_codec_wav

### d

plugin_title_debug

### e

plugin_title_export_k3b

### f

plugin_title_fileinfo

### g

plugin_title_goto

### i

plugin_title_insert_at

### l

plugin_title_lowpass

### n

plugin_title_newsignal plugin_title_noise plugin_title_normalize plugin_title_notch_filter

### p

plugin_title_pitch_shift plugin_title_playback

### r

plugin_title_record plugin_title_reverse

### s

plugin_title_samplerate plugin_title_saveblocks plugin_title_selectrange plugin_title_sonagram plugin_title_stringenter

### v

plugin_title_volume

### z

plugin_title_zero

``

### &no-i18n-plugin_about; (About Kwave)

Screenshot Screenshot of the About Kwave Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_about;`

&i18n-plugin_lbl_type;

- &GUI;

&i18n-plugin_lbl_description;

- Shows a window with multiple tabs, including the following information:

  - general information about the program

  - authors, contributors and copyright holders

  - all found plugins including their versions and authors

  - information about the translation team

  - copyright and licensing information

### &no-i18n-plugin_amplifyfree; (Amplify Free)

Screenshot Screenshot of the Amplify Free Plugin

&i18n-plugin_lbl_internal_name;

- `amplifyfree`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Amplifies the current selection with a curve that consists of a set of coordinates and an interpolation method. The coordinates on the time axis as well as on the amplitude axis must be normed between 0.0 and 1.0.

Parameters

- `operation`

- Internal name, for undo/redo handling. Possible values are:

  keyword | description
  &no-i18n-tag;`fade in` | fade in, curve from 0.0/0.0 to 1.0/1.0
  &no-i18n-tag;`fade out` | fade out, curve from 0.0/1.0 to 1.0/0.0
  &no-i18n-tag;`fade intro` | fade intro, one second pause, then fade in
  &no-i18n-tag;`fade outro` | fade outro, first fade out, then one second pause
  &no-i18n-tag;`amplify free` | user defined curve

`interpolation`

- Interpolation type, possible values are:

  keyword | description
  &no-i18n-tag;`linear` | Linear
  &no-i18n-tag;`spline` | Spline
  &no-i18n-tag;`n-polynom` | Polynom, nth Degree
  &no-i18n-tag;`3-polynom` | Polynom, 3rd Degree
  &no-i18n-tag;`5-polynom` | Polynom, 5th Degree
  &no-i18n-tag;`7-polynom` | Polynom, 7th Degree
  &no-i18n-tag;`sample_hold` | Sample and Hold

`curve`

- A comma separated list of pairs of coordinates, normed between 0.0 and 1.0, must be sorted by time axis (ascending), should start at time 0.0 and end with time 1.0.

### &no-i18n-plugin_band_pass; (Band Pass Filter)

Screenshot Screenshot of the Band Pass Filter Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_band_pass;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Applies a simple band pass filter to the current selection. A band pass lets a certain range of frequencies around a center frequency pass and filters out frequencies that are below or above the center frequency by more than half of the bandwidth of the filter.

  The filter has grade two and is implemented as described in the book "An introduction to digital filter theory" by Julius O. Smith and in Moore's book, where the normalized version from Moore's book is used.

&i18n-plugin_lbl_parameters;

- `frequency`

- Center frequency of the filter in Hz, must be below half of the sample rate of the file.

`bandwidth`

- Bandwidth of the filter in Hz.

### &no-i18n-plugin_codec_ascii; (ASCII Codec)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_ascii;`

&i18n-plugin_lbl_type;

- codec

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | ASCII encoded audio
  &i18n-plugin-lbl_file_type_extensions; | `*.ascii`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-audio-ascii`

&i18n-plugin_lbl_meta_data;

- (all known file info items, see section file-info-list-title)

### &no-i18n-plugin_codec_audiofile; (Audiofile Codec)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_audiofile;`

&i18n-plugin_lbl_type;

- codec [import only]

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | Amiga IFF/8SVX Sound File Format
  &i18n-plugin-lbl_file_type_extensions; | `*.8svx` | `*.iff`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-8svx`

  &i18n-plugin-lbl_file_type_description; | NeXT, Sun Audio
  &i18n-plugin-lbl_file_type_extensions; | `*.au`, `*.snd`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/basic`

  &i18n-plugin-lbl_file_type_description; | Compressed Audio Interchange Format
  &i18n-plugin-lbl_file_type_extensions; | `*.aifc`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-aifc`

  &i18n-plugin-lbl_file_type_description; | Audio Interchange Format
  &i18n-plugin-lbl_file_type_extensions; | `*.aif`, `*.aiff`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-aiff`

  &i18n-plugin-lbl_file_type_description; | Audio Visual Research File Format
  &i18n-plugin-lbl_file_type_extensions; | `*.avr`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-avr`

  &i18n-plugin-lbl_file_type_description; | Core Audio File Format
  &i18n-plugin-lbl_file_type_extensions; | `*.caf`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-caf`

  &i18n-plugin-lbl_file_type_description; | Berkeley, IRCAM, Carl Sound Format
  &i18n-plugin-lbl_file_type_extensions; | `*.sf`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-ircam`

  &i18n-plugin-lbl_file_type_description; | NIST SPHERE Audio File Format
  &i18n-plugin-lbl_file_type_extensions; | `*.nist`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-nist`

  &i18n-plugin-lbl_file_type_description; | Sample Vision Format
  &i18n-plugin-lbl_file_type_extensions; | `*.smp`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-smp`

  &i18n-plugin-lbl_file_type_description; | Creative Voice
  &i18n-plugin-lbl_file_type_extensions; | `*.voc`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-voc`

&i18n-plugin_lbl_meta_data;

- (none)

### &no-i18n-plugin_codec_flac; (FLAC Codec)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_flac;`

&i18n-plugin_lbl_type;

- codec

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | FLAC audio (Free Lossles Audio Codec)
  &i18n-plugin-lbl_file_type_extensions; | `*.flac`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-flac`

&i18n-plugin_lbl_meta_data;

- &i18n-INF_CREATION_DATE;, &i18n-INF_NAME;, &i18n-INF_VERSION;, &i18n-INF_ALBUM;, &i18n-INF_TRACK;, &i18n-INF_AUTHOR;, &i18n-INF_PERFORMER;, &i18n-INF_COPYRIGHT;, &i18n-INF_LICENSE;, &i18n-INF_ORGANIZATION;, &i18n-INF_SUBJECT;, &i18n-INF_GENRE;, &i18n-INF_SOURCE;, &i18n-INF_CONTACT;, &i18n-INF_ISRC;, &i18n-INF_SOFTWARE;, &i18n-INF_ENGINEER;, &i18n-INF_VBR_QUALITY;

### &no-i18n-plugin_codec_mp3; (MP3 Codec)

Screenshot Screenshot of the MP3 Codec Setup Dialog

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_mp3;`

&i18n-plugin_lbl_type;

- codec

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | MPEG layer III audio
  &i18n-plugin-lbl_file_type_extensions; | `*.mp3`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-mp3`, `audio/mpeg`s

  &i18n-plugin-lbl_file_type_description; | MPEG layer II audio
  &i18n-plugin-lbl_file_type_extensions; | `*.mp2`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-mp2`, `audio/mpeg`

  &i18n-plugin-lbl_file_type_description; | MPEG layer I audio
  &i18n-plugin-lbl_file_type_extensions; | `*.mp1`, `*.mpg`, `*.mpga`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-mpga`, `audio/mpeg`

&i18n-plugin_lbl_meta_data;

- &i18n-INF_ALBUM;, &i18n-INF_ANNOTATION;, &i18n-INF_AUTHOR;, &i18n-INF_CD;, &i18n-INF_CDS;, &i18n-INF_COMMENTS;, &i18n-INF_COMMISSIONED;, &i18n-INF_CONTACT;, &i18n-INF_COPYRIGHT;, &i18n-INF_CREATION_DATE;, &i18n-INF_GENRE;, &i18n-INF_ISRC;, &i18n-INF_LENGTH;, &i18n-INF_LICENSE;, &i18n-INF_MEDIUM;, &i18n-INF_NAME;, &i18n-INF_ORGANIZATION;, &i18n-INF_PERFORMER;, &i18n-INF_SOFTWARE;, &i18n-INF_TECHNICAN;, &i18n-INF_TRACK;, &i18n-INF_TRACKS;, &i18n-INF_VERSION;

### &no-i18n-plugin_codec_ogg; (Ogg Codec)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_ogg;`

&i18n-plugin_lbl_type;

- codec

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | Ogg Opus audio
  &i18n-plugin-lbl_file_type_extensions; | `*.opus`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/ogg`, `application/ogg`, `audio/opus`

  &i18n-plugin-lbl_file_type_description; | Ogg Vorbis audio
  &i18n-plugin-lbl_file_type_extensions; | `*.ogg`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/ogg`, `audio/x-ogg`, `application/x-ogg`, `audio/x-vorbis+ogg`

&i18n-plugin_lbl_meta_data;

- &i18n-INF_ALBUM;, &i18n-INF_AUTHOR;, &i18n-INF_CONTACT;, &i18n-INF_COPYRIGHT;, &i18n-INF_CREATION_DATE;, &i18n-INF_ENGINEER;, &i18n-INF_GENRE;, &i18n-INF_ISRC;, &i18n-INF_LICENSE;, &i18n-INF_NAME;, &i18n-INF_ORGANIZATION;, &i18n-INF_PERFORMER;, &i18n-INF_SOFTWARE;, &i18n-INF_SOURCE;, &i18n-INF_SUBJECT;, &i18n-INF_TRACK;, &i18n-INF_VBR_QUALITY;, &i18n-INF_VERSION;,

### &no-i18n-plugin_codec_wav; (WAV Codec)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_codec_wav;`

&i18n-plugin_lbl_type;

- codec

&i18n-plugin_lbl_file_types;

- &i18n-plugin-lbl_file_type_description; | WAV audio
  &i18n-plugin-lbl_file_type_extensions; | `*.wav`
  &i18n-plugin-lbl_file_type_mime_types; | `audio/x-wav`, `audio/vnd.wave`, `audio/wav`

&i18n-plugin_lbl_meta_data;

- &i18n-INF_ALBUM;, &i18n-INF_ANNOTATION;, &i18n-INF_ARCHIVAL;, &i18n-INF_AUTHOR;, &i18n-INF_CD;, &i18n-INF_COMMENTS;, &i18n-INF_COMMISSIONED;, &i18n-INF_CONTACT;, &i18n-INF_COPYRIGHT;, &i18n-INF_CREATION_DATE;, &i18n-INF_ENGINEER;, &i18n-INF_GENRE;, &i18n-INF_ISRC;, &i18n-INF_KEYWORDS;, &i18n-INF_LICENSE;, &i18n-INF_MEDIUM;, &i18n-INF_NAME;, &i18n-INF_ORGANIZATION;, &i18n-INF_PERFORMER;, &i18n-INF_PRODUCT;, &i18n-INF_SOFTWARE;, &i18n-INF_SOURCE;, &i18n-INF_SOURCE_FORM;, &i18n-INF_SUBJECT;, &i18n-INF_TECHNICAN;, &i18n-INF_TRACK;, &i18n-INF_VERSION;,

### &no-i18n-plugin_debug; (Debug Functions)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_debug;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Provides various internal commands useful for debugging and scripting &kwave;. These functions are only available through the main menu if &kwave; has been compiled in debug mode (built with the option CMAKE_WITH_DEBUG).

&i18n-plugin_lbl_commands;

- cmd_title_window_click, cmd_title_window_close cmd_title_window_mousemove, cmd_title_window_resize, cmd_title_window_screenshot, cmd_title_window_sendkey

### &no-i18n-plugin_export_k3b; (Export to K3b Project)

Screenshot Screenshot of the K3b Export Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_export_k3b;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Saves all sections between markers into a separate file and creates a K3b project file. After having successfully written all files it is possible to start K3b and burn the result to an audio &CD;. This is useful for splitting a file with a recording that consists of several parts, which are separated by labels, and then burn it to an audio &CD; with multiple tracks, including &CD; text meta data which is extracted from the descriptions of the labels.

  (This plugin is internally using the plugin_title_saveblocks plugin.)

&i18n-plugin_lbl_parameters;

- `pattern`

- A pattern that will be used for detecting title and artist from the label at the start of a section. It supports the following wildcards which will be replaced by the corresponding content when creating the &CD; text meta data:

  wildcard | description
  &no-i18n-tag;`[%artist]` | Will be replaced with the artist that performed the corresponding block or alternatively the author.
  &no-i18n-tag;`[%title]` | Will be replaced with the title of the block, which is taken from the descriptive text of the label at the start of the block. If that text is empty it will fall back to the title of the file (see file information item "Name"). If this also does not exist, it will fall back to the base file name as described above.

  Example: ``[%title] ([%artist])`` will detect author ``Beethoven`` and title ``Symphony No. 5`` from the string ``Symphony No. 5 (Beethoven)``.

`selection only`

- value | description
  &no-i18n-tag;`0` | Save all sections of the whole file.
  &no-i18n-tag;`1` | Save only the sections that are within the current selection. If nothing is selected, the whole file will be saved.

`project file`

- The name of the K3b project file, which will also be used as the base name for the exported file names.

`export location`

- The location where the blocks should be saved.

`overwrite policy`

- Determines where the numbering should start.

  value | description
  &no-i18n-tag;`0` | Always start with index 1, with the risk of overwriting existing files.
  &no-i18n-tag;`1` | Continue after the index of the highest index that already exists, this avoids overwriting existing files.

### &no-i18n-plugin_fileinfo; (File Info)

Screenshot Screenshot of the File Info Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_fileinfo;`

&i18n-plugin_lbl_type;

- &GUI;

&i18n-plugin_lbl_description;

- Provides a dialog window to view and change parameters and meta data of the currently opened file. See section title_fileinfo in this manual.

### &no-i18n-plugin_goto; (Goto Position)

Screenshot Screenshot of the Goto Position Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_goto;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Shows a dialog with the possibility to set the current position of the selection to a new value, either by a time in milliseconds, by a position in samples or by percentage of the length of the current file.

&i18n-plugin_lbl_commands;

- cmd_title_goto

&i18n-plugin_lbl_parameters;

- `mode`

- value | description
  &no-i18n-tag;`0` | position is given in milliseconds
  &no-i18n-tag;`1` | position is given in samples
  &no-i18n-tag;`2` | position is given in percentage of the file length

`position`

- position to go to, in milliseconds, samples or percentage of the length of the file, depending on the parameter `mode`.

### &no-i18n-plugin_insert_at; (Insert At)

Screenshot Screenshot of the Insert At Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_insert_at;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Similar to the plugin_title_goto plugin, but shows a dialog with the possibility to insert the current content of the clipboard at a given position, either by a time in milliseconds, by a position in samples or by percentage of the length of the current file.

&i18n-plugin_lbl_commands;

- cmd_title_insert_at

&i18n-plugin_lbl_parameters;

- `mode`

- value | description
  &no-i18n-tag;`0` | position is given in milliseconds
  &no-i18n-tag;`1` | position is given in samples
  &no-i18n-tag;`2` | position is given in percentage of the file length

`position`

- position where to insert the clipboard data, in milliseconds, samples or percentage of the length of the file, depending on the parameter `mode`.

### &no-i18n-plugin_lowpass; (Low Pass Filter)

Screenshot Screenshot of the Low Pass Filter Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_lowpass;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Applies a simple low pass filter to the current selection. A low pass filter lets frequencies below a border frequency pass and filters out frequencies that are above the border frequency.

  The filter has grade two and is implemented as described in the book "The manifold joys of conformal mapping, applications to digital filtering in the studio by James A. Moorer (JAES, Vol. 31, No. 11, 1983 November).

&i18n-plugin_lbl_parameters;

- `frequency`

- The border frequency of the low pass filter in Hz.

### &no-i18n-plugin_newsignal; (New Signal)

Screenshot Screenshot of the New Signal Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_newsignal;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Provides a dialog to create a new file. Please refer to the section sect_title_newsignal in this manual for more information.

&i18n-plugin_lbl_commands;

- cmd_title_newsignal,

### &no-i18n-plugin_noise; (Noise Generator)

Screenshot Screenshot of the Noise Generator Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_noise;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Adds some amount of white noise to the current selection. The amount of noise can be selected between zero (no noise, original remains unchanged) and one (original will be replaced by 100% noise).

&i18n-plugin_lbl_parameters;

- `level`

- Noise level, always has to be a floating point number above zero and below or equal to one.

`mode`

- value | description
  &no-i18n-tag;`0` | Enter the noise value as percentage of the amplitude, from 0 to 100.
  &no-i18n-tag;`1` | Enter the noise in decibel, from -21 dB to 0 dB.

### &no-i18n-plugin_normalize; (Normalizer)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_normalize;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Normalizes the volume level of the current selection. Use this if the volume of your signal is too low or too high.

  The algorithm is taken from the normalize project, and was originally written by Chris Vaill .

### &no-i18n-plugin_notch_filter; (Notch Filter)

Screenshot Screenshot of the Notch Filter Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_notch_filter;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Applies a notch filter to the current selection. A notch filter removes a small range of frequencies around a center frequency and lets all other frequencies below and above the center frequency by more than half of the bandwidth pass.

  Use this to filter out single distortion frequencies.

  The filter has grade two and is based on the implementation of Juhana Sadeharju .

&i18n-plugin_lbl_parameters;

- `frequency`

- Center frequency of the filter in Hz, must be below half of the sample rate of the file.

`bandwidth`

- Bandwidth of the filter in Hz.

### &no-i18n-plugin_pitch_shift; (Pitch Shift)

Screenshot Screenshot of the Pitch Shift Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_pitch_shift;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- The pitch shift effect modifies the signal by changing the speed of the content, but with keeping the original length. You can select the relative speed either by factor from 1/10 to x5, or as a percentage from 1% to 400% of the original speed.

  A speed factor below 1.0 pitches the signal down (lower voice, makes voices sound older), factor 1.0 does no change and a factor above 1.0 pitches the signal up (higher voice, Mickey Mouse effect).

  The implementation is based on the work of Jeff Tranter and Stefan Westerfeld

&i18n-plugin_lbl_parameters;

- `speed`

- Factor for changing the speed, has to be a floating point number between 0.001 and 4.0.

`frequency`

- Frequency internally used by the filter in Hz, has to be between 2.0 and 10.0.

`mode`

- value | description
  &no-i18n-tag;`0` | Enter the speed value as factor from 1/10 to x5.
  &no-i18n-tag;`1` | Enter the speed value as percentage from 1 to 400.

### &no-i18n-plugin_playback; (Playback)

Screenshot Screenshot of the Playback Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_playback;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Provides a dialog to set up the playback parameters. Please refer to the section sect_title_playback in this manual for more information.

&i18n-plugin_lbl_parameters;

- `playback method`

- The method used for playback, see `PlayBackParam.h`.

`playback device`

- A string that determines the playback device or channel. The meaning depends on the playback method.

`channels`

- The number of channels to use for playback, currently supports only 1 (mono) or 2 (stereo).

`bits per sample`

- The number of bits per sample for playback, should be 8, 16, 24 or 32. Depends on the playback method and the playback device.

`buffer size`

- Determines the size of the playback buffer, used as exponent for calculating the real buffer size as 2^n, ⪚ setting this to 16 gives a buffer size of 2^16 = 64 kB.

### &no-i18n-plugin_record; (Record)

Screenshot Screenshot of the Record Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_record;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Provides a dialog to set up the record parameters and to do a recording. Please refer to the section sect_title_recording in this manual for more information.

&i18n-plugin_lbl_parameters;

- `recording method`

- The method used for recording, see `RecordParams.h`.

`pre recording enabled`

- Enable/disable pre recording (1 if enabled, 0 if disabled).

`pre recording time`

- Number of seconds for pre recording.

`limit recording time`

- Enable/disable limiting of recording time (1 if limited, 0 if not limited).

`recording time`

- Duration of the recording in seconds.

`use starting time`

- Enable/disable starting time (1 if used, 0 if not used).

`starting time`

- Date/time to start the recording, in ISO format.

`use trigger level`

- Enable/disable trigger level (1 if used, 0 if not used).

`trigger level`

- Trigger level in percent.

`recording device`

- A string that determines the recording device.

`channels`

- The number of channels to use for recording.

`sample rate`

- Sample rate in samples per second.

`compression`

- Compression to use for storing the samples.

`sample format`

- Sample format to use for storing the samples, see section about sample formats.

`bits per sample`

- The number of bits per sample for recording, should be 8, 16, 24 or 32.

`buffer count`

- Determines the number buffers used for recording.

`buffer size`

- Determines the size of the recording buffer, used as exponent for calculating the real buffer size as 2^n, ⪚ setting this to 16 gives a buffer size of 2^16 = 64 kB.

Alternative Parameters:

- `record plugin direct mode`

- Can be used as a single parameter for setting up the plugin. The following values are possible:

  value | description
  &no-i18n-tag;`format` | Open the recording dialog and select the Format tab.
  &no-i18n-tag;`source` | Open the recording dialog and select the Source tab.
  &no-i18n-tag;`start_now` | Open the recording dialog and directly start recording.

### &no-i18n-plugin_reverse; (Reverse)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_reverse;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- This simple effect reverses the content of the current selection.

### &no-i18n-plugin_samplerate; (Sample Rate Conversion)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_samplerate;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- Changes the sample rate of the current selection or the whole signal.

&i18n-plugin_lbl_parameters;

- `new rate`

- The new sample rate in samples per second (floating point value).

`mode` (optional)

- If this parameter is used and set to the value "`all`", then this effect will be applied to the whole signal. Otherwise it will be applied to the current selection only.

### &no-i18n-plugin_saveblocks; (Save Blocks)

Screenshot Screenshot of the Save Blocks Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_saveblocks;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Saves all sections between markers, each into a separate file. Each file is given a name that can be customized by using a pattern that can contain the original file name, an index and the number of sections.

  It is also allowed that the file name pattern contains forward slashes as path separators, which allows saving the sections into different sub directories. Please note that all whitespace characters around such path separators are silently removed, to avoid creation of directory names which begin or end with a whitespace.

&i18n-plugin_lbl_parameters;

- `pattern`

- A pattern that will be used for creating the names of the files. It can contain the following wildcards which will be replaced by the corresponding content when creating the final file name:

  wildcard | description
  &no-i18n-tag;`[%nr]` | Will be replaced with the current index of the file to save.
  &no-i18n-tag;`[%count]` | Will be replaced with the number of sections that will be saved.
  &no-i18n-tag;`[%total]` | Will be replaced with the index of the last file to save.
  &no-i18n-tag;`[%filename]` | Will be replaced with the base file name, without path and without extension.
  &no-i18n-tag;`[%fileinfo{`keyword`}]` | Will be replaced with the content of a file information identified by `keyword`. See section file-info-list-title for a list of all available keywords.
  &no-i18n-tag;`[%title]` | Will be replaced with the title of the block, which is taken from the descriptive text of the label at the start of the block. If that text is empty it will fall back to the title of the file (see file information item "Name"). If this also does not exist, it will fall back to the base file name as described above.

  All numeric wildcards can also contain a numerical argument after the "`%`" and the identifier, to force a certain number of digits. If the number is preceded by a `0` then the result will contain leading zeroes, otherwise it will contain leading spaces.

  Example: ``[%04nr]`` produces a number between 0001 and 9999.

`numbering mode`

- Determines where the numbering should start.

  value | description
  &no-i18n-tag;`0` | Continue after the index of the highest index that already exists, this avoids overwriting existing files.
  &no-i18n-tag;`1` | Always start with index 1, with the risk of overwriting existing files.

`extension`

- The file name extension to use for the saved blocks. This determines what encoding is used.

`export location`

- The location to export the saved blocks.

`selection only`

- value | description
  &no-i18n-tag;`0` | Save all sections of the whole file.
  &no-i18n-tag;`1` | Save only the sections that are within the current selection. If nothing is selected, the whole file will be saved.

### &no-i18n-plugin_selectrange; (Select Range)

Screenshot Screenshot of the Select Range Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_selectrange;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Shows a dialog to select a range of samples. The start and the length of the selection can be set either by a time in milliseconds, in samples, or as a percentage of the total length of the file.

&i18n-plugin_lbl_parameters;

- `start mode`

- Determines the units in which the start of the selection will be given.

  value | description
  &no-i18n-tag;`0` | milliseconds
  &no-i18n-tag;`1` | samples
  &no-i18n-tag;`2` | percentage of the length of the file

`range mode`

- Determines the units in which the length of the selection will be given. See the description if the parameter `start mode` for a list of possible values.

`start`

- The start of the selection, in milliseconds, samples or percentage of the length of the file, depending on the parameter `range mode`.

`length`

- The length of the selection, in milliseconds, samples or percentage of the length of the file, depending on the parameter `range mode`.

### &no-i18n-plugin_sonagram; (Sonagram)

Screenshot Screenshot of the setup dialog of the Sonagram Plugin Screenshot Screenshot of the Sonagram Window

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_sonagram;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- Evaluates the current selection by generating a sonagram. A sonagram is an evaluation of a signal over time (x axis), frequency (y axis) and intensity (color).

&i18n-plugin_lbl_parameters;

- `FFT points`

- Number of points of the FFT, a whole number between 4 and 32767 which determines the frequency resolution.

`window function`

- The window function used for the FFT calculation, supported values are:

  value | description
  &no-i18n-tag;`none` | no window function
  &no-i18n-tag;`hamming` | Hamming window
  &no-i18n-tag;`hanning` | Hanning window
  &no-i18n-tag;`blackman` | Blackman window
  &no-i18n-tag;`triangular` | Triangular window

`use colors`

- If set to non-zero, use colors for intensity, if set to zero use grayscales.

`track changes`

- If set to non-zero, the sonagram will be updated when the area that was evaluated has changed. If set to zero it will never be updated.

`follow selection`

- Not yet implemented, use zero for this parameter.

### &no-i18n-plugin_stringenter; (Enter Command)

Screenshot Screenshot of the Enter Command Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_stringenter;`

&i18n-plugin_lbl_type;

- function

&i18n-plugin_lbl_description;

- A small dialog window that allows to enter a &kwave; text command. Please refer to the chapter title_kwave_commands in this manual.

&i18n-plugin_lbl_parameters;

- `preset` (optional)

- A text that is shown in the edit field when entering the dialog. This parameter is optional, if omitted the edit field of the dialog will be empty at start.

### &no-i18n-plugin_volume; (Volume)

Screenshot Screenshot of the Volume Plugin

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_volume;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- With this plugin you can change the volume of the current selection by a constant factor. The corresponding dialog allows to enter this factor as a numeric factor given as a floating point value between 0.10 and 10.0, a percentage between 1 and 1000, or in decibel between -21 and +21.

  Use a factor above 1.0 (or percentage above 100 or more than 0 dB) if the file is too silent, or a factor below 1.0 (percentage below 100 or less than 0 dB) if the file is too loud.

&i18n-plugin_lbl_parameters;

- `factor`

- A floating point value with the amplification factor.

`mode`

- value | description
  &no-i18n-tag;`0` | factor
  &no-i18n-tag;`1` | percentage
  &no-i18n-tag;`1` | decibel

### &no-i18n-plugin_zero; (Zero Generator)

&i18n-plugin_lbl_internal_name;

- `&no-i18n-plugin_zero;`

&i18n-plugin_lbl_type;

- effect

&i18n-plugin_lbl_description;

- This plugin has two modes of operation. If used without parameters it wipes the current selection by overwriting it with silence. When used with two parameters, it inserts some amount of silence at the start of the current selection.

&i18n-plugin_lbl_parameters;

- `length mode`

- Determines the units in which the length of the inserted silence will be given.

  value | description
  &no-i18n-tag;`0` | milliseconds
  &no-i18n-tag;`1` | samples
  &no-i18n-tag;`2` | percentage of the length of the file

`length`

- Length of the silence to insert, in milliseconds, samples or percentage of the length of the file, depending on the parameter `length mode`.

## Questions and Answers

What do I need to compile &kwave;?

Read in the developer documentation.

Which sound cards does &kwave; support?

&kwave; does not need support for any special sound card. The sound card only has to be supported by your operating system and &kwave; uses its interface to the operating system's sound driver through an ALSA, PulseAudio, Qt, or OSS interface.

Why does &kwave; consume more memory than it can be expected from the size of the opened file?

The reason for this is that &kwave; internally stores all samples in 32-bit integers. This was easy to program, made the application faster and a bit more reliable. So if you load an 8-bit file with about one megabyte it will consume about four megabytes. Maybe we will change this somewhere in the future...

Which sound formats does &kwave; support?

&kwave; currently supports .wav files with 8, 16 and 24 bits per sample, with any number of channels (of course including mono and stereo). Additionally it can import all file types that libaudiofile supports and some other formats like Ogg/Vorbis and MP3.

What if I have files with a format not supported by &kwave;?

If you have to work on a different format, you can convert it into .wav format. A good set of tools for this is in the SoX package, they have also some nice documentation!

I get errors when I want to do playback?

Maybe you have chosen a combination of playback rate and sample size that is not supported by your sound driver and / or sound hardware. Try playback with 8 bits per sample and mono first, this should always work. Then try to increase the bits per sample and stereo playback step by step. Note that some playback rates are not at all supported by some sound hardware.

The playback seems to do something but I hear nothing?

Maybe you have forgotten to increase the volume of the playback channel. &kwave; is not responsible for changing the playback volume.

Some files are played with half-speed?

Try choosing a different sound playback device.

The playback sometimes is disturbed and interrupted?

You should increase the size of the playback buffer to get a "smoother" playback (this also makes the playback control reacting a bit slower).

The playback does not stop if I immediately press the stop button?

The reason for this is that the sound driver already has received some playback data from &kwave; at the moment when you press the stop button. Decrease the size of the playback buffer and it should react faster (but makes interruptions more probable).

Is ALSA supported?

Yes, since v0.7.4 for playback and recording

What about playback with 18, 20, 24 or 32 bits per sample or more than two channels?

This is possible through the ALSA interface, since v0.7.4.

## Credits and License

&kwave;

Program copyright from 1998-2000 Martin Wilz martin@wilz.de

Program copyright since 2000 Thomas Eschenbacher thomas.eschenbacher@gmx.de

For a complete list of authors and licenses of all files, please refer to the `LICENSES` file, which is included in the sources. There also is a file with the name `AUTHORS` that lists all authors and contributors of &kwave;.

Documentation copyright (C) 2020 Thomas Eschenbacher thomas.eschenbacher@gmx.de

Documentation copyright (C) 2024 Mark Penner mrp@markpenner.space

&underFDL; &underGPL;

### Main Authors

- Martin Wilz martin@wilz.de

  creator of the project, active development 1998-2000

- Thomas Eschenbacher thomas.eschenbacher@gmx.de

  maintainer since 2000, core development

### Major Contributors

- Aurelien Jarno aurel32@debian.org

  debian packager, patches

- Carlos R pureacetone@gmail.com

  spanish translation

- David Flogeras dflogera@nbnet.nb.ca

  Notch Filter plugin

- Gilles Caulier caulier.gilles@free.fr

  i18n, french translations, splashscreen, beta tester

- Mark Penner mrp@markpenner.space

  development

- Pavel Fric pavelfric@seznam.cz

  Czech translation

- Ralf Waspe rwaspe@web.de

  Help/About plugin

- Sven-Steffen Arndt ssa29@gmx.de

  homepage, german translation

### Minor contributors, copyright holders and others

- Bertrand Songis bsongis@gmail.com [historic]

  french translation fixes, substitutes for patented libaudiofile code, debian bug 419124

- Carsten Lohrke carlo@gentoo.org

  svn r2163, patch for libaudiofile detection

- Chris Vaill chrisvaill@gmail

  code base for the normalize plugin

- David Faure faure@kde.org

  cmake/FindAlsa.cmake

- Diederick de Vries diederick76@gmail.com

  packaging for Crux Linux

- Espen Sand espen@kde.org + Mirko Boehm mirko@kde.org

  K3AboutContainer, base of KwaveAboutContainer

- Everaldo Coelho contact@everaldo.com

  the crystal icon theme http://www.everaldo.com/crystal/

- Jaroslav Kysela

  parts of plugins/playback/PlayBack-ALSA.cpp

- Jeff Tranter

  parts of plugins/pitch_shift/PitchShiftFilter.{h,cpp}

- Juhana Sadeharju kouhia@nic.funet.fi

  plugins/band_pass/BandPass.{h,cpp}, plugins/lowpass/LowPassFilter.cpp, plugins/notch_filter/NotchFilter.{h,cpp}

- Kurt Roeck Q@ping.be

  svn r1370, fix for debian bug#288781, compilation for amd64

- Mark Donohoe (&kde;) donohoe@kde.org

  some icons and bitmaps for toolbar and &GUI;

- Martin Hinsch vidas@sourceforge.net

  Matrix class

- Matthias Kretz kretz@kde.org

  cmake/FindAlsa.cmake

- Richard Laerkaeng, richard@goteborg.utfors.se

  cmake/FindOggVorbis.cmake

- Rik Hemsley rik@kde.org

  level meter

- Stefan Westerfeld stefan@space.twc.de

  parts of plugins/pitch_shift/PitchShiftFilter.{h,cpp}

- Joerg-Christian Boehme joerg@chaosdorf.de

  plugins/record/Record-PulseAudio.cpp plugins/record/Record-PulseAudio.h

- Sebastian Trueg trueg@k3b.org, Gustavo Pichorim Boiko gustavo.boiko@kdemail.net, Michal Malek michalm@jabster.pl

  parts of plugins/export_k3b/K3BExportPlugin.cpp

### Thanks To

- Martin Kuball makube@user.sourceforge.net

  beta tester

- Jorge Luis Arzola arzolacub@gmx.de

  packaging for SuSE Linux

- Michael Favreau michel.favreau@free.fr

  packaging for Arch Linux

- T.H.F. Klok and Cedric Tefft

  maintainers of the id3lib library

- Robert Leslie rob@mars.org

  author of the mad mp3 decoder library

- Robert M. Stockmann stock@stokkie.net

  packaging for Mandrake / X86_64

- Erik de Castro Lopo erikd@zip.com.au

  author of the sndfile library

- Michael Pruett mpruett@sgi.com

  author of the audiofile library

## File Info

## List of File Info Identifiers

Keyword |  | Description
&no-i18n-tag;Album | Name of the album if the source is an album that consist of more medias.
&no-i18n-tag;Annotation | Provides general comments about the file or the subject of the file. If the comment is several sentences long, end each sentence with a period. Do not include newline characters!
&no-i18n-tag;Archival location | Indicates where the subject of the file is archived.
&no-i18n-tag;Author | Identifies the name of the author of the original subject of the file. Example: van Beethoven, Ludwig
&no-i18n-tag;Lower Bitrate | Specifies the lower limit in a VBR bitstream.
&no-i18n-tag;Bitrate Mode | Bitrate Mode (ABR, VBR, CBR, &etc;)
&no-i18n-tag;Bitrate | Nominal bitrate of the audio stream in bits per second
&no-i18n-tag;Upper Bitrate | Specifies the upper limit in a VBR bitstream.
&no-i18n-tag;Bits per Sample | Specifies the number of bits per sample.
&no-i18n-tag;CD | Number of the CD, if the source is an album of more CDROMs
&no-i18n-tag;CDS | Number of CDs, if the source is an album of more CDROMs
&no-i18n-tag;Commissioned | Lists the name of the person or organization that commissioned the subject of the file.
&no-i18n-tag;Comments | Provides general comments about the file or the subject of the file. If the comment is several sentences long, end each sentence with a period. Do not include newline characters!
&no-i18n-tag;Compression | Sets a mode for compressing the audio data to reduce disk space.
&no-i18n-tag;Contact | Contact information for the creators or distributors of the track. This could be a URL, an email address, the physical address of the producing label.
&no-i18n-tag;Copyright | Records the copyright information for the file. If there are multiple copyrights, separate them by a semicolon followed by a space. Example: Copyright Linux community 2002
&no-i18n-tag;Copyrighted | Indicates whether the file is protected by copyright or not.
&no-i18n-tag;Date | Specifies the date the subject of the file was created. Example: 2001-12-24
&no-i18n-tag;Engineer | Shows the name of the engineer who worked on the file. If there are multiple engineers, separate the names by a semicolon and a blank.
&no-i18n-tag;Estimated Length | Estimated length of the file in samples
&no-i18n-tag;Filename | Name of the opened file
&no-i18n-tag;File Size | Size of the file in bytes
&no-i18n-tag;Genre | Describes the genre or style of the original work. Examples: classic, pop
&no-i18n-tag;ISRC | ISRC number for the track; see the ISRC intro page for more information on ISRC numbers. &url_isrc;
&no-i18n-tag;Keywords | Provides a list of keywords that refer to the file or subject of the file.
&no-i18n-tag;Labels | The list of labels/markers.
&no-i18n-tag;Length | Length of the file in samples.
&no-i18n-tag;License | License information, ⪚, All Rights Reserved, Any Use Permitted, an URL to a license or the Attribution-ShareAlike 4.0 International (distributed under the terms of the Attribution-ShareAlike 4.0 International License. See &url_cc_by_sa_4; for details), &etc;
&no-i18n-tag;Medium | Describes the original subject of the file, where it was first recorded. Example: orchestra
&no-i18n-tag;Mime Type | Mime type of the file format
&no-i18n-tag;Emphasis | Audio emphasis mode
&no-i18n-tag;Layer | MPEG Layer, I, II or III
&no-i18n-tag;Mode Extension | MPEG Mode Extension (only if Joint Stereo)
&no-i18n-tag;Version | MPEG Version, 1, 2 or 2.5
&no-i18n-tag;Name | Stores the title of the subject of the file. Example: Symphony No.6, Op.68 "Pastoral"
&no-i18n-tag;Opus Frame Length | Opus Frame Length in ms (supported values are 2.5, 5, 10, 20, 40, or 60 ms)
&no-i18n-tag;Organization | Name of the organization producing the track (i.e. the record label)
&no-i18n-tag;Original | Indicates whether the file is an original or a copy
&no-i18n-tag;Performer | The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists. In an audio book it would be the actor who did the reading.
&no-i18n-tag;Private | Indicates whether the subject is private
&no-i18n-tag;Product | Specifies the name or the title the file was originally intended for. Example: Linux audio collection
&no-i18n-tag;Sample Format | Format used for storing the digitized audio samples. Example: 32-bit IEEE floating-point
&no-i18n-tag;Sample Rate | Number of samples per second
&no-i18n-tag;Software | Identifies the name of the software package used to create the file. Example: Kwave v0.6.4-1
&no-i18n-tag;Source | Identifies the name of the person or organization who supplied the original subject of the file. Example: Chaotic Sound Research
&no-i18n-tag;Source form | Identifies the original form of the material that was digitized. Examples: Record/Vinyl/90RPM, Audio DAT, tape/CrO2/60min
&no-i18n-tag;Subject | Describes the subject of the file. Example: Bird voices at early morning
&no-i18n-tag;Technician | Identifies the technician who digitized the subject file. Example: Torvalds, Linus
&no-i18n-tag;Track | Track of the CD if the source was a CDROM.
&no-i18n-tag;Tracks | Number of tracks of the CD if the source was a CDROM.
&no-i18n-tag;Channels | Specifies the number of channels of the signal.
&no-i18n-tag;Base Quality | Base quality of the compression in VBR mode
&no-i18n-tag;Version | May be used to differentiate multiple versions of the same track title in a single collection. (⪚ remix info)