Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Служба Рассылок Городского Кота


Служба Рассылок Городского Кота

 

"Музыка на компьютере своими руками".

Выпуск #11 Пятница, 19 мая, 2000 года.

Добрый день господа подписчики.


Сегодня в выпуске:
1) О звуке и форматах его хранения на компьютере.
2) Impuls Tracker (Владимир Завгородний)
3) Обращение - предложение Билли ко всем подписчикам.


О звуке

По своей сути оцифрованный звук довольно прост. Звук передается по проводу как изменяющееся аналоговое напряжение. Чтобы произвести цифровую обработку, вы дискретизируете звук, измеряя напряжение через равные промежутки времени и преобразуя его в цифровое представление с помощью аналого-цифрового преобразователя (АЦП). После чего можно хранить и обрабатывать полученные значения как обычные цифровые данные. Для воспроизведения звука вам потребуется преобразовать данные обратно в аналоговый сигнал с помощью цифро-аналогового преобразователя (ЦАП). Рисунок 1 иллюстрирует это преобразование.

На качество получаемого в результате звука оказывают влияние два фактора. Первый - частота дискретизации (sampling rate) - показывает, как часто вы измеряете значение аналогового сигнала. Разрядность дискретизации (sample size) определяет точность замера. При увеличении частоты и разрядности дискретизации вы будете получать звук с лучшим качеством, но при этом будет увеличиваться количество данных, которые необходимо хранить. Так, одна секунда звука качества CD (44 100 измерений в секунду, 1б бит на канал, два канала) дает 172 килобайта данных. Для определения лучшей частоты и разрядности дискретизации необходимо найти компромисс между звуковым качеством и размером данных.

К счастью, то, как влияет изменение этих двух факторов на качество, определить довольно просто. По частоте дис-кретизации можно определить самую высокую частоту воспроизведения. Так, в соответствии с законом Найквиста самая высокая частота воспроизведения равна половине частоты дискретизации. Например, звуковой диск CD хранит оцифрованный звук, дискретизированный с частотой 44100 измерений в секунду, который может воспроизводиться с частотой до 22050 Гц. Такая частота, перекрывающая диапазон звуков, воспринимающихся большинством людей, хорошо объясняет высокое качество звукового CD. В то время как многие современные телефонные сети используют цифровой звук, дискретизированный с частотой 8000 измерений в секунду. Так как человеческая речь в основном лежит в диапазоне 3000 Гц, такая частота дискретизации вполне подходит для этих целей.

Разрядность дискретизации управляет фактором, представляющим собой отношение сигнала к шуму (signal-to-noise ratio). Любой метод хранения и воспроизведения звука вносит некоторые случайные потери, которые проявляются в виде шума. Для оцифрованного звука шум определяется точностью измерений. Чем точнее измерение, тем меньше зазор для шума.

Хранение звука

Наиболее очевидный способ хранения звуковых данных в файле - последовательная запись значений дискретизации. Эта простая схема известна как импульсно-кодовая модуляция (pulse code modulation, PCM). Такое причудливое название было заимствовано из старой электротехнической терминологии. Кроме того, хорошие файловые форматы также хранят в файле значения частоты и разрядности дискретизации, за счет чего разные звуки могут воспроизводиться различным образом.

Из-за того, что звуковые файлы так велики в объеме, естественно возникает интерес к возможности их сжатия. К сожалению, с помощью стандартных алгоритмов звуковые данные сжимаются плохо. В данном случае возникает та же ситуация, что и с фотографическими изображениями, стандартные алгоритмы не могут справиться с шумами.

Простейшая схема сжатия звука была разработана одной телефонной компанией, и случилось это много лет назад. Она позволяла компоновать несколько телефонных разговоров и передавать их по одному и тому же проводу. Исторически сложилось так, что телефонные компании интересовались только сжатием с фиксированной скоростью (fixed-rate compression). При сжатии таким способом все данные сжимались на одну и ту же величину. Этот подход отличается от обычно используемых в компьютерных программах методов сжатия, так как их зачастую не беспокоит то обстоятельство, что различные данные сжимаются по-разному.

Кодирование пауз

