На главную Наши проекты:
Журнал   ·   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
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Как программировать многоканальное устройство?
    Спасибо за ответ.
    1. Сохраняет информацию в стереофайл только 1 и 2 канал.
    2. В настройках аудишена посмотрю, что используется.
    3. BASSASIO тоже посмотрю.
    О результатах сообщу.
      Возник еще вопрос. Получается так, что в зависимости от аппаратуры (например, Motu или Delta 66), я должен использовать или MME, или Direct Sound, или ASIO. Где-то в Интернете я читал, что вроде бы все эти интерфейсы основаны на Core Audio. Если использовать Core Audio, то можно сделать интерфейсно независимую программу?
        Цитата
        Если использовать Core Audio, то можно сделать интерфейсно независимую программу?

        Она будет ось-зависимой.
        Сообщение отредактировано: Prince -
          Это лучше, чем интерфейсная зависимость. А хорошие примеры использования Core Audio для записи сигналов где можно найти?
            Что там всё-таки в адоб аудишн, в настройках hardware?
            Цитата
            Это лучше, чем интерфейсная зависимость.

            Чем лучше?

            Цитата
            в зависимости от аппаратуры (например, Motu или Delta 66)

            И тот и другой адаптер поддерживают ASIO. Т.е., с ASIO не должно быть проблем.
            Delta 66 подерживает также MME и DS. По поводу последних 2-х можно связаться с производителем Motu, и выяснить, как реализован(и реализован ли) механизм multichannel записи. С Delta 66, в принципе, и так понятно(да и в мануале достаточно подробно расписано). Разбили каналы попарно и представили в системе независимыми устройствами. Такое решение для multichannel устройств не раз встречалось, вам несколько участников об этом говорили.

            Цитата
            А хорошие примеры использования Core Audio для записи сигналов где можно найти?

            https://msdn.microsoft.com/ru-ru/library/wi...0(v=vs.85).aspx
            Где-то там.
            Вы точно уверены в том, что ядро семерки/системный микшер умеет работать с количеством каналов больше 2-х, на запись?
            Если разберетесь, дайте знать на форуме.
            Сообщение отредактировано: Prince -
              В Adobe - ASIO. Я все-таки не понимаю, почему ASIO видит больше каналов, чем MME. Потому что так написаны драйверы для Motu? Они поддерживаеют ASIO и не поддерживают MME?
              Сообщение отредактировано: tumanovalex -
                Цитата
                Я все-таки не понимаю, почему ASIO видит больше каналов, чем MME.

                АСИО "видит" не больше, а все каналы. MME(DS) "видят" не меньше, а 2 канала, больше они "не умеют". Одной из причин разработки фирмой Steinberg собственного интерфейса (АСИО) являлась невозможность многоканальной записи/вывода(больше 2-х каналов) в виндовс её штатными интерфейсами, что было связано с ограничениями системного микшера виндовс(звукового ядра виндовс). Проиходилось производителям оборудования идти на ухищрения, представлять свои устройства как несколько независимых стерео-устройств или придумывать свои интерфейсы и утрясать их с производителями студийного софта.
                В том числе АСИО. На АСИО ограничения виндовс не распространяются, АСИО работает фактически напрямую с устройством, минуя часть посредников-драйверов ядра системы. Откройте спецификацию АСИО, самое начало, там немного описаны мотивы и причины его появления. Если прочтёте дальше, обратите внимание, что принцип работы АСИО чем-то напоминает ММЕ с его очередью буферов.
                Цитата
                Потому что так написаны драйверы для Motu? Они поддерживаеют ASIO и не поддерживают MME?

                Motu поддерживает и АСИО, и ММЕ(полагаю, что и DS). Также как и Дельта-66.
                Адобаудишн обращается к интерфейсу АСИО, потому что видит в системе установленный AСИО драйвер и "понимает", что на том конце "провода" находится многоканальное устройство, и нет смысла пытаться работать с ним через ММЕ. Ну или так думает пользователь при настройке hardware options.
                При перечислении wavein устройств вы видите Motu Analog и даже записывали с этого устройства 2 канала. Т.е., поддержка ММЕ есть, но как она реализована, зависит от производителя.
                Для delta 66, заточенной ещё под виндовс 95/98/хр, разработчики предусмотрели(помимо АСИО, где подобные ухищрения не нужны) возможность записи всех (4-х) каналов через ММЕ, для чего представили своё устройство(для приложений, использующих MME) 2-мя "независимыми" wavein стерео-устройствами.
                Как поступили разработчики Motu - нужно спрашивать у них. Возможно, в мануале этот момент расписан, возможно, нет, но только производитель отвечает за реализацию поддержки интерфейсов в своих драйверах. Возможно, для ММЕ он ограничился возможностью записи одной стерео пары и посчитал это достаточным, а может быть, и нет. На это вам может ответить мануал и тех. поддержка. Не имея на руках техники, могу только гадать. Поскольку Motu железяка относительно новая, предположу, что помимо АСИО, она поддерживает ещё пару специфических интерфейсов, заточеных под студийный софт конкретных производителей.
                Сообщение отредактировано: Prince -
                  Спасибо за подробный ответ. Кая я понял из Ваших объяснений, если семерка не умеет работать более чем с двумя каналами, Core Audio мне не поможет в программировании Motu. Относительно возможности семерки работать с более чем двумя каналами, не знаю даже, где это можно спросить. Может быть посоветуете, куда обратиться с этим вопросом?
                    Prince, правильно ли я понял, что DirectSound в случае программирования таких устройств, как Motu, имеет те же ограничения, что и MME? Т.е. он тоже не сможет увидеть все каналы Motu?
                    Сообщение отредактировано: tuchin -
                      Цитата tuchin @
                      Prince, правильно ли я понял, что DirectSound в случае программирования таких устройств, как Motu, имеет те же ограничения, что и MME? Т.е. он тоже не сможет увидеть все каналы Motu?

                      Имхо, да. DS работает через всё тот же системный микшер, как и MME.
                        Попробую поработать с Delta 66 через ASIO, когда дадут поиграться. Как я понял из описания, Delta 66 ASIO поддерживает. Интересно, какие будут отличия по сравнению с MME. О результатах сообщу, может быть кому-нибудь будет интересно.
                          А я вот попробовал поработать с ASIO (Motu Traveler в Windows XP). Программа:
                          ExpandedWrap disabled
                            #include <stdio.h>
                            #include <locale>
                            #include "bassasio.h"
                             
                            #pragma comment(lib, "bassasio.lib")
                             
                            void main(int argc, char* argv[])
                            {
                              setlocale(LC_ALL, "");
                                BASS_ASIO_DEVICEINFO di;
                                int a;
                                for (a=0;BASS_ASIO_GetDeviceInfo(a,&di);a++) {
                                    printf("dev %d: %s\ndriver: %s\n",a,di.name,di.driver);
                                    if (!BASS_ASIO_Init(a,BASS_ASIO_THREAD)) continue;
                                    {
                                        BASS_ASIO_CHANNELINFO i;
                                        int b;
                                        for (b=0;BASS_ASIO_ChannelGetInfo(1,b,&i);b++)
                                            printf("\tin %d: %s (group %d, format %d)\n",b,i.name,i.group,i.format);
                                        for (b=0;BASS_ASIO_ChannelGetInfo(0,b,&i);b++)
                                            printf("\tout %d: %s (group %d, format %d)\n",b,i.name,i.group,i.format);
                                        if (i.format<BASS_ASIO_FORMAT_DSD_LSB && BASS_ASIO_SetDSD(TRUE)) {
                                            printf("\tDSD:\n");
                                            for (b=0;BASS_ASIO_ChannelGetInfo(1,b,&i);b++)
                                                printf("\tin %d: %s (group %d, format %d)\n",b,i.name,i.group,i.format);
                                            for (b=0;BASS_ASIO_ChannelGetInfo(0,b,&i);b++)
                                                printf("\tout %d: %s (group %d, format %d)\n",b,i.name,i.group,i.format);
                                        }
                                    }
                                    BASS_ASIO_Free();
                                }
                              system("pause");
                            }
                          дала такой результат:
                          dev 0: MOTU Audio ASIO
                          driver: C:\Program Files\MOTU\MFWAASIO.DRV
                          in 0: Analog 1 (group 0, format 18)
                          in 1: Analog 2 (group 0, format 18)
                          in 2: Analog 3 (group 0, format 18)
                          in 3: Analog 4 (group 0, format 18)
                          in 4: Analog 5 (group 0, format 18)
                          in 5: Analog 6 (group 0, format 18)
                          in 6: Analog 7 (group 0, format 18)
                          in 7: Analog 8 (group 0, format 18)
                          in 8: AES/EBU 1 (group 0, format 18)
                          in 9: AES/EBU 2 (group 0, format 18)
                          in 10: S/PDIF 1 (group 0, format 18)
                          in 11: S/PDIF 2 (group 0, format 18)
                          in 12: Mix 1 Return 1 (group 0, format 18)
                          in 13: Mix 1 Return 2 (group 0, format 18)
                          out 0: Analog 1-2 (group 0, format 18)
                          out 1: Analog 1-2 (group 0, format 18)
                          out 2: Analog 3-4 (group 0, format 18)
                          out 3: Analog 3-4 (group 0, format 18)
                          out 4: Analog 5-6 (group 0, format 18)
                          out 5: Analog 5-6 (group 0, format 18)
                          out 6: Analog 7-8 (group 0, format 18)
                          out 7: Analog 7-8 (group 0, format 18)
                          out 8: AES/EBU 1-2 (group 0, format 18)
                          out 9: AES/EBU 1-2 (group 0, format 18)
                          out 10: S/PDIF 1-2 (group 0, format 18)
                          out 11: S/PDIF 1-2 (group 0, format 18)
                          out 12: Phones 1-2 (group 0, format 18)
                          out 13: Phones 1-2 (group 0, format 18)
                          dev 1: MOTU MicroBook ASIO
                          driver: C:\Program Files\MOTU\MOTUMicroBookASIO.DRV
                          in 0: Input 1-2 (group 0, format 18)
                          in 1: Input 1-2 (group 0, format 18)
                          in 2: Input 3-4 (group 0, format 18)
                          in 3: Input 3-4 (group 0, format 18)
                          out 0: Output 1-2 (group 0, format 18)
                          out 1: Output 1-2 (group 0, format 18)
                          dev 2: MOTU PCI ASIO
                          driver: C:\Program Files\MOTU\MAWASIO.DRV
                          DSD:
                          ASIO увидело все 8 входов, но мне не понятно следующее:
                          - почему 3 устройства ASIO?
                          - почему устройство 1 дает повторяющиеся значения для входов 0,1 и 2,3 (input 1-2 и input 3-4)?
                            Цитата
                            почему 3 устройства ASIO?

                            Сколько поставили драйверов(устройств), столько и будет. Используйте то устройство, что вам нужно.
                            MOTU MicroBook, по идее, совсем другая железка - не Motu Traveler, и у неё таки 4 входа. А последнее...без понятия, что-то связанное с форматом DSD...
                            Цитата
                            почему устройство 1 дает повторяющиеся значения для входов 0,1 и 2,3 (input 1-2 и input 3-4)

                            Разбирайтесь. Названия выходов устройства 0 тоже повторяются. Курите мануал, экспериментируйте. Устройство у вас на руках.

                            Кстати, чтобы "увидеть" все входы/выходы устройства в MME, нужно поставить галочку "Enable full Wave support for legacy (MME) software" в настройках драйвера(см. мануал). Иначе будут доступны только первые два канала.
                            Сообщение отредактировано: Prince -
                              Буду разбираться. Первым делом попробую записать звук с микрофона помощью Asio, поскольку компьютер с FireWire, управляющий Motu, вышел из строя, а других компьютеров с FireWire пока нет.
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0606 ]   [ 16 queries used ]   [ Generated: 19.03.24, 03:24 GMT ]