Handbok Kwave

# Handbok Kwave

Thomas Eschenbacher `<thomas.eschenbacher@gmx.de>`

Översättare: Stefan Asserhäll
Revision 20.07.70 (2020-07-06)

Copyright © 1998-2000 Martin Wilz

Copyright © 2020 Thomas Eschenbacher

Rättsligt Meddelande

Kwave är en enkel ljudeditor byggd på KDE Ramverk 5.

Tabellförteckning

4.1. Översättningstabell för webbadresskodning
A.1. Lista över identifierare i filinformation

Exempelförteckning

3.1. innehåll för en ASCII-fil med en enda sinusvåg

Kapitel 1. Inledning
Inledning

# Kapitel 1. Inledning

Detta är "Kwave", en enkel ljudeditor byggd på KDE Ramverk 5. Dess funktioner omfattar:

- ett användargränssnitt som kan ändras mellan ett fönster, flera fönster eller flikar

- enkla funktioner för klipp ut, kopiera och klistra in

- flera nivåer av ångra och gör om

- signalmarkörer

- inspelningsfunktion, inklusive förinspelning

- uppspelning via Qt, PulseAudio, ALSA och OSS

- inspelning via PulseAudio, ALSA och OSS

- MP3-import och export

- Ogg Vorbis- och Opus-import och export

- FLAC-import och export

- vissa analysfunktioner såsom sonogram

- använder 24-bitars fixtalsprecision för samplad data internt

- fritt valbara samplingsfrekvenser

- stöd för redigering av filer med flera kanaler

- uppspelning av ljudfiler med flera kanaler (ljud ut mixas till mono eller stereo vid behov)

- utökningsbar via ett lättanvänd gränssnitt för insticksmoduler

- import och export av andra ljudformat via audiofile

Om du är intresserad av vad som har gjorts och vad som ännu återstår att göra, ta en titt på filerna `CHANGES` och `TODO` som ingår i källkodspaketet. Hjälp och konstruktiv kritik är alltid välkomna.

## Resurser för Kwave

Om du vill komma i kontakt med utvecklarna, behöver ytterligare hjälp med användning av Kwave, eller vill skicka in programfixar, felrapporter eller något annat, kan följande resurser vara av intresse:

- Projektets hemsida

  Ta en titt på Kwaves hemsida för information om nya aktuella utgåvor eller en del annan information om projektet.

- GIT-arkivet

  Det finns också ett GIT-arkiv på KDE:s servrar, och en kopia av arkivet hos SourceForge, där källkoden för den senaste utvecklingsversionen kan hämtas. För instruktioner om hur man kan komma åt arkivet, läs kapitlet om att bygga från GIT i utvecklingsdokumentationen. Det finns också ett webbgränssnitt på KDE och på SourceForge som går att använda för att bläddra i källkoden.

Versionshistorik för Kwave
Versionshistorik för Kwave

## Versionshistorik för Kwave

Projektet startades av Martin Wilz sommaren 1998 och har utvecklats och förbättrats av honom och ett antal övriga personer. I november 1999 började Thomas Eschenbacher rätta en del småfel här och där, och grävde sig djupare och djupare in i programmets källkod. Fram till idag har han utökat, skrivit om eller reviderat nästan alla programkomponenter och spenderat mycket tid på att förbättra det.

Sedan Kwave v0.8.0 ingår inte längre ändringsloggen i handboken. Om du är intresserad av en komplett lista över ändringar, hittar du den fullständiga historiken här: https://invent.kde.org/multimedia/kwave/-/blob/master/CHANGES, eller bläddra igenom källkoden på egen hand via GIT-webbgränssnittet.

Kwave version 0.9.0 är det första versionen som är tillgänglig på KDE:s server (kdereview) och på SourceForge, följd av 0.9.1, den första versionen för KDE Ramverk 5.

Kapitel 2. Grunderna i digitalljud
Grunderna i digitalljud

# Kapitel 2. Grunderna i digitalljud

Det här kapitlet bör ge en kort introduktion av grunderna i digital ljudbehandling, utan att gå in på alltför mycket detaljer.

## Den analoga världen

För det första måste man veta att värden är analog, medan datorer fungerar digitalt. Det finns flera sätt att konvertera analogt ljud till digitalt ljud och tillbaka igen. Eftersom vägen från digitalt till analogt normalt är det omvända av vägen från analogt till digitalt, beskriver vi bara vägen från analogt till digitalt.

Konvertering från ljud till bitar

Innan man går vidare måste analogt ljud omvandlas till elektroniska signaler för att kunna ta sig in i datorn. Ett vanligt sätt att göra det är att använda en mikrofon och en förstärkare. Kombinationen tar ljud (ändringar i lufttryck) som indata och lämnar en spänning som utdata. Högre amplitud på tryckförändringarna representeras som högre spänningar vid förstärkarens utgång. Utgången kallas också en 'signal'. Istället för en mikrofon kan man förstås föreställa sig andra ljudkällor, och "förstärkaren" kan vara den som är integrerad på ljudkortet, där man normalt inte ser den.

Konvertering till en elektronisk signal

I detta läge har den elektriska signalen tre begränsningar som man måste komma ihåg:

1. Amplituden (volymen) är begränsad till någon maximal nivå. Det är en följd av de elektroniska förstärkarna bara kan hantera spänningar inom ett visst intervall. Det är inget problem, så länge ljudet inte blir för starkt. Om det skulle ske blir signalen klippt, vilket betyder att den elektriska signalen når sin marginal och resultatet blir stört.

2. Frekvensomfånget är också begränsat. På grund av mikrofonernas mekaniska begränsningar och det begränsade frekvensomfånget hos förstärkare, är signalens frekvensomfång begränsat. Det finns inga fasta gränser där ljudet plötsligt försvinner, men under någon lägsta och över någon högsta frekvens börjar signalens amplitud minska mer och mer. Förekomsten av en maximal frekvens kan enkelt förstås som en begränsad hastighet som den elektriska signalen kan stiga och falla. Genom att använda högkvalitativa förstärkare och mikrofoner, kan gränserna utökas till intervall där det mänskliga örat inte längre kan höra resultatet, och därmed vara ointressanta. Det mänskliga örat kan normalt inte höra ljud ovanför 20 kHz.

3. Signalen innehåller brus. Brus är den elakaste fienden till alla som måste hantera ljudsignaler på något sätt. Brus är en typiskt analog effekt, som gör ljudsignalen "oskarp" och störd. Det är alltid närvarande och kan inte undvikas. Man kan bara försöka använda komponenter av hög kvalitet som skapar så lågt brus som möjligt, så att man inte kan höra det. Normalt har brus en viss volym, så att de intressanta ljuden måste vara mycket starkare i förhållande till bruset. Det kallas signal-brusförhållandet, och ju större det är desto bättre är ljudkvaliteten. Ljud som har lägre volym än bruset går inte att höra.

Digitalisering
Digitalisering

## Digitalisering

När man vill lagra och spela ljud i en dator, måste det analoga ljudet först konverteras till digital data. Processen kallas digitalisering. Den konverterar en elektronisk signal till en följd av digitala värden.

Digitalisering av den elektroniska signalen

Konverteringen kan förstås som en repetitiv mätning av den elektroniska signalens värde vid en viss tid, och på så sett skapa en sampling av signalen. Resultatet kodas sedan som ett digitalt värde.

Samplingen kan göras med godtyckliga avstånd eller konstanta intervall. Den senare metoden är mycket enklare att hantera, och används därför normalt med en konstant frekvens, den så kallade samplingsfrekvensen. Normala samplingsfrekvenser är 8000, 11025, 22050 och 44100 samplingar per sekund. I praktiken anges också samplingsfrekvenser liksom frekvenser med Hz eller kHz.

Samplingsfrekvensen begränsar den högsta frekvens som en digitaliserad signal kan representera. På grund av Shannons teorem är den högsta användbara frekvensen halva samplingsfrekvensen, så med 44.1 kHz samplingsfrekvens kan man inte sampla signaler med mer än 22 kHz. För att undvika att göra våld på regeln om halva samplingsfrekvensen, har ljudkortet redan inbyggda filter som filtrerar bort frekvenser som är högre än halva den använda samplingsfrekvensen.

Samplad signal

Kodning av samplingar
Kodning av samplingar

## Kodning av samplingar

Resultatet av den digitala samplingsprocessen är en följd av enskilda samplingar. En sampling är en digital representation av en signals värde vid en viss tid.

En samplings värde kan tolkas och kodas på flera olika sätt. Det enklaste är en linjär kodning. Det betyder att varje samplings värde direkt representerar den analoga signalens värde multiplicerad med en konstant faktor. Det är enkelt att hantera, men har nackdelen att brus är hörbart särskilt vid låga amplituder, där det stör som mest, och mindre hörbart vid höga amplituder, där det är mindre hörbart.

Ett sätt att reducera påverkan av brus är en icke-linjär kodning. Det betyder att låga amplituder förstärks innan de behandlas. Eftersom låga amplituder förstärks, ökar deras avstånd från bruset och kvaliteten förbättras. De vanligaste metoderna för detta är kodning med A-lag och U-lag, några standardiserade logaritmiska förstärkningskurvor, använda i digital telefoni (standarden ITU G.711).

Icke-linjär kodning

Samplingsformat
Samplingsformat

## Samplingsformat

Samplingar kan lagras med olika format och noggrannhet. De vanligaste är heltalsformat (fixtal), som lagrar värden med fixtalskvantisering. Beroende på vara nollnivån definieras, måste man skilja mellan heltalsformat utan tecken (bara positiva värden, "nollnivån" är halva det numeriska intervallet) och med tecken (positiva och negativa värden).

Format med tecken

Format utan tecken

Eftersom kvantiseringen förlorar viss noggrannhet skapar den brus, det så kallade kvantiseringsbruset. Den typen av brus har större effekt vid låga amplituder, så metoden att lagra samplingar är inte optimal, men mycket enkel och mycket snabb att hantera (datorer är snabba på att beräkna fixtal).

Det andra sättet att koda samplingar är med flyttal. Med flyttal sprids bruset nästa lika över alla amplitudintervall och det ger fördelar särskilt vid låga amplituder. Dock är formatet mycket långsammare när det används vid behandling (datorer är mycket långsammare på att räkna med flyttal i förhållande till fixtal).

### Notera

Internt använder Kwave heltalsformat med tecken och 24-bitars noggrannhet, lagrade i 32-bitars heltal. Det har nackdelen av större minnesåtgång när filer med lägre noggrannhet behandlas (t.ex. 8 bitar), men behandling av 32-bitars tal går mycket snabbt och lämnar också en viss reserv för interna beräkningar, eftersom normalt bara 24 bitar används.

Kapitel 3. Använda Kwave
Använda Kwave

# Kapitel 3. Använda Kwave

Här är en liten skärmbild av Kwaves huvudfönster, så att du får ett intryck av hur Kwave ser ut ...

## Typ av användargränssnitt

Beroende på personliga önskemål eller användningsfall kan du anpassa hur Kwave hanterar flera öppna filer. Du kan byta inställning i farten via menyn Inställningar → Visa filer i....

De tre möjliga inställningarna är:

- Separata fönster (SDI): När gränssnittet för enstaka dokument används, visas varje fil i ett separat huvudfönster.

- Samma fönster (MDI): När gränssnittet för flera dokument används, finns bara ett Kwave huvudfönster, men inne i fönstret finns ett område som visar delfönster, som kan storleksändras, flyttas, läggas sida vid sida, överlappas eller minimeras.

  Du kan välja ett fönster men menyn Fönster eller gå igenom delfönstret med Ctrl+Tabulator.

- Flikar: Det är en variant av samma fönster, där filer visas under separata flikar. Du kanske känner igen typen från vissa populära webbläsare.

  Du kan aktivera en flik via menyn Fönster eller gå igenom flikarna med Ctrl+Tabulator.

Kommandorad
Kommandorad

## Kommandorad

### Lista över filer eller kommandon

Om du startar Kwave från kommandoraden kan du ange en lista med filer som ska öppnas. Den först angivna filen öppnas först, därefter de övriga filerna. Varje fil öppnas i ett eget nytt fönster eller delfönster i samma instans av Kwave. Om du anger jokertecken kan du öppna ett stort antal filer på en gång.

Följande kommando startar exempelvis Kwave och öppnar alla ljud som tillhandahålls av freedesktop XDG-ljudtemat, vart och ett i ett nytt fönster eller delfönster:

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

Det är också möjligt att skicka textkommandon till Kwave, kodade som en särskild URI[1], som beskrivs i ett senare avsnitt.

### Typ av grafiskt användargränssnitt

Parametrarna `--gui=`SDI`|`MDI`|`TAB`` låter Kwave starta med ett av de tre möjliga grafiska användargränssnitten: SDI, MDI eller flikar (TAB).

### Alternativ för Qt-verktygslådan

Förutom en lista med filer kan du ange en lista med väljare för Qt-verktygslådan såsom `-qwindowgeometry` för att ange storlek och/eller position för det första fönstret som Kwave öppnar och/eller `-display` för att starta Kwave på en annan skärm.

Följande kommando startar exempelvis ett Kwave-fönster med en ursprunglig bredd på 600 bildpunkter och en höjd på 400 bildpunkter, med höger kant placerad 30 bildpunkter från höger och 0 bildpunkter från skärmens överkant.

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

### Startalternativ

Du kan inaktivera startskärmen som dyker upp när Kwave startas med väljaren `--disable-splashscreen`. Det kan vara användbart när Kwave startas från ett skript.

Kommandoradsväljaren `--iconic` låter Kwave starta minimerad (som ikon). Det kan vara användbart om du vill starta Kwave utan interaktion via det grafiska användargränssnittet, t.ex. när du kör ett skript. Väljaren stänger också implicit av startskärmen.

Genom att använda kommandoradsväljaren `--logfile=`kwave.log`` kan du logga följden av åtgärder i en Kwave-session i en fil. Det är användbart för avlusning. Du kan bli tillfrågad om en sådan loggfil när du rapporterar ett fel.

[1] Universal Resource Identifier

Öppna och spara filer
Öppna och spara filer

## Öppna och spara filer

Att öppna filer med Kwave fungerar som i de flesta andra program. Du kan

- ange en lista med filer på kommandoraden när Kwave startas,

- öppna ett tomt Kwave-fönster (exempelvis med Arkiv → Ny... (Ctrl+W) ) och lägga till en fil i det via drag och släpp, eller kan du

- öppna en fil via menyn med Arkiv → Öppna (Ctrl+O)

- eller en av de senast öppnade filerna under Arkiv → Öppna senaste

- spara den aktuella filen med Arkiv → Spara (Ctrl+S),

