Q:

Преобразование звука

Как известно в линукс есть консольные прогарммы aplay и arecord
чтобы проиграть звук с микрофона на колонки нужно ввести:

arecord | aplay

но я хочу добавить эффект дисторшн в эту конструкцию, чтобы было примерно так:
arecord | distort | aplay

Чтобы можно было например на вход подключить электрогитару ну или просто побаловаться.
Так вот мой вопрос вот в чем: Что мне нужно почитать и что изучить, чтобы я мог написать этот самый distortion?

A:

Ну, вообще для начала нужно прочитать руководство по командам arecord и aplay. Из него мы узнаем, что по умолчанию они используют формат WAVE. Остается только понять сам формат данных и можно писать утилиту.
Также стоит упомянуть, что нужно научиться работать со стандартным вводом и выводом. Но это должно быть достаточно просто.

A:

#include<stdio.h>

int main()
{
  int c, i;
  for ( i = 0; i <= 245; i++)
  {
    c = getchar();
    printf("%c", c);
  }
  while (c != EOF)
  {
    c = getchar();
    if (c <= 198)
       printf("%c", 198);
    else if (c >= 205)
       printf("%c", 205);
    else
       printf("%c", c);
  }
  return 0;
}

это код, который получился у меня. просто сконвертировать файл можно таким образом: 
./dist < file1.wav > file2.wav

