Como lidar com a entrada de áudio ao vivo, processar e redirecionar para a saída de áudio

1

Eu estou querendo saber como eu posso obter a entrada de áudio de um jack, processá-lo amostra por amostra e, em seguida, enviar a amostra processada para uma tomada de saída de áudio. Meu plano é executar isso em um pi de framboesa com uma placa de som USB para fazer um pedal de guitarra.

Se houver alguma biblioteca disponível que possa fazer isso (e me deixe livre para controlar o que está no meio) isso seria ótimo. De preferência em python, mas o C / C ++ também não seria tão ruim.

Onde eu começo?

EDITAR: Quando eu digo "processo" eu quero manipular os valores de amostra conforme eles entram, então envie esse mesmo valor (ou um buffer deles) para o conector "out". Basicamente, no pseudo-código:

double sample = input_jack.read();
sample *= 2;  //apply a gain of 2
output_jack.write(sample);
    
por dudeofea 06.12.2013 / 04:03

1 resposta

1

O aplicativo que acredito que você está procurando é chamado de JACK .

trecho

Have you ever wanted to take the audio output of one piece of software and send it to another? How about taking the output of that same program and send it to two others, then record the result in the first program? Or maybe you're a programmer who writes real-time audio and music applications and who is looking for a cross-platform API that enables not only device sharing but also inter-application audio routing, and is incredibly easy to learn and use? If so, JACK may be what you've been looking for.

JACK is system for handling real-time, low latency audio (and MIDI). It runs on GNU/Linux, Solaris, FreeBSD, OS X and Windows (and can be ported to other POSIX-conformant platforms). It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (ie. as normal applications), or can they can run within the JACK server (ie. as a "plugin"). JACK also has support for distributing audio processing across a network, both fast & reliable LANs as well as slower, less reliable WANs.

JACK was designed from the ground up for professional audio work, and its design focuses on two key areas: synchronous execution of all clients, and low latency operation. More background information is available.

Eu daria uma olhada na lista de aplicativos que você pode usar com o JACK, e escolher um que se parece com o que você está procurando. Você pode dar uma olhada em todos esses aplicativos compatíveis com JACK nesta lista:

por 06.12.2013 / 05:40

Tags