Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
|
Сообщ.
#1
,
|
|
|
Содержание
I. Литература 0. Глоссарий (здохло) 1. Книги (электронные) 2. Книги (бумажные) 3. Неотсортированные вопросы / ответы II. Исходники 1. Исходники к книгам 2. OpenSource 3. Наши исходники III. FAQи, статей и т.д. 1. FAQи, сборники статей и т.д. |
Сообщ.
#2
,
|
|
|
Книги (электронные)
Литература по цифровой обработке сигналов "Рабинер и Голд Теория и практика цифровой обработки сигналов", "Введение в цифровую обработку сигналов. Е. Машеров", "Устойчивые методы обработки результатов измерений. В.С.Сизиков", "Цифровая обработка речевых сигналов. Рабинер и Шафер", "Отнес, Эноксон. Прикладной анализ временных рядов", "Харкевич. Борьба с помехами", "Быстрое преобразование Фурье для обработки сигналов в устройствах автоматизации Сергей Лазарев,Евгений Рогожкин,Феодосий Захарук", "Дж. Бендат, А. Пирсол. Прикладной анализ случайных данных", "Введение в цифровую фильтрацию. Под ред. Р.Богнера и А. Константинидиса" и многое, многое другое. БОльшая часть на английском языке. WebSound.Ru: Книжная полка "The Master Handbook Of Acoustics", "Искусство сведения. Дэвид Гибсон", "Signal processing for mobile communications handbook", "The Audio Engineer's Approach to Understanding Digital Filters For the idiot such as myself", "Digital Signal Processing Handbook", "Introduction to digital signal processing ", "Applications of digital signal processing and acoustics" и многое, многое другое. Подавляющая часть на английском языке. Там же: статья Основы психоакустики Библиотека Ихтика "МакКаски М. - Звук в играх. Технологии программирования (2004)(31 Mb)(pdf).pdf", "Обработка звука на PC.RAR", "Steinberg Nuendo 2 - секреты виртуального звука.rar", "Александр Левин Самоучитель компьютерной графики и звука.pdf", "Звуковая Студия в PC.pdf", "Миллер Т. - DirectX 9 с управляемым кодом. Программирование игр и графика (2005).pdf", "Программирование стратегических игр с DirectX 9.0.RAR", "Gove D.Playing and recording sound in Delphi.htm", "Creative Sound Blaster Audigy. Руководство пользователя.rar", а также еще 6993 позиций общим объёмом 72 Гб по разным околокомпьютерным направлениям - руководства по программированию, описания программ, ФАКи, энциклопедии, технические описания... |
Сообщ.
#3
,
|
|
|
Книги (бумажные)
За этот список - мегареспект 7in X Статус: Must Have Обработка звука на PC. Наиболее полное руководство (+ дискета)Н. Секунов Мягкая обложка, 1238 стр. (уф! ), 2001 г. Издательство: BHV - Санкт - Петербург; Серия: В подлиннике Цена: 244 р Статус: Must Have Руководство программиста по работе со звуком Тим Кинтцель Мягкая обложка, 432 стр., 2000 г. Издательство: ДМК Пресс; Серия: Для программистов Цена: 110 р Статус: Very Interesting Музыкальный компьютер. Секреты мастерства Р. Петелин, Ю. Петелин Мягкая обложка, 608 стр., 2001 г. Издательства: Арлит, БХВ - Петербург; Серия: Компьютер и творчество Цена: 112 р Статус: Very Interesting Программирование звука в Windows. Руководство для профессионалов О. Гордеев Мягкая обложка, 364 стр., 1999 г. Издательство: BHV - Санкт - Петербург; Серия: Мастер. Руководство для профессионалов Цена: 48 р Статус: Very Interesting Цифровая обработка сигналов А. Б. Сергиенко Твердый переплет, 608 стр., 2003 г. Издательство: Питер; Серия: Учебник для вузов Цена: 183 р Статус: Interesting MIDI - язык богов (+CD-ROM) Д. В. Николенко Мягкая обложка, 144 стр., 2000 г. Издательство: Наука и Техника; Серия: Конспект программиста Цена: 77 р Статус: Interesting Музыкальная азбука на РС. Самоучитель (+ дискета) Вера Трусова, Евгений Медведев Мягкая обложка, 488 стр., 2003 г. Издательство: BHV - Санкт - Петербург; Серия: Самоучитель (`BHV`) Цена: 190 р Статус: Interesting Виртуальная звуковая студия Sonar (+ CD-ROM) Р. Петелин, Ю. Петелин Мягкая обложка, 736 стр., 2003 г. Издательства: BHV - Санкт - Петербург, Арлит; Серия: Компьютер и творчество Цена: 221 р + Статус: Interesting Sonar. Секреты мастерства (+ CD-ROM) Р. Петелин, Ю. Петелин Мягкая обложка, 656 стр., 2002 г. Издательство: БХВ-Петербург Цена: 197 р p.s. Честно говоря, понятия не имею, что такое Sonar, но интересно... Статус: Interesting Аранжировка музыки на РС Р. Петелин, Ю. Петелин Мягкая обложка, 272 стр., 1999 г. Издательство: BHV - Санкт - Петербург; Серия: Компьютер и творчество Цена: 53 р Статус: Interesting Реальность виртуального звука (+ CD-ROM) Евгений Медведев, Вера Трусова Мягкая обложка, 496 стр., 2002 г. Издательство: БХВ - Петербург Цена: 176 / 123 р Статус: Maybe Звуковая студия в PC Р. Петелин, Ю. Петелин Мягкая обложка, 255 стр., 1998 г. Издательство: BHV; Серия: Компьютер и творчество Цена: 41 р |
Сообщ.
#4
,
|
|
|
Неотсортированные вопросы / ответы
Q: Как вывести звук на определенную колонку (для систем с более чем 2 каналами)? Q: Как описать заголовок для буфера с более чем 16 битами на сэмпл? Q: Как определить формат звука как "с плавающей точкой"? A: Ответ на эти и некоторые другие вопросы по "новым" форматам звука с примерами можно найти в документе от Майкрософтов: http://www.microsoft.com/whdc/device/audio/multichaud.mspx Q: Как изменить громкость МП3-файла без перекодирования? 25.01.2008 Отвечаю в сотый раз. Если интересует, какой именно программой это можно сделать, то для этого есть: а) MP3Gain б) mp3DirectCut и многие другие Если интересует принцип работы этих программ, то он изложен в манах к MP3Gain: Цитата Lossless Gain Adjustment The bad news: MP3Gain can only adjust the volume of your mp3 files in steps of 1.5 dB. The good news: 1.5 dB is a small enough step for most practical purposes. Most humans can just barely hear a volume change of 1 dB. The other good news is that this volume adjustment is completely lossless. In other words, if you adjust an mp3 by -6 dB and then change your mind, you can adjust it again by +6 dB and it will be exactly the same as it was before you made the first adjustment. Here's the technical reason why it's lossless, and also why the smallest change possible is 1.5 dB: The mp3 format stores the sound information in small chunks called "frames". Each frame represents a fraction of a second of sound. In each frame there is a "global gain" field. This field is an 8-bit integer (so its value can be a whole number from 0 to 255). When an mp3 player decodes the sound in the frame, it uses the global gain field to multiply the decoded sound samples by 2(gain / 4). So if you add 1 to this gain field in all the frames in the mp3, you effectively multiply the amplitude of the whole file by 2(1/4) = 119% = +1.5 dB. Likewise, if you subtract 1 from the global gain, you multiply the amplitude by 2(-1/4) = 84% = -1.5 dB. Для ленивых краткая расшифровка: в каждом фрейме МП3-файла содержится значение "global gain" - уровня усиления для каждого конкретного фрейма. Подробнее - см. http://www.mp3-tech.org/programmer/frame_header.html http://websound.ru/programming/info/mp3head.htm http://freeprog.spb.ru/sources/id3.phtml http://www.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/ (сырцы по теме) |
Сообщ.
#5
,
|
|
|
Сообщ.
#6
,
|
|
|
OpenSource
Тут собираем библиотеки, программы с открытым исходным кодом. Естественно, имееющие отношение к программированию звука SSRC Это чего? А это классический алгоритм качественной конвертации частоты дискретизации. Использован во многих опенсорсных и фришных прогах и библиотеках, например, в http://www.avisynth.org Тип лицензии: LGPL. Компилятор: GCC Обновления: Последнее известное мне на 24.04.2007г.: Version 1.30 (28/06/2005) обсуждение, скачать LibSndFile Библиотека для чтения/преобразования звука в разных форматах. Не поддерживат MP3 по соображениям лицензионной чистоты. Поддерживает форматы звука (s - signed, u - unsigned): PCM 8-bit u/s, 16-bit s , 24-bit s, 32-bit s, 32-bit float, 64-bit double, u-law, A-law, IMA ADPCM, MS ADPCM, GSM 6.10, G721 ADPCM 32 kbps, G723 ADPCM 24 kbps, G723 ADPCM 40 kbps, 12/16/24 bit DWVW, Dialogic ADPCM, 8/16 bit DPCM Поддерживает контейнеры для этих форматов: Headerless RAW, Microsoft WAV, SGI/Apple AIFF/AIFC, Sun/DEC/NeXT AU/SND, Paris Audio File PAF, Commodore Amiga IFF/SVX, Sphere Nist WAV, IRCAM SF, Creative VOC, Sound forge W64, GNU Octave 2.0 MAT4, GNU Octave 2.1 MAT5, Portable Voice Format PVF, Fasttracker 2 XI, HMM Tool Kit HTK, Apple CAF. Причем о большей части форматов я не имею никакого представления Тип лицензии: LGPL. Кроссплатформенность: Win32 (Microsoft Visual C++), i586-pc-linux-gnu (Linux on PC hardware), powerpc-unknown-linux-gnu (Linux on Apple Mac hardware), powerpc-apple-darwin7.0 (Mac OS X 10.3), sparc-sun-solaris2.8 (using gcc), mips-sgi-irix5.3 (using gcc), QNX 6.0, i386-unknown-openbsd2.9 Обновления: Последнее известное мне на 24.04.2007г.: Version 1.0.17 (Aug 31 2006) обсуждение, скачать сырцы, скачать сырцы + скомпилированную под Win32 Dll Normalize "A fast PCM WAV normalizer". Что делает? Сканирует ВАВ-ку, определяет макс. амплитуду, и если она меньше, чем позволяет разрядность, то производится нормализация "на месте", т.е. прямо в оригинальном файле. Поддерживает форматы: только несжатые (PCM) WAV - файлы, 8 и 16 бит, частота не имеет значения , размером до 4 Гб (максимальный размер для данного контейнера). Тип лицензии: FreeWare. Платформа: Win32 CLI Обновления: Последнее (автор прекратил доработку): Version 0.253 (18.07.2004) описание, сырцы, бинарник под Win32 |
Сообщ.
#7
,
|
|
|
Наши исходники
Издаем звуки! Здесь собирается коллекция демонстрационных исходников по извлечению звука на разном уровне: API, DirectShow, DirectSound, сторонние библиотеки и т.д. Для исходников, по возможности, указаны версии операционных систем и компиляторов, на которых успешно проверены (или должны работать согласно документации). В большинстве случаев исходники упрощены до минимума - чтобы уменьшить количество кода, не имеющего прямого отношения к рассматриваемому АПИ. MessageBeep Платформа: Win32 (Win95/Win98/SE, WinNT 3.1/4.0/Win2000/WinXP) API: Win32 Язык: C++ Компиляторы: MS Visual C++ 6.0 SP5, Borland C++ Compiler 5.5, MinGW Дополнительные библиотеки/компоненты: - Самый примитивный способ извлечь звук: системный звук по умолчанию #include <windows.h> #pragma comment(lib, "user32.lib") int main(void) { MessageBeep(MB_OK); return 0; } MCI Платформа: Win32 API: MCI Язык: C++ Компиляторы: Borland C++ Builder Дополнительные библиотеки/компоненты: - Запись и воспроизведение звука с использованием MCI команд (Билдер) (сообщение #570776) DirectShow Платформа: Win32 (Win98/SE, WinXP) API: DirectShow Язык: C++ Компиляторы: MS Visual C++ 6.0 SP5, Borland C++ Compiler 5.5 Дополнительные библиотеки/компоненты: - Несмотря на примитивный пример, в нем получаются указатели на интерфейсы, позволяющие достаточно полно контролировать процесс воспроизведения: IGraphBuilder - строит граф фильтров для воспроизведения файла данного типа и позволяет с ним работать; IMediaControl - позволяет поставить на паузу, возобновить или остановить воспроихведение; IMediaPosition - получение длительности потока, чтение / установка текущей позиции и скорости воспроизведения; IBasicAudio - управление громкостью и балансом // Тупейший стартовый код для воспроизведения звуковых файлов через DirectShow. // (c) BarazuK, 2007 http://forum.sources.ru/index.php?showuser=6739 // Мегареспект B.V. за идею и "козу" на ВижуалВасике // Компилируется успешно (проверено мной): // MS Visual C++ 6.0 SP5: // cl play3.cpp // Borland C++ Compiler 5.5 в составе "C++BUILDER COMMAND LINE TOOLS" // bcc32 play3.cpp // Для MS Visual C++ можно написать немного красивше // с использованием смартпойнтеров ATL. // Но тогда, очевидно, не будет компилироваться Багландом. // Выложу чуть позже. #include <windows.h> #include <mmsystem.h> #include <control.h> #include <STRMIF.H> #include <UUIDS.H> #include <conio.h> #include <stdio.h> #include <math.h> #pragma comment(lib, "OLE32.LIB") #pragma comment(lib, "WINMM.LIB") // Единственное отличие - BCC прекрасно обходится без этой библиотеки #ifdef _MSC_VER #pragma comment(lib, "STRMBASE.LIB") #endif #define HELPER_RELEASE(x) { if (x) x->Release(); x = NULL; } HRESULT PlayAudioFile(LPCSTR szFile){ WCHAR wFile[MAX_PATH]; MultiByteToWideChar(CP_ACP, 0, szFile, -1, wFile, MAX_PATH); HRESULT hr = CoInitialize(NULL); if(FAILED(hr)) return hr; IGraphBuilder *pigb = NULL; IMediaControl *pimc = NULL; IMediaPosition *pimp = NULL; IBasicAudio *piba = NULL; __try{ hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pigb); if(FAILED(hr)) return hr; hr = pigb->QueryInterface(IID_IMediaControl, (void **)&pimc); if(FAILED(hr)) return hr; hr = pigb->RenderFile(wFile, NULL); if(FAILED(hr)) return hr; hr = pigb->QueryInterface(IID_IMediaPosition, (void **)&pimp); if(FAILED(hr)) return hr; REFTIME len; hr = pimp->get_Duration(&len); if(FAILED(hr)) return hr; hr = pimc->Run(); if(FAILED(hr)) return hr; hr = pigb->QueryInterface(IID_IBasicAudio, (void **)&piba); if(FAILED(hr)) return hr; for(;;){ Sleep(50); if(kbhit()){ int nKey = getch(); if(nKey == 27) break; } REFTIME pos; pimp->get_CurrentPosition(&pos); const int nBarSize = 53; static char bar[nBarSize + 1]; int nFilled = int(pos * nBarSize / len); memset(bar, 0xDB, nFilled); memset(bar + nFilled, 0xB0, nBarSize - nFilled); bar[nBarSize] = 0; printf("\r[%03d:%05.2f / %03d:%05.2f] %s", (int)floor(pos / 60.0), pos - 60.0 * floor(pos / 60.0), (int)floor(len / 60.0), len - 60.0 * floor(len / 60.0), bar); if(pos >= len) break; } pimc->Pause(); pimc->StopWhenReady(); hr = S_OK; }__finally { HELPER_RELEASE(piba); HELPER_RELEASE(pimp); HELPER_RELEASE(pimc); HELPER_RELEASE(pigb); CoUninitialize(); } return hr; } int main(int argc, char** argv) { HRESULT hr = PlayAudioFile(argc == 2 ? argv[1] : "test.mp3"); // Вот тут бы неплохо результат обработать, но лень... return 0; } |
Сообщ.
#9
,
|
|
|
Бесплатные (почти) библиотеки
Так... Уже который год всё никак не двигается в ФАКе описание годных библиотек. А вопросы про изобретение велосипеда повторяются без конца... FMOD Ex Programmers API Совместимость: Windows, Windows 8, Macintosh, iOS, Linux 32/64 bit, Android, Google Native Client, Blackberry, Xbox 360, PS3, Wii, Wii U, PS Vita, 3DS Интерфейс: C#, C++, библиотеки для MS Visual Studio, Metrowerks Codewarrior, Borland, LCC-Win32, Dev-C++, MinGW и CygWin Возможности: Умеет чуть менее, чем всё: 1) Низкоуровневое и управляемое данными АПИ; 2) полностью софтовый микшер с floating point 32-битной интерполяцией; 3) настраиваемая конфигурация вывода с эффектами окружения: Цитата Input channels can be mapped to any output channel through a simple 2D matrix. Output to mono, stereo, 5.1, 7.1 and Dolby Pro Logic or Pro Logic 2 with ease! Included with the API is a whole suite of 14 DSP effects, such as echo, chorus, reverb, etc which can be applied throughout the DSP mixing network. 4) Поддержка сжатых сэмплов (mp2, mp3, ADPCM and XMA) с созданием лупов без кликов и прочих артефактов 5) Поддержка кучи разных форматов файлов (wav, midi, mp3, XMA, ogg и семейство секвенсорных mod-форматов - только краткий перечень. Который легко может быть расширен через механизм плугинов. FMOD Ex может воспроизводить файлы с количеством каналов вплоть до 16!) 6) 3Д звук. Размещение источников звука в виртуальном 3Д пространстве, с реализацией эффекта Допплера и многого другого 7) Виртуальные "голоса". FMOD Ex может воспроизводить тысячи звуков одновременно (при небольших аппаратных требованиях) благодаря учёту взаимного расположения в пространстве и приоритета звуков. Полезность: Цитата Лень переводить Today, FMOD products are widely used within the gaming industry. The sound of over 1500 different titles, FMOD Interactive Audio Middleware has been used in games series such as: World of Warcraft, Starcraft, Crysis, Bioshock, Forza, Guitar Hero and other hit titles such as Dragon Age and L.A Noire. Users of FMOD products include: Activision Blizzard, Disney, Microsoft, Sony, Ubisoft, THQ, Take 2 Interactive, Unity, Crytek, Trinigy. Outside of the gaming industry, FMOD is used in the simulation sector in the domestic and defense industries and auto industry. Итого: мы имеем библиотеку, которая пригодна как для потокового воспроизведения тучи форматов (в том числе прямо из Инета), так и для проэктов, связанных с записью с микрофона или другого источника, конвертированием звука, реализации звука и музыки для игр с уже реализованным 3Д - движком, в том числе - с низкой латентностью, и всё это мегакроссплатформенно и при достаточно низких затратах процессорного времени. |