Manual do Kwave

# Manual do Kwave

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

Tradução: André Marcelo Alvarenga
revisão 24.12.0 (09/11/2024)

Copyright © 1998-2000 Martin Wilz

Copyright © 2020 Thomas Eschenbacher

Copyright © 2024 Mark Penner

Nota Legal

Kwave é um editor de som simples que usa o KDE Frameworks.

Lista de Tabelas

4.1. Tabela de tradução da codificação de URL
A.1. Lista de identificadores de informação dos arquivos

Lista de Exemplos

3.1. conteúdo de um arquivo ASCII com uma única onda senoidal

Capítulo 1. Introdução
Introdução

# Capítulo 1. Introdução

Este é o "Kwave", um editor de som simples que usa o KDE Frameworks. Suas funcionalidades incluem:

- uma interface de usuário que pode ser alternada entre os modos SDI, MDI ou Aba

- Funções de recorte, cópia e colagem simples

- Desfazer/refazer em vários níveis

- rotulagem de sinais

- Funcionalidade de gravação, incluindo a pré-gravação

- Reprodução via ALSA, PulseAudio, Qt e OSS

- Gravação via ALSA, PulseAudio, Qt e OSS

- Importar/exportar MP3

- Importar/exportar Ogg Vorbis e Ogg Opus

- Importar/exportar FLAC

- algumas funções de análise tais como sonograma

- internamente usa precisão fixa de 24 bits para dados de amostra

- taxas de amostragem selecionáveis livremente

- suporte para edição de arquivos multicanais

- reprodução de arquivos multicanais (o resultado do áudio será mixada para mono ou estéreo, se necessário)

- extensível através de uma interface de plugin fácil de usar

- importe/exporte de outros formatos de áudio através da biblioteca arquivo de áudio

Se estiver interessado no que já está pronto ou ainda não foi implementado, então leia os arquivos `CHANGES` e `TODO` que vêm incluídos no pacote de código-fonte. Ajuda e críticas construtivas são sempre bem-vindas.

## Recursos do Kwave

Se quiser entrar em contato com os programadores, precisa de alguma ajuda no uso do Kwave, envio de patches, relatórios de erros ou outra coisa, os seguintes recursos poderão ser interessantes para você:

- Site do projeto

  Para obter informações sobre novas versões atualizadas, consulte a página do Kwave em apps.kde.org. Para outras informações, consulte a página inicial do Kwave.

- Repositório git

  O repositório git está hospedado na instância Gitlab do KDE aqui, e também há um repositório espelho no SourceForge.

Histórico de revisões do Kwave
Histórico de revisões do Kwave

## Histórico de revisões do Kwave

Este projeto foi iniciado por Martin Wilz no verão de 1998 e tem sido desenvolvido e melhorado por ele e por outras pessoas. Em novembro de 1999, Thomas Eschenbacher começou a corrigir alguns pequenos erros aqui e ali e foi cada vez mais fundo no código-fonte do programa. Até hoje ele amplia, reescreve ou revisa quase todos os componentes do programa, gastando muito tempo para melhorá-lo.

Desde o Kwave v0.8.0, o registro de alterações não está mais incluído neste manual. Então, se estiver interessado em uma lista completa de alterações, poderá encontrar o histórico completo aqui: https://invent.kde.org/multimedia/kwave/-/blob/master/CHANGES ou navegar pelo código-fonte, usando a interface web do git.

A versão v0.9.0 do Kwave é a primeira hospedada no KDE (kdereview) e nos servidores SourceForge. Seguida pela v0.9.1, a primeira versão para o KDE Frameworks 5.

Capítulo 2. Noções básicas sobre áudio digital
Noções básicas sobre áudio digital

# Capítulo 2. Noções básicas sobre áudio digital

Este capítulo dará uma breve introdução sobre os fundamentos do processamento de áudio digital, sem entrar em detalhes.

## O mundo analógico

Em primeiro lugar, é preciso saber que o mundo é analógico - mas os computadores funcionam digitalmente.Portanto, existem várias maneiras de converter áudio analógico em áudio digital e vice-versa. Como o caminho do digital para o análogo normalmente é a reversão do caminho do analógico para o digital, descrevemos apenas o caminho do analógico para o digital.

Conversão de som para bits

Antes de prosseguir, o áudio analógico precisa ser transformado em sinais eletrônicos para ser tratado por um computador. Uma forma comum de fazer isso é usando um microfone e um amplificador. Esta combinação captura o som(alterações da pressão do ar) na entrada e produz uma voltagem em sua saída.Uma amplitude mais alta das mudanças de pressão será representada por tensões mais altas na saída do amplificador e, esta saída, é também chamada de 'sinal'. Em vez de um microfone, você também pode imaginar outras fontes de áudio. E o "amplificador" poderá ser aquele integrado a sua placa de som, onde você normalmente não o vê.

Conversão para sinal eletrônico

Neste estágio, o sinal elétrico possui três limitações que se devem ter em mente:

1. A amplitude (volume) é limitada a algum nível máximo. Isto é uma consequência de eletrônicos (amplificadores) que só são capazes de lidar com tensões dentro de uma faixa específica. Isso não é problema, desde que os sons não sejam muito altos. Nesse caso, o sinal seria recortado, o que significa que o sinal elétrico será executado contra suas margens e o resultado será perturbado.

2. O intervalo de frequência também é limitado. Devido às limitações mecânicas dos microfones e à faixa de frequência limitada dos amplificadores a faixa de frequência de um sinal é limitada. Não há bordas rígidas além das quais o som desaparece abruptamente, mas abaixo de alguma frequência baixa e acima de alguma frequência mais alta a amplitude do sinal começa a diminuir mais e mais. A existência de uma frequência máxima pode ser facilmente entendida como uma velocidade limitada do sinal elétrico para subir e descer. Ao usar amplificadores e microfones de alta qualidade, os limites podem ser distribuídos em intervalos em que o ouvido humano não é mais capaz de ouvir seus resultados e, assim, ficar fora de interesse. O ouvido humano normalmente não consegue ouvir som acima de 20 kHz.

3. O sinal contém ruído. O ruído é o pior inimigo de todos que precisam lidar com sinais de áudio de qualquer maneira. O ruído é um efeito analógico típico, que torna o sinal de áudio "não agudo" e perturbado, está sempre presente e não pode ser evitado. Pode-se apenas tentar usar componentes de alta qualidade que produzam o menor ruído possível, de modo que ele fique inaudível. Normalmente, o ruído tem um certo volume, e o som de interesse deve ser muito mais alto em comparação ao ruído. Isso é chamado de relação sinal/ruído (SNR), que quanto maior, melhor a qualidade do som. Sons que têm volume menor que o ruído não podem ser o objetivo.

Digitalização
Digitalização

## Digitalização

Quando quisermos armazenar e reproduzir áudio em um computador, devemos primeiro converter o sinal analógico em dados digitais. Esse processo é chamado de digitalização. Ele converte um sinal eletrônico para uma sequência de valores digitais.

Digitalização do sinal eletrônico

A conversão pode ser entendida como uma medida repetitiva do valor do sinal eletrônico em determinado momento, tomando assim uma amostra do sinal. O resultado é então codificado como um valor digital.

A amostragem poderia ser feita em distâncias arbitrárias ou em intervalos constantes. O último método é muito mais fácil de manipular e, portanto, é normalmente usado, com uma taxa constante - a chamada taxa de amostragem. As taxas usuais de amostragem são 8000, 11025, 22050 e 44100 amostras por segundo. Na prática, as taxas de amostragem também são dadas como frequências, em Hz ou kHz.

A taxa de amostragem limita a frequência mais alta que um sinal digitalizado pode representar. Devido ao teorema de Shannon, a maior frequência utilizável é metade da taxa de amostragem, portanto, com uma taxa de amostragem de 44,1 kHz, não é possível amostrar sinais com mais de 22 kHz. Para evitar uma violação dessa regra de taxa de meia amostra, sua placa de som já possui filtros incorporados que filtram frequências que são mais altas que a metade da taxa de amostragem usada.

Sinal amostrado

Amostra de codificação
Amostra de codificação

## Amostra de codificação

O resultado do processo de amostragem digital é uma sequência de amostras. Uma amostra é uma representação digital do valor de um sinal em um determinado momento.

O valor de uma amostra pode ser interpretado e codificado de várias maneiras. A mais simples é a codificação linear. Isto significa que o valor de cada amostra representa diretamente o valor do sinal analógico multiplicado por um fator constante. Isto é fácil de manusear, mas tem a desvantagem de que o ruído será audível, especialmente em baixas amplitudes, onde ele perturba mais e é menos audível em altas amplitudes, onde ele já é menos audível.

Uma maneira de reduzir a influência do ruído é a codificação não linear. Isso significa que amplitudes menores são amplificadas antes do processamento. À medida que as amplitudes mais baixas são amplificadas, sua distância do ruído aumenta e a qualidade melhora. Os métodos mais comuns para isso são codificações Lei-A e Lei-U - curvas de amplificação logarítmicas padronizadas, usadas em telefonia digital (padrão G.711 do ITU).

Codificação Não Linear

Formatos de amostra
Formatos de amostra

## Formatos de amostra

As amostras podem ser armazenadas em diferentes formatos e precisões. Os mais comuns são formatos inteiros (ponto fixo), que armazenam valores com quantizações fixas. Dependendo de onde a linha zero é definida, ela deve ser definida entre sem sinal (somente valores positivos, a "linha zero" é metade do intervalo numérico) e com sinal (valores positivos e negativos) em formatos inteiros.

Formato com sinal

Formato sem sinal

Como a quantização perde alguma precisão, ela produz o ruído chamado ruído de quantização. Esse tipo de ruído tem mais efeito em baixas amplitudes, portanto, esse método de armazenamento de amostras não é ideal, mas é muito fácil e rápido de lidar (computadores são rápidos no cálculo com números de ponto fixo).

A segunda maneira de codificar amostras é com números de ponto flutuante. Com números de ponto flutuante, o ruído é distribuído quase igual em todas as faixas de amplitudes e tem vantagens especialmente em baixas amplitudes. No entanto, esse formato é muito mais lento quando usado para processamento (computadores são muito mais lentos no cálculo com valores de ponto flutuante em comparação com números de ponto fixo).

### Nota

o Kwave usa internamente o formato inteiro com sinal com precisão de 24 bits, armazenado em inteiros de 32 bits. Isto tem a desvantagem de maior consumo de memória ao processar arquivos com menor precisão (por exemplo 8 bits), mas processar números de 32 bits é muito rápido e também deixa algumas reservas para cálculos internos, pois apenas 24 bits são normalmente usados.

Capítulo 3. Usando Kwave
Usando Kwave

# Capítulo 3. Usando Kwave

Aqui está uma pequena captura de tela da janela principal do Kwave, para que você tenha uma ideia de sua interface...

## Modo de Interface do Usuário

Dependendo das suas preferências pessoais ou casos de uso, você pode configurar como o Kwave lida com vários arquivos abertos. Você pode mudar esta configuração rapidamente através do menu Configurações → Exibir arquivos em....

As três configurações possíveis são:

- Janelas separadas (SDI): ao usar a Interface de Documento Único (SDI), cada arquivo será exibido em uma janela principal separada.

- Mesma janela (MDI): ao usar a Interface de Documentos Múltiplos (MDI), existe apenas uma janela principal no Kwave, mas dentro desta janela você tem uma área que exibe sub-janelas, que podem ser redimensionadas, movidas, colocadas lado a lado, em cascata ou minimizadas.

  Você pode selecionar uma janela no menu Janela ou percorrer as sub-janelas com Ctrl+Tab.

- Abas: esta é uma variante da interface MDI, onde os arquivos são exibidos em guias separadas. Você pode conhecer este modo a partir de alguns navegadores de Internet populares.

  Você pode ativar uma abas no menu Janela ou percorrer as abas com Ctrl+Tab.

Linha de comando
Linha de comando

## Linha de comando

### Lista de Arquivo ou Comandos

Se iniciar o Kwave a partir da linha de comando, poderá especificar uma lista de arquivos a serem abertos. O primeiro arquivo especificado será aberto primeiro e os demais em sequência. Cada ficheiro será aberto em uma nova janela ou sub-janela da mesma instância do Kwave. Se você especificar curingas, poderá abrir um grande número de arquivos de uma só vez.

Por exemplo, o seguinte comando inicia o Kwave e abre todos os sons fornecidos pelo tema de som XDG do freedesktop, cada um em uma nova janela ou sub-janela:

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

Também é possível passar ao Kwave comandos de texto codificados como uma URI especial [1], isso será descrito em uma seção posterior.

### Tipo de GUI

O parâmetro `--gui=`SDI`|`MDI`|`ABA``permite ao Kwave iniciar em um dos três modos GUI possíveis: SDI, MDI ou ABA.

### Opções do Qt Toolkit

Além de uma lista de arquivos, você pode especificar uma lista de opções do Qt toolkit como `-qwindowgeometry` para especificar o tamanho e/ou a posição da primeira janela aberta do Kwavee/ou `-display` para iniciar o Kwave em uma exibição diferente.

Por exemplo, o seguinte comando inicia uma janela do Kwave com uma largura inicial de 600 pixeis e uma altura de 400 pixeis, com a borda direita posicionada a 30 pixeis da direita e a 0 pixels da parte superior da tela.

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

### Opções de inicialização

Com a opção `--disable-splashscreen` poderá desativar a tela de abertura que aparece quando inicia o Kwave. Isto pode ser útil quando você inicia o Kwave de um script.

A opção `--iconic` da linha de comando inicia o Kwaveminimizado (iconificado). Isto pode ser útil quando você quer iniciar o Kwave sem interação com a GUI, por exemplo ao executá-lo a partir de um script. Implicitamente, essa opção também desabilita a tela inicial!

Utilizando a opção `--logfile=`kwave.log`` da linha de comando você pode registrar a sequência de ações de uma sessão do Kwave em um arquivo. Isso é útil para depuração, você poderá ser solicitado por um arquivo de log ao relatar um erro.

[1] Identificador de Recurso Universal

Abrindo e salvando arquivos
Abrindo e salvando arquivos

## Abrindo e salvando arquivos

Abrir arquivos com o Kwave funciona como na maioria das outras aplicações,você pode

- especificar uma lista de arquivos na linha de comando ao iniciar o Kwave,

- abrir uma janela do Kwave vazia (por exemplo com Arquivo → Novo... (Ctrl+J)) e colocar um arquivo nela arrastando e soltando,ou você pode