Когда люди разговаривают, часть времени их беседы, как это ни парадоксально, составляют паузы. При простом сжатии звука по алгоритму PCM требуется одинаковое количество места как для записи 10 минут тишины, так и для записи тяжелого рока. Простейший способ сократить размер большинства звуковых файлов - заменять такие паузы одиночным кодом, определяющим их продолжительность.

Сжатие u-Law и A-Law

Когда звуковая карта получает звуковые данные, она преобразует каждое значение дискретизации в соответствующее значение напряжения, которое затем усиливается и подается на динамик или наушники. При изменении значения оцифрованного звука меняется напряжение, а динамик преобразует изменение напряжения в изменение звукового давления, которое в виде звуковой волны распространяется в воздухе и достигает вашего уха.

Какая же связь между значением оцифрованного звука и генерируемым звуковой картой напряжением? Наиболее очевидный подход заключается в использовании линейной связи, при которой, например, увеличение значения цифрового представления звука с 2 5 до 50 будет приводить к увеличению напряжения вдвое. Однако этот подход не очень эффективен. Ловушка заключается в том, что вы хотите воспроизводить звук в широком динамическом диапазоне, в то время как ваше ухо не воспринимает звук линейно. Разница между 0 и 1 может быть слишком велика для слабых звуков, в то время как разница между 49 и 50 будет слишком мала, чтобы ухо ее различило.

