Библиотеки Smartsound и их использование
Smartsound – одна из наиболее привлекательных (на мой взгляд) программ для создания профессионального звукового сопровождения видео, особенно, если под рукой есть достаточное количество библиотек к ней. Мне удалось собрать довольно большую коллекцию Smartsound библиотек и тут я столкнулся с некоторыми неудобствами их использования, о чем и хочу рассказать. Каждая библиотека Smartsound представляет собой один CD и, если их несколько, то в поисках наиболее подходящего файла нужно беспрерывно менять эти CD в драйве, что, с моей точки зрения, очень неудобно и доводит меня до белого каления. Мне могут возразить, дескать, возьми и скопируй все библиотеки на жесткий диск и это избавит тебя от указанных неудобств. Это, безусловно, хороший выход, но такой подход противоречит моим принципам, поскольку я не люблю хранить на жестком диске редко используемую информацию и предпочитаю в таких случаях иметь ее на CD/DVD. Судите сами: каждая библиотека Smartsound 44к занимает около 500МБ, т.е. 10 таких библиотек составят уже около 5ГБ, а если их 20, 30… Хотя свободного места на моем компьютере более чем достаточно, все же я решил записать все мои библиотеки на DVD, что и сделал. Каково же было мое разочарование, когда оказалось, что ни один из двух DVD не работал! Smartsound давал сообщение, что выбранная мною библиотека не найдена! Я очень обиделся, разозлился и стал искать причину. После небольшого расследования я разобрался, в чем дело и не только заставил работать DVD с несколькими Smartsound библиотеками, но и смог несколько улучшить и упростить управление ими.
Мои заметки предназначены обладателям библиотек Smartsound, которые хотели бы сделать сборник таких библиотек на одном носителе или добавить/изменить что-либо в информации об этих библиотеках.
Почему же мои первые DVD с несколькими библиотеками на каждом не работали? Дело в том, что путь к каждому файлу библиотеки неразрывно связан с именем библиотеки, которое является одновременно и меткой (label) оригинального CD. Таким образом, для того, чтобы создать один диск с несколькими Smartsound библиотеками, нужно, чтобы все библиотеки на одном диске были связаны с одной и той же меткой. Как же это можно сделать? Тут на помощь приходит файл *.sdi ,
который имеется для каждой библиотеки. Каждая библиотека Smartsound имеет три специальных файла, которые используются при ее инициализации (они обычно расположены в фолдере Library Enablers на оригинальном CD): *.blk – этот файл содержит звуковые блоки, используемые в программе; *.ico – ясно, что это иконка-идентификатор для данной библиотеки; и, наконец, файл *.sdi – этот файл содержит всю необходимую информацию о звуковых файлах библиотеки, их описании, которое появляется в окошке Smartsound программы, критерии сортировки звуковых файлов, параметрах (22к или 44к, 16 бит и т.д.).
Файл *.sdi написан в текстовом формате, что позволяет его легко (однако, с осторожностью) редактировать и это позволяет изменять многое в поведении библиотеки.
Хотя этот файл является обычным текстовым файлом, есть одна существенная оговорка: в нем используется непечатаемый символ (ASCII код 09), служащий для разделения определенных полей информации о музыкальном треке. Поэтому редактировать его нужно только в таком редакторе, который обращается с этим символом корректно. Ни в коем случае не следует редактировать файл *.sdi в Notepad, - это грозит нарушением его структуры, можно, например, использовать за неимением другого редактора (хотя это и не очень удобно) Wordpad. Это очень важно и не следует пренебрегать этим предупреждением.
Давайте рассмотрим поближе этот файл и заглянем в его содержимое.
При ближайшем рассмотрении выясняется, что файл *.sdi является, по сути, простейшей базой данных, где (как я упоминал выше) определенные параметры отделены символом ASCII 09, на который полагается программа при чтении базы данных.
Самое первое поле этой своеобразной базы данных, т.е. запись в самом начале файла, определяет, требует ли данная библиотека введения кода-ключа при установке. Вот как начинается библиотека Edge 01 Techno:
SDS_LIBRARY 2209 Jammin' grooves, drivin' dance tunes - this collection has everything you need to take your production to the extreme!=Original music: Guy Moon and Luis Torres.==Encoding: Ian Dahlberg=44kHz v1.0
Имейте в виду, что вся эта запись хранится как одна строка (т.е. символ, определяющий конец строки стоит только в конце этой записи).
SDS_LIBRARY – это имя параметра, хранящего идентификатор библиотеки, а 2209 – значение этого параметра. Первая полезная информация: если номер библиотеки кратен тысяче, это означает, что библиотека не требует ключа. Все библиотеки 22к имеют идентификаторы 2000, 3000, 5000 и т.д. В данном случае мы видим, что библиотека Edge 01 Techno 44k потребует ключик при установке. Однако если мы поменяем ее идентификатор, к примеру, на 5000, то программа про ключик и не вспомнит. Информация, следующая после номера библиотеки, будет появляться в окошке программы как описание данной библиотеки, а символы “=” служат для разделения строк при этом.
Далее в данной библиотеке следует параметр USAG со значением Cutting Edge и его описанием, а следующая строка показывает параметр STYL также со значением Cutting Edge и дополнительным значением Techno/Dance и с другим описанием. Эти параметры нужно рассмотреть подробнее. Каждый пользователь Smartsound знает, что когда программа открывается, она имеет некоторое подобие оглавления для библиотек, которое позволяет пользователю выбирать нужные треки, сортируя их либо по библиотекам, либо по другим критериям (например, Drama/Mood, Opener/Themes, Background, Sound Effects, Select by Style, Select by Title и т.д.). Выбирая соответствующий раздел, а затем подраздел, мы получаем перечень треков, соответствующих этим критериям. Так вот, эти критерии для сортировки определяются двумя параметрами: USAG и STYL. Первый из них, собственно, создает критерий, в нашем случае критерий с названием Cutting Edge, такой раздел появится в оглавлении. Второй параметр, - STYL, - конкретно определит подраздел этого критерия (в нашем случае Techno/Dance) и такой подраздел появится в оглавлении, когда мы выберем сортировку по Cutting Edge.
Однако далеко не каждая библиотека устанавливает критерии сортировки. Дело в том, что при установке программы, использующей библиотеки Smartsound, создается (еще до установки первой библиотеки) специальный файл – Maestro.sdi, который не содержит никаких музыкальных треков, зато определяет общие для всех библиотек критерии сортировки. Именно в нем определены критерии сортировки по именам треков, по музыкальным стилям и т.д.
Вернемся к рассматриваемому нами файлу Edge 01 Techo 44k.sdi.
Следующая его часть – ряд строк с параметром CUES. В каждой строке этот параметр принимает значение имени музыкального трека, после чего следует описание самого трека:
CUES Bedlam Grungy synth and distorted guitar hammer it out in this raw techno track.
Думаю, что никаких пояснений по этому поводу не требуется. Для каждого трека, который мы выбираем, программа дает коротенькую аннотацию с описанием и рекомендациями как лучше использовать этот трек. А данные для этой аннотации хранятся здесь, в параметре CUES.
После описания треков следует много строк с параметром CATA. В каждой строке этот параметр имеет два значения и легко видеть, что этим определяется сортировка треков, например:
CATA Select By Style Pop/Dance Blade Groove
Т.е. в оглавлении при выборе Select By Style мы увидим подраздел Pop/Dance и трек с названием Blade Groove будет там перечислен. Или такая строка
CATA Cutting Edge Techno/Dance Blade Groove
определит, что при выборе в оглавлении раздела Cutting Edge, этот же трек Blade Groove будет перечислен в подразделе Techno/Dance.
Наконец, последняя часть файла, которая интересовала меня более всего. Это ряд строк с параметром FILE, который имеет несколько значений и, собственно, управляет программой, когда мы выбираем тот или иной трек. Вот одна из строк:
FILE Bedlam Edge 01 Techno:Sound Files:44k:Bedlam 44k 44100 16 2 sowt 37185344
Первое значение (помните, что значения отделены друг от друга символом ASCII 09, который нам в данном случае виден как пробел, неотличимый от обычных пробелов между словами) определяет имя трека. Именно это имя показывается при выборе. Второе значение (достаточно длинное) – путь к файлу, содержащему данный трек. В нашем случае это Edge 01 Techno:Sound Files:44k:Bedlam 44k. Далее следует sampling – 44к, затем битность – 16, потом количество каналов – 2 и, наконец, два последних значения определяют место «основного» музыкального блока в треке.
Из всей этой информации нас интересует дорожка к треку. Как видим, она состоит из нескольких частей, разделенных символом “:” Самая первая часть – это метка оригинального CD с библиотекой, которая одновременно является именем самой библиотеки – Edge 01 Techno. Когда программа ищет нужный трек, она первым делом проверяет все CD устройства в компьютере на наличие в одном из них CD с нужной меткой. Если таковой не найден, то программа проверяет hard drive, используя тот путь, который пользователь указал. Отсюда следует, что, если хранить треки на CD, то программа найдет их быстрее, чем в случае, когда нужно проверять hard drive. Это тем более верно, чем больше фолдеров пользователь указывает как хранилища треков. Это также объясняет, почему программа не находила треков на моих DVD – метки на них не соответствовали имени библиотек. Остальная часть дорожки разгадывается без малейших усилий – это фолдеры на диске и собственно имя файла без расширения.
Теперь, вооруженные передовыми знаниями, мы можем отредактировать *.sdi файл для того, чтобы программа всегда находила нужный трек на CD/DVD, если мы записали на диск более чем одну библиотеку. Сделать это достаточно просто, достаточно в *.sdi файле для каждой библиотеке, записанной на диск, изменить дорожку на нужную. Предположим, я записал на диск десять библиотек, и диск имеет метку SS_Disc1. Каждую библиотеку я поместил в фолдер Sound Files\Имя библиотеки. Следовательно, для каждой библиотеки в файле *.sdi я должен изменить значение параметра FILE для каждого трека на такое: SS_Disc1:Sound Files:Имя библиотеки:Имя файла, т.е. для приведенного выше трека нужная строка будет выглядеть так:
FILE Bedlam SS_Disc1:Sound Files:Edge 01 Techno:Bedlam 44k 44100 16 2 sowt 37185344
Сказано – сделано. Я отредактировал *.sdi файлы для каждой из десяти библиотек, записал диск и установил обычным путем эти библиотеки в Smartsound программу. Работает? Да, все работает. Но очень неудобно: в перечне библиотек мои десять не появились, а появилась только одна с названием SS_Disc1, и она содержит треки из всех десяти. Ясно, что в таком виде пользоваться ими очень неудобно, мягко говоря. Список треков очень длинный, выбирать трудно, да и имя библиотеки ни о чем не говорит, а обычно имя библиотеки выбирается описательным, чтобы дать пользователю идею, как использовать данную библиотеку.
Для того, чтобы исправить ситуация нужно еще немного потрудиться. Нужно добавить критерий сортировки по библиотекам и тогда все станет на свои места.
Для этого в *.sdi файле для каждой библиотеки делаем следующее.
Добавим строку с параметром USAG и значением Select By Library, тогда программа отсортирует все треки соответственно. Для порядка добавим нужное описание (хотя и без него все ясно). Это будет выглядеть так:
USAG Select by Library Shows all sounds in selected library.
Теперь нужно создать подраздел, соответствующий выбранной библиотеке. Кроме того, как мы видели выше, каждая библиотека имеет свое описание и не хотелось бы это терять. Поэтому мы скопируем описание библиотеки из строки с идентификатором библиотеки и новая созданная нами строка в файле будет выглядеть так:
STYL Select by Library Edge 01 Techno Jammin' grooves, drivin' dance tunes - this collection has everything you need to take your production to the extreme!=Original music: Guy Moon and Luis Torres.==Encoding: Ian Dahlberg=44kHz v1.0
Этого, однако, недостаточно. Для каждого трека нужно добавить еще параметр для сортировки, чтобы этот трек был перечислен в составе соответствующей библиотеки. Для каждого трека добавляем параметр CATA и его значением (имя трека):
CATA Select by Library Edge 01 Techno Bedlam
Из этой строки видно, что в разделе Select By Library при выборе библиотеки Edge 01 Techno появится трек Bedlam.
После описанных действий все будет выглядеть хорошо, но один маленький недостаток все же остается – библиотека с названием SS_Disc1 все равно останется, и будет содержать все треки на диске, а в качестве ее описания будет использоваться описание первой установленной с этого диска библиотеки. С описанием бороться легко: мы изменим строку с идентификатором на следующее:
SDS_LIBRARY 2209 This disk contains a collection of the original Smartsound libraries.===Choose a proper library by name to select from.
Теперь описание будет менее конкретным, но дающим правильное представление о библиотеке – это сборник, содержащий оригинальные библиотеки.
А вот заставить программу не показывать такую библиотеку я не смог. Если у кого-либо появятся на этот счет идеи, это будет замечательно. А пока я применяю такой метод: метку на диске я делаю такую, чтобы она появлялась в самом конце перечня, например, предваряю метку символом “_”, т.е. _SS_Disc1. В этом случае она нисколько не мешает.
Что же полезного можно извлечь из редактирования *.sdi файлов еще?
Можно создавать свои описания треков. Это очень удобно для тех, кто использует Smartsound библиотеки часто для тематических роликов (свадьбы и т.д.).
Можно делать свои собственные библиотеки, компилируя их из оригинальных, что тоже удобно для многих пользователей.
Можно создавать свои критерии сортировки и т.д. Была бы фантазия и желание.
Однако редактировать вручную подобные вещи не очень удобно. Поэтому владеющим элементарными навыками программирования (на любом языке) не составит большого труда написать простую программу для редактирования текста, что, бесспорно, сделает процесс изменения *.sdi файлов более простым и надежным.