- abrir um arquivo pelo menu com Arquivo → Abrir (Ctrl+O)

- ou sobre um dos últimos arquivos recentemente abertos Arquivo → Abrir recente

- salvar o arquivo atual com Arquivo → Salvar (Ctrl+S),

- salvar com um nome diferente Arquivo → Salvar → Como... (Shift+Ctrl+S)

- salvar todas as áreas que estão separadas por marcadores, cada uma como um arquivo diferente, com Arquivo → Salvar → Blocos...

- ou apenas a seleção atual com Arquivo → Salvar → Seleção...

### Formatos de arquivo suportados

O Kwave suporta os seguintes formatos:

- O formato de arquivo favorito do Kwave é (como você pode adivinhar pelo nome) `.wav`. Este formato é muito comum a outros"sistemas operacionais" e também é comumente usado no ambiente Plasma.

- O segundo formato que o Kwave suporta é o "ASCII". Você pode exportar e importar arquivos ASCII. Esteja ciente de que o armazenamento neste formato pode produzir arquivos muito grandes! O formato do arquivo será descrito abaixo.

- Arquivos `.mp3` e `.mp2` são importados por meio da biblioteca libmad para a descodificação do MP3 em conjunto com a id3lib para decodificar as etiquetas ID3 e o lame para a codificação.

- Importe e exporte Ogg/Vorbis (`*.ogg`). Veja mais detalhes em https://www.xiph.org.

- Importe e Exporte FLAC (`*.flac`). Veja mais detalhes emhttps://xiph.org/flac/.

- Adicionalmente, poderá importar arquivos em formatos como `*.8svx` (Amiga IFF/8SVX Sound File Format), `*.au` (NeXT, Sun Audio), `*.aiff` (Audio Interchange Format), `*.avr` (Audio Visual Research File Format), `*.caf` (Core Audio Format), `*.nist` (NIST SPHERE Audio File Format), `*.sf` (Berkeley, IRCAM, Carl Sound Format), `*.smp` (Sample Vision Format), `*.snd` (NeXT, Sun Audio), `*.voc` (Creative Voice) entre outros por meio do plugin audiofile.

### Convertendo para e de .wav

A melhor maneira de trabalhar com formatos diferentes dos suportados pelo Kwave é usar um programa conversor externo. Um bom conjunto de ferramentas para isso está no pacote SoX, sendo que este também possuem uma boa documentação!

Estão inclusos em planos futuros o suporte a importação e também exportação de filtros para mais formatos e talvez algum filtro que use um script definido pelo usuário com uma chamada para um filtro externo, para que até mesmo formatos não suportados pelo `SoX` possam ser lidos e/ou escritos.

### Formato de arquivos ASCII

O formato ASCII é bastante útil para fins científicos e educacionais. Devido ao seu formato simples, você pode escrever arquivos simples com um editor de texto ou pode usar a saída de algum outro aplicativo e convertê-lo em ASCII. Como o formato é realmente simples, você não deve ter grandes problemas ao escrever um conversor e a maioria das aplicações científicas usam algum tipo de formato ASCII para exportação.

O formato de arquivo ASCII é bastante simples e possui as seguintes regras:

1. No início do arquivo vem um bloco de propriedades, uma por linha.

2. Cada linha de propriedade inicia com `##`.

3. Depois das propriedades há uma lista de amostras, com uma amostra por linha. Ao usar vários canais, as amostras são separadas por vírgulas.

4. As linhas poderão terminar com um caractere CR e/ou um LF (para que os ficheiros do DOS também possam ser suportados). Contudo, na gravação, os ficheiros serão sempre gravados com o carácter LF como fim de linha.

5. Linhas vazias e caracteres após uma `#` são tratadas como comentários e são ignorados.

6. Os valores devem ser fornecidos em formato inteiro com sinal com um intervalo de 24 bits, que é o formato de armazenamento interno do Kwave.

7. Tudo após um `#` (exceto linhas de propriedade, veja acima) será tratado como comentário e será ignorado. Assim como linhas vazias.

Aqui está um exemplo de um arquivo ASCII simples que representa uma onda senoidal com onze amostras:

Exemplo 3.1. conteúdo de um arquivo ASCII com uma única onda senoidal

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

Criando um Novo Arquivo
Criando um Novo Arquivo

## Criando um Novo Arquivo

Você pode criar um novo arquivo vazio no menu abaixo Arquivo → Novo....

Você pode selecionar a taxa de amostragem, a resolução em bits por amostra e o número de faixas. Por padrão, o formato do arquivo será ".wav", mas ainda pode ser alterado no momento em que o arquivo é salvo.

A duração do novo sinal pode ser definida pelo tempo (horas, minutos,segundos) ou pelo número de amostras. Além disso, você pode selecioná-lo em relação a maior duração possível, que é limitada pela memória disponível e pelo limite interno do kwave (2 GB).

Gravando
Gravando

## Gravando

O Kwave é capaz de gravar dados de áudio de várias fontes, com todas as taxas de amostragem, formatos de amostra e outros modos suportados pelo hardware de som. Atualmente o Kwave pode gravar com os backends do ALSA, PulseAudio, Qt e OSS.

A gravação pode ser obtida no menu abaixo Arquivo → Gravar.

Aqui está uma captura de tela da janela de gravação do Kwave, mostrando a primeira página com os controles de gravação durante uma sessão de gravação em execução. Como na maioria dos diálogos do Kwave, você pode obter ajuda ou ver dicas de ferramentas nos controles.

Aqui você tem os seguintes controles:

- Pré-gravação: se o recurso de pré-gravação do Kwave estiver habilitado e a gravação for iniciada, o Kwave registrará em um buffer interno com alguns segundos de duração. Se você pressionar novamente o botão Gravar (), a gravação realmente começa e mantém os dados já gravados. Isso é útil, por exemplo, se você quiser gravar sua música favorita no rádio, mas reconhece tarde demais que a música começou. Neste caso, você ainda pode pressionar o botão de gravação e obter o início da música que o Kwave já pré-gravou, para que você não perca mais o início.

- Tempo de gravação: se a duração da gravação deve ser limitada a algum tempo, você pode ativar essa configuração e selecionar um tempo em horas, minutos e segundos para a sua gravação. Se essa opção não estiver habilitada, a gravação será executada até que você pressione o botão Parar ().

- Inicia em: se esta configuração está ativada, você pode definir uma data e um horário em que a gravação será iniciada. Tenha em mente que se o horário configurado estiver no passado, a gravação iniciará imediatamente.

- Acionamento da gravação: se ativado, a gravação será iniciada apenas se o volume da entrada passar de um certo limite, que pode ser definido de 0 a 100% do volume de entrada mais alto possível. Isso é útil se você não quiser gravar o silêncio inicial. (Dica: combine isso com o recurso de pré-gravação mencionado acima para capturar também alguns segundos antes de acioná-la, para que você não perca nenhum silencio gradual.)

- O botão Novo () está ativo quando a gravação não está em andamento ou foi finalizada, para descartar o arquivo atual e iniciar novamente.

- O botão Parar () está ativo quando a gravação ou pré-gravação está em andamento ou o Kwave está aguardando por um acionamento. Se pressionado, o progresso em andamento será parado.

- O botão Pausa () está ativo quando a gravação ou pre-gravação está em andamento. A primeira vez que pressioná-lo a gravação irá parar e o botão irá piscar. Quando você pressioná-lo novamente o botão irá parar de piscar e a gravação continuará imediatamente sem aguardar um acionamento.

- O botão Gravar () inicia a gravação e/ou pré-gravação, dependendo dos recursos habilitados acima:

  1. Se nem a pré-gravação nem nível de acionamento forem usados, a gravação começará assim que você pressionar o botão de gravação.

  2. Se a pré-gravação não for usada, nem o nível de acionamento estiver definido, a primeira vez que pressionar permitirá que o Kwave espere que o nível de acionamento seja alcançado. Enquanto espera acioná-la, você pode forçar o início imediato da gravação pressionando o botão de gravação novamente, caso contrário, a gravação começará quando o nível de acionamento for atingido.

  3. Se a pré-gravação estiver habilitada, a primeira vez que pressionar iniciará somente a pré-gravação e a segunda vez inicia a gravação.

Reprodução
Reprodução

## Reprodução

Dependendo das opções de compilação, o Kwave é capaz de reproduzir sons através de um dos seguintes métodos de reprodução:

- ALSA (Advanced Linux Sound Architecture): substituto do OSS - com maior suporte de recursos e hardware. Poderá entrar em conflito com outras aplicações de som como o OSS, mas tem um plugin chamado "dmix" como saída. Versões mais recentes do ALSA usam um plugin dmix por padrão, então essa deve ser a melhor escolha para você!

- PulseAudio: Servidor de som de uso geral comum no Linux. O PulseAudio pode não conseguir atingir latência tão baixa quanto a do ALSA.

- Qt Multimedia: Não foi projetado para áudio de baixa latência, mas funciona com tamanhos de buffer grandes.

- OSS (Open Sound System): a implementação mais antiga do Linux, capaz de reproduzir sons em mono e estéreo. Descontinuado desde o ’kernel’ 2.6 do Linux. Pode colidir com outros aplicativos de som, apenas um aplicativo de cada vez pode usar a reprodução do OSS!

Antes de tentar reproduzir sons, você deve dar uma olhada na janela de configuração de reprodução:

Se o seu arquivo de som usa mais ou menos os canais que a reprodução permite,todos os canais serão mixados durante a reprodução. Por exemplo, se você tiver um arquivo com três canais e usar a reprodução estéreo, o canal esquerdo reproduzirá o canal 0 (superior) e metade do canal 1 (médio), o canal direito reproduzirá a metade do canal 1 (médio) e o canal 2 (inferior).

Para obter uma reprodução suave sem interrupções, você também deve definir o tamanho do buffer para um valor apropriado. Se você encontrar problemas com interrupção de reprodução, você deve aumentar o tamanho do buffer aqui. Mas quanto maior você definir o buffer, maior é a latência entre o som audível ea exibição da posição de reprodução na exibição do sinal.

A janela de configurações de reprodução também fornece um botão para reproduzir um som de teste simples. Você deve ouvir um tom de 440Hz que passa por todos os alto-falantes, de um para o outro.

Depois de configurar a reprodução, você poderá utilizar os controles de reprodução da janela principal do Kwave ou através do menu Reproduzir ou com os atalhos de teclado:

- Reproduzir → Iniciar (R): inicia a reprodução da seleção atual desde o início ou o arquivo inteiro a partir da posição atual do cursor, se nada tiver sido selecionado. Reproduz apenas uma vez.

- Reproduzir → Repetição: como antes, mas repetidamente.

- Reproduzir → Pausar (Espaço):pause a reprodução na posição atual. Disponível apenas quando a reprodução está em execução.

- Reproduzir → Continuar (Espaço): continue a reprodução a partir da posição em que foi pausada. Apenas disponível se a reprodução estiver em pausa.

- Reproduzir → Parar (Esc): pare a reprodução e volte ao início da seleção.

Propriedades do arquivo
Propriedades do arquivo

## Propriedades do arquivo

O Kwave é capaz de lidar com várias metainformações armazenadas em um arquivo de áudio. Ele tenta importar e exportar o máximo possível dessas informações. Por exemplo, se você importar um arquivo MP3 com tags ID3, poderá manter essas informações ao exportar para um arquivo Wave. Se o Kwave perder metainformações ao salvar, um aviso será exibido.

Você pode exibir e modificar metainformações em Editar → Propriedades do arquivo.... Lá também poderá ser alterado coisas como formato de amostras, resolução e compressão.

Ampliação e navegação
Ampliação e navegação

## Ampliação e navegação

O Kwave oferece várias formas de ampliar e navegar, com atalhos de teclado associados, comandos de menus, botões da barra de ferramentas ou usando o mouse. As seguintes seções deverão dar uma ideia geral de como usar todas estas funções.

### Ampliando e reduzindo

- ampliar: para ver mais detalhes, amplia pelo fator 3.

  - entrada de menu / atalho de teclado: Exibir → Ampliar (Ctrl++)

- reduzir: para ver menos detalhes, encolhe pelo fator 3.

  - entrada de menu / atalho de teclado: Exibir → Reduzir (Ctrl+-)

- ampliar para a seleção: amplia para um fator em que a área selecionada será completamente visível na exibição atual.

  - entrada de menu / atalho de teclado: Exibir → Ampliar para a seleção (Ctrl+Espaço)

- ampliar para o sinal inteiro: seleciona um fator de zoom que torna visível todo o sinal na janela atual.

  - entrada de menu: Exibir → Ampliar para sinal inteiro

- ampliar para 100%: amplia até uma escala em que uma amostra é representada por um pixel na tela.

  - entrada de menu: Exibir → Ampliar para 100%

- selecionar ampliação predefinida: selecione um fator de ampliação da lista de ampliação na barra de ferramentas.

### Deslocando para a esquerda e para a direita

- ir para a posição: abre uma janela para inserir a posição para a qual você deseja deslocar a exibição atual.

  entrada de menu / atalho de teclado: Exibir → Ir para a posição... (Ctrl+P)

- até o início: desloca a exibição atual para que ela comece no início do sinal.

  entrada de menu / atalho de teclado: Exibir → Início (Ctrl+Home)

- até o fim: desloca a exibição atual para que ela finalize no final do sinal.

  entrada de menu / atalho de teclado: Exibir → Fim (Ctrl+End)

- página anterior: desloca para a posição anterior da exibição atual (à esquerda).

  entrada de menu / atalho de teclado: Exibir → Página anterior (Page Up)

- próxima página: desloca para a posição posterior a exibição atual (à direita).

  entrada de menu / atalho de teclado: Exibir → Próxima página (Page Down)

- deslocar para a direita: desloca até o final do sinal em 1/3 da exibição atual.

  entrada de menu / atalho de teclado: Exibir → Deslocar para a direita (Direita)

- deslocar para a esquerda: desloca para o início do sinal em 1/3 da exibição atual.

  entrada de menu / atalho de teclado: Exibir → Deslocar para a esquerda (Esquerda)

### Usando a visão geral

A tela principal do Kwave mostra uma pequena visão geral de todo o sinal acima da barra de deslocamento horizontal da janela principal. Esta visão geral também oferece funcionalidades de navegação:

- único clique com botão esquerdo do mouse: move diretamente a exibição atual para a posição clicada.

- clique duplo com botão esquerdo do mouse: mova diretamente a exibição atual para a posição clicada e, adicionalmente, amplie.