Соотношение (J-Law используется, прежде всего, в Северной Америке и в Японии. Для преобразования значения линейной дискретизации m в дискретизацию Уц используется следующее уравнение:

где т? - максимальное входное значение оцифрованного звука, ар- константа, обычно 100 или 255. A-Law используется в Европе. Оно также используется для преобразования значения линейной дискретизации m в дискретизацию^. А - это константа 87,6.

Что же надо сделать для того, чтобы маленькие значения (например, 1) дискретизации оставались маленькими, а большие (например, 50) - большими? В нашей ситуации хорошо работает логарифмическая шкала (logarithmic scale). По этой шкале значение дискретизации 50 по сравнению с 25 будет генерировать изменение напряжения больше чем в два раза. При использовании такого подхода диапазон громкости увеличивается, не требуя большого диапазона значений.

Два общих уравнения задают точную связь. Соотношения u-Law и A-Law позволяют восьмиразрядные измерения представлять в том же диапазоне, что и линейные 12-разрядные. Таким образом, можно получить более чем 30 процентов сжатия!

DPCM и ADPCM

Другая простая схема сжатия с фиксированной скоростью преобразовывает последовательность измерений, сохраняя только разницу между предыдущим и последующим значением. Этот метод, известный как разностный РСМ (DPCM), сохраняет дисковое пространство за счет того, что значения разности обычно меньше самих измерений. Один из простых и наиболее эффективных методов сжатия для звука состоит в том, чтобы сначала вычислить разности, а затем сжимать полученные значения, используя алгоритм Хаффмана.

Чтобы не искажать исходные значения, в некоторых случаях потребуется наряду с маленькими значениями разности хранить несколько довольно больших. Адаптивный разностный РСМ (ADPCM) применяет специальные коды для указания масштаба, который используется следующим набором разностей. Этот коэффициент масштабирования позволяет в некоторых случаях представлять большое изменение, используя относительно малые значения разностей. С помощью методов ADPCM можно с приемлемым качеством сжимать звуковые данные в четыре раза.

Более сложные методы

Более сложные методы сжатия были разработаны на основе, известных сведений о человеческом слухе. Этим подходом они напоминают JPEG, который, как известно, опирался на сведения о человеческом зрении. Эти методы избирательно отбрасывают некоторые звуковые данные, что приводит к довольно внушительному сжатию при сохранении высокого качества воспроизведения. Широкого распространения эти методы еще не получили, прежде всего из-за того, что они требуют большого количества сложных вычислений, а современные компьютеры зачастую не могут выполнять их с той скоростью, которая необходима для распаковки данных при воспроизведении звука.

Некоторые методы сжатия были разработаны для использования на телефонных системах, включая сотовые телефоны. Эти методы основаны на модели человеческого голосового тракта. Они анализируют звук, используя специфические, созданные гортанью, горлом и ртом, образцы и передают только соответствующие им данные. Эти методы позволяют достигать внушительного сжатия человеческой речи.

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

Разные люди интересуются разными видами сжатия звука. Те из них, кто обладает более быстрыми компьютерами и микросхемами DSP, используют MPEG и другие более сложные методы сжатия, в то время как пользователи с более медленными системами не могут использовать эти стандарты. Из-за такого разнобоя большинство современных систем обработки звука, в том числе пакет инструментальных средств QuickTime Macintosh, поддерживают замещаемые кодеки (модули кодирования/декодирования). Использование замещаемых модулей позволяет тому же самому базисному программному обеспечению легко приспосабливаться к специфическим ситуациям и облегчает переход на новые версии программного обеспечения, поддерживающего более современные методы сжатия и микросхемы DSP.

(Продолжение в следующем выпуске...)


Impuls Tracker
(Владимир Завгородний)

Disclaimer:
1. Публикация рассчитана на мало-мальски опытных пользователей, знакомых по крайней мере, с базовой терминологией.
2. Публикация несет информативный характер; ее целью не ставится дать полное и исчерпывающее описание программы.
Вероятно, многие подписчики этой рассылки, начав заниматься музыкой на компьютере, задавались вопросом: почему же он (компьютер) так мерзко звучит? Ответ: потому, что на дешевой карточке midi и должна звучать вот таким вот пластиковым звуком, что напрямую связано со стоимостью этой карточки. Можно купить карточку побольше, можно установить виртуальный синтезатор (то есть купить компьютер побольше :), а можно придумать новый принцип сочинения музыки, что и было сделано давным-давно. Таким вот особым принципом явилась трэкерная музыка. Хотя, по существу, новой она может быть названа только в противопоставление midi, так как свое летоисчисление должна начинать года так с 1981 и синтезаторов Fairlight. Если говорить в общем, то суть ее сводится к следующему: помимо указаний о том, какую ноту какого инструмента когда извлекать (что есть и в протоколе midi), в файл включаются собственно сэмплы (для совсем непосвященных: короткие образцы звучания инструментов). Таким образом, в отличие от midi-файлов, которые от компьютера к компьютеру изменяют свое звучание (порой до неузнаваемости), файлы трэкеров звучат везде одинаково (исключение: если файл написан в одной программе, а прослушивается в другой возможны варианты).
Развитие трэкерных технологий можно очертить так:
Amiga вский ModPlayer -> Scream Tracker -> Fast Tracker -> Impulse Tracker.
Естественно, присутствовали разные всякие другие программы, но это основные этапы развития. Для работы настоятельно рекомендую последний, ImpulseTracker (by Jeffrey Lim -- снимите шляпы! вы еще не понимаете, какой он молодец), потому как он удобен в обращении и обладает большими возможностями. В качестве дополнительной рекомендации учтите: все, что говорится ниже говорится о нем. Работает Impulse Tracker (далее -- IT) в dos-окне. Русского языка там нет и по причинам сугубо политического характера никогда не будет. Кстати, приготовьтесь к тому, что он может конфликтовать с вашим хардвером (напр. с моим SBLive!) и поэтому мышкой на время работы с IT вы пользоваться будете с ограничениями. BTW на момент выхода он поддерживал достаточно много звуковых карточек, но автор на него давно поклал; так что совсем новые карты типа того же Live! а попытайтесь превратить в эмуляцию SB16. Пожалуй, единственным действительно необходимым условием работы с IT будет наличие сэмплов.
Впрочем, я верю, что вы решите эту проблему самостоятельно
(напр. Yahoo -> Search -> sample :) Found: 4576734292 pages :).
Вам подходят как сэмплы и инструменты этого трэкера, так и многих других; кроме того, вы можете (с некоторыми ограничениями) использовать файлы .wav, .pat, .krz (!). Короче, документацию почитайте, там все расписано. Ну а теперь пора уже что-нибудь рассказать и по теме. :) Программу можно разделить условно на три главные части: pattern editor, sample/instrument editor и области настроек. В pattern editor -- редакторе таблиц -- вы пишете ноты и различные указания к ним. Все это предстает перед вами в текстовом режиме, но синтаксис там предельно простой и стандартизированный, так что вы к нему привыкнете быстро (ИМХО).
Вам доступно до 64 каналов, от 32 до 200 строк в каждом (удобно для размеров отличных от 4/4), в которых вы все это дело будете писать. Для каждой ноты вы можете задать панорамирование и громкость (помимо заданных для инструмента и сэмпла), плюс в каждом канале в каждой строке можно использовать один (иногда два, но это высший пилотаж) эффект с параметрами, напр. вибрато, слайд, тремоло и т. д. Помимо нот вы можете выставлять команды выключение звука и конец ноты , которые, соответственно, будут либо обрывать звучание, либо прекращать его соответственно с настройками инструмента. При нажатии ScrollLock вы можете писать новые ноты в процессе проигрывания песни! В sample/instrument editor вы управляетесь с сэмплами и инструментами. Здесь инструмент до некоторой степени противопоставляется понятию сэмпл, то есть: инструмент это собрание инструкций по обращению с сэмплами. (А вообще это нормальная иерархия любого современного сэмпл-синтезатора, так что многим это должно быть привычно.)
В sample editor вы управляетесь собственно с сэмплами (до 99 штук; максимальный размер, кажется, до 4 мегабайт). Здесь вы настраиваете высоту их звука, loop points (forward или pingpong), громкость. Из приятного: вам доступны примитивные операции их редактирования (amplifier, reverse, crop), вибрато (несколько waveform), разделение default volume и global volume, и т.д. В instrument editor все будет гораздо интереснее. Во-первых, каждый инструмент (до 99) это один или более сэмплов. Для каждой, скажем так, клавиши инструмента вы можете назначить любую ноту любого сэмпла (идеально для drumkit, multisample и frequency distorion). Дополнительно к настройкам сэмплов, вы также задаете default и global volume инструмента, а также в некотором роде уникальные функции volume и pan swing, которые помогут вам внести неразбериху в звучание. :) Здесь же выставляется NNA (New Note Action), которе определяет, как ведет себя инструмент при последовательном извлечении нот в одном канале. А он может повести себя так: оборвать звучание (первая глохнет, вторая звучит), продолжить звучание (будет звучать два звука!), плавно сбросить громкость (первая затухает, а вторая уже звучит; скорость затухания выставляется) или же принять команду конец ноты (смотри дальше). Акромя того, вы можете настроить volume, pan, pitch envelopes. Причем не ограничиваясь классическим ADSR и даже E-mu вскими DAHDSR, а по принципу Korg рисуйте все, что угодно, используя для этого (по-моему) до двадцати опорных точек. Разница между этими огибающими и их классической трактовкой действительно впечатляет. В качестве примера вам больше не нужно tremolo, вы можете его изобразить при помощи volume envelope. Любые две точки в любой огибающей могут быть превращены в loop либо постоянный, либо sustain (либо оба сразу между разными точками.). Во втором случае, после команды конец ноты loop разрывается и огибающая продолжает выполняться (включая при необходимости основной loop). Звучит сложно, но когда попробуете поймете. FYI, pitch envelope может быть переопределена для контроля Q резонантного фильтра трэкера (см. далее). Причем у них там в Австралии это делают, а никаких указаний в документации нет. :-Е Сэмплы и инструменты могут быть сохранены в файлы, со всеми настройками (если используете формат IT) или без большинства (если выберете wav/pat/raw). А потом, естессно, могут быть загружены из файла. :)
Также существует до фига других настроек. Например, каждый (из 64) каналов имеет свои volume и pan установки (можете попробовать так сводить :).
С этого момента вам начнет казаться, что в программе много дублирующихся настроек, но это не так: они не дублируют друг друга, а пересекаются. Все это сделано совсем неспроста. Все написанные вами patterns организовываются в song (тобто песню), которая позволяет вам их тасовать в любом порядке, повторять, и т.д., предусмотрена даже возможность условного разделения песни на фрагменты (звучит так же, а в окошке аранжировки паттернов видно рекомендую, чтобы не запутаться). А в режиме редактирования паттернов можно наставить указаний о проигрывании самих этих паттернов всякими сложными образами например, несколько раз повторить его кусок. Теоретически, трэкер поддерживает midi. То есть как вывод звука на миди карточки (как бы даже не только некоторые каналы!), так и использование миди-клавиатуры. Впрочем, это я теоретизирую, потому что до конца не разобрался. Пока. Попробуйте поиграться с драйверами. Часть из них написана под mmx и позволяет использовать встроенные (очень приятные) резонансные фильтры. В свою очередь, часть новых карточек может быть настроена как эмуляция SB16, так что вы даже сможете с ними работать... Один из драйверов предназначен для записи звука в wav -- mono-only, если денег не платить... И это совпадает с моим мнением, что программа достаточно мощна, чтобы быть использованной в корыстных целях. В общем, будет, где разойтись.
Вы спросите: если это все так круто, все умеет и так далее, то почему все пользуются CakeWalk, Cubase, Logic Audio и не пользуются Impulse Tracker:
Я не знаю.
P.S. Если вы оцените программу, пошлите Джеффри Лиму немного денег. Хоть по доллару каждый. Он их заслужил.
P.P.S. Если придумаете, как их послать в Австралию.

