Главная » Программирование звука » Файлы проектов

0

Каталог Source также содержит один подкаталог на каждую платформу. Проектные   и   компоновочные   файлы   используют   исходный   код,   расположенный в каталоге Common.

Windows

Файлы  проектов  для Visual C++  4.2  и Visual C++ 5.0.  Для того чтобы откомпилировать  проект,  вам  необходимо  скопировать  весь  каталог  Source (включая все  подкаталоги)  на  ваш  жесткий  диск.  Если  вы  измените  относительное  положение  файлов  проектов  и  исходных  текстов,  вам  придется  удалить  все  файлы  из проекта и заново добавить их.

UNIX

Компоновочный  файл  совместим  с  GNU  gmake.  Он  должен  подойти  с  незначительными   изменениями   и   для   других   программ   компоновки.   Данный   файл предполагает, что вы используете компилятор GCC 2.7.2:

?  если  вы  хотите  откомпилировать  исходные  файлы,  вы  можете  перейти

в каталог, содержащий компоновочный файл, используя команду cd, и на-

брать make;

?  если  вам  необходимо  подправить  опции  компилятора,  нужно  скопировать

компоновочный файл на жесткий диск и внести соответствующие изменения;

?  если вам нужно изменить исходные файлы, необходимо скопировать содер-

жимое каталога Common на жесткий диск и соответствующим образом под-

править компоновочный файл.

По  умолчанию  компоновочный  файл  просматривает  каталог  Common  вглубь на  два  уровня  в  поисках  исходных  файлов  и  сохраняет  их  в  каталоге  /tmp.  Если вы  измените  относительное  положение  компоновочного  файла  и  файлов  с  исходными  текстами,  то  вам  потребуется  подправить  макрос  SRCDIR в  компоновочном файле. Заметим, что компоновочный файл не создает каталоги OBJDIR и BINDIR; перед компиляцией вам следует удостовериться, что они существуют.

Кроме  того,  программа  playsnd не  будет  компилироваться,  если  не  установлены   библиотеки   и   заголовочные   файлы   NAS.   Если   они   не   находятся в   области   стандартного   пути   поиска   вашего   компилятора,   нужно   отредактировать  макрос  LIBS так,  чтобы  сообщить  компилятору,  где  их  можно  найти.  Если у  вас  не  установлены  файлы  NAS,  попытайтесь  вместо  playsnd использовать программу  playtoau,  которая  работает  точно  так  же,  но  осуществляет  вывод

16-битного  файла  AU  в  stdout вместо  проигрывания  его  через  громкоговори-

тель.   Обеспечение   NAS   для   различных   систем   можно   найти   на    ftp://ftp.x.org/

contrib/audio/.

Другие системы

Если  вы  используете  систему  или  компилятор,  которые  отличаются  от  перечисленных   выше,   вам   потребуется   либо   соответствующим   для   вашей   системы образом  преобразовать  компоновочный  файл  UNIX,  либо  создать  новый  проект с  нуля.  Файлы  в  каталоге  Common фактически  создают  несколько  разных  программ.  Ниже  приведено  описание  каждой  программы  и  перечисляются  исходные файлы,  необходимые  для их  построения. (Если  вы  хотите знать  подробности, просмотрите компоновочный файл UNIX.)

Программа  playsnd   это  основная  демонстрационная  программа.  Она  открывает  файл,  определяет,  относится  ли  он  к  поддерживаемым  типам,  а  затем  проигрывает его. Для компиляции используются следующие файлы:

? основные: audio.cpp, audio.h, aplayer.cpp, aplayer.h;

служебные: open.cpp, open.h;

поддержка компрессии: compress.cpp,compress.h,dpcm.cpp,dpcm.h,

g711.cpp, g711.h, imaadpcm.cpp,imaadpcm.h, mpeg.cpp,mpeg.h;

поддержка  файловых форматов: aiff.cpp, aiff.h, au.cpp, au.h,

iff.cpp, iff.h, voc.cpp, voc.h, wav.cpp, wav.h;

музыкальная поддержка: instrumt.h, midi.cpp, midi.h, mod.cpp,

mod.h, plucked.cpp, plucked.h, sampled.cpp, sampled.h;