- clique duplo com botão esquerdo do mouse, com Shift pressionado: move diretamente a exibição atual para a posição clicada e, adicionalmente, reduz o zoom.

### Ampliação vertical

Você poderá ampliar a visualização atual ao pressionar a tecla Alt e deslocar a roda de rolagem do mouse.

Como selecionar
Como selecionar

## Como selecionar

O Kwave permite selecionar um intervalo contínuo de amostras, bem como qualquer combinação de canais (se você editar um arquivo multicanal). Ao selecionar um intervalo de amostras (escopo de tempo), todos os comandos a seguir serão limitados a esse intervalo e, ao desmarcar um canal, seu conteúdo não será alterado.

### Selecionando canais

Selecionar ou desselecionar um canal é bem simples. Basta clicar no símbolo da lâmpada no lado esquerdo do sinal para alternar seu estado:

uma lâmpada verde significa "habilitado", enquanto

uma lâmpada vermelha significa "desativado".

### Nota

Nota: se um canal for desmarcado, ele também não será audível para reprodução!

### Selecionando amostras

Se você selecionar um intervalo de amostras no Kwave, esse intervalo será incluso. Isso significa que a primeira e a última amostra selecionada pertencem à seleção e serão usadas para as ações seguintes. Portanto, mesmo que você não tenha selecionado um intervalo, mas uma única amostra, a seleção nunca estará realmente "vazia". Por exemplo, se você não vê nenhum intervalo selecionado, a função "delete" se aplica a essa única amostra.

A maneira mais fácil de selecionar um intervalo de amostras é fazê-lo apenas com o mouse. Funciona como em outros aplicativos: basta pressionar o botão esquerdo do mouse no ponto em que você deseja iniciar a seleção e soltar o botão onde deseja que ela termine.

Se deseja ajustar ou mover o início ou o fim de uma seleção, você pode mover o cursor do mouse para o início ou o fim da seleção até que ele mude de cursor de seta padrão para o cursor de seta esquerda-direita, em seguida pressione o botão esquerdo do mouse e ajuste.

Você também pode estender ou reduzir a seleção para um ponto específico mantendo pressionada a tecla Shift enquanto clica com o botão esquerdo do mouse. A borda que estiver mais próxima da posição selecionada, borda esquerda ou direita, será redefinida e deslocada para essa nova posição. Se não houver nada selecionado, será definida do começo.

Existem também algumas funções disponíveis através do menu e, claro, alguns atalhos de teclado:

- selecionar o sinal inteiro: Editar → Seleção → Todos (Ctrl+T)

- selecionar um intervalo: Editar → Seleção → Intervalo (I)

- a área visível atual: Editar → Seleção → Área Visível (V)

- o próximo bloco de amostras, iniciando uma amostra após o final da seleção atual e com a mesma duração: Editar → Seleção → Próximo (Shift++)

  (Dica: use a tecla "+" do teclado numérico!)

- o bloco anterior de amostras, terminando uma amostra antes do início da seleção atual e com a mesma duração: Editar → Seleção → Anterior (Shift+-)

  (Dica: use a tecla "-" do teclado numérico!)

- remova qualquer seleção e selecione "nada": Editar → Seleção → Nada (N)

- expandir a seleção para o início do sinal (primeira amostra): Editar → Seleção → Até o início (Shift+Home)

- expanda a seleção até o final do sinal (última amostra):Editar → Seleção → Até o fim (Shift+End)

- expandir a seleção atual para a esquerda e para a direita até o próximo rótulo (ou início/ fim do sinal, se não houver nenhum), começando na posição atual do cursor: Editar → Seleção → Expandir para rótulos (E)

- selecionar a área entre os próximos dois rótulos que estão à direita da seleção atual ou até o final do sinal: Editar → Seleção → Até os próximos rótulos (Ctrl+Shift+N)

- selecionar a área entre os dois rótulos anteriores que estão à esquerda da seleção atual ou até o final do sinal: Editar → Seleção → Até os rótulos anteriores (Ctrl+Shift+P)

Área de transferência
Área de transferência

## Área de transferência

O Kwave usa a área de transferência do Plasma. Desta forma, é possível trocar dados de áudio entre diferentes janelas do Kwave. E também é possível trocar dados entre o Kwave e outras aplicações de áudio, dependendo da sua capacidade de usar a área de transferência do Plasma.

Ao copiar dados para a área de transferência através da função `copy` o Kwave usa o tipo mime `audio/vnd.wave` como formato de dados, em conformidade com a RFC 2361 que é o mesmo que o formato bem conhecido `wav`. Ao colar da área de transferência no Kwave todos os formatos de dados disponíveis como formatos de importação de arquivos são suportados, como por exemplo, Ogg/Vorbis, FLAC e assim por diante.

Arrastar e soltar
Arrastar e soltar

## Arrastar e soltar

O Kwave suporta o protocolo de arrastar e soltar do KDE Frameworks. Isto permite-lhe abrir arquivos apenas selecionando-os numa janela do Dolphin ou Konqueror ou na Área de Trabalho e soltá-los em uma janela do Kwave.

Observe que se soltar um arquivo em uma janela do Kwave que já contenha um arquivo aberto, o arquivo atualmente aberto será primeiro fechado e depois será aberto o arquivo que ali foi solto. Se não desejar que isso aconteça, abra primeiro uma nova janela vazia do Kwave e solte o arquivo nesta nova janela.

Você também pode selecionar um intervalo de amostras e arrastá-las ou soltá-las em uma janela do Kwave. Por padrão, a operação de arrastar é feita no modo mover, no qual o intervalo selecionado é excluído do local original e inserido no local onde foi solto. Você pode modificar isso pressionando junto a tecla Ctrl, desse modo a operação de arrastar será feita no modo copiar.

Capítulo 4. Automatização e programação com o Kwave
Automatização e programação com o Kwave

# Capítulo 4. Automatização e programação com o Kwave

O Kwave desde a sua primeira versão usa uma linguagem de comando de texto interno. Essa linguagem de comando é usada internamente para manipulação de menus, controle da GUI, efeitos incorporados e invocações de plugin. Os comandos serão descritos mais adiante na seção Referência de comandos.

## Sintaxe geral

- Todos os comandos consistem em um nome de comando e uma lista de parâmetros opcional entre parênteses, dependendo do comando.

- Os caracteres permitidos para nomes de comandos são letras , números e ponto e vírgula . Ainda, os comandos diferenciam letras maiúsculas de minúsculas e estão sempre em minúsculas.

- Parâmetros dentro de uma lista de parâmetros são separados por vírgula.

- Os parâmetros numéricos podem ser dados como números de ponto fixo ou números de ponto flutuante, usando um ponto como separador decimal.