- spara med ett annat namn med Arkiv → Spara → Som... (Skift+Ctrl+S)

- spara alla områden som skiljs åt av markörer, var och en i en egen fil, med Arkiv → Spara → Block...

- eller bara aktuella markering med Arkiv → Spara → Markering...

### Filformat som stöds

Kwave stöder följande filformat:

- Favoritformatet för filer i Kwave är (som man kan gissa från namne) `.wav`. Formatet är mycket vanligt på andra "operativsystem" och används också ofta i Plasma-miljön.

- Det andra formatet som Kwave stöder är "ASCII". Du kan exportera till och också importera från ASCII. Var medveten om att lagra med det här formatet kan skapa mycket stora filer. Filformatet beskrivs nedan.

- Import från `.mp3` och `.mp2` är tillgänglig via libmad för avkodning av MP3 i kombination med id3lib för avkodning av ID3-taggar och lame för kodning.

- Import och export av Ogg Vorbis (`*.ogg`). Se https://www.xiph.org för detaljinformation.

- Import och export av FLAC (`*.flac`). Se https://xiph.org/flac/ för detaljinformation.

- Dessutom går det att importera filformat som `*.8svx` (Amiga IFF/8SVX ljudfilformat), `*.au` (NeXT, Sun Audio), `*.aiff` (ljudutbytesformat), `*.avr` (audiovisuellt forskningsfilformat), `*.caf` (kärnljudfilformat), `*.nist` (NIST SPHERE-ljudfilformat), `*.sf` (Berkeley, IRCAM, Carl-ljudformat), `*.smp` (samplingsvisuellt format), `*.snd` (NeXT, Sun audio), `*.voc` (kreativ röst) och andra via insticksmodulen audiofile.

### Konvertera till och från .wav

Det bästa sättet att arbeta med andra format än de som stöds av Kwave är att använda ett externt konverteringsprogram. En bra uppsättning verktyg för det finns i paketet SoX, och de har också en del bra dokumentation.

Framtida planer omfattar stöd för import och också exportfilter för fler format och kanske några filter som använder ett användardefinierat skript med anrop till ett externt filter, så att till och med format som inte stöds av `SoX` kan läsas och/eller skrivas.

### ASCII-filernas format

ASCII-formatet är rätt användbart i vetenskapligt och utbildningssyfte. På grund av dess enkla format, kan man antingen skriva enkla filer själv med en texteditor, eller använda utdata från något annat program och konvertera det till ASCII. Eftersom formatet är verkligt enkelt, bör det inte vara några större problem att skriva konverteringsverktyg, och de flesta vetenskapliga program brukar ha ett eget ASCII-format för export.

Formatet för en ASCII-fil är rätt enkelt och har följande regler:

1. I början på filen kommer ett block med egenskaper, med en egenskap per rad.

2. Varje rad med en egenskap börjar med `##`.

3. Efter egenskaperna kommer en lista med samplingar, med en sampling per rad. När flera kanaler används skiljs samplingarna åt med kommatecken.

4. Rader kan sluta med ett vagnretur- och/eller nyradstecken (så även DOS-filer stöds). Men när filer sparas, används alltid ett nyradstecken som radslut.

5. Tomma rader och tecken efter ett `#` tolkas som kommentarer och ignoreras.

6. Värden måste anges i heltalsformat med tecken och ett 24-bitars omfång, vilket är det interna lagringsformatet i Kwave.

7. Allting efter ett `#` (utom egenskapsrader, se ovan) behandlas som kommentar och ignoreras. Tomma rader ignoreras också.

Här är ett exempel på en enkel ASCII-fil som representerar en sinusvåg med elva samplingar:

Exempel 3.1. innehåll för en ASCII-fil med en enda sinusvåg

    ## '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

Skapa en ny fil
Skapa en ny fil

## Skapa en ny fil

Det går att skapa en ny och tom fil under Arkiv → Ny....

Du kan välja samplingsfrekvensen, upplösningen i bitar per sampling och antal spår. Normalt är filformatet ".wav", men det kan fortfarande ändras när det är dags att spara filen.

Längden på den nya signalen kan ställas in med tid (timmar, minuter, sekunder) eller med antal samplingar. Dessutom kan du välja den i förhållande till den största möjliga längden, vilken är begränsad av tillgängligt minne och Kwaves interna gräns (2 Gibyte),

Inspelning
Inspelning

## Inspelning

Kwave kan spela in ljuddata från diverse källor, med alla samplingsfrekvenser, samplingsformat och andra inställningar som ljudhårdvaran stöder. För närvarande spelar Kwave in via det gamla OSS-ljudgränssnittet, och sedan v0.7.4 också med det nyare och mer kraftfulla ALSA-gränssnittet som är att föredra för Linux kärna 2.6.

Inspelningen kan nås via menyn Arkiv → Spela in.

Här är en skärmbild av inspelningsdialogrutan i Kwave, som visar första sidan med inspelningskontroller medan en inspelningssession pågår. Som i de flesta dialogrutor i Kwave kan du få hjälp eller se verktygstips för kontrollerna.

Här finns följande kontroller:

- Förinspela Om förinspelningsfunktionen i Kwave är aktiverad och inspelningen har startats, spelar Kwave in i en intern buffert som är några sekunder lång. Om du klickar på knappen Spela in ( ) igen, startar inspelningen på riktigt, och behåller också redan förinspelade data. Det är exempelvis användbart om du vill spela in en favoritlåt från radion, men känner igen för sent att låten har börjat. I så fall kan du ändå klicka på inspelningsknappen och få med början på låten från det som Kwave redan har förinspelat tidigare, så att du inte längre missar den.

- Inspelningstid: Om inspelningens längd ska begränsas till en viss tid, kan inställningen aktiveras och en tid för inspelningen väljas i timmar, minuter och sekunder. Om alternativet inte är aktiverat, fortsätter inspelningen tills du trycker på knappen Stoppa ()

- Starta: Om inställningen är aktiverad, kan du ställa in ett datum och en tid då inspelningen ska startas. Var medveten om att är den inställda tiden i det förflutna, startas inspelningen omedelbart.

- Inspelningsutlösare: Om aktiverad startar inspelningen bara om ingångens volym överstiger en viss gräns, som kan definieras från 0 % till 100 % av den högsta ingångsvolymen. Det är användbart om du inte vill spela in inledande tystnad. (Tips: Kombinera det med förinspelningsfunktionen som nämns ovan för att också lagra några sekunder innan utlösaren nås, så att du inte missar några tysta inledningar.)

- Knappen Ny () är aktiv när inspelningen inte pågår eller är avslutad, för att överge det nuvarande filinnehållet och börja om igen.

- Knappen Stoppa () är aktiv när inspelningen eller förinspelningen pågår eller väntar på utlösaren. Om den klickas stoppas pågående förlopp.

- Knappen Paus () är aktiv när inspelningen eller förinspelningen pågår. Första gången den klickas stoppas inspelningen och knappen börjar blinka. När den klickas igen slutar den blinka och inspelningen fortsätter omedelbart utan att vända på en utlösare.

- Knappen Spela in () är aktiv när inspelningen eller förinspelningen pågår. Första gången den klickas stoppas inspelningen och knappen börjar blinka. När den klickas igen slutar den blinka och inspelningen fortsätter omedelbart utan att vända på en utlösare.

  1. Om varken förinspelning eller utlösningsnivå används, startar inspelningen så fort du klickar på inspelningsknappen.

  2. Om förinspelning inte används och en utlösningsnivå ställs in, gör det första klicket att Kwave väntar på att utlösningsnivån ska nås. Medan du väntar på en utlösare kan du tvinga inspelningen att starta omedelbart genom att klicka på inspelningsknappen igen, annars startar inspelningen automatiskt när utlösningsnivån har uppnåtts.

  3. Om förinspelning är aktiverad, startar det första klicket bara förinspelningen och det andra klicket startar verkligen inspelningen.

Uppspelning
Uppspelning

## Uppspelning

Beroende på kompileringsalternativ så kan Kwave spela upp ljud via en av följande uppspelningsmetoder:

- ALSA (Advanced Linux Sound Architecture): Ersätter OSS, stöder fler funktioner och mer hårdvara. Kan kollidera med andra ljudprogram liksom OSS gör, men har en insticksmodul som kallas "dmix" som en utväg. Nyare versioner av ALSA använder normalt dmix som insticksmodul, så det bör vara det bästa valet för dig.

- OSS (Open Sound System): Den äldsta Linux-implementeringen, som klarar av mono- och stereo-utdata. Användning avråds från sedan Linux kärna 2.6, men har fortfarande stor spridning. Kan kollidera med andra ljudprogram, bara ett program åt gången kan använda OSS-uppspelning.

Innan du försöker spela upp ljud, ta en titt på inställningsdialogrutan för uppspelning:

För närvarande stöder Kwave bara 8- och 16-bitars uppspelning, med mono eller stereo visa OSS-gränssnittet, men också alla sätt som ljudhårdvaran stöder via ALSA-gränssnittet.

Om ljudfilen använder fler eller färre kanaler än uppspelningen tillåter, mixas alla kanaler ihop under uppspelning. Om du exempelvis har en fil med tre kanaler och använder stereouppspelning, spelar vänster kanal kanal 0 (övre) och halva kanal 1 (i mitten), och höger kanal spelar halva kanal 1 (i mitten) och kanal 2 (undre).

För att få en jämn uppspelning utan avbrott måste du också ställa in buffertstorleken till ett lämpligt värde. Om du råkar ut för problem med avbrott i uppspelningen, ska buffertstorleken ökas här. Men ju större buffert du ställer in, desto längre blir latensen mellan det hörbara ljudet och visningen av uppspelningsposition i signalvisningen.

Inställningsdialogrutan för uppspelning tillhandahåller också en knapp för att spela ett enkelt provljud. Du ska höra en 440 Hz don som vandrar mellan alla högtalare, från den ena till den andra.

När du väl har ställt in uppspelning, kan du använda uppspelningsknapparna i Kwaves huvudfönster, menyn Spela eller snabbtangenter:

- Spela → Starta (P): Starta uppspelning av aktuell markering från början eller hela filen från aktuell pekarposition om ingenting är markerat. Spela bara en gång.

- Spela → Upprepa: Liksom tidigare, men upprepa utan slut.

- Spela → Paus (Mellanslag): Paus i uppspelningen vid aktuell position. Bara tillgänglig när uppspelningen pågår.

- Spela → Fortsätt (Mellanslag): Fortsätt uppspelning från positionen där den pausades. Bara tillgänglig om uppspelningen är pausad.

- Spela → Stoppa (Esc): Stoppa uppspelningen, och gå tillbaka till början av markeringen.

Filegenskaper
Filegenskaper

## Filegenskaper

Kwave kan hantera flera olika sorters metainformation som är lagrad i en ljudfil. Programmet försöker importera och exportera så mycket som möjligt av sådan information. Om du exempelvis importerar en MP3-fil med ID3-taggar, kan informationen behållas vid export till en Wav-fil. Om Kwave skulle förlora metainformation där du sparar, visas en varning.

Du kan visa och ändra metainformationen med Redigera → Filegenskaper.... Där kan du också ändra saker som samplingsformat, upplösning och komprimering.

Zooma och navigera
Zooma och navigera

## Zooma och navigera

Kwave tillhandahåller flera sätt att zooma och navigera, genom att använda snabbtangenter, menykommandon, knappar i verktygsraden och genom att använda musen. Följande avsnitt ger en översikt av hur alla dessa funktioner används.

### Zooma in och ut

- zooma in: zoomar in för att se fler detaljer, förstorar med en faktor 3.

  - menyalternativ och snabbtangent: Visa → Zooma in (Ctrl++)

  - knapp i verktygsraden:

- zooma ut: zoomar ut för att se färre detaljer, förminskar med en faktor 3.

  - menyalternativ och snabbtangent: Visa → Zooma ut (Ctrl+-)

  - knapp i verktygsraden:

- zooma till markering zoomar till en faktor där aktuell markering är fullständigt synlig i den aktuella vyn.

  - menyalternativ och snabbtangent: Visa → Zooma till markering (Ctrl+Mellanslag)

  - knapp i verktygsraden:

- zooma till hela signalen väljer en zoomfaktor som gör att hela signalen blir synlig i aktuellt fönster.

  - menyalternativ: Visa → Zooma till hela signalen

  - knapp i verktygsraden:

- zooma till 100 % zoomar till en skala där en sampling representeras av en bildpunkt på skärmen.

  - menyalternativ: Visa → Zooma till 100 %

  - knapp i verktygsraden:

- välj fördefinierad zoom: väljer en zoomfaktor från kombinationsrutan för zoomning i verktygsraden.

### Att rulla vänster och höger

- gå till position visar en dialogruta för att mata in positionen dit du vill att aktuell vy ska flyttas.

  menyalternativ och snabbtangent: Visa → Gå till position... (Ctrl+G)

- till början: rullar aktuell vy så att den startar vid signalens början.

  menyalternativ och snabbtangent: Visa → Början (Ctrl+Home)

- till slutet: rullar aktuell vy så att den slutar vid signalens slut.

  menyalternativ och snabbtangent: Visa → Slut (Ctrl+End)

- föregående sida: rullar till positionen precis innan aktuell vy (vänster).

  menyalternativ och snabbtangent: Visa → Föregående sida (Page up)

  knapp i verktygsraden:

- nästa sida: rullar till positionen precis efter aktuell vy (höger).

  menyalternativ och snabbtangent: Visa → Nästa sida (Page down)

  knapp i verktygsraden:

- rulla åt höger: rullar mot signalens slut med 1/3 av aktuell vy.

  menyalternativ och snabbtangent: Visa → Rulla åt höger (Högerpil)

  knapp i verktygsraden:

- rulla åt vänster: rullar mot signalens början med 1/3 av aktuell vy.

  menyalternativ och snabbtangent: Visa → Rulla åt vänster (Vänsterpil)

  knapp i verktygsraden:

### Använda översikten

Huvudskärmen i Kwave visar en liten översikt av hela signalen ovanför den horisontella rullningslisten i huvudfönstret. Översikten tillhandahåller också viss funktionalitet för navigering:

- enkelklick med vänster musknapp: flyttar direkt aktuell vy till den klickade positionen.

- dubbelklick med vänster musknapp: flyttar direkt aktuell vy till den klickade positionen och zoomar dessutom in.

- dubbelklick med vänster musknapp och Skift nedtryckt: flyttar direkt aktuell vy till den klickade positionen och zoomar dessutom ut.

### Vertikal zoom

Du kan zooma vertikalt i aktuell vy genom att hålla nere tangenten Alt och rulla med mushjulet.

Hur man markerar
Hur man markerar

## Hur man markerar

