Может кто — нибудь сможет объяснить какой параметр отвечает за квантование сигнала (разрядность АЦП).
А то я новичок пока:
typedef struct {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX;
Здравствуйте, Аноним, Вы писали:
А>Добрый День!
А>Может кто — нибудь сможет объяснить какой параметр отвечает за квантование сигнала (разрядность АЦП). А>А то я новичок пока:
А>typedef struct { А> WORD wFormatTag; А> WORD nChannels; А> DWORD nSamplesPerSec; А> DWORD nAvgBytesPerSec; А> WORD nBlockAlign; А> WORD wBitsPerSample; А> WORD cbSize; А>} WAVEFORMATEX;
А>Спасибо.
wBitsPerSample — бит на квант (сампл)
С Уважением, Андрей
Re[2]: WAVEFORMATEX
От:
Аноним
Дата:
05.11.03 14:13
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:
AF>wBitsPerSample — бит на квант (сампл)
AF>С Уважением, Андрей
Почему я когда этот параметр уменьшаю например до 7, то звук не воспроизводится.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AndreyFedotov, Вы писали:
AF>>wBitsPerSample — бит на квант (сампл)
AF>>С Уважением, Андрей
А>Почему я когда этот параметр уменьшаю например до 7, то звук не воспроизводится.
А параметр наверное был 8 или 16?
Насколько мне известно Windows умеет работать только с этими значениями. Если нужны другие — например 7, 6, 3, то нужно пересчитать сами самплы...
Здравствуйте, AndreyFedotov, Вы писали:
AF>Насколько мне известно Windows умеет работать только с этими значениями. Если нужны другие — например 7, 6, 3, то нужно пересчитать сами самплы...
А как это можно сделать? Где про это почитать? Куда рыть?
Здравствуйте, preview, Вы писали:
P>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Насколько мне известно Windows умеет работать только с этими значениями. Если нужны другие — например 7, 6, 3, то нужно пересчитать сами самплы...
P>А как это можно сделать? Где про это почитать? Куда рыть?
P>Еще раз спасибо.
Посмотри насчёт кодеков звука. Некоторые кодеки позволяют кодировать звук с разным разрешением.
Но я бы сделел по-другому. В своё время я довольно просто научился читать и писать Wav файлы, с помощью пересчёта значений легко можно понизить качество звука, то есть превратить N отсчётов в M, где M < N. (Например 65536 отсчётов, в 128 отсчётов, <=> 16 бит в 7), это простейший способ. Дальше любым проигрывателем проигрываешь звук. Если тебе нужно попробовать — как влияет дискретезация на качество звука — способо по моему наиболее простой.
Более сложный — использовать DirectSound (часть DirctX Audio) — это если хочешь наиболее развитых возможностей, например работы с кодеками, или, что несколько проще — использовать Waveform Audio (Platform SDK: Windows Multimedia). Обе технологии позволяют тебе при загрузке аудио данных пересчитывать их на лету и грузить их в буффер звуковой карты.
С Уважением, Андрей
Re[6]: WAVEFORMATEX
От:
Аноним
Дата:
06.11.03 08:11
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:
AF>Посмотри насчёт кодеков звука. Некоторые кодеки позволяют кодировать звук с разным разрешением. AF>Но я бы сделел по-другому. В своё время я довольно просто научился читать и писать Wav файлы, с помощью пересчёта значений легко можно понизить качество звука, то есть превратить N отсчётов в M, где M < N. (Например 65536 отсчётов, в 128 отсчётов, <=> 16 бит в 7), это простейший способ. Дальше любым проигрывателем проигрываешь звук. Если тебе нужно попробовать — как влияет дискретезация на качество звука — способо по моему наиболее простой. AF> Более сложный — использовать DirectSound (часть DirctX Audio) — это если хочешь наиболее развитых возможностей, например работы с кодеками, или, что несколько проще — использовать Waveform Audio (Platform SDK: Windows Multimedia). Обе технологии позволяют тебе при загрузке аудио данных пересчитывать их на лету и грузить их в буффер звуковой карты.
AF>С Уважением, Андрей
Мне более удобен именно второй пункт, то есть использовать функции Waveform Audio. Можете сказать название нескольких таких функций, чтобы производить "при загрузке аудио данных пересчитывать их на лету и грузить их в буффер звуковой карты"
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Посмотри насчёт кодеков звука. Некоторые кодеки позволяют кодировать звук с разным разрешением. AF>>Но я бы сделел по-другому. В своё время я довольно просто научился читать и писать Wav файлы, с помощью пересчёта значений легко можно понизить качество звука, то есть превратить N отсчётов в M, где M < N. (Например 65536 отсчётов, в 128 отсчётов, <=> 16 бит в 7), это простейший способ. Дальше любым проигрывателем проигрываешь звук. Если тебе нужно попробовать — как влияет дискретезация на качество звука — способо по моему наиболее простой. AF>> Более сложный — использовать DirectSound (часть DirctX Audio) — это если хочешь наиболее развитых возможностей, например работы с кодеками, или, что несколько проще — использовать Waveform Audio (Platform SDK: Windows Multimedia). Обе технологии позволяют тебе при загрузке аудио данных пересчитывать их на лету и грузить их в буффер звуковой карты.
AF>>С Уважением, Андрей
А>Мне более удобен именно второй пункт, то есть использовать функции Waveform Audio. Можете сказать название нескольких таких функций, чтобы производить "при загрузке аудио данных пересчитывать их на лету и грузить их в буффер звуковой карты"
Здравствуйте, AndreyFedotov, Вы писали:
AF>waveOutOpen, waveOutWrite например
То есть вы хотите сказать что я должен указать wBitsPerSample необходимое мне значение и самому пересчитать все буфер содержащий сам сигнал?
Re[9]: WAVEFORMATEX
От:
Аноним
Дата:
09.11.03 08:24
Оценка:
Здравствуйте, preview, Вы писали:
PP>То есть вы хотите сказать что я должен указать wBitsPerSample необходимое мне значение и самому пересчитать все буфер содержащий сам сигнал?
AF>Насколько мне известно Windows умеет работать только с этими значениями. Если нужны другие — например 7, 6, 3, то нужно пересчитать сами самплы... AF>С Уважением, Андрей
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, preview, Вы писали:
PP>>То есть вы хотите сказать что я должен указать wBitsPerSample необходимое мне значение и самому пересчитать все буфер содержащий сам сигнал?
А>Правильно то я хоть думаю или нет? скажите...
Да, всё правильно. Действительно:
Грузим звуковой файл в буфер памяти, пересчитывая разрешение самплов.
Передаём указатель на начала буфера в функцию проигрывания waveOutWrite
Здравствуйте, preview, Вы писали:
P>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Насколько мне известно Windows умеет работать только с этими значениями. Если нужны другие — например 7, 6, 3, то нужно пересчитать сами самплы... AF>>С Уважением, Андрей
P>Можете привести конкретный пример плз.
Хорошо, посмотрю в загашнике.. Можно посмотреть так же в примерах MSDN.
С Уважением, Андрей