|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как считать стерео-сигнал
Помогите пожалуйста. Мне необходимо считать стерео сигнал с микрофона и обрабатывать каждый канал независимо друг от друга.
Вот кусок кода моей программы, она обрабатывает моно сигнал: Код:
procedure TForm1.BitBtn1Click(Sender: TObject); var header: TWaveFormatEx; BufLen: word; buf: pointer; begin z:= StrToInt(Edit1.Text); BufSize := 400; { Размер буфера } with header do begin wFormatTag := WAVE_FORMAT_PCM; nChannels := 1; { количество каналов } nSamplesPerSec := 44100; { частота } wBitsPerSample := 16; { 8 / 16 бит } nBlockAlign := nChannels * (wBitsPerSample div 8); nAvgBytesPerSec := nSamplesPerSec * nBlockAlign; cbSize := 0; end; WaveInOpen(Addr(WaveIn), WAVE_MAPPER, addr(header), Form1.Handle, 0, CALLBACK_WINDOW); BufLen := header.nBlockAlign * BufSize; hBuf := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, BufLen); Buf := GlobalLock(hBuf); with BufHead do begin lpData := Buf; dwBufferLength := BufLen; dwFlags := WHDR_BEGINLOOP; end; WaveInPrepareHeader(WaveIn, Addr(BufHead), sizeof(BufHead)); WaveInAddBuffer(WaveIn, addr(BufHead), sizeof(BufHead)); GetMem(p, BufSize * sizeof(TPoint)); stop := true; WaveInStart(WaveIn); end; Если я поставлю nChannels := 2, то я так понял стересигнал будет микшироваться, а мне нужно отдельно каждый сигнал обрабатывать в параллельных процессах. Как это сделать? Последний раз редактировалось Admin, 16.03.2011 в 15:21. |
#2
|
|||
|
|||
Цитата:
У тебя поступающий сигнал что левый что правый канал одно и тоже получится... Хочешь обрабатывать их отдельно? Тогда копируй Моно с микрофона в Л и П стерео каналы (которые самому надо создавать), только при помещении его в каналы громкость звука дели на 2... Последний раз редактировалось Janom, 25.03.2011 в 10:50. |
#3
|
||||
|
||||
Моя сильно хочет увидить стерео микрофон.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |