Как захватить аудио ...

Тема в разделе "Библиотеки и интерфейсы", создана пользователем Andrei, 20 апр 2018.

  1. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Как средствами WinAPI захватить аудио с линейного входа ?
    И передать на вход FFT library ?
     
  2. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Множество способов:
    Через WaveIn-функции;
    Через DirectSound;
    Через MCI;
    Через Core Audio APIs.
    Какой ЯП?
     
  3. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Нужно сделать захват аудио, скормить библиотеке FFTW, и на экране вывести спектр.
    ЯП BASIC.(уровень школы)
    Не понимаю как передать семплы библиотеке, через буфер ?
     
    Последнее редактирование: 20 апр 2018
  4. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ну в смысле аудио поток он же синхронный, семплы сыпятся в зависимости от частоты дискретизации, тут прерывание от звуковушки нужно отслеживать ?

    ЯП BASIC, причем чем больше я в это вникаю, тем меньше понимаю )
    Как говорится чем дальше в лес тем толще партизаны )
     
  5. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Может кто нибудь пример написать, ЯП С,

    1.инициализация библиотеки (количество отсчетов, разрешение)
    2.передача данных в библиотеку (от звуковой карты)
    3.запись выходных данных в двухмерный массив

    Обновлять данные в выходном массиве каждые 0,1 сек
    В выходном массиве данные уровень, частота
     
    Последнее редактирование: 20 апр 2018
  6. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Для VB6 (BASIC) https://wasm.in/threads/instrumenty-gotovye-moduli-poleznye-kody.31733/#post-383270 там же есть и другие примеры работы с аудио.

    В зависимости от средств. К примеру в WaveIn функциях создаешь несколько буферов и отправляешь их системе, когда буфер заполнится система его возвращает, после обработки обратно отправляешь его драйверу. В DirectSound создается один круговой буфер и ставятся уведомления. При получении уведомления срабатывает событие и можно часть буфера грабить.
     
  7. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Мдя это я пока никак не осилю (
     
  8. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Нужно с простого начинать )
    1. Программа которая принимает семплы, один за одним ... как будет выглядеть ? С\C++
     
  9. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ну хочу я вот светомузыку сделать, мне нужно выделить уровень басов, средних и высоких.
    Три канала
    0 -200 Гц Басы
    300 -1000 Гц Средние
    1000++ Гц Высокие
     
  10. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Не не дорос я еще до этого , не понимаю ....
     
  11. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    https://wasm.in/threads/gotovye-proekty-na-vb6.31728/#post-383200
    Вот подобное с FFT. Если у тебя просто 3 канала, то проще сделать фильтрами, а не FFT.
     
    Andrei нравится это.
  12. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ок, пойду смотреть ...,
     
  13. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    А Вы можете, подсказать как реализовать простейшую программу SDR radio,
    На входе сигнал со сдвигом 90 градусов ????
    Именно на примитивном уровне ...,чтоб понять можно было
     
  14. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
  15. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Есть много программ и много с открытым кодом, например вот это
    http://www.hdsdr.de
    Там смысл вот в чем, на вход звуковой карты подаётся сигнал со сдвигом 90 градусов.
    В программе происходит обработка , сложение сигналов определенным образом...

    Интересует простейший вариант этих программ, вот алгоритм обработки входного сигнала
    http://www.cqham.ru/forum/attachment.php?attachmentid=94231&d=1319297111
    http://www.cqham.ru/forum/showthrea...4%E5%EC%EE%E4%F3%EB%FF%F6%E8%E8-%E4%EB%FF-SDR
     
    Последнее редактирование: 21 апр 2018
  16. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    На вход звуковой карты два сигнала I,Q(левый, правый каналы), и после преобразования на выход (колонки).
     
  17. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ладно упростим,
    I=канал 1+канал2, сдвиг 90 градусов
    Q=канал 1+канал2
    out=I+Q
     
  18. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ладно упростим еще больше

    1. Форма с кнопкой.
    2. Кнока нажата
    I=канал 1+канал2;
    Q=канал 1+канал2;
    out=I+Q (моно)
    3.Кнопка не нажата вх идет на выход как есть без изменений

    С\С++

    Можь кто нить накидает ?