- Os parâmetros de cadeias de caracteres são automaticamente aparados (todo o espaço em branco no início e no final é removido). Se não desejar que isso aconteça, coloque-os entre aspas duplas ("). Se um parâmetro de cadeia de caracteres contiver caracteres especiais (como “,”, “;”, “#” ou uma “\”), esses caracteres especiais precisam ser precedidos de uma “\”.

- Múltiplos comandos podem estar associados a uma lista de comandos usando um “;” como separador.

Exemplo:

    fileinfo(Comentários,"Isto é um comentário de \"exemplo\" .")

Este exemplo consiste no comando fileinfo() e tem dois parâmetros: a palavra-chave `Comentários` e o texto “`"Isto é um comentário de \"exemplo\" ."`”. (esses parâmetros são explicados na seção correspondente de referência de comando).

Usando a linha de comando
Usando a linha de comando

## Usando a linha de comando

Além das opções de linha de comando listadas na seção Linha de comando usadas para iniciar o Kwave em modo minimizado ou sem tela de apresentação, você pode passar comandos de texto na linha de comando, codificados em um formato especial de URI:

`kwave:`comando`[?`parâmetro`[,`parâmetro` ...] ]`

As regras para transformar um comando de texto do Kwave num URI válido são as seguintes:

- O URI inicia com a palavra `kwave`, seguida por um“:” e o nome do comando.

- Se o comando tiver parâmetros, eles devem ser adicionados logo em seguida ao nome do comando, usando um “?” como separador.

- Poderá ser adicionado vários parâmetros usando uma “,” como separador.

- Todos os caracteres especiais no nome e nos parâmetros do comando devem ser codificados como URL. Aqui uma lista das traduções:

  Tabela 4.1. Tabela de tradução da codificação de URL

  original | codificado |  | original | codificado |  | original | codificado |  | original | codificado
  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
  (espaço) | `%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`

Arquivos de script do Kwave
Arquivos de script do Kwave

## Arquivos de script do Kwave

### Estrutura geral

Um script Kwave consiste em uma relação de linhas,onde cada linha pode ser:

- um único comando,

- uma lista de comando, com dois ou mais comandos associados por um “;”.

- um comentário,

- um rótulo

- ou uma linha vazia, que contém apenas espaço em branco

### Comentários e linhas vazias

Todos os caracteres que seguem um “#” (exceto quando usado entre aspas ou quando esquecido) são tratados como comentários, e serão ignorados de forma silenciosa.

Linhas que contêm apenas espaço em branco ou comentários são também ignoradas.

### Terminação

Um script do Kwave termina quando todos os comandos tiverem sido executados com sucesso e sem erros, ou quando um comando tiver devolvido um código de erro. Não existe nenhum comando especial para interromper a execução de um script. Se quiser implementar uma possibilidade para o usuário terminar um programa, poderá usar o comando “msgbox(``texto``)”. Isto mostra uma janela de mensagem com dois botões ‘OK’ (que permite que o s cript continue) e ‘Cancelar’ (que devolve um código de erro e para o script).

### Rótulos

Linhas que consistem apenas em um identificador, seguidas por um “:” são chamados de rótulos. Eles podem ser referenciados posteriormente no script pela palavra-chave especial GOTO [2], que fará com que a execução do script continue no local desse rótulo (ver o exemplo abaixo).

Uma linha que contém um rótulo não deve conter nenhum outro conteúdo (exceto comentários ou espaços em branco) após o “:”.

Exemplo:

    início:  # <= isto é um rótulo
                        # fazer algo...
                        msgbox(mais uma vez?)
                        GOTO início

[2] Observação: Não misture a palavra-chave“GOTO” com o comando de texto “goto (``posição``)” !

Referência de comandos
Referência de comandos

## Referência de comandos

### Índice alfabético

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

#### Sintaxe: about_kde()

Exibe uma janela com informações sobre a comunidade KDE.

### add_track

#### Sintaxe: add_track()

Adiciona uma nova faixa após todas as faixas existentes.

#### Ver também

insert_track()

c
c

## c

### clipboard_flush

#### Sintaxe: clipboard_flush()

Descarta o conteúdo atual da área de transferência (isso pode liberar alguma memória).

### close

#### Sintaxe: close()

Fecha o arquivo atual. Se a GUI estiver configurada para o modo MDI ou Aba,isso também fecha a sub-janela correspondente.

#### Ver também

open(`arquivo`), quit()

### continue

#### Sintaxe: continue()

Corresponde ao botão Continuar da barra de ferramentas e permite que a reprodução continue se estiver em pausa.

#### Ver também

pause()

### copy

#### Sintaxe: copy()

Copia o conteúdo da seleção atual para a área de transferência. Se a seleção estiver vazia, este comando não faz nada e o conteúdo da área de transferência permanece inalterado. Apenas o conteúdo das faixas atualmente selecionadas é copiado para a área de transferência!

#### Ver também

paste()

### crop

#### Sintaxe: crop()

Recorta o sinal para a seleção atual, excluindo tudo o que estiver depois e antes da seleção atual. Afeta todas as faixas e se nada for selecionado,este comando não faz nada.

### cut

#### Sintaxe: cut()

Copia o conteúdo da seleção atual para a área de transferência e o remove do sinal. Se a seleção estiver vazia, este comando não faz nada e o conteúdo da área de transferência permanece inalterado. Apenas o conteúdo das faixas atualmente selecionadas é copiado para a área de transferência e o intervalo selecionado é excluído de todas as faixas.

d
d

## d

### delayed

#### Sintaxe: delayed( `milissegundos`, `comando` )

Executa um `comando` após um determinado atraso.Note que o comando é executado de forma assíncrona após o tempo determinado ter decorrido. Vários comandos podem ser enfileirados, onde os atrasos são relativos ao último comando enfileirado. Esse comando deve ser usado para comandos de enfileiramento ao capturar capturas de tela para fins de documentação.

#### Parâmetros

`milissegundos`: | número de milissegundos inteiros a aguardar antes de executar o comando
`comando`: | um comando, incluindo parâmetros a serem executados após o atraso determinado

#### Ver também

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

### delete

#### Sintaxe: delete()

Exclui o intervalo de amostras atualmente selecionado. Se a seleção estiver vazia, esse comando não faz nada. Afeta todas as faixas.

### delete_track

#### Sintaxe: delete_track(`índice`)

Exclui uma faixa identificada pelo seu índice (começando do zero). Se nenhuma faixa com o índice fornecido existir, este comando sairá com um erro.

#### Parâmetros

`índice`: | índice da faixa a eliminar, começando por 0

### dump_metadata

#### Sintaxe: dump_metadata()

Imprime uma lista de todas as entradas de metadados no console, para fins de diagnóstico. (Disponível apenas quando o Kwave foi compilado com a opção `WITH_DEBUG` ativada).

e
e

## e

### expandtolabel

#### Sintaxe: expandtolabel()

Expande a seleção atual para os rótulos à esquerda e à direita das bordas da seleção atual. Se a borda da seleção já estiver em um rótulo, ela permanecerá inalterada. Se não houver rótulo à esquerda ou à direita da seleção atual, ela será expandida para o início ou o final do arquivo.

f
f

## f

### fileinfo

#### Sintaxe: fileinfo(`índice`)

Defina uma entrada de informações do arquivo para um novo valor.

#### Parâmetros

`palavra-chave`: | palavra-chave da entrada
`valor`: | valor da entrada

### forward

#### Sintaxe: forward()

Corresponde ao botão da barra de ferramentas Avançar.Se a reprodução estiver em execução, ela avança 1/10 do intervalo visível.Se a reprodução não estiver em execução, isso faz o mesmo que o comando view:scroll_right().

#### Ver também

view:scroll_right(), rewind()

g
g

## g

### goto

#### Sintaxe: goto(`pos`)

Define o cursor para a posição determinada e o torna visível na exibição atual. Depois disso, a seleção tem duração igual a zero.

#### Parâmetros

`pos`: | posição para onde ir nas amostras

i
i

## i

### insert_at

#### Sintaxe: insert_at(`pos`)

Insere o conteúdo da área de transferência na posição determinada, como o comando paste(). Se a área de transferência estiver vazia no momento, essa função não fará nada.

#### Parâmetros

`pos`: | posição onde inserir nas amostras

#### Ver também

paste()

### insert_track

#### Sintaxe: insert_track(`índice`)

Insere uma nova faixa no índice fornecido, usando as configurações atuais de duração e taxa de amostragem do sinal. Se o índice for maior ou igual ao número atual de faixas, ele será anexado como a última faixa, igual ao comando add_track(). O índice de todas as faixas existentes em e depois do índice dado será incrementado por um.

#### Parâmetros

`índice`: | índice da faixa a inserir, começando com 0

#### Ver também

add_track()

l
l

## l

### label:add

#### Sintaxe: label:add(`pos`[,`texto`])

Adicione um novo rótulo em uma determinada posição. Se a posição dada já contiver um rótulo, este comando não fará nada. Além disso, o rótulo pode receber uma descrição opcional.

#### Parâmetros

`pos`: | posição onde inserir o rótulo nas amostras
`texto`: | algum texto descritivo (opcional)

### label:delete

#### Sintaxe: label:delete(`índice`)

Exclui um rótulo, identificado por seu índice (começando do zero), ou todos os rótulos ao usar o valor especial -1 como índice. Se nenhum rótulo com o índice fornecido existir, este comando não fará nada.

#### Parâmetros

`índice`: | índice do rótulo a ser eliminado, começando por 0 ou -1 para eliminar todos os rótulos

### label:edit

#### Sintaxe: label:edit(`índice`)

Abre uma janela na qual o usuário pode editar a posição e a descrição de um rótulo, que é identificado pelo seu índice (começando do zero). Se nenhum rótulo com o índice fornecido existir, este comando não fará nada.

#### Parâmetros

`índice`: | índice de rótulo para editar, começando com 0

### loadbatch

#### Sintaxe: loadbatch(`arquivo`)

Abre um arquivo de script do Kwave e processa os comandos nele. Usa o contexto do arquivo atualmente aberto ou da janela principal atual se nenhum arquivo for carregado.

#### Parâmetros

`arquivo`: | nome do arquivo de script kwave, incluindo caminho e extensão

### loop

#### Sintaxe: loop()

Corresponde ao botão da barra de ferramentas Repetição. Inicia a reprodução (se ainda não estiver em execução) e permite repetir a reprodução.

#### Ver também

playback_start()

m
m

## m

### menu

#### Sintaxe: menu (`comando`, `caminho`, [`atalho`], [`id`])

Este é um comando muito poderoso, que é usado para adicionar uma nova entrada ao menu ou para modificar uma entrada existente. Determina qual comando é executado quando a entrada do menu é ativada, qual ícone é mostrado no menu e qual tecla de atalho é usada. Cada entrada de menu pode ser desativada ou oculta, pode ser atribuída uma identificação única e também pode participar de um grupo de menus.

Você normalmente não precisa deste comando dentro de um script do Kwave!

#### Parâmetros

`comando`: | Um comando de texto (incluindo parâmetros) ou uma lista de comandos que será executada quando a entrada do menu for ativada. Se uma entrada do menu não tiver um comando correspondente (por exemplo, se for um submenu e não uma entrada do menu), você deve usar o comando especial ignore ().

`caminho`:

O caminho dentro do menu, usando um “/” como separador. A última parte do caminho poderá ser um sub-comando que modifica uma dada propriedade da entrada do menu (ver abaixo). A última parte do caminho (que não seja um sub-comando) produz uma entrada do menu, enquanto aspartes anteriores produzem a entrada de menu principal ou os sub-menus que conduzem até ela. As entradas do menu principal ou os sub-menus são criados automaticamente quando criar uma entrada de menu, você não precisa criá-las manualmente.

`atalho`:

Uma máscara de bits que consiste em uma combinação predefinida de teclas e modificadores, em associação com um “+”. A tecla poderá ser um número, uma letra maiúscula, uma tecla de função (“F1” ... “F12”) ou qualquer outro nome de tecla compreendido pela classe Qt “`QKeySequence`”, incluindo nome de teclas das ações predefinidas (como por exemplo “`::Copy`”). Os modificadores típicos são “`SHIFT`”, “`ALT`” e “`CTRL`”.

`id`: | Um id único que possa ser usado internamente para identificar esta entrada de menu ou menu / sub-menu. Só deverão ser usadas letras maiúsculas, números e o “`_`” e deverá iniciar com “`ID_`”. É de sua responsabilidade garantir que o mesmo id não seja usado duas vezes.

#### Sub-Comandos

#checkable: | Torna a entrada do menu marcável, para que possa ser ativada ou desativada.
#disabled: | Desabilita o menu, o submenu ou a entrada de menu.
#enabled: | Habilita o menu, o submenu ou a entrada do menu.
#exclusive(`grupo`): | Adiciona uma entrada de menu a um `grupo` exclusivo(uma das muitas opções). O grupo que é dado como parâmetro não deve ser usado para qualquer outra finalidade. Apenas uma entrada nesse grupo pode ser selecionada por vez.

#group(`lista`):

Adiciona o menu, submenu ou entrada de menu a um ou mais grupos, para que o aplicativo possa habilitar/desabilitar várias entradas de menu sem precisar conhecer todas suas identidades únicas exclusivas. Vários grupos podem ser passados como uma lista com uma “`,`” como separador. Ainda, nomes de grupos têm que iniciar com uma “`@`”. E os seguintes grupos são predefinidos:

@CLIPBOARD:

  Habilitado somente quando a área de transferência não estiver vazia.

@LABELS:

  Habilitado somente quando o sinal atual contiver pelo menos um rótulo.

@NOT_CLOSED:

  Habilitado quando o sinal atual não está fechado (o sinal pode estar vazio ou com duração igual a zero).

@SELECTION:

  Habilitado quando a seleção não está vazia (mais de uma amostra é selecionada).

@SIGNAL:

  Habilitado quando há algum sinal carregado e não está vazio ou com duração igual a zero.

#hidden: | Esconde o menu, sub-menu ou entrada de menu.
#icon(`nome`): | Atribui um ícone a uma entrada de menu. O `nome` do ícone deverá corresponder a um arquivo de ícone (sem caminho e extensão de arquivo) que é instalado com o sistema ou com o Kwave.

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

Insere um item de substituição para uma lista de entradas de menu para um sub-menu. O `id` único indicado neste sub-comando é usado para adicionar/remover ou limpar alista de itens do menu. O parâmetro `comando` tem de “`%1`” como parâmetro, o qual será substituído pelo texto da entrada de menu, quando for ativado. (Este sub-comando é usado internamente pela lista de arquivos recentes, pela lista de faixas e pela lista de janelas).

#separator: | Insere um separador em um submenu.

### msgbox

#### Sintaxe: msgbox(`texto`)

Mostra uma caixa de mensagem com algum `texto` e dois botões OK (retorna sem código de erro) e Cancelar (retorna com código de erro). Você pode usar este comando para dar ao usuário a possibilidade de interromper um script em execução.

#### Parâmetros

`texto`: | Uma mensagem que será exibida na caixa de mensagem deve conter uma pergunta que possa ser respondida com OK ou Cancelar.

n
n

## n

### newsignal

#### Sintaxe: newsignal( `amostras`, `taxa`, `bits`, `faixas`)

Cria um novo sinal, com uma dada duração em `amostras`, uma `taxa` em amostras por segundo (número de ponto flutuante), um número de `bits` por amostra e número de `faixas`. Você pode calcular a duração em amostras multiplicando o comprimento desejado em segundos com a taxa de amostragem.

#### Parâmetros

`amostras`: | Duração do sinal nas amostras.
`taxa`: | Taxa de amostragem em amostras por segundo.
`bits`: | Número de bits por amostra, não deve ser igual a zero e deve ser um número de 8... 32.
`faixas`: | Número de faixas.

### next

#### Sintaxe: next()

Corresponde ao botão da barra de ferramentas Próximo.Se a reprodução estiver em execução, ela avança para o próximo rótulo. Se a reprodução não estiver em execução, isso faz o mesmo que o comando view:scroll_next_label().

#### Ver também

view:scroll_next_label(), prev()

o
o

## o

### open

#### Sintaxe: open([`arquivo`])

Abre um arquivo, que pode ser um arquivo de som ou um script do Kwave. Se nenhum nome de arquivo for passado, será aberta uma janela que permitirá selecionar um arquivo existente. Dependendo do modo GUI, o arquivo será aberto no contexto de uma nova sub-janela (MDI e Aba) ou em uma nova janela principal (SDI, se já houver algo carregado).

#### Parâmetros

`arquivo`: | nome de um arquivo, incluindo caminho e extensão

#### Ver também

close()

### openrecent

#### Sintaxe: openrecent(`arquivo`)

Praticamente idêntico ao comando open(), mas destina-se a ser usado internamente para a lista de arquivos abertos recentemente no menu Arquivo+Abrir recente. No comando o parâmetro `arquivo` não é opcional.

#### Parâmetros

`arquivo`: | entrada da lista de arquivos abertos recentemente

#### Ver também

open()

p
p

## p

### paste

#### Sintaxe: paste()

Substitui a seleção atual pelo conteúdo da área de transferência. Se a área de transferência estiver vazia, esse comando não faz nada. A taxa de amostragem dos dados inseridos é ajustada para corresponder à taxa de amostragem do sinal atual, se necessário. Apenas as faixas habilitadas são afetadas, as faixas desabilitadas permanecem inalteradas. Esteja ciente de que isso pode produzir uma mudança de horário entre as faixas habilitadas e desabilitadas! Se o número de faixas dos dados da área de transferência for diferente do número de faixas habilitadas, os dados serão misturados para serem distribuídos igualmente por todas as faixas selecionadas.

#### Ver também

copy()

### pause

#### Sintaxe: continue()

Corresponde ao botão da barra de ferramentas Pausar e permite que a reprodução seja pausada se estiver em execução no momento ou continue se estiver pausada no momento.

#### Ver também

continue()

### playback_start

#### Sintaxe: playback_start()

Corresponde ao botão da barra de ferramentas Iniciar e permite que a reprodução inicie se estiver pausada no momento.

### plugin

#### Sintaxe: plugin(`nome`, [`parâmetro` ...])

Executa um plugin, com uma lista opcional de parâmetros. Se nenhuma lista de parâmetros for dada, então a função de configuração do plugin será chamada usando os parâmetros da invocação anterior ou os parâmetros padrões como entrada (normalmente mostra uma janela de configuração, dependendo do plugin). Por favor, consulte o capítulo sobre plugins para uma descrição dos vários plugins.

#### Parâmetros

`nome`: | o nome (interno) de um plugin do Kwave
`parâmetro`: | uma lista de parâmetros compreendidos pelo plugin (opcional)

#### Ver também

plugin:execute(), plugin:setup()

### plugin:execute

#### Sintaxe: plugin:execute(`nome`, [`parâmetro` ...])

Semelhante ao comando plugin(), mas sem chamar a função de configuração do plugin se nenhum parâmetro foi passado.

#### Parâmetros

`nome`: | o nome (interno) de um plugin do Kwave
`parâmetro`: | uma lista de parâmetros compreendidos pelo plugin

### plugin:setup

#### Sintaxe: plugin:setup(`nome`, [`parâmetro` ...])

Chama a função configuração de um plugin, com uma lista opcional de parâmetros. Se nenhuma lista de parâmetros for fornecida, os parâmetros da invocação anterior ou os parâmetros padrão serão usados como entrada. Isso normalmente mostra uma janela de configuração, dependendo do plugin. Por favor, consulte o capítulo sobre plugins para uma descrição dos vários plugins.

#### Parâmetros

`nome`: | o nome (interno) de um plugin do Kwave
`parâmetro`: | uma lista de parâmetros compreendidos pelo plugin (opcional)

### prev

#### Sintaxe: prev()

Corresponde ao botão da barra de ferramentas Anterior. Se a reprodução estiver em execução, ela volta para o rótulo anterior ou para o início da seleção. Se a reprodução não estiver em execução, isso faz o mesmo que o comando view:scroll_prev_label().

#### Ver também

view:scroll_prev_label(), next()

q
q

## q

### quit

#### Sintaxe: quit()

Fecha a janela principal atual, incluindo todas as sub-janelas. No modo SDI, este comando é o mesmo que close().

#### Ver também

close()

r
r

## r

### redo

#### Sintaxe: redo()

Corresponde ao botão da barra de ferramentas Refazer e repete uma operação que foi revertida com undo().

#### Ver também

undo()

### redo_all

#### Sintaxe: redo_all()

Semelhante ao redo(), mas reverte o maior número de operações possíveis.

#### Ver também

undo()

### reenable_dna

#### Sintaxe: reenable_dna()

Algumas caixas de mensagens oferecem a opção de não serem exibidas novamente (“não perguntar novamente”). Este comando faz com que todas apareçam novamente.

### reset_toolbars

#### Sintaxe: reset_toolbars()

Redefine todas as configurações da barra de ferramentas, como localização, tamanho do ícone e localização de texto de volta aos padrões.

### revert

#### Sintaxe: revert()

Reverte o arquivo atualmente carregado de volta ao último estado salvo, descartando todas as alterações que não foram salvas.

### rewind

#### Sintaxe: rewind()

Corresponde ao botão Retornar na barra de ferramentas. Se a reprodução estiver em curso no momento, irá retornar 1/10 of do intervalo visível. Se a reprodução não estiver em curso fará o mesmo que o comando view:scroll_left().

#### Ver também

view:scroll_left(), forward()

s
s

## s

### save

#### Sintaxe: save()

Corresponde ao botão Salvar na barra de ferramentas. Salva o arquivo atual se ele tiver modificações. Se o ficheiro ainda não tiver um nome (por exemplo um ficheiro que acabou de ser criado e ainda não tem um nome de ficheiro), este comando faz o mesmo saveas().

#### Ver também

saveas()

### saveas

#### Sintaxe: saveas([`arquivo`])

Salva o arquivo atualmente aberto sob um determinado nome de arquivo. Se nenhum nome de arquivo for fornecido como parâmetro, será exibida uma janela para selecionar a pasta e para digitar um nome de arquivo.

#### Parâmetros

`arquivo`: | nome de arquivo para salvar (opcional)

### saveselect

#### Sintaxe: saveselect()

Este comando faz o mesmo que o save(), mas salva apenas o intervalo selecionado atualmente e as faixas ativadas em vez do arquivo inteiro.

#### Ver também

save()

### select_gui_type

#### Sintaxe: select_gui_type(`modo`)

Seleciona um modo de GUI, o qual poderá ser SDI, MDI ou Aba. Esteja ciente que estas alterações terão efeito imediatamente!

#### Parâmetros

`arquivo`: | o nome do modo, que poderá ser “SDI”, “MDI” ou “ABA”.

### select_track:all

#### Sintaxe: select_track:all()

Marque todas as faixas como “habilitadas”. Isso é o mesmo que chamar o comando select_track:on() para todas as faixas existentes.

#### Ver também

select_track:on()

### select_track:invert

#### Sintaxe: select_track:all()

Inverte o estado “habilitado” de todas as faixas. Isso é o mesmo que chamar o comando select_track:toggle() para todas as faixas existentes.

#### Ver também

select_track:toggle()

### select_track:none

#### Sintaxe: select_track:none()

Marcar todas as faixas “desabilitadas”. Isto é o mesmo que chamar o comando select_track:off() para todas as faixas existentes.

#### Ver também

select_track:off()

### select_track:off

#### Sintaxe: select_track:off(`índice`)

Desativa uma única faixa, para que ela não seja afetada pela maioria das operações.

#### Parâmetros

`índice`: | índice da faixa, começando com zero

### select_track:on

#### Sintaxe: select_track:on(`índice`)

Habilita uma única faixa para sofrer todas as operações.

#### Parâmetros

`índice`: | índice da faixa, começando com zero

### select_track:toggle

#### Sintaxe: select_track:toggle(`índice`)

Habilita uma faixa, se esta estiver desabilitada no momento ou a desabilita se estiver ativada.

#### Parâmetros

`índice`: | índice da faixa, começando com zero

### selectall

#### Sintaxe: selectall()

Seleciona o intervalo de todo o sinal, da primeira à última amostra.

### selectnext

#### Sintaxe: selectnext()

Seleciona um intervalo de amostras que começa logo após a seleção atual, usando o mesmo tamanho da seleção atual. A seleção é automaticamente cortada no final do sinal. Por exemplo: se você selecionou o intervalo da amostra 1000... 1019, o resultado será uma seleção da amostra 1020... 1039.

#### Ver também

selectprev()

### selectnextlabels

#### Sintaxe: selectnextlabels()

Seleciona um intervalo de amostras entre os próximos dois rótulos após a seleção atual. Se nada for selecionado, ele seleciona desde o início do sinal até o primeiro rótulo. Caso contrário, a borda esquerda da nova seleção será a posição do primeiro rótulo após a seleção (ou o último rótulo, se não houver mais rótulos desde a seleção). E a borda direita da nova seleção será o primeiro rótulo após a borda esquerda da nova seleção (ou o final do sinal, se não houver nenhum). Este comando retorna um erro quando não há rótulos.

#### Ver também

selectprevlabels()

### selectnone

#### Sintaxe: selectnone()

Redefine a seleção para duração zero.

### selectprev

#### Sintaxe: selectprev()

Seleciona um intervalo de amostras que começa à esquerda da seleção atual, usando a mesma duração da seleção atual. E a seleção é automaticamente cortada no início do sinal. Por exemplo: se você selecionou as amostras 1000 ... 1019, o resultado será uma seleção da amostra 980... 999.

#### Ver também

selectnext()

### selectprevlabels

#### Sintaxe: selectprevlabels()

Seleciona um intervalo de amostras entre os dois rótulos anteriores antes da seleção atual. Se nada for selecionado, ele seleciona desde o início do sinal até o primeiro rótulo. Caso contrário, a borda direita da nova seleção será a posição do primeiro rótulo antes da seleção (ou o primeiro rótulo, se não houver mais rótulos restantes da seleção). E a borda esquerda da nova seleção será o primeiro rótulo antes da borda direita da nova seleção (ou o início do sinal, se não houver nenhum). Este comando retorna um erro quando não há rótulos.

#### Ver também

selectnextlabels()

### selecttoleft

#### Sintaxe: selecttoleft()

Define o início da seleção como o início do sinal, o final da seleção atual permanece inalterada.

#### Ver também

selecttoright()

### selecttoright

#### Sintaxe: selecttoright()

Define o final da seleção como o final do sinal, o início da seleção atual permanece inalterada.

#### Ver também

selecttoleft()

### selectvisible

#### Sintaxe: selectvisible()

Seleciona o intervalo de amostras que é visível na janela atual.

### start

#### Sintaxe: start()

Corresponde ao botão da barra de ferramentas Iniciar e permite que a reprodução comece no início da seleção ou continue se estiver pausada no momento.

#### Ver também

stop()

### stop

#### Sintaxe: stop()

Corresponde ao botão da barra de ferramentas Parar e permite que a reprodução pare, se estiver em execução no momento.

#### Ver também

start()

### sync

#### Sintaxe: sync()

Aguarda até que todos os comandos que foram iniciados de forma assíncrona tenham terminado. Se nada estiver atualmente em espera para execução posterior, este comando não terá efeito.

#### Ver também

delayed()

u
u

## u

### undo

#### Sintaxe: undo()

Corresponde ao botão da barra de ferramentas Desfazer e reverte a última operação.

#### Ver também

redo()

### undo_all

#### Sintaxe: undo_all()

Semelhante ao undo(), mas reverte tantas operações quantas possíveis.

#### Ver também

undo()

v
v

## v

### view:scroll_end

#### Sintaxe: view:scroll_end()

Desloca a visualização atual para o fim do sinal.

#### Ver também

view:scroll_start()

### view:scroll_left

#### Sintaxe: view:scroll_left()

Desloca a visualização atual em 1/10 do intervalo atualmente visível em direção ao início do sinal. Se atingir o início do sinal, a área visível começa na posição zero.

#### Ver também

view:scroll_right()

### view:scroll_next

#### Sintaxe: view:scroll_next()

Desloca a visualização atual até o final do sinal pelo intervalo visível no momento.

#### Ver também

view:scroll_prev()

### view:scroll_next_label

#### Sintaxe: view:scroll_next_label()

Desloca para a direita e tenta mostrar o próximo rótulo centrado na exibição. Se não houver nenhum rótulo à direita da posição atual, ele deslocará até o final do sinal.

#### Ver também

view:scroll_prev_label()

### view:scroll_prev

#### Sintaxe: view:scroll_prev()

Desloca a visualização atual em direção ao início do sinal pelo intervalo visível no momento.

#### Ver também

view:scroll_next()

### view:scroll_prev_label

#### Sintaxe: view:scroll_prev_label()

Desloca para a esquerda e tenta mostrar o rótulo anterior centrado na exibição. Se não houver rótulo à esquerda da posição atual, ele deslocará até o início do sinal.

#### Ver também

view:scroll_next_label()

### view:scroll_right

#### Sintaxe: view:scroll_right()

Desloca a visualização atual em 1/10 do intervalo visível no momento até o final do sinal. Se o final do sinal for atingido, a área visível termina no final do sinal.

#### Ver também

view:scroll_left()

### view:scroll_start

#### Sintaxe: view:scroll_start()

Rola a visualização atual até o início do sinal.

#### Ver também

view:scroll_end()

### view:zoom_all

#### Sintaxe: view:zoom_all()

Ajusta o fator de ampliação para que o sinal completo seja visível na exibição atual.

### view:zoom_in

#### Sintaxe: view:zoom_in([`posição`])

Reduz o fator de ampliação (em amostras por pixel) em 30%, para que mais detalhes fiquem visíveis. Se uma `posição` for fornecida, ele tentará mostrar essa posição centralizada na visualização atual, caso contrário, o centro da visualização antes da mudança de ampliação será usado para centralizar. O fator de ampliação mínimo é limitado a um mínimo de cinco amostras por largura da exibição.

#### Parâmetros

`posição`: | uma posição baseada em zero nas amostras para centralizar a visualização (opcional)

#### Ver também

view:zoom_out()

### view:zoom_normal

#### Sintaxe: view:zoom_normal()

Define o fator de ampliação para um pixel por amostra (fator 1.0) e tenta manter o mesmo centro da visualização anterior.

### view:zoom_out

#### Sintaxe: view:zoom_out([`posição`])

Aumenta o fator de ampliação (em amostras por pixel) em 30%, para que menos detalhes fiquem visíveis. Se uma `posição` for fornecida, ela tentará mostrar essa posição centralizada na visualização atual, caso contrário, o centro da visualização anterior a mudança de ampliação será usado para centralizar. O fator máximo de ampliação é limitado ao número de amostras do sinal completo e à largura da visualização.

#### Parâmetros

`posição`: | uma posição em amostras, a começar em zero, para centralizar a área visível (opcional)

#### Ver também

view:zoom_in()

### view:zoom_selection

#### Sintaxe: view:zoom_selection()

Ajusta a visualização (fator de ampliação e início da área visível) para que corresponda à seleção atual. Este comando não faz nada se a seleção estiver vazia.

w
w

## w

### window:activate

#### Sintaxe: window:activate(`título`])

Ativa uma sub-janela, identificada por seu `título` de janela. Se a sub-janela for minimizada, ela será restaurada. Disponível apenas nos modos MDI e Aba. Este comando é usado internamente pelo menu Janela.

#### Parâmetros

`título`: | o título da sub-janela que deve ser ativada

### window:cascade

#### Sintaxe: window:cascade()

Coloca todas as sub-janelas em cascata quando no modo MDI. Todas as sub-janelas que estão atualmente minimizadas ficam minimizadas, elas não serão restauradas.

### window:click

#### Sintaxe: window:click( `classe`, `x`, `y` )

Envia um evento de clique do mouse para a janela, identificado pelo nome de sua `classe`. O evento será enviado apenas para a primeira janela que possui o nome da classe, logo, você deve certificar-se de que há apenas uma instância da janela indicada quando este comando é executado.

#### Parâmetros

`classe`: | nome da classe da janela
`x`: | a posição em x, em relação à borda esquerda da janela (em pixeis)
`y`: | a posição em y, em relação à borda superior da janela (em pixeis)

### window:close

#### Sintaxe: window:close( `classe` )

Fecha uma janela, identificada pelo nome de sua `classe`. Somente a primeira janela que possui o nome da classe fornecida será fechada, logo, você deve certificar-se de que há apenas uma instância da janela indicada quando este comando for executado.

#### Parâmetros

`classe`: | nome da classe da janela

### window:minimize

#### Sintaxe: window:minimize

Minimiza a sub-janela ativa no momento quando estiver no modo MDI ou na janela de nível atual quando estiver nos modos SDI ou Aba.

### window:mousemove

#### Sintaxe: window:resize( `classe`, `x`, `y` )

Envia um evento de movimento do mouse para a janela, identificada pelo nome de sua `classe`. O evento só será enviado para a primeira janela que possui o nome da classe, logo, você deve certificar-se de que há apenas uma instância da janela indicada quando este comando é executado.

#### Parâmetros

`classe`: | nome da classe da janela
`x`: | a posição em x, em relação à borda esquerda da janela (em pixeis)
`y`: | a posição em y, em relação à borda superior da janela (em pixeis)

### window:next_sub

#### Sintaxe: window:next_sub()

Ativa a próxima sub-janela quando estiver nos modos MDI ou Tab. Se a próxima sub-janela estiver minimizada, ela será restaurada.

### window:prev_sub

#### Sintaxe: window:prev_sub()

Ativa a sub-janela anteriorquando estiver nos modos MDI ou Tab. Se a próxima sub-janela estiver minimizada, ela será restaurada.

### window:resize

#### Sintaxe: window:resize( `classe`, `largura`, `altura` )

Altera o tamanho de uma janela, identificada pelo nome de sua `classe` para uma nova `largura` e `altura`. A mudança será aplicada somente na primeira janela que possui o nome da classe, logo, você deve ter certeza de que há apenas uma instância da janela indicada quando este comando é executado.

#### Parâmetros

`classe`: | nome da classe da janela
`largura`: | nova largura da janela (em pixel)
`altura`: | nova altura da janela (em pixel)

### window:screenshot

#### Sintaxe: window:screenshot( `classe`, `arquivo` )

Obtêm uma captura de tela de uma janela, identificada pela sua `class` e a salva em um arquivo. A captura de tela será obtida da primeira janela que possui o nome de classe fornecido, portanto, você deve certificar-se que há apenas uma instância da janela indicada quando este comando for executado. Atualmente, o formato do arquivo é codificado e deve ser `*.png`.

#### Parâmetros

`classe`: | nome da classe da janela
`arquivo`: | o nome do arquivo para salvar a captura de tela, deve ter a extensão `*.png`

### window:sendkey

#### Sintaxe: window:sendkey( `classe`, `código chave` )

Envia um evento de pressionar e soltar uma tecla para uma dada janela, identificada pelo nome de sua `classe`. A tecla será enviada apenas para a primeira janela que tenha o nome da classe fornecida, logo, deverá ter certeza de que há apenas uma instância da janela dada quando este comando é executado.

#### Parâmetros

`classe`: | nome da classe da janela
`código chave`: | o código chave que deve ser enviado, usando a mesma sintaxe usada para configurar os menus

#### Ver também

Descrição do parâmetro `atalho` do menu() comando.

### window:tile

#### Sintaxe: window:tile()

Mosaico de todas as sub-janelas quando no modo MDI, usando algum esquema do Plasma. Todas as sub-janelas que estão atualmente minimizadas permanecem minimizadas, elas não serão restauradas.

### window:tile_vertical

#### Sintaxe: window:tile_vertical()

Mosaico vertical de todas as sub-janelas quando no modo MDI. Todas as janelas atualmente minimizadas permanecem minimizadas, elas não serão restauradas.

Capítulo 5. Plugins
Plugins

# Capítulo 5. Plugins

## Referência de plugins

### Índice alfabético

### a

about (Sobre o kwave)
amplifyfree (Amplificação livre)

### b

band_pass (Filtro passa-banda)

### c

codec_ascii (Codec de ASCII)
codec_audiofile (Codec de audiofile)
codec_flac (Codec de FLAC)
codec_mp3 (Codec de MP3)
codec_ogg (Codec de ogg)
codec_wav (Codec de WAV)

### d

debug (Funções de depuração)

### e

export_k3b (Exportar como Projeto K3B)

### f

fileinfo (Informação de arquivo)

### g

goto (Ir para uma posição)

### i

insert_at (Inserir em)

### l

lowpass (Filtro Passa-Baixo)

### n

newsignal (Novo sinal)
noise (Gerador de ruído)
normalize (Normalizador)
notch_filter (Filtro rejeita-faixa)

### p

pitch_shift (Desvio de tom)
playback (Reprodução)

### r

record (Gravar)
reverse (Inverter)

### s

samplerate (Conversão de taxas de amostragem)
saveblocks (Salvar em blocos)
selectrange (Selecionar intervalos)
sonagram (Sonagrama)
stringenter (Digitar comando)

### v

volume (Volume)

### z

zero (Gerador de zeros)

``

about (Sobre o kwave)
about (Sobre o kwave)

## about (Sobre o kwave)

Nome interno:

  `about`

Tipo de plugin:

  GUI

Descrição:

  Mostra uma janela com várias abas, incluindo as seguintes informações:

  - informações gerais sobre o programa

  - autores, colaboradores e detentores de direitos autorais

  - todos os plugins encontrados incluindo suas versões e autores

  - informações sobre a equipe de tradução

  - informações de direitos autorais e licença

amplifyfree (Amplificação livre)
amplifyfree (Amplificação livre)

## amplifyfree (Amplificação livre)

Nome interno:

  `amplifyfree`

Tipo de plugin:

  efeito

Descrição:

  Amplifica a seleção atual com uma curva que consiste em um conjunto de coordenadas e um método de interpolação. As coordenadas no eixo do tempo, bem como no eixo da amplitude, devem ser reguladas entre 0,0 e 1,0.

Parâmetros
  `operação`

    Nome interno, para tratar o desfazer/refazer. Os valores possíveis são:

    palavra-chave | descrição
    --- | ---
    aparecimento gradual | aparecimento gradual, curva de 0.0/0.0 a 1.0/1.0
    desaparecimento gradual | desaparecimento gradual, curva de 0.0/1.0 a 1.0/0.0
    introdução do esmaecimento | introduz o esmaecimento, uma segunda pausa, depois aparece gradualmente
    finalização do esmaecimento | finaliza o esmaecimento, primeiro desaparece gradualmente, depois uma segunda pausa
    amplificador livre | curva definida pelo usuário

  `interpolação`

    Tipo de interpolação, os valores possíveis são:

    palavra-chave | descrição
    --- | ---
    linear | Linear
    spline | Spline
    polinômio-n | Polinômio de enésimo grau
    polinômio-3 | Polinômio de 3º grau
    polinômio-5 | Polinômio de 5º grau
    polinômio-7 | Polinômio de 7º grau
    amostrar_reter | Amostrar e reter

  `curva`

    Uma lista de pares de coordenadas, separadas por vírgulas, normalizada entre 0.0 e 1.0, deve ser classificada por eixo de tempo (ascendente) e deve começar no tempo 0.0 e terminar com o tempo 1.0.

band_pass (Filtro passa-banda)
band_pass (Filtro passa-banda)

## band_pass (Filtro passa-banda)

Nome interno:

  `band_pass`

Tipo de plugin:

  efeito

Descrição:

  Aplica um filtro de passagem de banda simples à seleção atual. Uma passagem de banda permite que uma determinada faixa de frequências passe em torno de uma frequência central e filtra frequências que estão abaixo ou acima da frequência central em mais da metade da largura de banda do filtro.

  O filtro tem grau dois e é implementado conforme descrito no livro "An introduction to digital filter theory" de Julius O. Smith e no livro de Moore, onde a versão normalizada do livro de Moore é usada.

Parâmetros:
  `frequência`

    A frequência central do filtro em Hz, deve ser inferior a metade da taxa de amostragem do arquivo.

  `largura de banda`

    Largura de banda do filtro em Hz.

codec_ascii (Codec de ASCII)
codec_ascii (Codec de ASCII)

## codec_ascii (Codec de ASCII)

Nome interno:

  `codec_ascii`

Tipo de plugin:

  codec

Tipos de arquivos suportados:

  Descrição: | áudio codificado em ASCII
  Extensões de arquivos: | `*.ascii`
  Tipos MIME: | `audio/x-audio-ascii`

Metadados suportados:

  (todos os itens de informações de arquivo conhecidos, consulte a seção Informações de arquivo)

codec_audiofile (Codec de audiofile)
codec_audiofile (Codec de audiofile)

## codec_audiofile (Codec de audiofile)

Nome interno:

  `codec_audiofile`

Tipo de plugin:

  codec [somente importação]

Tipos de arquivos suportados:

  Descrição: | Formato de arquivos de som IFF/8SVX Amiga
  Extensões de arquivos: | `*.8svx` | `*.iff`
  Tipos MIME: | `audio/x-8svx`

  Descrição: | NeXT/Sun Audio
  Extensões de arquivos: | `*.au`, `*.snd`
  Tipos MIME: | `áudio/básico`

  Descrição: | Formato de troca de áudio compactado
  Extensões de arquivos: | `*.aifc`
  Tipos MIME: | `audio/x-aifc`

  Descrição: | Formato de troca de áudio
  Extensões de arquivos: | `*.aif`, `*.aiff`
  Tipos MIME: | `audio/x-aiff`

  Descrição: | Formato de arquivo de pesquisa audiovisual
  Extensões de arquivos: | `*.avr`
  Tipos MIME: | `audio/x-avr`

  Descrição: | Formato de arquivo de áudio principal
  Extensões de arquivos: | `*.caf`
  Tipos MIME: | `audio/x-caf`

  Descrição: | Formato de som Berkeley, IRCAM, Carl
  Extensões de arquivos: | `*.sf`
  Tipos MIME: | `audio/x-ircam`

  Descrição: | Formato de arquivo de áudio NIST SPHERE
  Extensões de arquivos: | `*.nist`
  Tipos MIME: | `audio/x-nist`

  Descrição: | Formato de visão de amostras
  Extensões de arquivos: | `*.smp`
  Tipos MIME: | `audio/x-smp`

  Descrição: | Creative Voice
  Extensões de arquivos: | `*.voc`
  Tipos MIME: | `audio/x-voc`

Metadados suportados:

  (nenhum)

codec_flac (Codec de FLAC)
codec_flac (Codec de FLAC)

## codec_flac (Codec de FLAC)

Nome interno:

  `codec_flac`

Tipo de plugin:

  codec

Tipos de arquivos suportados:

  Descrição: | Áudio em FLAC (Free Lossles Audio Codec)
  Extensões de arquivos: | `*.flac`
  Tipos MIME: | `audio/x-flac`

Metadados suportados:

  Data, Nome, Versão, Álbum, Faixa, Autor, Artista, Direitos autorais, Licença, Organização, Assunto, Gênero, Fonte, Contato, ISRC, Programa, Engenheiro, Qualidade base

codec_mp3 (Codec de MP3)
codec_mp3 (Codec de MP3)

## codec_mp3 (Codec de MP3)

Nome interno:

  `codec_mp3`

Tipo de plugin:

  codec

Tipos de arquivos suportados:

  Descrição: | Áudio em MPEG camada III
  Extensões de arquivos: | `*.mp3`
  Tipos MIME: | `audio/x-mp3`, `audio/mpeg`s

  Descrição: | Áudio em MPEG camada II
  Extensões de arquivos: | `*.mp2`
  Tipos MIME: | `audio/x-mp2`, `audio/mpeg`

  Descrição: | Áudio em MPEG camada I
  Extensões de arquivos: | `*.mp1`, `*.mpg`, `*.mpga`
  Tipos MIME: | `audio/x-mpga`, `audio/mpeg`

Metadados suportados:

  Álbum, Anotação, Autor, CD, CDs, Comentários, Comissionado, Contato, Direitos autorais, Data, Gênero, ISRC, Duração, Licença, Meio, Nome, Organização, Artista, Programa, Técnico, Faixa, Faixas, Versão

codec_ogg (Codec de ogg)
codec_ogg (Codec de ogg)

## codec_ogg (Codec de ogg)

Nome interno:

  `codec_ogg`

Tipo de plugin:

  codec

Tipos de arquivos suportados:

  Descrição: | Áudio Ogg Opus
  Extensões de arquivos: | `*.opus`
  Tipos MIME: | `audio/ogg`, `application/ogg`, `audio/opus`

  Descrição: | Áudio Ogg Vorbis
  Extensões de arquivos: | `*.ogg`
  Tipos MIME: | `audio/ogg`, `audio/x-ogg`, `application/x-ogg`, `audio/x-vorbis+ogg`

Metadados suportados:

  Álbum, Autor, Contato, Direitos autorais, Data, Engenheiro, Gênero, ISRC, Licença, Nome, Organização, Artista, Programa, Fonte, Assunto, Faixa, Qualidade base, Versão,

codec_wav (Codec de WAV)
codec_wav (Codec de WAV)

## codec_wav (Codec de WAV)

Nome interno:

  `codec_wav`

Tipo de plugin:

  codec

Tipos de arquivos suportados:

  Descrição: | Áudio WAV
  Extensões de arquivos: | `*.wav`
  Tipos MIME: | `audio/x-wav`, `audio/vnd.wave`, `audio/wav`

Metadados suportados:

  Álbum, Anotação, Localização do arquivo, Autor, CD, Comentários, Comissionado, Contato, Direitos autorais, Data, Engenheiro, Gênero, ISRC, Palavras-chave, Licença, Meio, Nome, Organização, Artista, Produto, Programa, Fonte, Formato da fonte, Assunto, Técnico, Faixa, Versão,

debug (Funções de depuração)
debug (Funções de depuração)

## debug (Funções de depuração)

Nome interno:

  `debug`

Tipo de plugin:

  função

Descrição:

  Fornece vários comandos internos úteis para depuração e programação no Kwave. Estas funções só estão disponíveis através do menu principal se o Kwave tiver sido compilado no modo de depuração (construído com a opção CMAKE_WITH_DEBUG).

Comandos:

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

export_k3b (Exportar como Projeto K3B)
export_k3b (Exportar como Projeto K3B)

## export_k3b (Exportar como Projeto K3B)

Nome interno:

  `export_k3b`

Tipo de plugin:

  função

Descrição:

  Salva todas as seções entre os marcadores em um arquivo separado e cria um arquivo de projeto do K3b. Depois de ter escrito com sucesso todos os arquivos, é possível iniciar o K3b e gravar o resultado em um CD de áudio. Isso é útil para dividir um arquivo com uma gravação que consiste em várias partes, separadas por rótulos, e gravá-las em um CD de áudio com várias faixas, incluindo metadados de texto do CD, extraídos das descrições dos rótulos.

  (Esse plugin está usando internamente o plugin saveblocks (Salvar em blocos).)

Parâmetros:
  `padrão`

    Um padrão que será usado para detectar título e artista no rótulo no início de uma seção. Ele suporta os seguintes curingas que serão substituídos pelo conteúdo correspondente ao criar os metadados de texto do CD:

    curinga | descrição
    --- | ---
    [%artist] | Será substituído pelo artista que realizou o bloco correspondente ou, alternativamente, pelo autor.
    [%title] | Será substituído pelo título do bloco, que é retirado do texto descritivo do rótulo no início do bloco. Se esse texto estiver vazio, ele retornará ao título do arquivo (consulte o item de informações do arquivo "Nome"). Se isso também não existir, ele retornará ao nome do arquivo base, conforme descrito acima.

    Exemplo: “`[%title] ([%artist])`” detectará o autor “`Beethoven`” e título “`Symphony No. 5`” do encadeamento “`Symphony No. 5 (Beethoven)`”.

  `apenas a seleção`

    valor | descrição
    --- | ---
    0 | Salvar todas as seções do arquivo inteiro.
    1 | Salvar apenas as seções que estão dentro da seleção atual. Se nada for selecionado, todo o arquivo será salvo.

  `arquivo do projeto`

    O nome do arquivo de projeto do K3b, que será também usado como nome base para os nomes dos arquivos exportados.

  `local de exportação`

    A localização onde os blocos devem ser salvos.

  `política de sobregravação`

    Determina onde a numeração deve começar.

    valor | descrição
    --- | ---
    0 | Sempre comece com o índice 1, com o risco de sobrescrever arquivos existentes.
    1 | Continue após o índice do índice mais alto que já existe, isso evita a substituição de arquivos existentes.

fileinfo (Informação de arquivo)
fileinfo (Informação de arquivo)

## fileinfo (Informação de arquivo)

Nome interno:

  `fileinfo`

Tipo de plugin:

  GUI

Descrição:

  Fornece uma janela para visualizar e alterar parâmetros e metadados do arquivo aberto no momento. Veja a seção Propriedades do arquivo neste manual.

goto (Ir para uma posição)
goto (Ir para uma posição)

## goto (Ir para uma posição)

Nome interno:

  `goto`

Tipo de plugin:

  função

Descrição:

  Mostra uma janela com a possibilidade de definir a posição atual da seleção para um novo valor, seja por um tempo em milissegundos, por uma posição em amostras ou por porcentagem do comprimento do arquivo atual.

Comandos:

  goto

Parâmetros:
  `modo`

    valor | descrição
    --- | ---
    0 | a posição é dada em milissegundos
    1 | a posição é dada em amostras
    2 | a posição é dada em porcentagem do tamanho do arquivo

  `posição`

    a posição para onde ir, em milissegundos, amostras ou porcentagem do tamanho do arquivo, dependendo do parâmetro`modo`.

insert_at (Inserir em)
insert_at (Inserir em)

## insert_at (Inserir em)

Nome interno:

  `insert_at`

Tipo de plugin:

  função

Descrição:

  Semelhante ao plugin goto (Ir para uma posição), mas mostra uma janela com a possibilidade de inserir o conteúdo atual da área de transferência em uma determinada posição, seja por um tempo em milissegundos, por uma posição em amostras ou por porcentagem da duração do arquivo atual.

Comandos:

  insert_at

Parâmetros:
  `modo`

    valor | descrição
    --- | ---
    0 | a posição é dada em milissegundos
    1 | a posição é dada em amostras
    2 | a posição é dada em porcentagem do tamanho do arquivo

  `posição`

    a posição onde inserir os dados da área de transferência, em milissegundos, amostras ou porcentagem do tamanho do arquivo, dependendo do parâmetro `modo`.

lowpass (Filtro Passa-Baixo)
lowpass (Filtro Passa-Baixo)

## lowpass (Filtro Passa-Baixo)

Nome interno:

  `lowpass`

Tipo de plugin:

  efeito

Descrição:

  Aplica um filtro simples de passagem de baixa frequência à seleção atual. Um filtro passa-baixo permite frequências abaixo de uma frequência de corte e filtra as frequências que estão acima.

  O filtro tem grau dois e é implementado conforme descrito no livro"The manifold joys of conformal mapping, applications to digital filtering in the studio de James A. Moorer (JAES, Vol. 31, No. 11, 1983 November).

Parâmetros:
  `frequência`

    A frequência de corte do filtro passa-baixo em Hz.

newsignal (Novo sinal)
newsignal (Novo sinal)

## newsignal (Novo sinal)

Nome interno:

  `newsignal`

Tipo de plugin:

  função

Descrição:

  Fornece uma janela para criar um novo arquivo. Consulte a seção Criando um Novo Arquivo deste manual para mais informações.

Comandos:

  newsignal,

noise (Gerador de ruído)
noise (Gerador de ruído)

## noise (Gerador de ruído)

Nome interno:

  `noise`

Tipo de plugin:

  efeito

Descrição:

  Adiciona alguma quantidade de ruído branco à seleção atual. A quantidade de ruído pode ser selecionada entre zero (nenhum ruído, o original permanece inalterado) e um (o original será substituído por 100% de ruído).

Parâmetros:
  `nível`

    O nível de ruído, sempre tem que ser um número de ponto flutuante acima de zero e abaixo ou igual a um.

  `modo`

    valor | descrição
    --- | ---
    0 | Digite o valor do ruído como porcentagem da amplitude, de 0 a 100.
    1 | Digite o ruído em decibel, de -21 dB a 0 dB.

normalize (Normalizador)
normalize (Normalizador)

## normalize (Normalizador)

Nome interno:

  `normalize`

Tipo de plugin:

  efeito

Descrição:

  Normaliza o nível de volume da seleção atual. Use isto se o volume do seu sinal estiver muito baixo ou muito alto.

  O algoritmo é retirado do projeto normalize,e foi originalmente escrito por Chris Vaill .

notch_filter (Filtro rejeita-faixa)
notch_filter (Filtro rejeita-faixa)

## notch_filter (Filtro rejeita-faixa)

Nome interno:

  `notch_filter`

Tipo de plugin:

  efeito

Descrição:

  Aplica um filtro corta-banda na seleção atual. Um filtro rejeita-faixa remove uma pequena faixa de frequências em torno de uma frequência central e permite que todas as outras frequências abaixo e acima da frequência central sejam ultrapassadas pela metade da passagem da largura de banda.

  Use-o para filtrar frequências de distorção individuais.

  O filtro tem grau dois e é baseado na implementação de Juhana Sadeharju .

Parâmetros:
  `frequência`

    A frequência central do filtro em Hz, deve ser inferior a metade da taxa de amostragem do arquivo.

  `largura de banda`

    Largura de banda do filtro em Hz.

pitch_shift (Desvio de tom)
pitch_shift (Desvio de tom)

## pitch_shift (Desvio de tom)

Nome interno:

  `pitch_shift`

Tipo de plugin:

  efeito

Descrição:

  O efeito de mudança de tom modifica o sinal alterando a velocidade do conteúdo, mas mantendo o tamanho original. Você pode selecionar a velocidade relativa por fator de 1/10 a x5 ou como uma porcentagem de 1% a 400% da velocidade original.

  Um fator de velocidade abaixo de 1.0 inclina o sinal para baixo (voz mais grave, faz as vozes parecerem mais antigas), o fator 1.0 não muda e um fator acima de 1.0 eleva o sinal (voz mais estridente, efeito Mickey Mouse).

  A implementação é baseada no trabalho de Jeff Tranter e Stefan Westerfeld

Parâmetros:
  `velocidade`

    O fator para mudar a velocidade, tem que ser um número de ponto flutuante entre 0,001 e 4,0.

  `frequência`

    A frequência usada internamente pelo filtro em Hz, tem que estar entre 2,0 e 10,0.

  `modo`

    valor | descrição
    --- | ---
    0 | Digite o valor da velocidade como fator de 1/10 a x5.
    1 | Digite o valor da velocidade como porcentagem de 1 a 400.

playback (Reprodução)
playback (Reprodução)

## playback (Reprodução)

Nome interno:

  `playback`

Tipo de plugin:

  função

Descrição:

  Fornece uma janela para configurar os parâmetros de reprodução. Consulte a seção Reprodução neste manual para mais informações

Parâmetros:
  `método de reprodução`

    O método usado para reprodução, consulte `PlayBackParam.h`.

  `dispositivo de reprodução`

    Uma cadeia de caracteres que determina o dispositivo de reprodução ou canal. O significado depende do método de reprodução.

  `canais`

    O número de canais a serem usados para reprodução atualmente suporta apenas 1 (mono) ou 2 (estéreo).

  `bits por amostra`

    O número de bits por amostra para reprodução deve ser 8, 16, 24 ou 32. Dependendo do método de reprodução e do dispositivo de reprodução.

  `tamanho do buffer`

    Determina o tamanho do buffer de reprodução, usado como expoente para calcular o tamanho do buffer real como 2^n, por exemplo definindo isso para 16 resulta em um tamanho de buffer de 2^16 = 64 kB.

record (Gravar)
record (Gravar)

## record (Gravar)

Nome interno:

  `record`

Tipo de plugin:

  função

Descrição:

  Fornece uma janela para configurar os parâmetros de registro e fazer uma gravação. Consulte a seção Gravando neste manual para mais informação.

Parâmetros:
  `método de gravação`

    O método usado para gravação, consulte `RecordParams.h`.

  `pré-gravação habilitada`

    Habilitar/desabilitar a pré-gravação (1 se habilitado, 0 se desabilitado).

  `tempo de pré-gravação`

    Número de segundos para pré-gravação.

  `limite do tempo de gravação`

    Habilitar/desabilitar a limitação do tempo de gravação (1 se for limitado, 0 se não for limitado).

  `tempo de gravação`

    Duração da gravação em segundos.

  `use o horário de início`

    Habilitar/desabilitar hora de início (1 se usada, 0 se não usada)

  `horário de início`

    Data/hora de início da gravação, no formato ISO.

  `usar o nível de acionamento`

    Habilitar/desabilitar o nível de acionamento

  `nível de gatilho`

    Nível de gatilho em porcentagem

  `dispositivo de gravação`

    Uma cadeia de caracteres que determina o dispositivo de gravação.

  `canais`

    O número de canais a serem usados na gravação.

  `taxa de amostragem`

    Taxa de amostragem em amostras por segundo.

  `compressão`

    Compressão a ser usada no armazenamento de amostras.

  `formato da amostra`

    Exemplo de formato a ser usado para armazenar amostras, veja a seção sobre formatos de amostra.

  `bits por amostra`

    O número de bits por amostra para gravação deve ser 8, 16, 24 ou 32.

  `contagem de buffer`

    Determina o número de buffers usados para gravação.

  `tamanho do buffer`

    Determina o tamanho do buffer de gravação, usado como expoente para calcular o tamanho real do buffer como 2^n, por exemplo definindo isso como 16, dá um tamanho de buffer de 2^16 = 64 kB.

Parâmetros alternativos:
  `modo direto do plugin gravar`

    Pode ser usado como um único parâmetro para configurar o plugin. Os seguintes valores são possíveis:

    valor | descrição
    --- | ---
    formato | Abre uma janela de gravação e seleciona a aba Formatar.
    fonte | Abre a janela de gravação e seleciona a aba Fonte.
    iniciar | Abre a janela de gravação e inicia a gravação diretamente.

reverse (Inverter)
reverse (Inverter)

## reverse (Inverter)

Nome interno:

  `reverse`

Tipo de plugin:

  efeito

Descrição:

  Esse efeito simples inverte o conteúdo da seleção atual.

samplerate (Conversão de taxas de amostragem)
samplerate (Conversão de taxas de amostragem)

## samplerate (Conversão de taxas de amostragem)

Nome interno:

  `samplerate`

Tipo de plugin:

  efeito

Descrição:

  Altera a taxa de amostragem da seleção atual ou do sinal inteiro.

Parâmetros:
  `nova taxa`

    A nova taxa de amostragem em amostras por segundo (valor de ponto flutuante).

  `modo` (opcional)

    Se este parâmetro for usado e configurado para o valor "`all`", este efeito será aplicado ao sinal inteiro. Caso contrário, será aplicado apenas à seleção atual.

saveblocks (Salvar em blocos)
saveblocks (Salvar em blocos)

## saveblocks (Salvar em blocos)

Nome interno:

  `saveblocks`

Tipo de plugin:

  função

Descrição:

  Salva todas as seções entre os marcadores, cada um em um arquivo separado. Cada arquivo recebe um nome que poderá ser personalizado usando um padrão que poderá conter o nome do arquivo original, um índice e o número de seções.

  Também é permitido que o padrão de nome de arquivo contenha barras como separadores de caminho, o que permite salvar as seções em subpastas diferentes. Observe que todos os caracteres de espaço em branco em torno desses separadores de caminho são removidos silenciosamente, para evitar a criação de nomes de pasta que iniciam ou terminam com um espaço em branco.

Parâmetros:
  `padrão`

    Um padrão que será usado para criar os nomes dos arquivos. Poderá conter os curingas a seguir, que serão substituídos pelo conteúdo correspondente ao criar o nome do arquivo final:

    curinga | descrição
    --- | ---
    [%nr] | Será substituído pelo índice atual do arquivo ao salvar.
    [%count] | Será substituído pelo número de seções que serão salvas.
    [%total] | Será substituído pelo índice do último arquivo a ser salvo.
    [%filename] | Será substituído pelo nome do arquivo base, sem caminho e sem extensão.
    [%fileinfo{`palavra-chave`}] | Será substituído pelo conteúdo de uma informação de arquivo identificada pela `palavra-chave`. Consulte a seção Informações de arquivo para obter uma lista de todas as palavras-chave disponíveis.
    [%title] | Será substituído pelo título do bloco, que é retirado do texto descritivo do rótulo no início do bloco. Se esse texto estiver vazio, ele retornará ao título do arquivo (consulte o item de informações do arquivo "Nome"). Se isso também não existir, ele retornará ao nome do arquivo base, conforme descrito acima.

    Todos os curingas numéricos também podem conter um argumento numérico após o "`%`" e o identificador, para forçar um determinado número de dígitos. Se o número for precedido por um `0`, o resultado conterá zeros à esquerda, caso contrário, ele conterá os espaços iniciais.

    Exemplo: `[%04nr]` produz um número entre 0001 e 9999.

  `modo de numeração`

    Determina onde a numeração deve começar.

    valor | descrição
    --- | ---
    0 | Continue após o índice do índice mais alto que já existe, isso evita a substituição de arquivos existentes.
    1 | Sempre comece com o índice 1, com o risco de sobrescrever arquivos existentes.

  `extensão`

    A extensão do nome do arquivo a ser usada para os blocos salvos. Isso determina qual codificação será usada.

  `local de exportação`

    Local para exportar os blocos salvos.

  `apenas a seleção`

    valor | descrição
    --- | ---
    0 | Salvar todas as seções do arquivo inteiro.
    1 | Salvar apenas as seções que estão dentro da seleção atual. Se nada for selecionado, todo o arquivo será salvo.

selectrange (Selecionar intervalos)
selectrange (Selecionar intervalos)

## selectrange (Selecionar intervalos)

Nome interno:

  `selectrange`

Tipo de plugin:

  função

Descrição:

  Mostra uma janela para selecionar um intervalo de amostras. O início e o tamanho da seleção podem ser definidos por um tempo em milissegundos, em amostras ou como uma porcentagem do comprimento total do arquivo.

Parâmetros:
  `modo de início`

    Determina as unidades nas quais o start da seleção será dado.

    valor | descrição
    --- | ---
    0 | milissegundos
    1 | amostras
    2 | porcentagem do tamanho do arquivo

  `modo de intervalo`

    Determina as unidades nas quais o tamanho da seleção será dado. Veja a descrição do parâmetro `modo de início` para uma lista de possíveis valores.

  `início`

    O início da seleção, em milissegundos, amostras ou porcentagem do tamanho do arquivo, depende do parâmetro `modo de intervalo`.

  `tamanho`

    O tamanho da seleção, em milissegundos, amostras ou porcentagem do comprimento do arquivo, dependendo do parâmetro `modo de intervalo`.

sonagram (Sonagrama)
sonagram (Sonagrama)

## sonagram (Sonagrama)

Nome interno:

  `sonagram`

Tipo de plugin:

  função

Descrição:

  Avalia a seleção atual gerando um sonagrama. Um sonograma é uma avaliação de um sinal ao longo do tempo (eixo x), frequência (eixo y) e intensidade (cor).

Parâmetros:
  `Pontos FFT`

    Número de pontos FFT, um número inteiro entre 4 e 32767 que determina a resolução da frequência.

  `função de janela`

    Função de janela usada para o cálculo FFT, os valores suportados são:

    valor | descrição
    --- | ---
    nenhuma | sem função de janela
    hamming | Janela de Hamming
    hanning | Janela de Hanning
    blackman | Janela de Blackman
    triangular | Janela triangular

  `usar cores`

    Se definido como diferente de zero, usa cores para intensidade, se definido como zero, usa escalas de cinza.

  `alterações de faixa`

    Se definido como diferente de zero, o sonograma será atualizado quando a área avaliada for alterada. Se definido como zero, nunca será atualizado.

  `seguir a seleção`

    Ainda não implementado, use zero para este parâmetro.

stringenter (Digitar comando)
stringenter (Digitar comando)

## stringenter (Digitar comando)

Nome interno:

  `stringenter`

Tipo de plugin:

  função

Descrição:

  Uma pequena janela que permite inserir um comando de texto do Kwave. Consulte o capítulo Referência de comandosneste manual.

Parâmetros:
  `Predefinição` (optional)

    Um texto que é mostrado no campo de edição ao entrar na janela. Este parâmetro é opcional, se omitido, o campo de edição da janela estará vazio no início.

volume (Volume)
volume (Volume)

## volume (Volume)

Nome interno:

  `volume`

Tipo de plugin:

  efeito

Descrição:

  Com este plugin você pode alterar o volume da seleção atual por um fator constante. A caixa de diálogo correspondente permite inserir este fator como fator numérico dado o valor de ponto flutuante entre 0.10 e 10.0, para uma porcentagem entre 1 e 1000, ou em decibel entre -21 e +21.

  Use um fator acima de 1.0 (ou porcentagem acima de 100 ou mais de 0 dB) se o arquivo estiver muito silencioso, ou um fator abaixo de 1.0 (porcentagem abaixo de 100 ou menor que 0 dB) se o arquivo estiver muito alto.

Parâmetros:
  `fator`

    Um valor de ponto flutuante com o fator de amplificação.

  `modo`

    valor | descrição
    --- | ---
    0 | fator
    1 | porcentagem
    1 | decibel

zero (Gerador de zeros)
zero (Gerador de zeros)

## zero (Gerador de zeros)

Nome interno:

  `zero`

Tipo de plugin:

  efeito

Descrição:

  Este plugin tem dois modos de operação. Se usado sem parâmetros, apaga a seleção atual, sobrescrevendo-a com silêncio. Quando usado com dois parâmetros, ele insere uma certa quantidade de silêncio no início da seleção atual.

Parâmetros:
  `modo de duração`

    Determina as unidades em que a duração do silêncio inserido será dado.

    valor | descrição
    --- | ---
    0 | milissegundos
    1 | amostras
    2 | porcentagem do tamanho do arquivo

  `tamanho`

    Duração do silêncio para inserir, em milissegundos, amostras ou porcentagem da duração do arquivo, dependendo do `modo de duração`do parâmetro.

Capítulo 6. Perguntas e respostas
Perguntas e respostas

# Capítulo 6. Perguntas e respostas

6.1. O que preciso para compilar o Kwave?
6.2. Quais são as placas de som que o Kwave suporta?
6.3. Por que o Kwave consome mais memória do que se pode esperar do tamanho do arquivo aberto?
6.4. Quais formatos de som o Kwave suporta?
6.5. E se eu tiver arquivos com um formato não suportado pelo Kwave?
6.6. Por que recebo avisos de erros quando quero fazer a reprodução?
6.7. A reprodução parece fazer alguma coisa, por que não ouço nada?
6.8. Por que alguns arquivos são reproduzidos com meia velocidade?
6.9. Por que a reprodução às vezes é perturbada e interrompida?
6.10. Por que a reprodução não para se eu pressionar imediatamente o botão Parar?
6.11. O ALSA é suportado?
6.12. E quanto à reprodução com 18, 20, 24 ou 32 bits por amostra ou mais de dois canais?

6.1. | O que preciso para compilar o Kwave?
| Leia no documentação do desenvolvedor.
6.2. | Quais são as placas de som que o Kwave suporta?
| O Kwave não precisa de suporte para nenhuma placa de som em especial. A placa de som só tem de ser suportada pelo seu sistema operacional, o Kwave usa sua interface de som do sistema operacional por meio de uma conexão com o ALSA, PulseAudio, Qt ou OSS.
6.3. | Por que o Kwave consome mais memória do que se pode esperar do tamanho do arquivo aberto?
| A razão para isto é que o Kwave armazena internamente todas as amostras em inteiros de 32 bits. Isso foi fácil de programar, tornou o aplicativo mais rápido e um pouco mais confiável. Portanto, se você carregar um arquivo de 8 bits com cerca de um megabyte, ele consumirá cerca de quatro megabytes. Talvez possamos mudar isso no futuro...
6.4. | Quais formatos de som o Kwave suporta?
| O Kwave atualmente suporta arquivos .wav com 8, 16 e 24 bits por amostra, com qualquer número de canais (claro, incluindo mono e estéreo). Além disso, pode importar todos os tipos de arquivos que o libaudiofile suporta e alguns outros formatos como Ogg/Vorbis e MP3.
6.5. | E se eu tiver arquivos com um formato não suportado pelo Kwave?
| Se você tiver que trabalhar em um formato diferente, poderá convertê-lo no formato .wav. Um bom conjunto de ferramentas para isso está no pacote SoX, elas também possuem uma boa documentação!
6.6. | Por que recebo avisos de erros quando quero fazer a reprodução?

Talvez você tenha escolhido uma combinação de taxa de reprodução e tamanho de amostra que não é suportada pelo seu driver de som e/ou hardware de som. Tente reproduzir com 8 bits por amostra e mono primeiro, isso sempre funciona. Em seguida, tente aumentar os bits por amostra e a reprodução estéreo passo a passo. Note que algumas taxas de reprodução não são suportadas por alguns hardwares de som.

6.7. | A reprodução parece fazer alguma coisa, por que não ouço nada?
| Talvez você tenha esquecido de aumentar o volume do canal de reprodução. O Kwave não é responsável por alterar o volume de reprodução.
6.8. | Por que alguns arquivos são reproduzidos com meia velocidade?
| Tente escolher um dispositivo de reprodução de som diferente.
6.9. | Por que a reprodução às vezes é perturbada e interrompida?
| Você deve aumentar o tamanho do buffer de reprodução para obter uma reprodução "mais suave" (isso também faz com que o controle de reprodução reaja um pouco mais devagar).
6.10. | Por que a reprodução não para se eu pressionar imediatamente o botão Parar?
| A razão para isto é que o driver de som já recebeu alguns dados de reprodução do Kwave no momento em que você pressiona o botão Parar. Diminua o tamanho do buffer de reprodução e ele deve reagir mais rápido (mas torna as interrupções mais prováveis).
6.11. | O ALSA é suportado?
| Sim, desde a v0.7.4 para reprodução e gravação
6.12. | E quanto à reprodução com 18, 20, 24 ou 32 bits por amostra ou mais de dois canais?
| Isso é possível através da interface do ALSA, desde a v0.7.4.

Capítulo 7. Créditos e Licença
Créditos e Licença

# Capítulo 7. Créditos e Licença

Kwave

Programa com direitos autorais 1998-2000 de Martin Wilz `(martin AT wilz.de)`

Programa com direitos autorais desde 2000 de Thomas Eschenbacher `(thomas.eschenbacher AT gmx.de)`

Para uma lista completa de autores e licenças de todos os arquivos, consulte o arquivo `LICENSES` incluído nas fontes. Existe também um arquivo com o nome `AUTHORS` que lista todos os autores e contribuidores do Kwave.

Documentação com direitos autorais (C) 2020 Thomas Eschenbacher `(thomas.eschenbacher AT gmx.de)`

Documentação com direitos autorais (C) 2024 Mark Penner `(mrp AT markpenner.space)`

Tradução de André Marcelo Alvarenga `(alvarenga AT kde.org)`

Tradução de Bianca Oliveira `(kbiancasol AT gmail.com)`

Esta documentação é licenciada sob os termos da Licença de Documentação Livre GNU.

Este programa é licenciado sob os termos da Licença Pública Geral GNU.

## Autores Principais

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

  Criador do projeto, atividade de desenvolvimento 1998-2000

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

  Mantenedor desde 2000, desenvolvimento do núcleo

Contribuições importantes
Contribuições importantes

## Contribuições importantes

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

  Pacotes Debian, patches

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

  Tradução para espanhol

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

  Plugin filtro corta-banda

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

  Traduções para o francês, tela de apresentação, teste de versões beta

- Mark Penner `(mrp AT markpenner.space)`

  desenvolvimento

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

  Tradução para o tcheco

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

  Plugin Ajuda/Sobre

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

  Site, tradução para o alemão

Pequenas contribuições, detentores de direitos autorais e outros
Pequenas contribuições, detentores de direitos autorais e outros

## Pequenas contribuições, detentores de direitos autorais e outros

- Bertrand Songis `(bsongis AT gmail.com)` [histórico]

  Correções da tradução para o francês, substituições de código patenteado da libaudiofile, erro 419124 da Debian

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

  svn r2163, correção da detecção da libaudiofile

- Chris Vaill `(chrisvaill AT gmail)`

  base de código para o plugin normalização

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

  cmake/FindAlsa.cmake

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

  Pacotes para o Crux Linux

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

  K3AboutContainer, base do KwaveAboutContainer

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

  Tema de ícones Crystal http://www.everaldo.com/crystal/

- Jaroslav Kysela

  partes de plugins/playback/PlayBack-ALSA.cpp

- Jeff Tranter

  Partes de 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, correção do erro #288781 da Debian, compilação para amd64

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

  Alguns ícones e imagens para a barra de ferramentas e GUI

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

  Classe matricial

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

  cmake/FindAlsa.cmake

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

  cmake/FindOggVorbis.cmake

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

  Medidor de nível

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

  Partes de 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)`

  partes de plugins/export_k3b/K3BExportPlugin.cpp

Agradecimentos a
Agradecimentos a

## Agradecimentos a

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

  Testadores de versões beta

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

  Empacotador para SuSE Linux

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

  Empacotador para Arch Linux

- T.H.F. Klok e Cedric Tefft

  Mantenedores da biblioteca id3lib

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

  Autor da biblioteca de decodificação MP3 mad

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

  Empacotador para Mandrake / X86_64

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

  Autor da biblioteca de arquivo snd

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

  autor da biblioteca de arquivos de áudio

Apêndice A. Informações de arquivo
Informações de arquivo

# Apêndice A. Informações de arquivo

Tabela A.1. Lista de identificadores de informação dos arquivos

Palavra-chave |  | Descrição
--- | --- | ---
Álbum |  | Nome do álbum, caso a fonte seja um álbum composto de mais mídias.
Anotação |  | Fornece comentários gerais sobre o arquivo ou o assunto do arquivo. Se o comentário tiver várias frases, finalize cada frase com um período. Não inclua caracteres de nova linha!
Localização do arquivamento |  | Indica onde o assunto do arquivo fica arquivado.
Autor |  | Identifica o nome do autor do assunto original do arquivo. Exemplo: “van Beethoven, Ludwig”
Menor taxa de bits |  | Indica o limite inferior em uma transmissão de bits VBR.
Modo da taxa de bits |  | Modo da taxa de bits (ABR, VBR, CBR, etc.)
Taxa de bits |  | Taxa de bits nominal da transmissão de áudio em bits por segundo
Maior taxa de bits |  | Especifica o limite superior em uma transmissão de bits VBR.
Bits por amostra |  | Especifica o número de bits por amostra.
CD |  | Número do CD, caso a fonte seja um álbum composto por vários CD-ROMs
CDs |  | Número dos CDs, se a origem é um álbum composto por vários CD-ROMs
Comissionado |  | Indica o nome da pessoa ou organização que comissionou o assunto do arquivo.
Comentários |  | Fornece comentários gerais sobre o arquivo ou o assunto do arquivo. Se o comentário tiver várias frases, finalize cada frase com um período. Não inclua caracteres de nova linha!
Compressão |  | Define um modo de compressão dos dados do áudio para reduzir o espaço em disco.
Contato |  | A informação de contato dos criadores ou distribuidores da faixa. Pode ser uma URL, um endereço de e-mail ou o endereço físico da editora ou produtora.
Direitos autorais |  | Registra a informação de direitos autorais (copyright) do arquivo. Se existirem vários copyrights, separe-os com ponto e vírgula, seguido de um espaço. Exemplo: “Direitos autorais da Comunidade Linux 2002”
Com direitos autorais |  | Indica se o arquivo está ou não protegido por direitos autorais.
Data |  | Especifique a data de criação do assunto do arquivo. Exemplo: “24/12/2001”
Engenheiro |  | Mostra o nome do engenheiro que trabalhou no arquivo. Se existirem vários engenheiros, separe os nomes com ponto e vírgula e um espaço em branco.
Duração estimada |  | Duração estimada do arquivo em amostras
Nome do arquivo |  | Nome do arquivo aberto
Tamanho do arquivo |  | Tamanho do arquivo em bytes
Gênero |  | Descreve o gênero ou estilo do trabalho original. Exemplos: “clássica”, “pop”
ISRC |  | Número ISRC da faixa; veja a página de introdução do ISRC para obter mais informações sobre números ISRC. http://isrc.ifpi.org/
Palavras-chave |  | Fornece uma lista de palavras-chave relacionadas ao arquivo ou assunto do arquivo.
Rótulos |  | Lista de rótulos/marcadores.
Duração |  | Duração do arquivo em amostras.
Licença |  | Informação sobre licença, por exemplo, “Todos os direitos reservados”, “Qualquer uso permitido”, uma URL para uma licença ou a Atribuição-CompartilhaIgual 4.0 Internacional (“ distribuído sob os termos da licença Atribuição-CompartilhaIgual 4.0 Internacional. Consulte https://creativecommons.org/licenses/by-sa/4.0/ para detalhes”), etc.
Meio |  | Descreve o assunto original do arquivo, onde foi gravado pela primeira vez.Exemplo: “orquestra”
Tipo MIME |  | Tipo MIME do formato de arquivo
Ênfase |  | Modo de ênfase de áudio
Camada |  | Camada MPEG, I, II ou III
Extensão de modo |  | Extensão do modo MPEG (apenas se Joint stereo)
Versão |  | Versão MPEG, 1, 2 ou 2.5
Nome |  | Armazena o título do assunto do arquivo. Exemplo: “Sinfonia No.6, Op.68 "Pastoral"”
Tamanho do quadro Opus |  | Tamanho do quadro Opus em ms (os valores suportados são 2.5, 5, 10, 20, 40, ou 60 ms)
Organização |  | Nome da organização que produziu a faixa (i.e. a “gravadora”)
Original |  | Indica se o arquivo é original ou uma cópia
Artista |  | O/a artista(s) que apresenta a obra. Na música clássica, estes seriam os condutores, orquestra, solistas. Em um livro em áudio, seria o ator que fez a leitura.
Privado |  | Indica se o assunto é privado
Produto |  | Especifica o nome ou título para o qual o arquivo foi originalmente destinado.Exemplo: “Coleção de áudio do Linux”
Formato de amostra |  | Formato usado para armazenamento das amostras de áudio digitalizadas. Exemplo:“Ponto flutuante IEEE de 32 bits”
Taxa de amostragem |  | Número de amostras por segundo
Programa |  | Identifica o nome do pacote de software usado para criar o arquivo. Exemplo: “Kwave v0.6.4-1”
Fonte |  | Identifica o nome da pessoa ou organização que forneceu o assunto original do arquivo. Exemplo: “Pesquisa sonora caótica”
Formato da fonte |  | Identifica a forma original do material que foi digitalizado. Exemplos: “Gravação/Vinil/90RPM”, “Áudio DAT”, “fita/CrO2/60min”
Assunto |  | Descreve o assunto do arquivo. Exemplo: “Vozes de pássaros no início da manhã”
Técnico |  | Identifica o técnico que digitalizou o assunto do arquivo. Exemplo: “Torvalds, Linus”
Faixa |  | Faixa do CD se a fonte for um CD-ROM.
Faixas |  | Número de faixas do CD se a fonte for um CD-ROM.
Canais |  | Especifica o número de canais do sinal.
Qualidade base |  | Qualidade base da compressão no modo VBR
Versão |  | Pode ser usado para diferenciar várias versões do mesmo título de faixa em uma única coletânea. (por exemplo informação do remix)