?  системные.  Если  вы  используете  Win32,  вам  понадобятся:  winmain.cpp,

winplayr.h и   winplayr.cpp. Если вы работаете в Mac OS, вам потребу-

ются: macmain.cpp,macplayr.h,macplayr.cpp и файл ресурсов play-

sound.µ.rsrc (который  расположен  в  проектном  каталоге  CW11).  Если

вы  используете  Networked  Audio  System  в  UNIX,  вам   понадобятся:  nas-

main.cpp, nasplayr.h и  nasplayr.cpp.

Программа playtoau делает то же самое, что и приведенная выше playsnd, но вместо  проигрывания  через  громкоговоритель  она  направляет  файл  формата  AU в  stdout.  Это  позволяет  преобразовывать  файл  любого  формата  в  формат  AU, что  полезно,  если  у  вас  есть  отдельная  утилита,  которая  может  проигрывать  файлы  AU,  или  если  ваша  система  слишком  медленна  для  проигрывания  файлового формата  (такого  как MPEG)  в  реальном  режиме  времени.  Ha  выходе  всегда  будет

16-битная ИКМ. Программа компилируется из тех же файлов, что и playsnd, но использует файл playtoau.cpp вместо файла из системного набора, показанного выше.

Программа  рlаyau  (см.  главу  4)  читает  файл  AU  из  стандартного  потока  ввода  и  проигрывает  его  через  громкоговоритель.  Чтобы  откомпилировать  его,  вам используются  общие  и  системные  файлы,  перечисленные  для  playsnd,  а  также файлы: au.cpp, au.h, compress.cpp, compress.h, g711.cpp и  g711.h.

Программа autoau (см. главу 16) читает файл AU через cin и выводит другой

файл  AU  через  cout.  Ha  выходе  всегда  16-битная  ИКМ.  Чтобы  откомпилировать

его,  используйте  общие  файлы  playsnd,  а  также  файлы:  autoau.cpp, au.h,

au.cpp, compress.cpp, compress.h, g711.cpp и  g711.h.

Тестовая  nporpaммa  playnote  рассматривалась  в  главе  21.  Чтобы  откомпили-

ровать  ее,  вам  потребуются  общие  и  системные  файлы,  используемые  для  программы      playsnd,      а      также      файлы:      playnote.cpp,   instrumt.h, sampled,cpp,

sampled.h, plucked.cpp и  plucked.h.

Тестовая  программа  sinetoau  описана  в  главе  4.  Чтобы  откомпилировать  ее,

применяйте  общие  файлы  playsnd,  а  также  файлы:  sinetoau.cpp, sinewave.cpp, au.cpp, au.h, g711.cpp и  g711.h.

Программа logtest (см. главу 11) вычисляет истинное значение отношения  сигнал/шум  для  различных  сигналов,  используя  логарифмическое  кодирование  G711 и  ИКМ-кодирование.  Эта  программа  применялась  для  оформления  рис.  11.2.  Компилируется                       она                       с                       помощью                       файлов: logtest.cpp,audio.cpp,audio.h,g711.cpp,

g711.h и  compress.h.

Программа  testmatrix  (см.  главу  14)  демонстрирует  различия  в  скорости  меж-

ду разными реализациями операций матрицирования MPEG.

Короткая  программа  fftmain  читает  данные  из  cin,  реализует  БПФ  применительно  к  ним,  а  затем  выводит  данные  в  cout.  Чтобы  откомпилировать  программу применяйте файлы fftmain.cpp, fft.срр  и  fft.h.

Программа   ifftmain   аналогична   вышеприведенному   примеру,   но   реализует

обратное БПФ. Для комииляции используйте fftmain.cpp, fft.cpp и fft.h.

Заметим,  что  все  перечисленные  программы  имеют  простой  текстовый  пользовательский интерфейс: playsnd и testmatrix были протестированы на многих системах, а остальные разрабатывались в демонстрационных целях, и, возможно, для их   правильной   компиляции   в   вашей  системе   придется   немного   поэкспериментировать.

Источник: Кинтцель Т.  Руководство программиста по работе со звуком = A Programmer’s Guide to Sound: Пер. с англ. М.: ДМК Пресс, 2000. 432 с, ил. (Серия «Для программистов»).

По теме:

  • Комментарии