Kwave låter dig välja ett kontinuerligt samplingsintervall samt vilken kombination av kanaler som helst (om du redigerar en fil med flera kanaler). Genom att markera ett samplingsintervall (tidsomfattning) begränsas alla följande kommandon till intervallet och genom att inaktivera en kanal ändras inte dess innehåll.

### Välja kanaler

Aktivera eller inaktivera en kanal är mycket enkelt. Klicka bara på symbolen av lysdioden på vänster sida om signalen för att ändra dess tillstånd:

en grön lysdiod betyder "aktiverad", medan

en röd lysdiod betyder "inaktiverad".

### Notera

Observera: Om en kanal är inaktiverad hörs den inte heller vid uppspelning.

### Markera samplingar

Om du markerar ett samplingsintervall i Kwave är intervallet inkluderande. Det betyder att den första och sista samplingen båda hör till markeringen och används för efterföljande åtgärder. Även om du inte markerat ett intervall men men bara en enda sampling, är markeringen inte verkligt "tom". Så om du exempelvis inte ser något markerat intervall, gäller funktionen "ta bort" den enda samplingen.

Det enklaste sättet att markera ett samplingsintervall är att göra just det med musen. Det fungerar som du är van vid från andra program: håll bara ner musknappen på stället där du vill att markeringen ska börja och släpp knappen där du vill att den ska sluta.

Om du vill justera eller flytta markeringens början eller slut, kan du flytta muspekaren till början eller slutet av markeringen till den ändras från den vanliga pilen till en vänster-högerpil och tryck på vänster musknapp och justera.

Du kan alltså utöka eller minska markeringen till en specifik punkt genom att hålla nere Skift-tangenten medan du klickar med vänster musknapp. Beroende på vilken kant som är närmast, flyttas markeringens vänster eller höger kant till den nya positionen. Om ingenting var markerat, ställs den in från början.

Det finns också några funktioner tillgängliga via menyn och naturligtvis några snabbtangenter:

- markera hela signalen: Redigera → Markering → Alla (Ctrl+A)

- markera ett intervall: Redigera → Markering → Intervall (R)

- området som för närvarande är synligt: Redigera → Markering → Synligt område (V)

- nästa block av samplingar, med början på en sampling efter den nuvarande markeringen och med samma längd: Redigera → Markering → Nästa (Skift++)

  (Tips: använd tangenten "+" från det numeriska tangentbordet.)

- föregående block av samplingar, med början på en sampling efter den nuvarande markeringen och med samma längd: Redigera → Markering → Föregående (Skift+-)

  (Tips: använd tangenten "-" från det numeriska tangentbordet.)

- ta bort eventuell markering och välj "ingenting": Redigera → Markering → Ingenting (N)

- expandera markeringen till signalens början (första samplingen): Redigera → Markering → Till början (Skift+Home)

- expandera markeringen till signalens slut (sista samplingen): Redigera → Markering → Till slutet (Skift+End)

- expandera aktuell markering åt vänster och höger till nästa markör (eller till signalens start eller slut om det inte finns någon), med början på aktuell position: Redigera → Markering → Expandera till markörer (E)

- markera området mellan nästa två markörer till höger om aktuell markering eller till signalens slut: Redigera → Markering → Till nästa markörer (Ctrl+Skift+N)

- markera området mellan föregående två markörer till vänster om aktuell markering eller till signalens början: Redigera → Markering → Till föregående markörer (Ctrl+Skift+P)

Klippbordet
Klippbordet

## Klippbordet

Kwave använder klippbordet från Plasma. På så sätt är det möjligt att utbyta ljuddata mellan olika Kwave-fönster. Det kan dessutom vara möjligt att utbyta data mellan Kwave och andra ljudprogram, beroende på deras möjlighet att använda Plasmas klippbord.

När data kopieras till klippbordet via funktionen `copy`, använder Kwave Mime-typen `audio/vnd.wave` som dataformat, som överensstämmer med RFC 2361, som är samma som det välkända `wav`-formatet. Vid inklistring från klippbordet i Kwave stöds alla dataformat som är tillgängliga som importformat för filer, som exempelvis Ogg Vorbis, FLAC och så vidare.

Drag och släpp
Drag och släpp

## Drag och släpp

Kwave stöder drag och släpp-protokollet i KDE:s ramverk. Det gör att du kan öppna filer genom att bara hämta dem i ett Dolphin- eller Konqueror-fönster eller på skrivbordet och släppa dem i ett Kwave-fönster.

Observera att om en fil släpps i ett Kwave-fönster som redan innehåller en öppnad fil, stängs filen som för närvarande är öppen först och därefter öppnas filen som släpptes i det. Om du inte vill det, måste du öppna ett nytt tomt Kwave-fönster först.

Du kan också markera ett samplingsintervall eller dra och släppa det på ett Kwave-fönster. Normalt görs dragåtgärden som flytta, där det markerade intervallet tas bort från den ursprungliga platsen och infogas på platsen det släpps. Genom att hålla nere Ctrl-tangenten kan du ändra det och dra för att kopiera istället.

Kapitel 4. Automatisering och skripthantering med Kwave
Automatisering och skripthantering med Kwave

# Kapitel 4. Automatisering och skripthantering med Kwave

Sedan första versionen använder Kwave ett internt textbaserat kommandospråk. Detta kommandospråk används internt för menyhantering, kontroll av det grafiska användargränssnittet, inbyggda effekter och för att anropa insticksmoduler. Kommandona beskrivs senare i avsnittet Kommandoreferens.

## Allmän syntax

- Alla kommandon består av ett kommandonamn och en valfri parameterlista inom parenteser, beroende på kommandot.

- Tecken som tillåts i kommandonamn är bokstäver, siffror och kolon. Kommandon är skiftlägeskänslig och skrivs alltid med små bokstäver.

- Parametrar i en parameterlista skiljs åt med ett kommatecken

- Numeriska parametrar kan anges som fixtal eller som flyttal, med användning av ett decimalkomma som skiljetecken.