Владимир Завгородний


Где можно скачать свежую
версию Impuls Trackera

1) www.mus.maker.ru
2) ftp.cdrom.com/pub/demos/incoming/music/programs
3) http://huizen.dds.nl/~im-pulse
Если этого недостаточно, то на сайте в разделе ссылки более полный список.


Внимание!!!

Мы публиковали описание изготовления звукоснимателя, автором которого был Билли. Сегодня он обращается через рассылку ко всем подписчикам. Ознакомтесь, и если у вас есть мысли или идеи - то пишите ему, адрес и обращение ниже.

Меня уже давно посетила идея заняться программулей для создания музыки. Я еще не садился писать, но идеи некоторые есть. Хотелось бы узнать, кто что видит, как все должно выглядеть. Нужно дать волю фантазии. Мне интересны самые безумные мысли и идеи. Обычно из таких можно взять много полезного. Эта программа должна выполнять все функции создания музыки с нуля: микширование аудио и миди, различные примочки для обработки звука и пр. Так что, если у кого есть идеи относительно интерфейса, функций, каких-то прибамбасов я буду очень рад. В общем, это должна быть программа (или пакет), сев за которую можно было бы написать полноценную композицию не прибегая к помощи других прог. Я понимаю, что раскатал губу. Согласитесь, что самые смелые идеи хоть и не воплощаются на 100%, но все же имеют шанс. Для начала хочу систематизировать всю полученную информацию, а потом, может быть договориться с другими программерами-любителями и сообща написать что-либо. По-моему все реально...

