О каких типах файлов следует знать.
Речь пойдет не о структурах файлов, а лишь о их принадлежности к определенным типам. Любые файлы являются бинарными, и об этом Я распространяться не буду. Начну Я с описания типов Аудио файлов, поскольку их больше, а под конец Я расскажу о небольшом семействе MIDI-файлов.
Все, разумеется, знают, что такое Microsoft Wave формат. Этот тип аудиофайлов был разработан Microsoft для мультимедиа в среде Windows. Тип имеет файловое расширение DOS "wav". Т.е., например, в MS-DOS и Windows имя файла будет выглядеть так: "kisss.wav".
По большей части wave-файлы содержат внутри данные в формате PCM *, суть которого Я как раз описывал в разделе "Принцип Цифрового Аудио". Звуковые данные представлены в них в виде последовательности пульсовых значений, о которых уже говорилось. Очередным изобретением Microsoft был ACM *, давший большие возможности Windows Multimedia. Суть новшества заключается в том, что при наличии установленной в системе особой программы, возможно начинять wave-файлы информацией, отличающейся по принципу хранения и задания звуковых данных от базового PCM *. Эти дополнительные программы называются CODEC ("кодэк"), что происходит от слепленных вдвое слов "code" и "decode". CODEC'и поступают от самых разных разработчиков, начиная с Microsoft и, заканчивая изобретателями формата MP3- Fraunhofer IIS (Institut Integrierte Schaltungen). С помощью codec, информация кодируется по особому алгоритму и принципу, метится и помещается в wave-файл. При проигрывании такого файла с помощью аудиоприложений, имеющих поддержку ACM, менеджер сжатия распознает формат данных, подключает соответствующий codec, после чего последний производит чтение-раскодировку данных и отправку их, используя процедуры вывода звука, в виде PCM-данных.
Зачем нужны CODEC? PCM данные хранятся "as is", т.е. как есть. Одна минута звука в PCM 16bit, 44.1 kHz stereo занимает 10 MB. Но ведь это очень много! Как можно уменьшить объем информации? Уменьшить качество звука? Хорошо. Я спохаблю этот файл и сделаю его 8bit 22kHz mono. И что же мы теперь имеем? 1,25 мегабайт дерьма! Я на это не согласен. По этой причине и стали разрабатывать дополнительные методы описания звуковых данных. Некоторые из них позволяют хитро кодировать звук, в десятки раз уменьшая размеры файла, причем среднестатистический тупоухий лох не поймет стало хуже или нет. Тем не менее, все кодеки, рассчитанные на уменьшение хранимых данных, производят сжатие с потерей части информации источника. От количества игнорированной либо отсеянной кодеком информации зависит качество звука, раскодируемого при использовании. Все "экономные" кодеки существуют под единым принципом: чем больше сжатие, тем хуже, или суррогатнее звук.
К наиболее распространенным кодекам относятся Microsoft- и IMA-ADPCM, Fraunhofer MP3, GSM, Ms-Network, CCITT a-Law/u-Law и, конечно же, конвертер PCM.
Что такое
ADPCM. Буковки "AD" в слове значат "Adaptive Delta". В математике обозначение delta применяют к понятию "разность". Хранимые в IMA и Microsoft ADPCM формате, данные отличаются от PCM тем, что на их кодировку уходит всего 4 бит, за счет того, что звук описывается разностью между ближайшими значениями модулирующих квантов. Заданная таким образом волна, имеет приблизительное сходство с оригиналом и не может описывать быстрые изменения амплитуды. Такой способ сжатия не годится, когда у записи богатый спектр частот и высока степень артикуляции. Лично Я не проверял, какой из представленных ADPCM лучше. Есть ADPCM использующие меньше, чем 4 бит.Кроме ADPCM CODEC имеется также
конвертер PCM. Этот кодек рассчитан на простой перевод данных PCM в спектре возможностей PCM. Как-то перевод из 16 в 8 бит и наоборот, прием и перевод данных в PCM от других codec, изменение частоты дискретизации ("samplerate").Кроме вышеназванных существует еще и весьма полезный кодек
MP3 формата. Самым лучшим из таковых является, конечно же, Fraunhofer IIS MPEG Layer-3 codec. Это самый высококачественный кодер, непревзойденный декодер, :)) он же один из самых медленных. Ну... раз уж речь пошла об MP3, то...Суть формата
mp3 заключается в неполной выборочной спектральной кодировке звука. При кодировке создается так называемая "психоаккустическая модель", используемая потом для того, чтобы оптимально обманывать относительный наивный слух человека. Психоаккустическая модель создается всегда разная, в зависимости от качеств самого звука и выбранных параметров кодировщика (качество/степень потерь сжатия, режим стерео, битрейт и тп.). Тихие звуки маскируются громкими и кодируются с меньшей точностью. Насколько Я знаю, mp3 не имеет единого алгоритма сжатия. Тем не менее, какими бы ни были алгоритмы, схема описания информации одна. Этот вопрос является для Меня загадкой. А было бы полезно разобраться в этом вопросе и попобовать сделать что-нибудь вроде mp3 кодера. Что касается параметров выбираемых при кодировке звука в mp3, то это частота дискретизации, стерео/моно и их режимы и, конечно, битрейт (bitrate-сколько бит информации уходит на описание одной секунды звука). Битрейт выбирают, если он будет постоянный по всему файлу. Иногда вместо битрейта выбирается так называемое "качество". При последнем звук кодируется блоками с разным выделяемым по необходимости объемом сохраняемой информации. "Качество" регулирует высоту порога этой "необходимости" =:-)О прочих кодеках догадаетесь или прочитаете сами.
Как много написано и все о
Microsoft RIFF Wave формате! У формата есть полный аналог, используемый на системах Macintosh- AIFF (".aif"). Кроме этого, имеются многочисленные аудиоформаты от разных систем. Список их вы сможете найти в документации и меню "open" любого приличного аудиоредактора.В Интернет, помимо
MP3 и wav, широко распространен формат RealAudio (*.ra, *.ram и тп.). Именно в потоковом формате RA идет вещание многих Интернет-радиостанций. В отличие от высококачественного формата MP3, RealAudio представляет собой довольно ущербное явление.Имеется формат, лицензированный YAMAHA,-
Формат Ogg Vorbis является серьезной альтернативой mp3. Настолько серьезной, что попросту превосходит его по своим характеристикам. В то время как mp3 катастрофически теряет качество при уменьшении битрейта, ogg этим не страдает. Высокие частоты остаются практически на том же уровне даже при кодировке с битрейтом 80kbps VBR. Естественно качество не будет слишком уж хорошим, но я вообще молчу про дрянной mp3 на 128kbps. Поэтому выбор сделать не сложно, причем не в пользу mp3. Формат является совершенно открытым и бесплатным, поэтому над ним постоянно трудится целая команда разработчиков. Не денно и ночно, конечно, но движение есть. На сегодняшний день актуальны кодеры и декодеры на базе RC3 (resourse code 3). Компания, занимающаяся разработкой именует себя Xiphophorus (ссылки на все сайты в разделе "ссылки").
Совершенно ясно, что фантазировать на тему совершенства можно бесконечно, поэтому появляются и другие новые форматы на смену прогнившему и устаревшему mp3 (хотя бы потому что из-за него идет грызня между разработчиками кодеров и засаленным Fraunhofer с прочей блядью). Например, появился формат MusePack (MPEG Plus, mpc). По своим характеристикам превосходит и mp3, и ogg. Однако, по-моему, на низких битрейтах лучше все-таки OGG. Качество mpc на более низких битрейтах, чем 256, 320 (то, что считается пределом качества у ваших долбаных mp3) превосходит качество ЛЮБОГО mp3, сделанного ЛЮБЫМ кодером.
Что-то наклевывается какая-то возня вокруг долгопережданного настоящего MPEG-4. Что энто?! Энто Advanced Audio Coder (коротко- AAC). Файлы этого формата, созданные с помощью кодеров Psytel, например, превосходят по качеству любой mp3 c большим битрейтом. У меня есть Demo кодер от Psytel (загляните на сайт, где лежит моя музыка. Там вы найдете многое из того, о чем я говорю. После этого Ваши поиски истины будут недолгими). У кодера есть два режима- AAC и mp4. mp4 режим дает прекрасное качество. Второй я не пробовал, но уверен, что mp3 все равно в пролете. У них есть какой-то "Professional" кодер, который сохраняет музыку в файлы mp4, но у меня его нет.
Ой, бедняжка mp3.... Как я его, однако, обосрал... Даже стыдно за всех тех, кто над этим убожеством столько времени корпел, а особенно тех, кто "ни за что его ни на что не променяет". Так вот, не все тут стоит на месте. Есть кодер Lame, который очень даже не плох. Если вы отконфигурируете его как следует и будете в добавок использовать режим ABR (разновидность VBR, где критерием является не Q (качество), а "средний битрейт", которого кодеру надо придерживаться при кодировании. Качество таких файлов превосходит качесво файлов с постоянным битрейтом. Отсюда и буква A, означающая "average"). С Lame желательно использовать более-менее высокий битрейт. Все таки это не ogg, не mpc, не aac, а обычный mp3. Просто кодер хороший.
Теперь вкратце о
миди-форматах. На сегодняшний день широко распространены только "*.mid" и "*.rmi". Первый называется Standard MIDI-файл (SMF), а второй- RIFF MIDI-файл. По сути RMF-тот же SMF. Кроме этих "человеческих" форматов существуют многочисленные незаконнорожденные всевозможных мидиредакторов. Сколько редакторов, столько и таких форматов.SMF
может иметь формат "0" и формат "1". Вам, наконец, должно быть известно, что каждая команда MIDI, будь то нота или контроллер (кроме SysEx), имеет обязательный параметр -канал адресации. В формате "0" содержимое midiфайла не разбито на дорожки, и вся информация хранится в виде единого массива данных, адресуемых на разные каналы самими командами. Формат "1" хранит информацию о дорожках (треках) их названиях и тп. Относящиеся к какому-то трэку, данные адресуются тому каналу, на который поставлен сам трэк. Кроме MIDI-команд в файле может сохранятся информация о wave-импорте, "lyrics" (словца) и тп. Существует новый формат MIDI- XF. Я толком не пойму, чего в нем замечательного... У XF вроде есть свойства для караоке... Да хрен с ним!Кроме конкретных мидифайлов имеются вспомогательные. Например,
SYX файлы (*.syx). Эти файлы имеют 16-ричный формат и в них можно сохранить или написать команды SysEx. (SysEx состоят из последовательностей байтов и открываются HEX-редакторами или встроенными HEX-редакторами в MIDI-секвенсорах).Все, что ли...
А! нет. Кроме Midi и Аудио файлов вам могут встретиться файлы типа
Немного про компьютерные игры.
Предположим, что вы решили сделать компьютерную игру. Что для этого требуется? Ну, во-первых, хороший уровень программирования- это уж само собой. Во-вторых, талант (поедрёней). В-третих, конкретная цель.
Каковы основные требования к современным компьютерным играм? Это хорошая графика, звук и, наконец, хорошая музыка для фона и создания требуемой атмосферы.
Ну, а что, если вы не собираетесь делать никаких игр, а просто вам нравится музыка из игры, и вы хотите ее оставить себе (а саму игру потереть). Так в каком виде прилагается музыка к компьютерным играм?
В старых играх музыку программировали для
MIDI. Где-то среди файлов программы одиноко, затаившись, находился запакованный файл в каком-то уникальном формате, и распаковать его могли только "знающие" люди. Сохранив музыки в виде стандартного midi-файла, вы можете послушать их и даже жестоко стереть по отдельности :)). Из каких игр можно вытащить General MIDI файлы? Например, “WarCraft” или “Dune 2”. В более новых играх музыку помещали на CD-аудио дорожки компакт-диска с игрой. С таким играми и так все ясно.В последнее время, когда у большого числа буржуев появилось несметное количество жестких дисков гигабайт так по 8-16, музыку стали прилагать к играм в виде файлов
wave или MP3. Например, ваш любимый StarCraft и Diablo содержат музыку в виде здоровенных wave-файлов, хотя и помещенных на CD этих игр. В Diablo музыка запихана в файл .MPQ на CD. Кстати, открыть mpq можно с помощью программы MPQ viewer. Запросите в поисковиках типа AltaVista "Diablo", и найдете ссылки. В "Heroes of Might and Magic" музыка записана в MP3.Итак, это wave и MIDI, а что бывает еще? Еще бывает, что для игр музыку пишут на
трэкере. Например, культовое ристалище "Crusader: no remorse" "Crusader II: no mercy, no pity, no regret" :))). Когда Я впервые ыгрался в crusader, музыка произвела на Меня самое лучшее впечатление. Музыка была и в самом деле очень хорошей. Сочетание маленького размера с божественным для DOS звуком явило трэкерные модули идеальным вариантом для Crusader. Модули прилагались к игре в сумасшедшем формате AMF (в смысле, хрен чем его откроешь). Недавно Я нашел в Интернете программу-конвертер amf2mod, и теперь Я могу спокойно слушать техноту и накрываться воспоминаниями о радужном (но не безоблачном) детстве. ХахахахаХааа!!! (буковка 2 в названии программы значит "to". Так пишут нигеры. напр, "U=you" или "1a live 4eva" :)К хорошо известной игре "
Unreal" музыка тоже сделана на трэкере. К "Blood II"- тоже.Для некоторых игр придумывают свои особенные аудиоформаты. Например, We
stwood- “AUD”. Музыка представляет собой особые ADPCM-wave файлы. Преобразвать в wave их можно с помощью комплекта программ RA-MIXer, предназначенных для редактирования MIX-файлов игры Red Alert. В формате AUD Westwood выпустили музыку с многими играми, заканчивая Dune 2000.Вот теперь все!
*
"Pulse Code Modulation": Импульсно-кодовая Модуляция.