На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование звука"
0) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с записью, обработкой, воспроизведением звука. Перед созданием темы подумайте, не будет ли она уместнее в разделах Разработка и тестирование программ, Наши исходники, а особенно Разовые заказы и подработки
1) На Раздел распространяются все Правила форума.Огромная просьба с ними внимательно ознакомиться.
2) Запрещается давать бессмысленные ответы вроде: "Снеси Мастдай", "ХП рулит", "Поставь Линукс" и т.д.
3) Запрещается создавать темы, в которых Вы намереваетесь получить ссылку на кряки, серийники и т.п. Также запрещено любое обсуждение p2p (peer-to-peer) сетей (BitTorrent, eDonkey и т.д.).
4) Реклама всякого рода пресекается беспощадно.
5) Используйте тэг [CODE] для выделения кода программы (непременно с указанием языка программирования - выбрать из списка. В противном случае бессмысленно!). Уважайте тех, кто будет читать ваш код!
6) Если решение вашей проблемы найдено, то не забываем помечать тему специальной функцией "Вопрос решён". Вам всего лишь требуется при написании последнего ответа поставить одну единственную галочку прямо над формой ответа.
7) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе

8) Если не прикрепляются/не скачиваются файлы, читаем Не прикрепляется / не скачивается файл. Любые обсуждения в данном разделе проблем с приложением файлов считаются оффтопиком! Со всеми вытекающими.

9) NEW! Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно. Попытки накрутки количества тематических сообщений за счёт поднятия древних неактуальных тем ("некрофилия") будут наказываться по велению левой пятки модераторского состава (см. пп.12, 13 Правил)



Нарушение Правил может повлечь наказание со стороны модераторов.