- Strängparametrar beskärs automatiskt (alla blanktecken i början och slutet tas bort). Om det inte önskas, kan de omges av dubbla citationstecken ("). Om en strängparameter innehåller specialtecken (som ”,”, ”;”, ”#” eller ”\”), måste specialtecknen föregås av ett ”\”.

- Flera kommandon kan sammanfogas till en kommandolista genom att använda ett ”;” som skiljetecken.

Exempel:

    fileinfo(Comments,"Det här är en \"exempelkommentar\".")

Exemplet består av kommandot fileinfo och har två parametrar, nyckelordet `Comments` och texten ”`"Det här är en \"exempelkommentar\"."`”. (Parametrarna förklaras i respektive avsnitt i kommandoreferensen).

Använda kommandoraden
Använda kommandoraden

## Använda kommandoraden

Förutom kommandoradsväljarna som listas i avsnittet Kommandoraden, som används för att starta Kwave som ikon eller utan startskärm, kan du skicka textkommandon på kommandoraden, kodade i ett särskilt URI-format:

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

Reglerna för att omvandla ett textkommando i Kwave till en giltig URI är följande:

- En URI börjar med ordet `kwave`, följt av ett”:” och kommandonamnet.

- Om kommandot har parametrar, måste de läggas till efter kommandonamnet, genom att använda ett ”?” som skiljetecken.

- Flera parametrar kan läggas till genom att använda ett ”,” som skiljetecken.

- Alla specialtecken i kommandonamn och parametrar måste kodas som i en webbadress. Här är en lista med översättningar:

  Tabell 4.1. Översättningstabell för webbadresskodning

  original | kodad |  | original | kodad |  | original | kodad |  | original | kodad
  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
  (mellanslag) | `%20` |  | ( | `%28` |  | : | `%3A` |  | \ | `%5C`
  ! | `%21` |  | ) | `%29` |  | ; | `%3B` |  | ] | `%5D`
  " | `%22` |  | * | `%2A` |  | < | `%3C` |  | ^ | `%5E`
  # | `%23` |  | + | `%2B` |  | = | `%3D` |  | _ | `%5F`
  $ | `%24` |  | , | `%2C` |  | > | `%3E` |  | ` | `%60`
  % | `%25` |  | - | `%2D` |  | ? | `%3F` |  | { | `%7B`
  & | `%26` |  | . | `%3E` |  | @ | `%40` |  | | | `%7C`
  ' | `%27` |  | / | `%2F` |  | [ | `%5B` |  | } | `%7D`
  |  |  |  |  |  |  |  |  | ~ | `%7E`

Kwave skriptfiler
Kwave skriptfiler

## Kwave skriptfiler

### Allmän struktur

Ett Kwave-skript består av en lista med rader, där varje rad kan vara:

- ett enstaka kommando,

- en kommandolista, med två eller flera kommandon sammanfogade med ett ”;”.

- en kommentar,

- en markör

- eller en tom rad, som bara innehåller blanktecken

### Kommentarer och tomma rader

Alla tecken som följer ett ”#” (utom när det används inom citationstecken eller efter \) behandlas som kommentarer, och ignoreras tyst.

Rader som bara innehåller blanktecken eller kommentarer ignoreras också.

### Avslutning

Ett Kwave-skript avslutas antingen när alla kommandon har körts utan något fel, eller när ett kommando har returnerat en felkod. Det finns inget särskilt kommando för att avbryta körning av ett skript. Om du vill implementera möjlighet för användaren att avsluta ett skript, kan du använda kommandot ”msgbox(``text``)”. Det visar en meddelanderuta med de två knapparna Ok (som låter skriptet fortsätta) och Avbryt (som returnerar en felkod och stoppar skriptet).

### Markörer

Rader som bara består av en identifierare följt av ett ”:” behandlas som etiketter. De kan senare refereras i skriptet med det särskilda nyckelordet GOTO [2], som gör att skriptet fortsätter köra på etikettens position (se exemplet nedan).

En rad som innehåller en etikett får inte innehålla något annat (utom kommentarer och blanktecken) efter ”:”.

Exempel:

    start:  # <= detta är en etikett
                        # gör någonting ...
                        msgbox(Igen?)
                        GOTO start

[2] Observera: Blanda inte ihop nyckelordet ”GOTO” med textkommandot ”goto (``position``)”.

Kommandoreferens
Kommandoreferens

## Kommandoreferens

### Alfabetiskt index

### a

about_kde
add_track

### c

clipboard_flush
close
continue
copy
crop
cut

### d

delayed
delete
delete_track
dump_metadata

### e

label:edit
expandtolabel

### f

fileinfo
forward

### g

goto

### i

insert_at
insert_track

### l

label:add
label:delete
loadbatch
loop

### m

menu
msgbox

### n

newsignal
next

### o

open
openrecent

### p

paste
pause
playback_start
plugin
plugin:execute
plugin:setup
prev

### q

quit

### r

redo
redo_all
reenable_dna
reset_toolbars
revert
rewind

### s

save
saveas
saveselect
select_gui_type
select_track:all
select_track:invert
select_track:none
select_track:off
select_track:on
select_track:toggle
selectall
selectnext
selectnextlabels
selectnone
selectprev
selectprevlabels
selecttoleft
selecttoright
selectvisible
start
stop
sync

### u

undo
undo_all

### v

view:scroll_end
view:scroll_left
view:scroll_next
view:scroll_next_label
view:scroll_prev
view:scroll_prev_label
view:scroll_right
view:scroll_start
view:zoom_all
view:zoom_in
view:zoom_normal
view:zoom_out
view:zoom_selection

### w

window:activate
window:cascade
window:click
window:close
window:minimize
window:mousemove
window:next_sub
window:prev_sub
window:resize
window:screenshot
window:sendkey
window:tile
window:tile_vertical

``

a
a

## a

### about_kde

#### Syntax: about_kde()

Visar ett dialogfönster med information om KDE-gemenskapen.

### add_track

#### Syntax: add_track()

Lägger till ett nytt spår efter alla befintliga spår.

#### Se också

insert_track()

c
c

## c

### clipboard_flush

#### Syntax: clipboard_flush()

Kastar klippbordets nuvarande innehåll (ge frigöra en del minne).

### close

#### Syntax: close()

Stänger aktuell fil. Om det grafiska användargränssnittet är inställt med flera fönster eller flikar, stängs också motsvarade delfönster.

#### Se också

open(`filnamn`), quit()

### continue

#### Syntax: continue()

Motsvarar knappen Fortsätt i verktygsraden och låter uppspelningen fortsätta efter paus.

#### Se också

pause()

### copy

#### Syntax: copy()

Kopierar innehållet i aktuell markering till klippbordet. Om markeringen är tom, gör kommandot ingenting och klippbordets innehåll förblir oförändrat. Bara innehållet i spåret som för närvarande är markerat kopieras till klippbordet.

#### Se också

paste()

### crop

#### Syntax: crop()

Beskär signalen till den aktuella markeringen genom att ta bort allting som finns före och efter aktuell markering. Påverkar alla spår. Om ingenting är markerat, gör kommandot ingenting.

### cut

#### Syntax: cut()

Kopierar innehållet i aktuell markering till klippbordet och tar bort det från signalen. Om markeringen är tom, gör kommandot ingenting och klippbordets innehåll förblir oförändrat. Bara innehållet i spåret som för närvarande är markerat kopieras till klippbordet, men det markerade intervallet tas bort från alla spår.

d
d

## d

### delayed

#### Syntax: delayed( `millisekunder`, `kommando` )

Utför ett `kommando` efter en angiven fördröjning. Observera att kommandot utförs asynkront efter den angivna tiden har löpt ut. Flera kommandon kan köas, där fördröjningarna är relativa i förhållande till det senast köade kommandot. Kommandot är avsett för att köa kommandon när skärmbilder tas i dokumentationssyfte.

#### Parametrar

`millisekunder`: | antal hela millisekunder att vänta innan kommandot utförs
`kommando`: | ett kommando, inklusive parametrar, att utföra efter den angivna fördröjningen

#### Se också

sync(), window:resize(), window:click(), window:sendkey(), window:close(), window:screenshot()

### delete

#### Syntax: delete()

Tar bort aktuellt markerat samplingsintervall. Om markeringen är tom, gör kommandot ingenting. Påverkar alla spår.

### delete_track

#### Syntax: delete_track(`index`)

Tar bort ett spår, identifierad av sitt index (med början på noll). Om inget spår med angivet index finns, avslutas kommandot med ett fel.

#### Parametrar

`index`: | index för spåret att ta bort, med början på 0

### dump_metadata

#### Syntax: dump_metadata()

Skriver ut en lista över alla metadataposter på terminalen, i diagnostiskt syfte (bara tillgängligt när Kwave har kompilerats med alternativet `WITH_DEBUG` aktiverat).

e
e

## e

### expandtolabel

#### Syntax: expandtolabel()

Expanderar aktuella markering till markörerna till vänster och höger om den aktuella markeringens gränser. Om markeringens gräns redan är vid en markör förblir den oförändrad. Om det inte finns någon markör till vänster eller höger om aktuell markering, expanderas den till början eller slutet av filen.

f
f

## f

### fileinfo

#### Syntax: fileinfo(`index`)

Ändra en filinformationspost till ett nytt värde.

#### Parametrar

`nyckelord`: | postens nyckelord
`värde`: | postens värde

### forward

#### Syntax: forward()

Motsvarar knappen Snabbspola framåt i verktygsraden. Om uppspelning för närvarande pågår, går det framåt 1/10 av det synliga intervallet. Om uppspelningen inte pågår, gör det samma sak som kommandot view:scroll_right().

#### Se också

view:scroll_right(), rewind()

g
g

## g

### goto

#### Syntax: goto(`pos`)

Flyttar pekaren till angiven position och gör den synlig i aktuell vy. Efter detta har markeringen längden noll.

#### Parametrar

`pos`: | position i samplingar att gå till

i
i

## i

### insert_at

#### Syntax: insert_at(`pos`)

Infogar klippbordets innehåll på angiven position, som kommandot paste(). Om klippbordet för närvarande är tomt, gör funktionen ingenting.

#### Parametrar

`pos`: | position i samplingar där innehållet ska infogas

#### Se också

paste()

### insert_track

#### Syntax: insert_track(`index`)

Infogar ett nytt spår på angivet index, med användning av signalens inställningar av aktuell längd och samplingsfrekvens. Om index är större än eller lika med aktuellt antal spår, läggs det till som det sista spåret på samma sätt som kommandot add_track(). Index för alla befintliga spår vid och efter angivet index ökas med ett.

#### Parametrar

`index`: | index för spåret att infoga, med början på 0

#### Se också

add_track()

l
l

## l

### label:add

#### Syntax: label:add(`pos`[,`text`])

Lägg till en ny markör på en given position. Om den givna positionen redan innehåller en markör, gör det här kommandot ingenting. Markören kan ges en valfri beskrivning.

#### Parametrar

`pos`: | position i samplingar där markören ska infogas
`text`: | någon beskrivande text (valfri)

### label:delete

#### Syntax: label:delete(`index`)

Tar bort en markör, identifierad av sitt index (med början på noll) eller alla markörer när det speciella värdet -1 används som index. Om ingen markör med angivet index finns, gör kommandot ingenting.

#### Parametrar

`index`: | index för markören att ta bort, med början på 0, eller -1 för att ta bort alla markörer

### label:edit

#### Syntax: label:edit(`index`)

Öppnar ett dialogfönster där användaren kan redigera position och beskrivning för en markör, som identifieras av sitt index (med början på noll). Om ingen markör med angivet index finns, gör kommandot ingenting.

#### Parametrar

`index`: | index för markören att redigera, med början på 0

### loadbatch

#### Syntax: loadbatch(`filnamn`)

Öppnar en Kwave-skriptfil och behandlar kommandona i den. Använder den för närvarande öppnade filens sammanhang, eller det aktuella huvudfönstret om ingen fil är inläst.

#### Parametrar

`filnamn`: | namn på Kwave-skriptfilen inklusive sökväg och filändelse

### loop

#### Syntax: loop()

Motsvarar knappen Upprepa i verktygsraden. Startar uppspelning (om den inte redan pågår) och låter den spela upprepade gånger.

#### Se också

playback_start()

m
m

## m

### menu

#### Syntax: menu (`kommando`, `sökväg`, [`snabbtangent`], [`id`])

Det här är ett mycket kraftfullt kommando, som används för att lägga till ett nytt alternativ i menyn eller ändra ett befintligt alternativ. Det bestämmer vilket kommando som utförs när menyalternativet aktiveras, vilken ikon som visas i menyn och vilken snabbtangent som används. Varje menyalternativ kan vara inaktiverat eller dolt, kan tilldelas ett unikt id och kan också ingå i en menygrupp.

Normalt behövs inte kommandot inne i ett Kwave-skript.

#### Parametrar

`kommando`: | Ett textkommando (inklusive parametrar) eller en kommandolista som utförs när menyalternativet aktiveras. Om ett menyalternativ inte har ett motsvarande kommando (exempelvis om det är en undermeny och inte ett menyalternativ), ska det speciella kommandot ignore() användas.

`sökväg`:

Sökvägen inom menyn, med användning av ett ”/” som skiljetecken. Den sista delen av sökvägen kan vara ett delkommando som ändrar en viss egenskap för menyalternativet (se nedan). Den sista delen av sökvägen (som inte är ett delkommando) skapar ett menyalternativ, de föregående delarna skapar alternativet i huvudmenyn eller undermenyerna som leder till det. Alternativ i huvudmenyn eller undermenyer skapas automatiskt när ett menyalternativ skapas, de behöver inte skapas manuellt.

`snabbtangent`:

En bitmask som består av en kombination av fördefinierade tangenter och väljare sammanbundna med ett ”+”. En snabbtangent kan antingen vara en siffra, en stor bokstav, en funktionstangent (”F1” ... ”F12”) eller ett godtyckligt annat tangentnamn som förstås av Qt-klassen ”`QKeySequence`”, inklusive tangentnamn på fördefinierade åtgärder (som exempelvis ”`::Copy`”). Typiska väljare är ”`Skift`”, ”`Alt`” och ”`Ctrl`”.

`id`: | Unik id som kan användas internt för att identifiera menyalternativet eller menyn/undermenyn. Bara stora bokstäver, siffror och ”`_`” ska användas, och den ska börja med ”`ID_`”. Det är ditt eget ansvar att försäkra dig om att samma id inte används två gånger.

#### Delkommandon

#checkable: | Gör ett menyalternativ markeringsbart så att det kan sättas på eller stängas av.
#disabled: | Inaktiverar menyn, undermenyn eller menyalternativet.
#enabled: | Aktiverar menyn, undermenyn eller menyalternativet.
#exclusive(`grupp`): | Lägger till menyalternativet i en uteslutande `grupp` (välj en av många). Gruppen som anges som parameter ska inte användas i något annat syfte. Bara ett alternativ i gruppen kan väljas åt gången.

#group(`lista`):

Lägger till menyn, undermenyn eller menyalternativet i en eller flera grupper, så att programmet kan aktivera eller inaktivera en mängd menyalternativ utan att behöva känna till alla deras unika id. Flera grupper kan skickas som en lista med ”`,`” som skiljetecken. Gruppnamn måste börja med ett ”`@`”. Följande grupper är fördefinierade:

@CLIPBOARD:

  Bara aktiverat när klippbordet inte är tomt.

@LABELS:

  Bara aktiverat när aktuell signal innehåller minst en markör.

@NOT_CLOSED:

  Aktiverat när den aktuella signalen inte är stängd (signalen kan vara tom eller av längd noll).

@SELECTION:

  Aktiverad när markeringen inte är tom (mer än en sampling är markerad).

@SIGNAL:

  Aktiverad när någon signal är inläst och den inte är tom eller av längden noll.

#hidden: | Döljer menyn, undermenyn eller menyalternativet.
#icon(`namn`): | Tilldelar en ikon till menyalternativet. Ikonens `namn` ska motsvara en ikonfil (utan sökväg och filändelse) som är installerad på systemet eller med Kwave.

#listmenu(`id`,`kommando`):

Infogar en platsmarkör för en lista med menyalternativ i en undermeny. Detunika `id` som anges i delkommandot används för att lägga till, ta bort eller rensa listan med menyalternativ. Parametern `kommando` måste innehålla ”`%1`” som parameter, vilket ersätts med menyalternativets text när den aktiveras (delkommandot används internt för listan med senaste filer, listan med spår och fönsterlistan).

#separator: | Infogar en skiljelinje i en undermeny.

### msgbox

#### Syntax: msgbox(`text`)

Visar en meddelanderuta med `text` och de två knapparna Ok (returnerar utan felkod) och Avbryt (returnerar en felkod). Du kan använda kommandot för att ge användaren en möjlighet att avbryta ett skript som kör.

#### Parametrar

`text`: | Ett meddelande som visas i meddelanderutan, och ska innehålla en fråga som kan besvaras med Ok eller Avbryt.

n
n

## n

### newsignal

#### Syntax: newsignal( `samplingar`, `frekvens`, `bitar`, `spår`)

Skapar en ny signal, med en angiven längd i `samplingar`, en `frekvens` i samplingar per sekund (flyttal), ett antal `bitar` per sampling och ett visst antal `spår`. Längden i samplingar kan beräknas genom att multiplicera önskad längd i sekunder med samplingsfrekvensen.

#### Parametrar

`samplingar`: | Signalens längd i samplingar.
`frekvens`: | Samplingsfrekvens i samplingar per sekund.
`bitar`: | Antal bitar per sampling, får inte vara noll, ska vara ett tal mellan 8 och 32.
`spår`: | Antal spår.

### next

#### Syntax: next()

Motsvarar knappen Nästa i verktygsraden. Om uppspelning för närvarande pågår, går det framåt till nästa markör. Om uppspelningen inte pågår, gör det samma sak som kommandot view:scroll_next_label().

#### Se också

view:scroll_next_label(), prev()

o
o

## o

### open

#### Syntax: open([`filnamn`])

Öppnar en fil, som antingen kan vara en ljudfil eller ett Kwave-skript. Om inget filnamn skickas med, visas ett dialogfönster som gör det möjligt att välja en befintlig fil. Beroende på typ av grafiskt användargränssnitt öppnas filen i samband med ett nytt delfönster (flera fönster och flikar), eller i ett nytt huvudfönster (separata fönster, om något redan hade lästs in).

#### Parametrar

`filnamn`: | namn på en fil inklusive sökväg och filändelse

#### Se också

close()

### openrecent

#### Syntax: openrecent(`filnamn`)

I stort sett samma sak som kommandot open(), men avsett att användas internt för listan med senaste öppnade filer i menyn Arkiv+Öppna senaste. I detta kommando är inte parametern `filnamn` valfri.

#### Parametrar

`filnamn`: | posten i listan med senast öppnade filer

#### Se också

open()

p
p

## p

### paste

#### Syntax: paste()

Ersätter aktuell markering med klippbordets innehåll. Om klippbordet är tomt gör kommandot ingenting. Samplingsfrekvensen på infogad data justeras för att motsvara den aktuella signalens samplingsfrekvens vid behov. Bara aktiverade spår påverkas, inaktiverade spår förblir oförändrade. Var medveten att det kan orsaka tidsskift mellan aktiverade och inaktiverade spår. Om antal spår på klippbordet skiljer sig från antal aktiverade spår, mixas data för att spridas jämnt över alla aktiverade spår.

#### Se också

copy()

### pause

#### Syntax: continue()

Motsvarar knappen Paus i verktygsraden och låter uppspelning göra paus om den för närvarande är pågår, eller fortsätta om den för närvarande är pausad.

#### Se också

continue()

### playback_start

#### Syntax: playback_start()

Motsvarar knappen Starta i verktygsraden och låter uppspelning starta om den för närvarande är pausad.

### plugin

#### Syntax: plugin(`namn`, [`parameter` ...])

Kör en insticksmodul med en valfri parameterlista. Om ingen parameterlista anges, anropas insticksmodulens funktion setup, med användning av parametrar från föregående anrop eller standardparametrar som indata (normalt visas en inställningsdialogruta, beroende på insticksmodul). Se kapitlet om insticksmoduler för en beskrivning av de olika insticksmodulerna.

#### Parametrar

`namn`: | det (interna) namnet på en Kwave-insticksmodul
`parameter`: | en lista med parametrar som insticksmodulen förstår (valfri)

#### Se också

plugin:execute(), plugin:setup()

### plugin:execute

#### Syntax: plugin:execute(`namn`, [`parameter` ...])

Liknar kommandot plugin(), men utan att anropa insticksmodulens inställningsfunktion om inga parametrar skickades med.

#### Parametrar

`namn`: | det (interna) namnet på en Kwave-insticksmodul
`parameter`: | en lista med parametrar som insticksmodulen förstår

### plugin:setup

#### Syntax: plugin:setup(`namn`, [`parameter` ...])

Anropar funktionen setup i insticksmodulen, med en valfri parameterlista. Om ingen parameterlista anges, används parametrar från föregående anrop eller standardparametrar som indata. Det visar normalt en inställningsdialogruta, beroende på insticksmodulen. Se kapitlet om insticksmoduler för en beskrivning av de olika insticksmodulerna.

#### Parametrar

`namn`: | det (interna) namnet på en Kwave-insticksmodul
`parameter`: | en lista med parametrar som insticksmodulen förstår (valfri)

### prev

#### Syntax: prev()

Motsvarar knappen Föregående i verktygsraden. Om uppspelning för närvarande pågår, går det bakåt till nästa markör eller markeringens början. Om uppspelningen inte pågår, gör det samma sak som kommandot view:scroll_prev_label().

#### Se också

view:scroll_prev_label(), next()

q
q

## q

### quit

#### Syntax: quit()

Stänger nuvarande huvudfönster, inklusive alla delfönster. Med ett fönster (SDI) är det samma sak som kommandot close().

#### Se också

close()

r
r

## r

### redo

#### Syntax: redo()

Motsvarar knappen Gör om i verktygsraden och upprepar en åtgärd som har ångrats med undo().

#### Se också

undo()

### redo_all

#### Syntax: redo_all()

Liknar redo(), men gör om så många åtgärder som möjligt.

#### Se också

undo()

### reenable_dna

#### Syntax: reenable_dna()

Vissa meddelanderutor erbjuder möjlighet att förhindra dem från att visas igen (”fråga inte igen”). Kommandot gör att alla visas igen.

### reset_toolbars

#### Syntax: reset_toolbars()

Nollställer alla inställningar av verktygsraden, som plats, ikonstorlek och textposition tillbaka till standardvärden.

### revert

#### Syntax: revert()

Återställer filen som för närvarande är inläst tillbaka till dess senast sparade tillstånd, och överger alla ändringar som inte är sparade.

### rewind

#### Syntax: rewind()

Motsvarar knappen Snabbspola bakåt i verktygsraden. Om uppspelning för närvarande pågår, går det bakåt 1/10 av det synliga intervallet. Om uppspelningen inte pågår, gör det samma sak som kommandot view:scroll_left().

#### Se också

view:scroll_left(), forward()

s
s

## s

### save

#### Syntax: save()

Motsvarar knappen Spara i verktygsraden. Sparar aktuell fil om den har ändringar. Om filen inte redan har ett namn (t.ex. en fil som just har skapats och inte ännu har ett filnamn), gör kommandot exakt samma sak som saveas().

#### Se också

saveas()

### saveas

#### Syntax: saveas([`filnamn`])

Sparar filen som för närvarande är öppen med ett angivet filnamn. Om inget filnamn ges som parameter, visas en dialogruta för att välja katalog och mata in ett filnamn.

#### Parametrar

`filnamn`: | filnamn för att spara (valfritt)

### saveselect

#### Syntax: saveselect()

Kommandot gör samma sak som save(), men sparar bara nuvarande markerat intervall och de aktiverade spåren istället för hela filen.

#### Se också

save()

### select_gui_type

#### Syntax: select_gui_type(`typ`)

Välj typ av grafiskt användargränssnitt, som antingen kan vara separata fönster (SDI), flera fönster (MDI) eller flikar (Tab). Var medveten om att ändringen utförs omedelbart.

#### Parametrar

`filnamn`: | typens namn, måste antingen vara ”SDI”, ”MDI” eller ”TAB”.

### select_track:all

#### Syntax: select_track:all()

Markerar alla spår som ”aktiverade”. Det är samma sak som att anropa kommandot select_track:on() för alla befintliga spår.

#### Se också

select_track:on()

### select_track:invert

#### Syntax: select_track:all()

Invertera tillståndet ”aktiverade” för alla spår. Det är samma sak som att anropa kommandot select_track:toggle() för alla befintliga spår.

#### Se också

select_track:toggle()

### select_track:none

#### Syntax: select_track:none()

Markerar alla spår som ”inaktiverade”. Det är samma sak som att anropa kommandot select_track:off() för alla befintliga spår.

#### Se också

select_track:off()

### select_track:off

#### Syntax: select_track:off(`index`)

Inaktiverar ett enskilt spår, så att det inte påverkas av de flesta åtgärder.

#### Parametrar

`index`: | index för spåret, med början på 0

### select_track:on

#### Syntax: select_track:on(`index`)

Aktiverar ett enskilt spår, så att det påverkas av alla åtgärder.

#### Parametrar

`index`: | index för spåret, med början på 0

### select_track:toggle

#### Syntax: select_track:toggle(`index`)

Aktiverar ett spår om det för närvarande är inaktiverat, eller inaktiverar det om det för närvarande är aktiverat.

#### Parametrar

`index`: | index för spåret, med början på 0

### selectall

#### Syntax: selectall()

Markerar hela signalens intervall, från den första till den sista samplingen.

### selectnext

#### Syntax: selectnext()

Markerar ett samplingsintervall som börjar till direkt efter aktuell markering, med användning av samma längd som aktuell markering. Markeringen beskärs automatiskt till signalens slut. Om du exempelvis har markerat samplingarna 1000 ... 1019, blir resultatet en markering från sampling 1020 ... 1039.

#### Se också

selectprev()

### selectnextlabels

#### Syntax: selectnextlabels()

Markerar ett samplingsintervall mellan de två markörerna efter aktuell markering. Om ingenting är markerat, markeras från signalens början till den första markören. Annars blir den nya markeringens vänstra kant positionen för den första markören efter markeringen (eller den sista markören om det inte finns några fler markörer till höger om markeringen), och den högra kanten av den nya markeringen blir den första markören efter den vänstra kanten av den nya markeringen (eller signalens slut om det inte finns någon). Kommandot returnerar ett fel när det inte finns några markörer alls.

#### Se också

selectprevlabels()

### selectnone

#### Syntax: selectnone()

Återställer markeringen till längd noll.

### selectprev

#### Syntax: selectprev()

Markerar ett samplingsintervall som börjar till vänster om aktuell markering, med användning av samma längd som aktuell markering. Markeringen beskärs automatiskt till signalens början. Om du exempelvis har markerat samplingarna 1000 ... 1019, blir resultatet en markering från sampling 980 ... 999.

#### Se också

selectnext()

### selectprevlabels

#### Syntax: selectprevlabels()

Markerar ett samplingsintervall mellan de två markörerna innan aktuell markering. Om ingenting är markerat, markeras från signalens början till den första markören. Annars blir den nya markeringens högra kant positionen för den första markören innan markeringen (eller den första markören om det inte finns några fler markörer till vänster om markeringen), och den vänstra kanten av den nya markeringen blir den första markören innan den högra kanten av den nya markeringen (eller signalens början om det inte finns någon). Kommandot returnerar ett fel när det inte finns några markörer alls.

#### Se också

selectnextlabels()

### selecttoleft

#### Syntax: selecttoleft()

Ställer in markeringens början till signalens början, slutet på aktuell markering förblir oförändrat.

#### Se också

selecttoright()

### selecttoright

#### Syntax: selecttoright()

Ställer in markeringens slut till signalens slut, den nuvarande markeringens start förblir oförändrad.

#### Se också

selecttoleft()

### selectvisible

#### Syntax: selectvisible()

Markerar intervallet med samplingar som är synligt i aktuellt fönster.

### start

#### Syntax: start()

Motsvarar knappen Starta i verktygsraden och låter uppspelningen starta från början av markeringen eller fortsätta om den för närvarande är pausad.

#### Se också

stop()

### stop

#### Syntax: stop()

Motsvarar knappen Stoppa i verktygsraden och låter uppspelningen stoppa om den för närvarande pågår.

#### Se också

start()

### sync

#### Syntax: sync()

Väntar tills alla kommandon som har startats asynkront är klara. Kommandot har ingen effekt om ingenting för närvarande är köat för fördröjd körning.

#### Se också

delayed()

u
u

## u

### undo

#### Syntax: undo()

Motsvarar knappen Ångra i verktygsraden och ångrar den senaste åtgärden.

#### Se också

redo()

### undo_all

#### Syntax: undo_all()

Liknar undo(), men ångrar så många åtgärder som möjligt.

#### Se också

undo()

v
v

## v

### view:scroll_end

#### Syntax: view:scroll_end()

Rullar aktuell vy till signalens slut.

#### Se också

view:scroll_start()

### view:scroll_left

#### Syntax: view:scroll_left()

Rullar aktuell vy med 1/10 av det för närvarande synliga intervallet mot signalens början. Om signalens början nås, börjar det synliga området med position noll.

#### Se också

view:scroll_right()

### view:scroll_next

#### Syntax: view:scroll_next()

Rullar aktuell vy mot signalens slut enligt det för närvarande synliga intervallet.

#### Se också

view:scroll_prev()

### view:scroll_next_label

#### Syntax: view:scroll_next_label()

Rullar åt höger och försöker visa nästa markör centrerad i vyn. Om det inte finns någon markör till höger om aktuell position, rullar det till signalens slut.

#### Se också

view:scroll_prev_label()

### view:scroll_prev

#### Syntax: view:scroll_prev()

Rullar aktuell vy mot signalens början enligt det för närvarande synliga intervallet.

#### Se också

view:scroll_next()

### view:scroll_prev_label

#### Syntax: view:scroll_prev_label()

Rullar åt vänster och försöker visa föregående markör centrerad i vyn. Om det inte finns någon markör till vänster om aktuell position, rullar det till signalens början.

#### Se också

view:scroll_next_label()

### view:scroll_right

#### Syntax: view:scroll_right()

Rullar aktuell vy med 1/10 av det för närvarande synliga intervallet mot signalens slut. Om signalens slut nås, slutar det synliga området vid signalens slut.

#### Se också

view:scroll_left()

### view:scroll_start

#### Syntax: view:scroll_start()

Rullar aktuell vy till signalens början.

#### Se också

view:scroll_end()

### view:zoom_all

#### Syntax: view:zoom_all()

Justerar zoomfaktorn så att den fullständiga signalen är synlig i aktuell vy.

### view:zoom_in

#### Syntax: view:zoom_in([`position`])

Minskar zoomfaktorn (i samplingar per bildpunkt) med 30 %, så att fler detaljer är synliga. Om `position` anges, försöker det visa den positionen centrerad i aktuell vy, annars används vyns centrum innan zoomändringen för centrering. Den minimala zoomfaktorn är begränsad till fem samplingar per bredden på vyn.

#### Parametrar

`position`: | en nollbaserad position i samplingar för att centrera vyn (valfri)

#### Se också

view:zoom_out()

### view:zoom_normal

#### Syntax: view:zoom_normal()

Ställer in zoomfaktorn till en bildpunkt per sampling (faktor 1,0) och försöker behålla vyns tidigare centrum.

### view:zoom_out

#### Syntax: view:zoom_out([`position`])

Ökar zoomfaktorn (i samplingar per bildpunkt) med 30 %, så att färre detaljer är synliga. Om `position` anges, försöker det visa den positionen centrerad i aktuell vy, annars används vyns centrum innan zoomändringen för centrering. Den maximala zoomfaktorn är begränsad till antal samplingar i den fullständiga signalen och bredden på vyn.

#### Parametrar

`position`: | en nollbaserad position i samplingar för att centrera vyn (valfri)

#### Se också

view:zoom_in()

### view:zoom_selection

#### Syntax: view:zoom_selection()

Justerar vyn (zoomfaktor och början på synligt område) så att det motsvarar aktuell markering. Kommandot gör ingenting om markeringen är tom.

w
w

## w

### window:activate

#### Syntax: window:activate(`rubrik`])

Aktiverar ett delfönster, identifierat av sin `rubrik`. Om delfönstret är minimerat återställs det. Bara tillgängligt med flera fönster (MDI) eller flikar. Kommandot används internt av menyn Fönster.

#### Parametrar

`rubrik`: | rubrik för delfönstret som ska aktiveras

### window:cascade

#### Syntax: window:cascade()

Överlappar alla delfönster i en kaskad med flera fönster (MDI). Alla delfönster som för närvarande är minimerade förblir minimerade, de återställs inte.

### window:click

#### Syntax: window:click( `klass`, `x`, `y` )

Skickar en musklickhändelse till ett fönster, identifierat av sin `klass`. Händelsen skickas bara till det första fönstret som har det angivna klassnamnet, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs.

#### Parametrar

`klass`: | namn på fönsterklassen
`x`: | x-position, relativt till fönstrets vänsterkant (i bildpunkter)
`y`: | y-position, relativt till fönstrets överkant (i bildpunkter)

### window:close

#### Syntax: window:close( `klass` )

Stänger ett fönster, identifierat av sin `klass`. Bara det första fönstret som har det angivna klassnamnet stängs, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs.

#### Parametrar

`klass`: | namn på fönsterklassen

### window:minimize

#### Syntax: window:minimize

Minimerar delfönstret som för närvarande är aktivt med flera fönster, eller aktuellt toppnivåfönster med separata fönster eller flikar.

### window:mousemove

#### Syntax: window:resize( `klass`, `x`, `y` )

Skickar en musförflyttningshändelse till ett fönster, identifierat av sin `klass`. Händelsen skickas bara till det första fönstret som har det angivna klassnamnet, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs.

#### Parametrar

`klass`: | namn på fönsterklassen
`x`: | x-position, relativt till fönstrets vänsterkant (i bildpunkter)
`y`: | y-position, relativt till fönstrets överkant (i bildpunkter)

### window:next_sub

#### Syntax: window:next_sub()

Aktiverar nästa delfönster med flera fönster eller flikar. Om nästa delfönster är minimerat återställs det.

### window:prev_sub

#### Syntax: window:prev_sub()

Aktiverar föregående delfönster med flera fönster eller flikar. Om det föregående delfönstret är minimerat återställs det.

### window:resize

#### Syntax: window:resize( `klass`, `bredd`, `höjd` )

Ändrar storlek på ett fönster, identifierat av sin `klass`, till en ny `bredd` och `höjd`. Ändringen utförs bara för det första fönstret som har det angivna klassnamnet, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs.

#### Parametrar

`klass`: | namn på fönsterklassen
`bredd`: | fönstrets nya bredd (i bildpunkter)
`höjd`: | fönstrets nya höjd (i bildpunkter)

### window:screenshot

#### Syntax: window:screenshot( `klass`, `filnamn` )

Tar en skärmbild av ett fönster, identifierat av sin `klass` och sparar den i en fil. Skärmbilden tas av det första fönstret som har det angivna klassnamnet, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs. För närvarande är filens format hårdkodat och måste vara `*.png`.

#### Parametrar

`klass`: | namn på fönsterklassen
`filnamn`: | namn på filen där skärmbilden ska skapas, måste ha filändelsen `*.png`

### window:sendkey

#### Syntax: window:sendkey( `klass`, `tangentkod` )

Skickar en tryck och släpp tangenthändelse till ett fönster, identifierat av sin `klass`. Tangenten skickas bara till det första fönstret som har det angivna klassnamnet, och därför måste du försäkra dig om att du bara har en instans av det givna fönstret när kommandot utförs.

#### Parametrar

`klass`: | namn på fönsterklassen
`tangentkod`: | tangentkod som ska skickas, med användning av samma syntax som används för att skapa menyer

#### Se också

Beskrivning av parametern `snabbtangent` i kommandot menu().

### window:tile

#### Syntax: window:tile()

Lägger alla delfönster sida vid sida med flera fönster (MDI) enligt någon metod i Plasma. Alla delfönster som för närvarande är minimerade förblir minimerade, de återställs inte.

### window:tile_vertical

#### Syntax: window:tile_vertical()

Lägger alla delfönster sida vid sida vertikalt med flera fönster (MDI). Alla fönster som för närvarande är minimerade förblir minimerade, de återställs inte.

Kapitel 5. Insticksmoduler
Insticksmoduler

# Kapitel 5. Insticksmoduler

## Referens för insticksmoduler

### Alfabetiskt index

### a

about (About Kwave)
amplifyfree (Amplify Free)

### b

band_pass (Band Pass Filter)

### c

codec_ascii (ASCII Codec)
codec_audiofile (Audiofile Codec)
codec_flac (FLAC Codec)
codec_mp3 (MP3 Codec)
codec_ogg (Ogg Codec)
codec_wav (WAV Codec)

### d

debug (Debug Functions)

### e

export_k3b (Exportera till K3b-projekt)

### f

fileinfo (File Info)

### g

goto (Goto Position)

### i

insert_at (Insert At)

### l

lowpass (Low Pass Filter)

### n

newsignal (New Signal)
noise (Noise Generator)
normalize (Normalizer)
notch_filter (Notch Filter)

### p

pitch_shift (Pitch Shift)
playback (Playback)

### r

record (Record)
reverse (Reverse)

### s

samplerate (Sample Rate Conversion)
saveblocks (Save Blocks)
selectrange (Select Range)
sonagram (Sonagram)
stringenter (Enter Command)

### v

volume (Volume)

### z

zero (Zero Generator)

``

about (About Kwave)
about (About Kwave)

## about (About Kwave)

Internt namn:

  `about`

Insticksmodultyp:

  Grafiskt användargränssnitt

Beskrivning:

  Visar ett fönster med flera flikar, som inkluderar följande information:

  - allmän information om programmet

  - upphovsmän, bidragsgivare och innehavare av copyright

  - alla insticksmoduler som hittades, inklusive deras versioner och upphovsmän

  - information om översättningsgruppen

  - copyright och licensinformation

amplifyfree (Amplify Free)
amplifyfree (Amplify Free)

## amplifyfree (Amplify Free)

Internt namn:

  `amplifyfree`

Insticksmodultyp:

  effekt

Beskrivning:

  Förstärker aktuell markering med en kurva som består av ett antal koordinater och en interpoleringsmetod. Koordinaterna på tidsaxeln samt amplitudaxeln måste vara normaliserade mellan 0,0 och 1,0.

Parametrar
  `åtgärd`

    Internt namn, för hantering av ångra och gör om. Möjliga värden är:

    nyckelord | beskrivning
    --- | ---
    fade in | tona in, kurva från 0.0/0.0 till 1.0/1.0
    fade out | tona bort, kurva från 0.0/1.0 till 1.0/0.0
    fade intro | tona intro, en sekunds paus, därefter tona in
    fade outro | tona avslutning, först tona bort, därefter en sekunds paus
    amplify free | användardefinierad kurva

  `interpolering`

    interpoleringstyp, möjliga värden är:

    nyckelord | beskrivning
    --- | ---
    linear | Linjär
    spline | Spline
    n-polynom | Polynom, n:e graden
    3-polynom | Polynom, 3:e graden
    5-polynom | Polynom, 5:e graden
    7-polynom | Polynom, 7:e graden
    sample_hold | Sampla och håll

  `kurva`

    En lista med koordinatpar åtskilda av kommatecken normaliserade mellan 0,0 och 1,0, måste vara sorterade längs tidsaxeln (i stigande ordning), ska börja vid tiden 0,0 och sluta vid tiden 1,0.

band_pass (Band Pass Filter)
band_pass (Band Pass Filter)

## band_pass (Band Pass Filter)

Internt namn:

  `band_pass`

Insticksmodultyp:

  effekt

Beskrivning:

  Applicerar ett enkelt bandpassfilter på den aktuella markeringen. Bandpass låter ett visst intervall av frekvenser omkring en centerfrekvens passera och filtrerar bort frekvenser som är under eller ovanför centerfrekvensen med mer än halva filtrets bandbredd.

  Filter är av andra graden och är implementerat enligt beskrivningen i boken "An introduction to digital filter theory" av Julius O. Smith och i Moores book, där den normaliserade versionen från Moores bok används.

Parametrar:
  `frekvens`

    Filtrets centerfrekvens i Hz, måste vara lägre än filens halva samplingsfrekvens.

  `bandbredd`

    Filtrets bandbredd i Hz.

codec_ascii (ASCII Codec)
codec_ascii (ASCII Codec)

## codec_ascii (ASCII Codec)

Internt namn:

  `codec_ascii`

Insticksmodultyp:

  kodare

Stödda filtyper:

  Beskrivning: | ASCII-kodat ljud
  Filändelser: | `*.ascii`
  Mime-typer: | `audio/x-audio-ascii`

Stödd metadata:

  (alla kända filinformationsobjekt, se avsnittet Filinformation)

codec_audiofile (Audiofile Codec)
codec_audiofile (Audiofile Codec)

## codec_audiofile (Audiofile Codec)

Internt namn:

  `codec_audiofile`

Insticksmodultyp:

  kodare [bara import]

Stödda filtyper:

  Beskrivning: | Amiga IFF/8SVX ljudfilformat
  Filändelser: | `*.8svx` | `*.iff`
  Mime-typer: | `audio/x-8svx`

  Beskrivning: | NeXT, Sun audio
  Filändelser: | `*.au`, `*.snd`
  Mime-typer: | `audio/basic`

  Beskrivning: | Komprimerat ljudutbytesformat
  Filändelser: | `*.aifc`
  Mime-typer: | `audio/x-aifc`

  Beskrivning: | Ljudutbytesformat
  Filändelser: | `*.aif`, `*.aiff`
  Mime-typer: | `audio/x-aiff`

  Beskrivning: | Audiovisuellt forskningsfilformat
  Filändelser: | `*.avr`
  Mime-typer: | `audio/x-avr`

  Beskrivning: | Kärnljudfilformat
  Filändelser: | `*.caf`
  Mime-typer: | `audio/x-caf`

  Beskrivning: | Berkeley, IRCAM, Carl-ljudformat
  Filändelser: | `*.sf`
  Mime-typer: | `audio/x-ircam`

  Beskrivning: | NIST SPHERE-ljudfilformat
  Filändelser: | `*.nist`
  Mime-typer: | `audio/x-nist`

  Beskrivning: | Samplingsvisuellt format
  Filändelser: | `*.smp`
  Mime-typer: | `audio/x-smp`

  Beskrivning: | Kreativ röst
  Filändelser: | `*.voc`
  Mime-typer: | `audio/x-voc`

Stödd metadata:

  (ingen)

codec_flac (FLAC Codec)
codec_flac (FLAC Codec)

## codec_flac (FLAC Codec)

Internt namn:

  `codec_flac`

Insticksmodultyp:

  kodare

Stödda filtyper:

  Beskrivning: | FLAC-ljud (Free Lossles Audio Codec)
  Filändelser: | `*.flac`
  Mime-typer: | `audio/x-flac`

Stödd metadata:

  Datum, Namn, Version, Album, Spår, Upphovsman, Artist, Copyright, Licens, Organisation, Ämne, Genre, Källa, Kontakt, ISRC, Programvara, Ingenjör, Baskvalitet

codec_mp3 (MP3 Codec)
codec_mp3 (MP3 Codec)

## codec_mp3 (MP3 Codec)

Internt namn:

  `codec_mp3`

Insticksmodultyp:

  kodare

Stödda filtyper:

  Beskrivning: | MPEG-lager III ljud
  Filändelser: | `*.mp3`
  Mime-typer: | `audio/x-mp3`, `audio/mpeg`

  Beskrivning: | MPEG-lager II ljud
  Filändelser: | `*.mp2`
  Mime-typer: | `audio/x-mp2`, `audio/mpeg`

  Beskrivning: | MPEG-lager I ljud
  Filändelser: | `*.mp1`, `*.mpg`, `*.mpga`
  Mime-typer: | `audio/x-mpga`, `audio/mpeg`

Stödd metadata:

  Album, Annotering, Upphovsman, Cd, Antal cd, Kommentarer, Beställare, Kontakt, Copyright, Datum, Genre, ISRC, Längd, Licens, Medium, Namn, Organisation, Artist, Programvara, Tekniker, Spår, Spår, Version

codec_ogg (Ogg Codec)
codec_ogg (Ogg Codec)

## codec_ogg (Ogg Codec)

Internt namn:

  `codec_ogg`

Insticksmodultyp:

  kodare

Stödda filtyper:

  Beskrivning: | Ogg Opus-ljud
  Filändelser: | `*.opus`
  Mime-typer: | `audio/ogg`, `application/ogg`, `audio/opus`

  Beskrivning: | Ogg Vorbis-ljud
  Filändelser: | `*.ogg`
  Mime-typer: | `audio/ogg`, `audio/x-ogg`, `application/x-ogg`, `audio/x-vorbis+ogg`

Stödd metadata:

  Album, Upphovsman, Kontakt, Copyright, Datum, Ingenjör, Genre, ISRC, Licens, Namn, Organisation, Artist, Programvara, Källa, Ämne, Spår, Baskvalitet, Version,

codec_wav (WAV Codec)
codec_wav (WAV Codec)

## codec_wav (WAV Codec)

Internt namn:

  `codec_wav`

Insticksmodultyp:

  kodare

Stödda filtyper:

  Beskrivning: | WAV-ljud
  Filändelser: | `*.wav`
  Mime-typer: | `audio/x-wav`, `audio/vnd.wave`, `audio/wav`

Stödd metadata:

  Album, Annotering, Arkivplats, Upphovsman, Cd, Kommentarer, Beställare, Kontakt, Copyright, Datum, Ingenjör, Genre, ISRC, Nyckelord, Licens, Medium, Namn, Organisation, Artist, Produkt, Programvara, Källa, Källform, Ämne, Tekniker, Spår, Version,

debug (Debug Functions)
debug (Debug Functions)

## debug (Debug Functions)

Internt namn:

  `debug`

Insticksmodultyp:

  funktion

Beskrivning:

  Tillhandahåller diverse interna kommandon användbara vid felsökning och skriptanvändning i Kwave. Funktionerna är bara tillgängliga via huvudmenyn om Kwave har kompilerats med felsökningsläge (byggts med alternativet CMAKE_WITH_DEBUG).

Kommandon:

  window:click, window:close window:mousemove, window:resize, window:screenshot, window:sendkey

export_k3b (Exportera till K3b-projekt)
export_k3b (Exportera till K3b-projekt)

## export_k3b (Exportera till K3b-projekt)

Internt namn:

  `export_k3b`

Insticksmodultyp:

  funktion

Beskrivning:

  Sparar alla sektioner mellan markörer i separata filer och skapar en K3b-projektfil. Efter att ha skrivit alla filer med lyckat resultat är det möjligt att starta K3b och bränna resultatet på en ljud-cd. Det är användbart för att dela upp en fil med en inspelning som består av flera delar, som är åtskilda med markörer, och därefter bränna en ljud-cd med flera spår, inklusive cd-text metadata, som extraheras från markörernas beskrivningar.

  (Insticksmodulen använder internt insticksmodulen saveblocks (Save Blocks)).

Parametrar:
  `filnamn`

    Namnet på K3b-projektfilen, som kommer att användas som basnamn för de exporterade filnamnen.

  `mönster`

    Ett mönster som kommer att användas för att detektera titel och artist från etiketten i början på en sektion. Det stöder följande jokertecken, som ersätts av motsvarande innehåll när metadata för cd-text skapas:

    jokertecken | beskrivning
    --- | ---
    [%artist] | Ersätts med artisten som framförde motsvarande block, eller alternativt kompositören.
    [%title] | Ersätts med blockets rubrik, som tas från den beskrivande texten från etiketten i början på blocket. Om texten är tom, återgår den till filens rubrik (se filinformationsobjektet "Namn"). Om den inte heller finns, återgår den till basfilnamnet som beskrivs ovan.

    Exempel: ”`[%title] ([%artist])`” detekterar kompositören ”`Beethoven`” titeln ”`Symfoni nr. 5`” från strängen ”`Symfoni nr. 5 (Beethoven)`”.

  `bara markering`

    värde | beskrivning
    --- | ---
    0 | Spara alla sektioner i hela filen.
    1 | Spara bara sektioner som är inom aktuell markering. Om ingenting är markerat sparas hela filen.

  `exportplats`

    Bestämmer var blocken ska sparas.

    värde | beskrivning
    --- | ---
    0 | Spara i samma katalog som K3b-projektfilen.
    1 | Spara i en underkatalog till katalogen för K3b-projektfilen, genom att använda K3b-projektfilens namn som bas och lägga till ”`dir`”.

  `överskrivningsprincip`

    Bestämmer var numreringen ska starta.

    värde | beskrivning
    --- | ---
    0 | Börja alltid med index 1, med risk att befintliga filer skrivs över.
    1 | Fortsätt efter det största index som redan finns. Det undviker att befintliga filer skrivs över.

fileinfo (File Info)
fileinfo (File Info)

## fileinfo (File Info)

Internt namn:

  `fileinfo`

Insticksmodultyp:

  Grafiskt användargränssnitt

Beskrivning:

  Tillhandahåller ett dialogfönster för att visa och ändra parametrar och metadata för filen som för närvarande är öppen. Se avsnittet Filegenskaper i handboken.

goto (Goto Position)
goto (Goto Position)

## goto (Goto Position)

Internt namn:

  `goto`

Insticksmodultyp:

  funktion

Beskrivning:

  Visar en dialogruta med möjlighet att ställa in aktuell position för markeringen till ett nytt värde, antingen med en tid i millisekunder, en position i samplingar eller ett procentvärde av den aktuella filens längd.

Kommandon:

  goto

Parametrar:
  `läge`

    värde | beskrivning
    --- | ---
    0 | position anges i millisekunder
    1 | positionen anges i samplingar
    2 | position anges i procent av filens längd

  `position`

    Position att gå till i millisekunder, samlingar eller procent av filens längd, beroende på parametern `läge`.

insert_at (Insert At)
insert_at (Insert At)

## insert_at (Insert At)

Internt namn:

  `insert_at`

Insticksmodultyp:

  funktion

Beskrivning:

  Liknar insticksmodulen goto (Goto Position), men visar en dialogruta med möjlighet att infoga klippbordets nuvarande innehåll vid en angiven position, antingen med en tid i millisekunder, en position i samplingar eller ett procentvärde av den aktuella filens längd.

Kommandon:

  insert_at

Parametrar:
  `läge`

    värde | beskrivning
    --- | ---
    0 | position anges i millisekunder
    1 | positionen anges i samplingar
    2 | position anges i procent av filens längd

  `position`

    Position där klippbordets data ska infogas, i millisekunder, samlingar eller procent av filens längd, beroende på parametern `läge`.

lowpass (Low Pass Filter)
lowpass (Low Pass Filter)

## lowpass (Low Pass Filter)

Internt namn:

  `lowpass`

Insticksmodultyp:

  effekt

Beskrivning:

  Applicerar ett enkelt lågpassfilter på den aktuella markeringen. Ett lågpassfilter låter frekvenser under en gränsfrekvens passera och filtrerar bort frekvenser som är ovanför gränsfrekvensen.

  Filter är av andra graden och är implementerat enligt beskrivningen i boken "The manifold joys of conformal mapping, applications to digital filtering in the studio av James A. Moorer (JAES, Vol. 31, No. 11, 1983 November).

Parametrar:
  `frekvens`

    Lågpassfiltrets gränsfrekvens i Hz.

newsignal (New Signal)
newsignal (New Signal)

## newsignal (New Signal)

Internt namn:

  `newsignal`

Insticksmodultyp:

  funktion

Beskrivning:

  Tillhandahåller en dialogruta för att skapa en ny fil. Se avsnittet Skapa en ny fil i handboken för mer information.

Kommandon:

  newsignal,

noise (Noise Generator)
noise (Noise Generator)

## noise (Noise Generator)

Internt namn:

  `noise`

Insticksmodultyp:

  effekt

Beskrivning:

  Lägger till en viss mängd vitt brus i den aktuella markeringen. Mängden brus kan väljas mellan noll (inget brus, originalet förblir oförändrat) och ett (originalet ersätts av 100 % brus).

Parametrar:
  `nivå`

    Brusnivå, som alltid måste vara ett flyttal större än noll och mindre än eller lika med ett.

  `läge`

    värde | beskrivning
    --- | ---
    0 | Ange brusnivån som ett procentvärde av amplituden, från 0 till 100.
    1 | Ange brud i decibel, från -21 dB to 0 dB.

normalize (Normalizer)
normalize (Normalizer)

## normalize (Normalizer)

Internt namn:

  `normalize`

Insticksmodultyp:

  effekt

Beskrivning:

  Normaliserar den aktuella markeringens volymnivå. Använd om signalens volym är för låg eller för hög.

  Algoritmen kommer från projektet normalize, och är ursprungligen skriven av Chris Vaill .

notch_filter (Notch Filter)
notch_filter (Notch Filter)

## notch_filter (Notch Filter)

Internt namn:

  `notch_filter`

Insticksmodultyp:

  effekt

Beskrivning:

  Applicerar ett bandspärrfilter på den aktuella markeringen. Ett bandspärrfilter tar bort ett litet intervall av frekvenser omkring en centerfrekvens och låter alla andra frekvenser under eller ovanför centerfrekvensen med mer än halva filtrets bandbredd passera.

  Använd filtret för att filtrera bort enstaka distorsionsfrekvenser.

  Filter är av andra graden och är baserat på implementeringen av Juhana Sadeharju .

Parametrar:
  `frekvens`

    Filtrets centerfrekvens i Hz, måste vara lägre än filens halva samplingsfrekvens.

  `bandbredd`

    Filtrets bandbredd i Hz.

pitch_shift (Pitch Shift)
pitch_shift (Pitch Shift)

## pitch_shift (Pitch Shift)

Internt namn:

  `pitch_shift`

Insticksmodultyp:

  effekt

Beskrivning:

  Effekten tonhöjdsändring ändrar signalen genom att ändra innehållets hastighet, men behåller ursprunglig längd. Det går att välja relativ hastighet antingen med en faktor från 1/10 till 5 gånger, eller som ett procentvärde från 1% till 400% av originalnivån.

  En hastighetsfaktor under 1,0 sänker signalens tonhöjd (mörkare röst, gör att röster låter äldre), faktorn 1,0 ändrar ingenting, och en faktor över 1,0 höjer signalens tonhöjd (ljusare röst, Musse Pigg-effekt).

  Implementeringen är baserad på arbete av Jeff Tranter och Stefan Westerfeld

Parametrar:
  `hastighet`

    Faktor för att ändra hastigheten, som måste vara ett flyttal mellan 0,001 och 4,0.

  `frekvens`

    Frekvens som används internt av filtret i Hz, som måste vara mellan 2,0 och 10,0.

  `läge`

    värde | beskrivning
    --- | ---
    0 | Ange värdet av hastigheten som en faktor från 1/10 till 5 gånger.
    1 | Ange värdet av hastigheten som procent från 1 till 400.

playback (Playback)
playback (Playback)

## playback (Playback)

Internt namn:

  `playback`

Insticksmodultyp:

  funktion

Beskrivning:

  Tillhandahåller en dialogruta för att ställa in uppspelningsparametrar. Se avsnittet Uppspelning i handboken för mer information.

Parametrar:
  `uppspelningsmetod`

    Metod använd för uppspelning, se `PlayBackParam.h`.

  `uppspelningsenhet`

    En sträng som bestämmer uppspelningsenhet eller kanal. Betydelsen beror på uppspelningsmetod.

  `kanaler`

    Antal kanaler att använda vid uppspelning, som för närvarande bara stöder 1 (mono) eller 2 (stereo).

  `bitar per sampling`

    Antal bitar per sampling för uppspelning, som måste vara 8, 16, 24 eller 32. Beror på uppspelningsmetod och uppspelningsenhet.

  `buffertstorlek`

    Bestämmer storleken på uppspelningsbufferten, och används som exponent för att beräkna den verkliga buffertstorleken som 2^n. Att exempelvis ställa in den till 16 ger en buffertstorlek på 2^16 = 64 kiB.

record (Record)
record (Record)

## record (Record)

Internt namn:

  `record`

Insticksmodultyp:

  funktion

Beskrivning:

  Tillhandahåller en dialogruta för att ställa in inspelningsparametrar och göra en inspelning. Se avsnittet Inspelning i handboken för mer information.

Parametrar:
  `inspelningsmetod`

    Metod använd för inspelning, se `RecordParams.h`.

  `förinspelning aktiverad`

    Aktivera eller inaktivera förinspelning (1 om aktiverad, 0 om inaktiverad).

  `förinspelningstid`

    Antal sekunder för förinspelning.

  `begränsa inspelningstid`

    Aktivera eller inaktivera begränsning av inspelningstid (1 om begränsad, 0 om ej begränsad).

  `inspelningstid`

    Inspelningens längd i sekunder.

  `använd starttid`

    Aktivera eller inaktivera starttid (1 om använd, 0 om ej använd).

  `starttid`

    Datum och tid då inspelningen ska startas på ISO-format.

  `använd utlösningsnivå`

    Aktivera eller inaktivera utlösningsnivå (1 om använd, 0 om ej använd)

  `utlösningsnivå`

    Utlösningsnivå i procent.

  `inspelningsenhet`

    En sträng som bestämmer inspelningsenheten.

  `kanaler`

    Antal kanaler att använda för inspelning.

  `samplingsfrekvens`

    Samplingsfrekvens i samplingar per sekund.

  `komprimering`

    Komprimering att använda vid lagring av samplingar.

  `samplingsformat`

    Samplingsformat att använda för att lagra samplingarna, se avsnittet om samplingsformat.

  `bitar per sampling`

    Antal bitar per sampling för inspelning, ska vara 8, 16, 24 eller 32.

  `buffertantal`

    Bestämmer antal buffertar använda för inspelning.

  `buffertstorlek`

    Bestämmer storleken på inspelningsbufferten, och används som exponent för att beräkna den verkliga buffertstorleken som 2^n. Att exempelvis ställa in den till 16 ger en buffertstorlek på 2^16 = 64 kiB.

Alternativparametrar:
  `direktläge för inspelningsmodul`

    Kan användas som en enda parameter för att ställa in insticksmodulen. Följande värden är möjliga:

    värde | beskrivning
    --- | ---
    format | Visa inspelningsdialogrutan och välj fliken Format.
    source | Visa inspelningsdialogrutan och välj fliken Källa.
    start_now | Visa inspelningsdialogrutan och starta inspelningen direkt.

reverse (Reverse)
reverse (Reverse)

## reverse (Reverse)

Internt namn:

  `reverse`

Insticksmodultyp:

  effekt

Beskrivning:

  Den här enkla effekten vänder på innehållet i aktuell markering.

samplerate (Sample Rate Conversion)
samplerate (Sample Rate Conversion)

## samplerate (Sample Rate Conversion)

Internt namn:

  `samplerate`

Insticksmodultyp:

  effekt

Beskrivning:

  Ändrar samplingsfrekvens för aktuell markering eller hela signalen.

Parametrar:
  `ny frekvens`

    Den nya samplingsfrekvens i samplingar per sekund (flyttalsvärde).

  `läge` (valfritt)

    Om parametern används och ställs in till "`alla`", appliceras effekten på hela signalen. Annars appliceras den bara på aktuell markering.

saveblocks (Save Blocks)
saveblocks (Save Blocks)

## saveblocks (Save Blocks)

Internt namn:

  `saveblocks`

Insticksmodultyp:

  funktion

Beskrivning:

  Sparar alla sektioner mellan markörer, var och en i en separat fil. Varje fil ges ett namn som kan anpassas genom att använda ett mönster som kan innehålla originalets filnamn, ett index och antal sektioner.

  Det tillåts också att filens namnmönster innehåller snedstreck som sökvägsskiljetecken, vilket gör det möjligt att spara sektionerna i olika underkataloger. Observera att alla blanktecken omkring sådana skiljetecken tas bort utan att det nämns, för att undvika att skapa katalognamn som börjar eller slutar med ett blanktecken.

Parametrar:
  `namn`

    Namnet på originalfilen, som kommer att användas som basnamn för filnamnen.

  `mönster`

    Ett mönster som kommer att användas för att skapa filernas namn. Det kan innehålla följande jokertecken, som ersätts av motsvarande innehåll när det slutliga filnamnet skapas:

    jokertecken | beskrivning
    --- | ---
    [%nr] | Ersätts med aktuellt index för filen att spara.
    [%count] | Ersätts med antal sektioner som kommer att sparas.
    [%total] | Ersätts med index för den sista filen att spara.
    [%filename] | Ersätts med basfilnamnet, utan sökväg och utan filändelse.
    [%fileinfo{`nyckelord`}] | Ersätts med innehållet i filinformation identiferad av `nyckelord`. Se avsnitt Filinformation för en lista över alla tillgängliga nyckelord.
    [%title] | Ersätts med blockets rubrik, som tas från den beskrivande texten från etiketten i början på blocket. Om texten är tom, återgår den till filens rubrik (se filinformationsobjektet "Namn"). Om den inte heller finns, återgår den till basfilnamnet som beskrivs ovan.

    Alla numeriska jokertecken kan också innehålla ett numeriskt argument efter "`%`" och identifieraren, för att kräva att ett visst antal siffror används. Om talet inleds med `0` innehåller resultatet inledande nollor, annars innehåller det inledande mellanslag.

    Exempel: `[%04nr]` ger ett tal mellan 0001 och 9999.

  `numreringsläge`

    Bestämmer var numreringen ska starta.

    värde | beskrivning
    --- | ---
    0 | Fortsätt efter det största index som redan finns. Det undviker att befintliga filer skrivs över.
    1 | Börja alltid med index 1, med risk att befintliga filer skrivs över.

  `bara markering`

    värde | beskrivning
    --- | ---
    0 | Spara alla sektioner i hela filen.
    1 | Spara bara sektioner som är inom aktuell markering. Om ingenting är markerat sparas hela filen.

selectrange (Select Range)
selectrange (Select Range)

## selectrange (Select Range)

Internt namn:

  `selectrange`

Insticksmodultyp:

  funktion

Beskrivning:

  Visar en dialogruta för att välja ett samplingsintervall. Markeringens start och längd kan ställas in med en tid i millisekunder, i samplingar eller som ett procentvärde av filens totala längd.

Parametrar:
  `startläge`

    Bestämmer enheterna som markeringens start ska anges med.

    värde | beskrivning
    --- | ---
    0 | millisekunder
    1 | samplingar
    2 | procent av filens längd

  `intervalläge`

    Bestämmer enheterna som markeringens längd ska anges med. Se beskrivningen av parametern `startläge` för en lista över möjliga värden.

  `start`

    Markeringens start i millisekunder, samplingar eller procent av filens längd, beroende på parametern `intervalläge`.

  `längd`

    Markeringens längd i millisekunder, samplingar eller procent av filens längd, beroende på parametern `intervalläge`.

sonagram (Sonagram)
sonagram (Sonagram)

## sonagram (Sonagram)

Internt namn:

  `sonagram`

Insticksmodultyp:

  funktion

Beskrivning:

  Utvärderar aktuell markering genom att skapa ett sonogram. Ett sonogram är en utvärdering av en signal över tid (x-axeln), frekvens (y-axeln) och ljudstyrka (färg).

Parametrar:
  `FFT-punkter`

    Antal FFT-punkter, ett heltal mellan 4 och 32767 som bestämmer frekvensupplösningen.

  `fönsterfunktion`

    Fönsterfunktion som används för FFT-beräkningen. Värden som stöds är:

    värde | beskrivning
    --- | ---
    none | ingen fönsterfunktion
    hamming | Hamming-fönster
    hanning | Hanning-fönster
    blackman | Blackman-fönster
    triangular | Triangulärt fönster

  `använd färger`

    Om inställd till annat än noll, använd färger för ljudstyrka, om inställd till noll använd gråskala.

  `spåra ändringar`

    Om inställd till annat än noll, uppdateras sonogrammet när området som utvärderades ändras. Om inställd till noll uppdateras det aldrig.

  `följ markering`

    Ännu inte implementerad, använd noll för parametern.

stringenter (Enter Command)
stringenter (Enter Command)

## stringenter (Enter Command)

Internt namn:

  `stringenter`

Insticksmodultyp:

  funktion

Beskrivning:

  Ett litet dialogfönster som gör det möjligt att skriva in ett Kwave textkommando. Se kapitlet Kommandoreferens i handboken.

Parametrar:
  `förinställning` (valfri)

    En text som visas i redigeringsfältet när dialogrutan visas. Parametern är valfri. Om den utelämnas är dialogrutans redigeringsfält tomt när den visas.

volume (Volume)
volume (Volume)

## volume (Volume)

Internt namn:

  `volume`

Insticksmodultyp:

  effekt

Beskrivning:

  Med denna insticksmodul går det att ändra volym på aktuell markering med en konstant faktor. Motsvarande dialogruta gör det möjligt att skriva in faktorn som en numerisk faktor angiven som ett flyttal mellan 0,10 och 10,0, ett procentvärde mellan 1 och 1000, eller i decibel mellan -21 och +21.

  Använd en faktor större än 1,0 (procentvärde över 100, mer än 0 dB) om filen är för svag, eller en faktor mindre än 1,0 (procentvärde under 100, mindre än 0 dB) om filen är för stark.

Parametrar:
  `faktor`

    Ett flyttal med förstärkningsfaktorn.

  `läge`

    värde | beskrivning
    --- | ---
    0 | faktor
    1 | procentvärde
    1 | decibel

zero (Zero Generator)
zero (Zero Generator)

## zero (Zero Generator)

Internt namn:

  `zero`

Insticksmodultyp:

  effekt

Beskrivning:

  Insticksmodulen har två funktionslägen. Om den används utan parametrar tömmer den aktuell markering genom att skriva över den med tystnad. När den används med två parametrar infogar den en viss tid av tystnad i början av aktuell markering.

Parametrar:
  `längdläge`

    Bestämmer enheterna som den infogade tystnadens längd ska anges med.

    värde | beskrivning
    --- | ---
    0 | millisekunder
    1 | samplingar
    2 | procent av filens längd

  `längd`

    Längd på tystnaden att infoga, i millisekunder, samplingar eller procent av filens längd, beroende på parametern `längdläge`.

Kapitel 6. Frågor och svar
Frågor och svar

# Kapitel 6. Frågor och svar

6.1. Vad behöver man för att kompilera Kwave?
6.2. Vilka ljudkort stöder Kwave?
6.3. Varför använder Kwave mer minne en som kan förväntas av storleken på den öppnade filen?
6.4. Vilka ljudformat stöder Kwave?
6.5. Vad händer om man har filer med ett format som inte stöds av Kwave?
6.6. Man får fel vid försök att spela upp.
6.7. Uppspelningen verkar göra någonting med man hör ingenting?
6.8. Vissa filer spelas upp med halv hastighet.
6.9. Uppspelningen störs och avbryts ibland.
6.10. Uppspelningen stoppar inte omedelbart när man klickar på stoppknappen.
6.11. Stöds ALSA?
6.12. Vad gäller för uppspelning med 18, 20, 24 eller 32 bitar per sampling, eller mer än två kanaler?

6.1. | Vad behöver man för att kompilera Kwave?
| Läs i utvecklingsdokumentationen.
6.2. | Vilka ljudkort stöder Kwave?
| Kwave behöver inte stöd för något särskilt ljudkort. Ljudkortet måste bara stödjas av operativsystemet och Kwave använder sitt gränssnitt mot operativsystemets ljuddrivrutin via ett OSS- eller ALSA-gränssnitt.
6.3. | Varför använder Kwave mer minne en som kan förväntas av storleken på den öppnade filen?
| Orsaken till detta är att Kwave lagrar alla samplingar internt med 32-bitars heltal. Det är enkelt att programmera, gör programmet snabbare och något tillförlitligare. Så om en 8-bitars fil med ungefär en Megabyte använder den ungefär fyra Megabyte. Kanske kommer vi att ändra det någon gång i framtiden ...
6.4. | Vilka ljudformat stöder Kwave?
| Kwave stöder för närvarande .wav-filer med 8, 16 och 24 bitar per sampling, med hur många kanaler som helst (naturligtvis ingår mono och stereo). Dessutom kan alla filtyper som stöds av libaudiofile importeras och vissa andra format som Ogg Vorbis och MP3.
6.5. | Vad händer om man har filer med ett format som inte stöds av Kwave?
| Om du måste arbeta med ett annat format kan du konvertera det till .wav-format. En bra uppsättning verktyg för det finns i paketet SoX, och de har också en del bra dokumentation.
6.6. | Man får fel vid försök att spela upp.
| Kanske har en kombination av uppspelningshastighet och samplingsstorlek valts som inte stöds av ljuddrivrutinen och/eller ljudhårdvaran. Försök först använda uppspelning med 8 bitar per sampling och mono, det ska alltid fungera. Försök därefter öka antal bitar per sampling och stereo steg för steg. Observera att vissa uppspelningshastigheter inte alls stöds av viss ljudhårdvara.
6.7. | Uppspelningen verkar göra någonting med man hör ingenting?
| Kanske har du glömt att öka uppspelningskanalens volym. Kwave är inte ansvarig för att ändra uppspelningsvolymen.
6.8. | Vissa filer spelas upp med halv hastighet.
| Försök välja en annan uppspelningsenhet för ljud.
6.9. | Uppspelningen störs och avbryts ibland.
| Du bör öka storleken på uppspelningsbufferten för att få en "jämnare" uppspelning (det gör också att uppspelningskontrollerna reagerar något långsammare).
6.10. | Uppspelningen stoppar inte omedelbart när man klickar på stoppknappen.
| Orsaken till det är att ljuddrivrutinen redan har tagit emot en del data att spela upp från Kwave vid det ögonblick då du klickar på stoppknappen. Minska storleken på uppspelningsbufferten så ska den reagera snabbare (men gör det troligare att avbrott inträffar).
6.11. | Stöds ALSA?
| Ja, sedan v0.7.4 för uppspelning och inspelning
6.12. | Vad gäller för uppspelning med 18, 20, 24 eller 32 bitar per sampling, eller mer än två kanaler?
| Det är möjligt visa ALSA-biblioteket, sedan v0.7.4.

Kapitel 7. Tack till och licens
Tack till och licens

# Kapitel 7. Tack till och licens

Kwave

Program copyright från 1998-2000 Martin Wilz `(martin AT wilz.de)`

Program copyright sedan 2000 Thomas Eschenbacher `(thomas.eschenbacher AT gmx.de)`

För en fullständig lista över upphovsmän och licenser för alla filer se filen `LICENSES`, som ingår i källkoden. Det finns också en fil vid namn `AUTHORS` som listar alla Kwaves upphovsmän och bidragsgivare.

Dokumentation copyright © 2020 Thomas Eschenbacher `(thomas.eschenbacher AT gmx.de)`

Översättning Stefan Asserhäll `(stefan.asserhall AT bredband.net)`

Den här dokumentationen licensieras under villkoren i GNU Free Documentation License.

Det här programmet licensieras under villkoren i GNU General Public License.

## Huvudsakliga upphovsmän

- Martin Wilz `(martin AT wilz.de)`

  skapade projektet, aktiv utveckling 1998-2000

- Thomas Eschenbacher `(thomas.eschenbacher AT gmx.de)`

  underhåll sedan 2000, kärnutvecklare

Huvudsakliga bidragsgivare
Huvudsakliga bidragsgivare

## Huvudsakliga bidragsgivare

- Aurelien Jarno `(aurel32 AT debian.org)`

  Debian-paket, programfixar

- Carlos R `(pureacetone AT gmail.com)`

  Översättning till spanska

- David Flogeras `(dflogera AT nbnet.nb.ca)`

  Insticksmodul med bandspärrfilter

- Gilles Caulier `(caulier.gilles AT free.fr)`

  i18n, översättning till franska, startskärm, beta-tester

- Pavel Fric `(pavelfric AT seznam.cz)`

  Översättning till tjeckiska

- Ralf Waspe `(rwaspe AT web.de)`

  Hjälp/Om-insticksmodul

- Sven-Steffen Arndt `(ssa29 AT gmx.de)`

  hemsida, översättning till tyska

Mindre bidragsgivare, innehavare av copyright och andra
Mindre bidragsgivare, innehavare av copyright och andra

## Mindre bidragsgivare, innehavare av copyright och andra

- Aaron Holtzman `(aholtzma AT ess.engr.uvic.ca)`

  libkwave/cpu_accel.cpp

- Bertrand Songis `(bsongis AT gmail.com)` [historisk]

  rättningar av översättning till franska, ersättning för patenterad libaudiofile-kod, Debian-fel 419124

- Carsten Lohrke `(carlo AT gentoo.org)`

  svn r2163, programfix för detektering av libaudiofile

- Chris Vaill `(chrisvaill AT gmail)`

  kodbas för normaliseringsinsticksmodulen

- David Faure `(faure AT kde.org)`

  cmake/FindAlsa.cmake

- Diederick de Vries `(diederick76 AT gmail.com)`

  paketering för Crux Linux

- Espen Sand `(espen AT kde.org)` + Mirko Boehm `(mirko AT kde.org)`

  K3AboutContainer, bas för KwaveAboutContainer

- Everaldo Coelho `(contact AT everaldo.com)`

  Kristall-ikontemat http://www.everaldo.com/crystal/

- Jaroslav Kysela

  delar av plugins/playback/PlayBack-ALSA.cpp

- Jeff Tranter

  delar av plugins/pitch_shift/PitchShiftFilter.{h,cpp}

- Juhana Sadeharju `(kouhia AT nic.funet.fi)`

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

- Kurt Roeck `(Q AT ping.be)`

  svn r1370, rättning av Debian-fel nr. 288781, kompilering för amd64

- Mark Donohoe (KDE) `(donohoe AT kde.org)`

  vissa ikoner och bitavbildningar för verktygsrader och grafiskt användargränssnitt

- Martin Hinsch `(vidas AT sourceforge.net)`

  Matrisklass

- Matthias Kretz `(kretz AT kde.org)`

  cmake/FindAlsa.cmake

- Miguel Freitas

  delar av libkwave/memcpy.c

- Richard Laerkaeng, `(richard AT goteborg.utfors.se)`

  cmake/FindOggVorbis.cmake

- Rik Hemsley `(rik AT kde.org)`

  nivåmätare

- Stefan Westerfeld `(stefan AT space.twc.de)`

  delar av plugins/pitch_shift/PitchShiftFilter.{h,cpp}

- Joerg-Christian Boehme `(joerg AT chaosdorf.de)`

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

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

  delar av plugins/export_k3b/K3BExportPlugin.cpp

Tack till
Tack till

## Tack till

- Martin Kuball `(makube AT user.sourceforge.net)`

  betatester

- Jorge Luis Arzola `(arzolacub AT gmx.de)`

  paketering för SuSE Linux

- Michael Favreau `(michel.favreau AT free.fr)`

  paketering för Arch Linux

- T.H.F. Klok och Cedric Tefft

  underhåll av biblioteket id3lib

- Robert Leslie `(rob AT mars.org)`

  upphovsman till MP3-avkodningsbiblioteket mad

- Robert M. Stockmann `(stock AT stokkie.net)`

  paketering för Mandrake, x86-64

- Erik de Castro Lopo `(erikd AT zip.com.au)`

  upphovsman till biblioteket sndfile

- Michael Pruett `(mpruett AT sgi.com)`

  upphovsman till biblioteket audiofile

Appendix A. Filinformation
Filinformation

# Appendix A. Filinformation

Tabell A.1. Lista över identifierare i filinformation

Nyckelord |  | Beskrivning
--- | --- | ---
Album |  | Namnet på albumet om källan är ett album som består av flera medier.
Annotation |  | Ger allmänna kommentarer om filen eller filens innehåll. Om kommentaren är flera meningar lång, avsluta varje mening med en punkt. Inkludera inte nyradstecken.
Archival location |  | Anger var filens innehåll är arkiverat.
Author |  | Identifierar namnet på upphovsmannen till filens ursprungliga innehåll. Exempel: ”van Beethoven, Ludwig”
Lower Bitrate |  | Anger undre gränsen i en bitström med variabel bithastighet.
Bitrate Mode |  | Bithastighetstyp (genomsnittlig - ABR, variabel - VBR, konstant - CBR, etc.)
Bitrate |  | Ljudströmmens nominella bithastighet i bitar per sekund
Upper Bitrate |  | Anger övre gränsen i en bitström med variabel bithastighet.
Bits per Sample |  | Anger antal bitar per sampling.
CD |  | Cd-nummer, om källan är ett album med fler än en cd-rom
CDS |  | Antal cd, om källan är ett album med fler än en cd-rom
Commissioned |  | Listar namnet på personen eller organisationen som beställde filens innehåll.
Comments |  | Ger allmänna kommentarer om filen eller filens innehåll. Om kommentaren är flera meningar lång, avsluta varje mening med en punkt. Inkludera inte nyradstecken.
Compression |  | Anger en metod för komprimering av ljuddata för att reducera diskutrymme.
Contact |  | Kontaktinformation för skaparna eller distributörerna av spåret. Det kan vara en webbadress, en e-postadress, eller den fysiska adressen till skivbolaget.
Copyright |  | Lagrar filens copyright-information. Om det finns flera sådana, skilj dem åt med ett semikolon följt av ett mellanslag. Exempel: ”Copyright Linux-gemenskapen 2002”
Copyrighted |  | Anger om filen är skyddad av upphovsrätt eller inte.
Date |  | Anger datum filens innehåll skapades. Exempel: ”2001-12-24”
Engineer |  | Visar namnet på ingenjören som arbetade med filen. Om det finns flera ingenjörer, skilj namnen åt med ett semikolon och ett mellanslag.
Estimated Length |  | Filens uppskattade längd i samplingar
Filename |  | Namn på den öppnade filen
File Size |  | Filens storlek i byte
Genre |  | Beskriver originalverkets genre eller stil. Exempel: ”klassiskt”, ”pop”
ISRC |  | Spårets ISRC-nummer. Se introduktionssidan för ISRC för mer information om ISRC-nummer. http://isrc.ifpi.org/
Keywords |  | Tillhandahåller en lista med nyckelord som hör ihop med filen eller dess innehåll.
Labels |  | Listan med markörer
Length |  | Filens längd i samplingar.
License |  | Licensinformation, exempelvis ”Alla rättigheter reserverade”, ”Fri användning tillåten”, en webbadress till en licens eller Attribution-ShareAlike 4.0 International (”distribuerad enligt villkoren i Attribution-ShareAlike 4.0 International License. Se https://creativecommons.org/licenses/by-sa/4.0/ för detaljerad information”), etc.
Medium |  | Beskriver filens ursprungliga innehåll, där det först spelades in. Exempel: ”orkester”
Mime Type |  | Filformatets Mime-typ
Emphasis |  | Ljudets förbetoningsmetod
Layer |  | MPEG-lager, I, II eller III
Metodutökning |  | MPEG-metodutökning (bara för gemensam stereo)
Version |  | MPEG-version, 1, 2 eller 2.5
Name |  | Lagrar titeln för filens innehåll. Exempel: ”Symfoni Nr. 6, Op. 68 "Pastoral"”
Opus Frame Length |  | Opus-ramlängd i ms (värden som stöds är 2,5, 5, 10, 20, 40 eller 60 ms)
Organization |  | Namn på organisationen som skapat spåret (dvs. ”skivbolaget”)
Original |  | Anger om filen är ett original eller en kopia
Performer |  | Artist(er) som framför verket. För klassisk musik är det dirigenten, orkestern, och solo-artister. För en ljudbok är det personen som läste in boken.
Private |  | Anger om materialet är privat
Product |  | Anger namnet eller titeln som filen ursprungligen är avsedd för. Exempel: "Linux ljudsamling"
Sample Format |  | Format använt för att lagra de digitaliserade ljudsamplingarna. Exempel: ”32-bitars IEEE-flyttal”
Sample Rate |  | Antal samplingar per sekund
Software |  | Identifierar namnet på programvarupaketet som användes för att skapa filen. Exempel: ”Kwave v0.6.4-1”
Source |  | Identifierar namn på personen eller organisationen som tillhandahöll filens ursprungliga material. Exempel: ”Chaotic Sound Research”
Source form |  | Identifierar materialets ursprungliga form som digitaliserades. Exempel: ”skiva/vinyl/90 varv per minut”, ”DAT-ljud”, ”band/CrO2/60 min”
Subject |  | Beskriver filens innehåll. Exempel: ”Fågelsång en tidig morgon”
Technician |  | Identifierar teknikern som digitaliserade filen. Exempel: ”Torvalds, Linus”
Track |  | Spår på cd:n om källan är cd-rom.
Tracks |  | Antal spår på cd:n om källan är cd-rom.
Channels |  | Anger signalens antal kanaler.
Base Quality |  | Baskvalitet för komprimering med variabel bithastighet
Version |  | Kan användas för att skilja på multipla versioner av samma spår i en enda samling (t.ex. information om ommixning).