Счастья. Билли.
billy@latinsoft.lv


Если у вас есть комментарии к публикациям или свои соображения, если вы не против поделиться с остальными своими знаниями и опытом, если вы не против помочь начинающим и не только - пишите, мы с удовольствием опубликуем ваши соображения.

Если вы бываете в Интернете, то на нашем сайте вы найдете много полезной информации для себя. Он разместился на midi.ru (можно зайти с главной странички midi.ru по ссылке "Уроки музыки" или по адресу http://www.midi.ru/lesmus/).
Нотная грамота, уроки игры на гитаре, фортепиано, джазовые уроки для гитары, советы, описания, ссылки и еще много чего полезного.


Обновления в разделах уроков музыки.

О всех обновлениях, которые случаются почти каждый день - вы узнаете очень подробно на первой странице сайта - http://www.midi.ru/lesmus/
Вам не придется долго искать то, что вам нужно, надо просто кликнуть на необходимую ссылку в новостях и все.

И не забывйте, если у вас есть мидишки, сделанные вами, и вы не против выложить их для общего пользования на сервере midi.ru в разделе Архив музыки нашего сайта, присылайте.


Рассылки Subscribe.Ru
Рекомендуем следующие рассылки:
LinuxRSP. Новости, обзоры, ПО, статьи - сайт


e-mail:




Удачи всем, до следующего выпуска.
Все вопросы, комментарии, пожелания
и отзывы направляйте по адресу:
Mail: aserge@mailru.com
Вопросы по урокам музыки направляйте
по адресу gur@irk.ru
Ждем вас на сайте и на форуме
Web: http://www.midi.ru/lesmus/

 

http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное