Обработка цифровых данных стерео файла.

Алексей
Сообщения: 3
Зарегистрирован: 26 июн 2020, 07:10

Обработка цифровых данных стерео файла.

Сообщение Алексей »

Сергей, Большое Вам спасибо за теорию (статьи) и реализацию
(исходный код и готовый набор инструментов).
Для меня это хорошая отправная точка
начать програмировать звуковые эффекты ЦОС.
Может быть Вы посоветуете новичку что-нибудь по этим вопросам:
Ввод-вывод цифровых данных стерео файла несжатого формата WAV или AU?
Преобразование цифровых отсчетов (16 бит short) сигналов левого и правого каналов
в double с использованием комплексного типа данных dsplib:
Re-один канал (например, левый), Im- другой канал (правый)?
Или проще и правильнее записать отсчеты в два отдельных массива?
Или представить отсчеты в виде одной матрицы вещетвенных сигналов ?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 935
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Обработка цифровых данных стерео файла.

Сообщение Бахурин Сергей »

Спасибо за теплые слова.
ввод вывод файлов делается на уровне операционной системы. посмотрите пример для Windows

Преобразование каналов в комплексный тип можно по разному хоть RE = правый IM = левый, хоть RE = левый IM = правый. С точки зрения обработки это не важно. Это важно если потом эти каналы идут на модулятор, но там надо уже договориться вам самому кто RE кто IM.
Или проще и правильнее записать отсчеты в два отдельных массива?
Или представить отсчеты в виде одной матрицы вещетвенных сигналов ?
По сути можно и так и так. Но большинство пакетов такие как BLAS LAPACK FFTW3 используют формат Re Im Re Im (тот что у меня в библиотеке реализован). Кстати в wav файле они также лежат Правый Левый Правый Левый. Но ничто не мешает вам сделать два массива если это для вас более предпочтительно.

Алексей
Сообщения: 3
Зарегистрирован: 26 июн 2020, 07:10

Re: Обработка цифровых данных стерео файла.

Сообщение Алексей »

Спасибо за ссылку на пример для Windows.
Кстати в wav файле отсчеты лежат так: Левый Правый Левый Правый.
Но хотелось бы реализовать функции ввод-вывода независимыми от ОС
и нет необходимости в полной реализации чрезмерной универсальности
контейнера- wav.
Все современные стандартные ЦАПы двухканальные, 16-битные,
с тактовой частотой 48 кГЦ, т.е. для стерео можно считать это практическим стандартом
и при воспроизведении файлов (2*16 бит, Fd=48000 Гц)
внутренний resemler ОС использоваться не будет, и при необходимости,
можно будет на слух оценивать качество реализации интерполятора, дециматора
и любых других звуковых эффектов.
Наверное, для моей цели лучше использовать файлы .au,
формат которых более простой:
заголовок короче и содержит смещение от начала файла к цифровым
данным сигнала.
Я новичок в программировании, а учиться лучше у профессионалов,
и я обратил внимание на исходный код библиотечных функций
ввода-вывода dsplib, и обнаружил отсутствие в библиотеке
файла с исходным текстом dspl.h .
Или я что-то не понимаю, или полного исходного текста библиотека
не содержит?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 935
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Обработка цифровых данных стерео файла.

Сообщение Бахурин Сергей »

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

dspl.h dspl.c лежат в папке include

Алексей
Сообщения: 3
Зарегистрирован: 26 июн 2020, 07:10

Re: Обработка цифровых данных стерео файла.

Сообщение Алексей »

Большое Вам спасибо за быстрые ответы и простите мою невнимательность
и недостаточный опыт. Буду изучать код библиотеки.

Мне нужно получить данные из аудио файла, сформировать их
для использования библиотеки, обработать данные и вывести в новый аудио файл.
Зачем мне это?
Я слушаю музыку в наушниках и понимаю, что стерео для громкоговорителей
должно быть преобразовано (адаптировано) для наушников, например, если
для стерео нормально, что звук излучается только одним громкоговорителем
(сохраняется пространственность и наш слух определяет расстояние до источника),
то в наушниках этого не происходит и такой звук очевидно требует редактирования.
Для воспроизведения звука в наушниках использую звуковой редактор,
применяя цепочки различных эффектов.
Возможности редактора для меня давно исчерпаны и я понимаю, что dsplib мало
что прибавит к ним, а по удобству использования в целом сильно проиграет,
но для обработки сигнала во временной области (прежде всего свертка сигнала с ИХ)
может и выиграть.
К сожалению, мне приходится осваивать новую для меня область - технологию
программирования без знания английского (Гугл-мне в помощь), в возрасте
(зато на пенсии есть свободное время) и для меня большая ценность -
Ваш сайт и возможность общения на русском языке.
Еще раз благодарю Вас за вашу огромную работу и вашу снисходительость.

Ответить