user posted imageFAQ Раздела user posted imageПоиск в Разделе user posted imageMSDN Library Online | Ваше мнение о модераторах: user posted imageBarazuk user posted imageRikkie
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Одновременное работа микрофона и воспроизведение
    Цитата Jin X @
    + обработанный с задержкой

    задержку я даже не различаю (всё таки комп не пентиум) Если посмотреть на структурную схему которую я выложил, этой задержки в принципе не должно быть, там в принципе нет того чтобы сигнал задерживался, само определение микшер - просто смешивание сигналов. Но вот если между приёмом сигнала и выводом вставить обработку эта задержка уже существенная, а в одном приложении просто огромная.
    Сообщение отредактировано: Ivan123 -
      Цитата Jin X @
      Получается, что вы слышите свой голос одновременно с тем, как говорите + обработанный с задержкой.
      Скорее всего, это какая-то аппаратная ерунда. Возможно, дефект на карте. Потому что программно вывести записанный звук без задержки не может даже система. Без задержек можно вывести только используя ASIO. Даже если вы поставите галочку "прослушивать звук", он будет звучать не сразу, попробуйте.

      Пробовал, на нормальных звуковых картах звук идёт напрямую без всяких задержек. Задержка есть на запись.
      ASIO - не панацея, это просто сокращает количество промежуточных этапов, даёт ПО более короткий доступ к оборудованию, задержки уменьшаются, но они остаются и зависят от быстродействия CPU и RAM, что о многом говорит.
      Вот системный микшер в Windows XP:
      user posted image

      Да, в более новых Windows микшер убили, но до этих настроек добраться можно.
      На "Master Volume" я спокойно управляю прохождением сигналов со входов звучки на выход.
      На "Recording Control" я так же спокойно выбираю источник записи и выставляю его уровень НЕЗАВИСИМО от уровня прохождения на выход.
      Далее любые программы записи, хоть Фонограф, пишут звук с указанного источника, при этом воспроизведение работает, на выход проходит только выбранное.
      Такие программы, как Скайп и т. п. могут сами лезть в микшер и делать нужные настройки, используя API Панели Управления. Но большая часть программ, в том числе профессиональные программы для студийной звукозаписи, оставляют эти настройки пользователю.
      ASIO - это другое, тут без него.
      Сообщение отредактировано: Mikle -
        Цитата
        я уже ранее писал, приходится повторяться
        одно приложение считывает сигнал с микрофона (но не воспроизводит его сразу же на выходе, а записывает его в какой то промежуточный буфер (виртуальный блок памяти), и только). Второе приложение считывает эти данные, обрабатывает, изменяет по определённому алгоритму и записывает во второй промежуточный буфер. Третье приложение считывает из второго буфера и воспроизводит на выход. Что я нового написал? Просто средний кусок выбросил из предыдущего описания, он совершенно не имеет никакого значения для решения проблемы.
        Для чего всё разбито на 3 (а может и 4 и 5 и тд) приложения можно догадаться и самому - разница по времени между первым и последним должна быть минимальной.

        По описанию похоже на рениксу. Вы пытаетесь выжать какую задержку? В один семпл? В сто?
        ?
        Цитата
        Если вы не понимаете в чём суть вопроса, это совсем не означает что на него нет ответа? и код кстати выложен выше - надо внимательнее читать тему чтобы давать советы.

        Цитата
        Что касается ещё большей конкретики выкладываю схему стандартного микшера (просторы интернета), на которой крестиками указаны каналы которые необходимо отключить.

        Насколько помню, суть проблемы, в общих словах, была в наложении сигналов/данных. С учётом того, что(по вашему описанию), есть три приложения, которые юзают(обрабатывают) по сути одни и те же данные, всё возможно. Сюда можно также добавить тот факт, что еще несколько дней назад вы спрашивали, как обеспечить непрерывное воспроизведение. Всё это позволяет предположить, что вы где-то накосячили. Я этого не утверждаю, но это вполне возможно.
        Микшер вы можете настроить виндовыми средствами. Залезать в функции микшера, имхо, на данном этапе не имеет смысла. Возможно, и вполне вероятно, настройки микшера с проблемой наложения сигналов не связаны. Мне думается, вам стоит проанализировать, что на входе и выходе каждой из ваших программ. И только будучи абсолютно уверенным в том, что на выходе каждой программы, в цепочке программ, обрабатывающих аудио данные, именно то, что вам нужно(а проблема с наложением сигналов остается), искать "внешние" причины.

        Если вам нужно отключить определенный контрол микшера, имхо, создайте отдельную тему.
        Я могу ошибаться, но предположу, что ваши вопросы по функциям микшера в данной теме вызывают недоумение не только у меня. У вас есть кучка программ, которые непонятно как работают и непонятно что делают - черный ящик, в котором вероятно баг. А вы выкладываете кусок кода, в общем-то не имеющего отношения к проблеме, и просите помочь его "допилить".

        На всякий пожарный случай, я не умничаю. И мы тут ничем не меряемся. Я пытаюсь мягко убедить вас обратить внимание на ваш код, структуру программ(ы); возможно, на изначальную постановку задачи. Вернуться к истокам, и к исходникам.
        Сообщение отредактировано: Prince -
          Цитата Prince @
          Всё это позволяет предположить, что вы где-то накосячили

          Допустим я накосячил в своём коде, но ведь я никак не могу накосячить в чужих разработках.
          Я не понимаю для чего вам нужно обязательно посмотреть именно мой код, если выше выложены два кода WaveMeter и PlayTone.
          Уж в них то я никак не мог накосячить. Вот я что писал ранее:

          Цитата Ivan123 @
          1. подключите наушники с микрофоном через USB
          2. запустите одним приложением WaveMeter и нажмите на старт (если напоёте в микрофон визуально увидите что данные читаются)
          3. запустите вторым приложением PlayTone и нажмите воспроизведение одного из 3 сигналов (в наушниках вы услышите и сам сигнал и то что в этот момент говорите в микрофон)


          Результат выполнения этих действий точно такой же как и с моим кодом - вот поэтому у меня и возникли сомнения о сути вопроса.

          Несколько слов не по теме: вчера пришлось по моему основному профилю помогать на другом форуме. Так вот там одному человеку пытались дать совет на 30 листах совершенно не понимая сути вопроса, из них 90% были - зачем тебе это нужно, не заморачивайся), и не потому что у этих людей мало интеллекта, просто всё очень банально - они просто никогда не решали подобную задачу в силу того, что специфика их работы такой задачи перед ними никогда и не ставила.

          Если возможно в начале поисков я и не знал в каком пути мне конкретно двигаться, то уже после первых советов и штудирования литературы по этому направлению понял что разделение сигналов и управление аудиопотоками правильное направление в моём вопросе.
          У меня пока нет корректных знаний как этими потоками управлять, но я только учусь и всех тонкостей не знаю)

          Добавлено
          Цитата Mikle @
          Да, в более новых Windows микшер убили, но до этих настроек добраться можно

          Возможно это временный выход для меня, надо его обязательно опробовать. Только не понятно пока DELPHI7 станет на ХР?
          Как временный вариант может и подойдёт, но в результате я всёже хочу побороть миксер)
            Цитата Mikle @
            Пробовал, на нормальных звуковых картах звук идёт напрямую без всяких задержек. Задержка есть на запись.
            У меня Focusrite Scarlett 2i4 (у неё даже аппаратная прослушка есть, когда вообще не запущено аудиософта), но и тут при включенной галочке звук идёт с задержкой. Но это на 10-ке, в XP задержки может не быть, т.к. по-другому всё было реализовано.
            Используя JACK, лично у меня только через ASIO звук идёт без задержек. Хотя размер буфера не меняется (64 семпла = 2.67 мсек).
            А вообще, у меня тоже есть ощущение, что раньше "прослушка" работала без задержек, а потом стала работать с задержками. Вы на XP пробовали? А на 7, 8, 10 как?
            Ivan123, а у вас "прослушка" с задержкой идёт?

            Цитата Mikle @
            На "Master Volume" я спокойно управляю прохождением сигналов со входов звучки на выход.
            Я в 10-ке вообще нормального системного микшера найти не могу.

            Цитата Ivan123 @
            Только не понятно пока DELPHI7 станет на ХР?
            Встанет. XP выпущен в 2001 году, Delphi 7 - в 2002, так что можно считать, что он под 2000 и XP и был создан :)

            Ivan123, на самом деле Prince разумные вещи говорит: попробуйте делать вывод в файл и потом откройте его в редакторе как RAW и послушайте, что реально выводите.
            И запустить запись и параллельно с этим воспроизведение через сторонние программы (через разные в т.ч.) я бы тоже настоятельно рекомендовал. Будет ли там такой же эффект? И дальше уже от этого можно плясать...

            Цитата Ivan123 @
            просто всё очень банально - они просто никогда не решали подобную задачу
            Вы возможно увидитесь, но я почти уверен, что здесь ни у кого такой проблемы, как у вас, не возникало :)
            Поэтому и пытаемся нащупать решение "методом тыка".
              Цитата Jin X @
              а у вас "прослушка" с задержкой идёт?

              Я пока не понимаю что вы имеете ввиду "прослушка"
              Цитата Jin X @
              И дальше уже от этого можно плясать...

              Всё таки вы не совсем понимаете мою цель) без обид
              Программированием я занимаюсь только в виде узкого круга математических или физических задач связанных с трудоёмкостью расчётов.
              Я не знаю пока как мне записать даже приличный кусок, мне это надо изучать. А самое главное мне в рамках моей задачи это совершенно не нужно (записывается сэмпл (один), если я правильно понимаю термины, пока пишется второй от первого отпиливаю кусок, растягиваю, сжимаю, и т.д. (всё образно)и отдаю на выход, пока первый воспроизводится, пишется уже третий и т.д.). Т.е. единый поток. Ничего куда то в файл не записывается, и ничего из файла не воспроизводится.
              Сообщение отредактировано: Ivan123 -
                Цитата Ivan123 @
                Я пока не понимаю что вы имеете ввиду "прослушка"
                Опция в настройках звуковой карты. Вот эта
                Прикреплённый файлПрикреплённый файлMIXER_2.png (13,74 Кбайт, скачиваний: 1459)

                Добавлено
                Цитата Ivan123 @
                Всё таки вы не совсем понимаете мою цель) без обид
                Какая разница, куда нужно вам выводить – в файл или не в файл?
                Сейчас это нужно сделать именно так лишь для того, чтобы найти источник проблемы. Вот и вся цель.
                И аналогично с использованием сторонних программ. Для того, чтобы понять, проблема в вашем коде, в настройках микшера или в железе.
                  Цитата Jin X @
                  Опция в настройках звуковой карты. Вот эта

                  без задержки, комп достаточно мощный, для трудоёмких расчётов
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:
                  Страницы: (3) 1 2 [3]  все


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0440 ]   [ 16 queries used ]   [ Generated: 28.03.24, 12:25 GMT ]