Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.101.95] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Попробовал использовать BassAsio со своей Motu Traveler. Сделал простую программу для установки различной частоты дискретизации:
#include <iostream> #include "bassasio.h" #pragma comment(lib, "bassasio.lib") void ErrorMes(char* sMes, int Res) { std::cout << "\n" << std::cout << sMes << Res << "\n\n"; system("pause"); exit(EXIT_FAILURE); // EXIT_SUCCESS, EXIT_FAILURE } void TestAsio(void) { std::cout << "\n-------------- Определение поддерживаемой частоты дискретизации ------------\n"; int nSamplesPerSec[] = {44100, 48000, 64000, 88200, 96000, 176400, 192000}; if(FALSE == BASS_ASIO_Init(0, BASS_ASIO_THREAD)) ErrorMes("Не удалось инициализировать устройство (или драйвер) командой BASS_ASIO_Init. Ошибка: ", BASS_ASIO_ErrorGetCode()); if(FALSE == BASS_ASIO_SetDevice(0)) ErrorMes("Не удалось выбрать устройство командой BASS_ASIO_SetDevice. Ошибка: ", BASS_ASIO_ErrorGetCode()); if(FALSE == BASS_ASIO_ChannelReset(TRUE,-1,BASS_ASIO_RESET_ENABLE)) ErrorMes("Не удалось сбросить все каналы командой BASS_ASIO_ChannelReset. Ошибка: ", BASS_ASIO_ErrorGetCode()); if(FALSE == BASS_ASIO_ChannelReset(TRUE,-1,BASS_ASIO_RESET_RATE)) ErrorMes("Не удалось установить частоту дискретизации устройства командой BASS_ASIO_ChannelReset c BASS_ASIO_RESET_RATE. Ошибка: ", BASS_ASIO_ErrorGetCode()); for(int i = 0; i < sizeof(nSamplesPerSec)/sizeof(nSamplesPerSec[0]); i++) { if(FALSE == BASS_ASIO_SetRate((double) nSamplesPerSec[i])) { std::cout << "\n!!! Ошибка при установке частоты дискретизации " << nSamplesPerSec[i] << std::endl << std::endl; continue; } std::cout << "\n+++++++++++++++ Установлена частота дискретизация: " << BASS_ASIO_GetRate() << " +++++++++++++++\n\n"; system("pause"); } BASS_ASIO_Free(); } int main(int argc, char* argv[]) { setlocale(LC_ALL, ""); TestAsio(); system("pause"); } Подскажите, пожалуйста, что я делаю неправильно. Проект прикрепил. Прикреплённый файлTestAsio.zip (20,09 Кбайт, скачиваний: 184) |
Сообщ.
#17
,
|
|
|
tuchin, попробуйте, пожалуйста, тестовую программу на своей Дельте
|
Сообщ.
#18
,
|
|
|
Я попробовал. Сообщение об успешной установке: 44100, 48000, 88200, 96000. Ошибки: 64000, 19200. К сожалению, на Delta 66 нет индикаторов, поэтому проверить, правильно ли устанавливается частота дискретизации, можно лишь записав тестовый аудио сигнал в файлы при разных частотах и загрузив их в аудиоредактор. Если Вы дополните свою тестовую программу возможностью записи в файлы при разных частотах хотя бы по одному каналу, обещаю проверить, как только будет время.
|
Сообщ.
#19
,
|
|
|
Запись на Дельте прекрасно работает, все команды установки частоты дискретизации отрабатываются без проблем. Видимо, Моту имеет какие-то особенности, в которых нужно разбираться. Если разберетесь, сообщите, пожалуйста, в чем было дело. Интересно, из-за чего могут быть такие проблемы.
|
Сообщ.
#20
,
|
|
|
Цитата BASS_ASIO_GetRate() рапортует, что частоты устанавливаются успешно. Однако на устройстве есть индикаторы, показывающие текущую частоту дискретизации. Исходя из их показаний частоты дискретизации не переключаются а если после BASS_ASIO_SetRate вызвать BASS_ASIO_ControlPanel и глянуть там, установилась ли заданная частота. |
Сообщ.
#21
,
|
|
|
Я попробовал, не устанавливается. Пробовал и вызывать Start. Если устанавливать частоту через панель и ту же частоту использовать в программе, то программа работает нормально: файлы записываются правильно.Если выбранная в программе частота не соответствует текущей частоте устройства, получаются файлы с нулевым размером
|
Сообщ.
#22
,
|
|
|
Если устанавливать частоту через панель, то нет смысла устанавливать частоту в программе. Она уже и так установлена.
Цитата BASS_ASIO_GetRate() рапортует, что частоты устанавливаются успешно. Однако на устройстве есть индикаторы, показывающие текущую частоту дискретизации. Исходя из их показаний частоты дискретизации не переключаются Глюк. Ваш кэп. Никто не запрещает уставливать частоту через контрол панель. |
Сообщ.
#23
,
|
|
|
А что такое "Ваш кэп"?
|