<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Музыкальные программы &#187; FM-synth</title>
	<atom:link href="http://muzprog.ru/tag/fm-synth/feed/" rel="self" type="application/rss+xml" />
	<link>http://muzprog.ru</link>
	<description>Обзоры VST</description>
	<lastBuildDate>Mon, 26 Mar 2012 14:48:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Создаём секвенсор в Max/Msp.</title>
		<link>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-%d1%81%d0%b5%d0%ba%d0%b2%d0%b5%d0%bd%d1%81%d0%be%d1%80-%d0%b2-maxmsp/</link>
		<comments>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-%d1%81%d0%b5%d0%ba%d0%b2%d0%b5%d0%bd%d1%81%d0%be%d1%80-%d0%b2-maxmsp/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 13:38:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Извлечение звука]]></category>
		<category><![CDATA[autechre]]></category>
		<category><![CDATA[FM-synth]]></category>
		<category><![CDATA[Max 5]]></category>
		<category><![CDATA[Max/Msp]]></category>

		<guid isPermaLink="false">http://muzprog.ru/?p=1053</guid>
		<description><![CDATA[Ну вот, Я и созрел для продолжения серии статей по программам модульного программирования звука. Извиняюсь за долгое молчание перед теми, кто ждал чего-нибудь новенького. К сожалению времени, на сайт катастрофически не хватает, сами понимаете – лето на дворе. И так в этой статье я расскажу про то, как сделать в Max/Msp простенький секвенсор. В принципе [...]]]></description>
			<content:encoded><![CDATA[
<p>Ну вот, Я и созрел для <a href="http://muzprog.ru/создаем-fm-синтезатор-самичасть1/">продолжения</a> серии статей по программам модульного программирования звука. Извиняюсь за долгое молчание перед теми, кто ждал чего-нибудь новенького. К сожалению времени, на сайт катастрофически не хватает, сами понимаете – лето на дворе.</p>
<p>И так в этой статье я расскажу про то, как сделать в <a href="http://muzprog.ru/tag/maxmsp/">Max/Msp</a> простенький секвенсор. В принципе в этой программе можно сделать кучу разных секвенсоров и возможности их ограничиваются только вашей фантазией. Моя статья это всего лишь один из способов. Наш секвенсор будет чем-то напоминать шаговый секвенсор в <a href="http://muzprog.ru/?tag=fl-studio">FL studio</a><span id="more-1053"></span>, но пока только с одним синтезатором.</p>
<p><strong>Начнём.</strong></p>
<p><strong>1.	Темп и количество шагов.</strong></p>
<p>Для изменения темпа и количества шагов в секвенции, существует объект [tempo]. Вставим его в наш патч с аргументами [120 1 16], где 120 - темп, 1 – множитель, 16- кол-во шагов. К первому входу объекта подключим [toggle] для запуска секвенции, ко второму и последнему объекты [number] для изменения темпа и количества шагов. Должно получиться так.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/06/sequencer1.jpg"><img class="size-full wp-image-1054  aligncenter" title="sequencer1" src="http://muzprog.ru/wp-content/uploads/2009/06/sequencer1.jpg" alt="sequencer1 Создаём секвенсор в Max/Msp." width="189" height="158" /></a></p>
<p>Объект [loadbang] и сообщения {set 120} и {set 16} нужны для того, чтобы при запуске патча значения объектов [number] были не нули, а 120 и 16.</p>
<p><span style="color: #888888;"><em>Примечание: В квадратных скобках я буду писать объекты, а в фигурных так называемые сообщения, которые пишутся в Message Box.</em></span></p>
<p><strong>2.	Секвенсор.</strong></p>
<p>Основой нашего секвенсора, т.е. местом, где мы будем  отмечать ноты, будет [matrixctrl]  этот объект выглядит, как тетрадь в клетку, где на перекрестии можно ставить точку, а информация о местоположении этой точки будет поступать на выход объекта. Эту информацию мы и будем использовать для изменения высоты тона. Я сделал размер матрицы 16x12, т.е. у меня будет 12 нот и 16 шагов. Для изменения размера матрицы нужно схватить её за правый нижний угол и тянуть до нужного размера, количество строк и столбцов показывается при изменении внизу в панели состояния. Для визуализации положения текущего шага, мы используем объекты [route] и [button]. В [route] впишем аргументы от 0 до 15, что соответствует количеству шагов. Таким образом, при поступлении номера шага с выхода [tempo] на вход [route], на соответствующем выходе [route] появляется сигнал, поступающий на кнопку [button] и она загорается жёлтым цветом. Чтобы загорающая кнопка соответствовала шагу в матрице нужно разместить их точно над перекрестиями матрицы и на вход объекта [matrixctrl] послать команду {getcolumn $1}. Эта команда выводит на правый выход матрицы информацию о положении точки активного столбца. В итоге мы получим следующую картину.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/06/sequencer2.jpg"><img class="size-medium wp-image-1055  aligncenter" title="sequencer2" src="http://muzprog.ru/wp-content/uploads/2009/06/sequencer2-260x300.jpg" alt="sequencer2 260x300 Создаём секвенсор в Max/Msp." width="260" height="300" /></a></p>
<p>Если мы поставим точку на нижней строчке первого столбца, то при прохождении первого шага на выходе получим сообщение <em>000000000001</em>, а если на последнем столбце верхней строчки, то <em>1000000000000</em> . Вроде всё нормально, но мне бы хотелось, чтобы было всё наоборот, т.е. первая нота <em>1000000000000</em>, а последняя <em>1000000000000</em>, не знаю как вы а я привык к возрастанию тона с низу вверх. Чтобы исправить эту ситуацию я воспользовался объектом [zl] с аргументом rev. Вообще этот объект производит разные действия со списками и имеет огромное количество аргументов (смотрите help), в данном случае аргумент rev переворачивает значение, поступающее на его вход, что мне и требуется.</p>
<p>Далее мне нужно из этой информации номер строки от 1 до 12, для этого я использую всё тот же объект [zl], но уже с аргументом sub 1. Объект с этим аргументом  ищет в сообщении цифру 1 и сообщает её положение на левый выход. Например, при сообщении на входе <em>1000000000000</em> на выходе будет 1, а если на входе <em>0000000000001</em>, то на выходе будет 12. Одновременно с этим на правом выходе появится 1. Если на входе нули, то на правом выходе тоже будет ноль.</p>
<p>Теперь давайте посмотрим, что нам это всё даёт.</p>
<p>1.	Мы имеем на выходе номер строки, на которой поставлена точка от 1 до 12 при прохождении шага.</p>
<p>2.	Мы также имеем сигнал 1 с правого выхода [zl sub 1] если точка есть и 0 если её нет на данном шаге.</p>
<p>Таким образом, второй сигнал можно использовать как <em>note on</em> и <em>note off </em>. А первый как информацию о высоте ноты. Например, если мы примем первую снизу строку матрицы за ноту C, высота тона которой равна 60, то нам всего лишь надо прибавить к первому сигналу 59 с помощью объекта [+].</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/06/sequencer3.jpg"><img class="size-medium wp-image-1056  aligncenter" title="sequencer3" src="http://muzprog.ru/wp-content/uploads/2009/06/sequencer3-300x175.jpg" alt="sequencer3 300x175 Создаём секвенсор в Max/Msp." width="300" height="175" /></a></p>
<p>Если вы захотите начать с другой ноты, то вам надо будет просто изменить слагаемое. В итоге на выходе объекта [+] мы получим значения от 60 до 71, что соответствует одной октаве от C до B. Для удобства я написал ноту напротив каждой строки с помощью комментария.</p>
<p><strong>3.	Синтезатор.</strong></p>
<p><a href="http://muzprog.ru/создаем-fm-синтезатор-самичасть1/">В первой статье</a>, я уже рассказывал, как создать синтезатор и поэтому здесь останавливаться на этом не буду. Сделаем простейший FM синтезатор и с выхода [+] подадим сигнал на вход объекта [mtof], который, как вы помните, преобразует информацию о высоте MIDI ноты в частоту.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/06/sequencer4.jpg"><img class="size-medium wp-image-1057  aligncenter" title="sequencer4" src="http://muzprog.ru/wp-content/uploads/2009/06/sequencer4-300x210.jpg" alt="sequencer4 300x210 Создаём секвенсор в Max/Msp." width="300" height="210" /></a></p>
<p>Для запуска объекта [function] используем сигнал с правого выхода [zl sub 1]. Для этого подключим его на левый вход объекта [gate], а на правый вход этого объекта подадим команду {bang}. [gate] пропустит команду {bang}на вход [function] при 1 на его левом входе.</p>
<p><strong>Заключение.</strong></p>
<p>В итоге получился вот такой секвенсор.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/06/sequencer5.jpg"><img class="size-medium wp-image-1058  aligncenter" title="sequencer5" src="http://muzprog.ru/wp-content/uploads/2009/06/sequencer5-300x251.jpg" alt="sequencer5 300x251 Создаём секвенсор в Max/Msp." width="300" height="251" /></a></p>
<p>Ставим точки на матрице и запускаем. В принципе можно использовать его по-разному. Например, с помощью сигнала с [zl sub 1] запускать воспроизведение аудиофайла соответствующего номеру строки  и т.д.</p>
<p>Файл патча можно скачать <a href="http://muzprog.ru/wp-content/uploads/2009/06/seqmy.pat">здесь</a>. Сделанов <a href="http://muzprog.ru/tag/maxmsp/">Max/MSP</a> 4.5 .</p>
<p>Экспериментируйте, комментируйте, задавайте вопросы и делайте замечания.</p>

<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d1053').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>В закладки:</em></strong></a>
<br />
<div class="d1053" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;bm_description=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;T=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-%25d1%2581%25d0%25b5%25d0%25ba%25d0%25b2%25d0%25b5%25d0%25bd%25d1%2581%25d0%25be%25d1%2580-%25d0%25b2-maxmsp%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+%D1%81%D0%B5%D0%BA%D0%B2%D0%B5%D0%BD%D1%81%D0%BE%D1%80+%D0%B2+Max%2FMsp." rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d1053').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1053').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-%d1%81%d0%b5%d0%ba%d0%b2%d0%b5%d0%bd%d1%81%d0%be%d1%80-%d0%b2-maxmsp/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Создаём FM-синтезатор сами (часть 2)</title>
		<link>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/</link>
		<comments>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 07:02:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Извлечение звука]]></category>
		<category><![CDATA[FM-synth]]></category>
		<category><![CDATA[Max/Msp]]></category>
		<category><![CDATA[PureData]]></category>
		<category><![CDATA[synth]]></category>
		<category><![CDATA[SynthEdit]]></category>
		<category><![CDATA[SynthMaker]]></category>

		<guid isPermaLink="false">http://muzprog.ru/?p=835</guid>
		<description><![CDATA[Продолжаем создавать синтезатор в Pure Data. В этом уроке мы попробуем усовершенствовать наш «инструмент» описанный в первой части. Для начала попробуем сделать наш синт полифоническим, ну а потом заставим его звучать от midi-команды. 1. Полифонический синтезатор. В таких программах как SynthEdit, SynthMaker, Reaktor уже имеются полифонические объекты и сделать синтезатор в них не составит труда. [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаем создавать синтезатор в Pure Data. В этом уроке мы попробуем усовершенствовать наш «инструмент» описанный в <a href="http://muzprog.ru/2009/03/создаем-fm-синтезатор-самичасть1/" target="_blank">первой части</a>. Для начала попробуем сделать наш синт полифоническим, ну  а потом заставим его звучать от midi-команды.<span id="more-835"></span><br />
1.	<strong>Полифонический синтезатор.</strong><br />
В таких программах  как SynthEdit, SynthMaker, Reaktor уже имеются полифонические объекты и сделать синтезатор в них не составит труда. В MAX/MSP существует такой объект как poly~, который как раз и превращает наш моно синтезатор в полифонический (если интересно пишите, я расскажу как). А вот в PD к сожалению всё намного сложнее, там нет таких объектов и приходиться выкручиваться.<br />
Если у вас PD-extended, то можно обойтись малой кровью, так как хорошие люди уже попытались создать патчи для замены объекта poly~ в PD. Этот объект nqpoly4 и находится он в папке   \pd\extra\nqpoly4\ но, к сожалению, объект этот оптимизирован для синтезатора созданного автором и с нашем синтом работать не будет. Поэтому мне пришлось, немного переделать объект для работы с нашим творением. Назвал я его недолго думая [poly~] <img src='http://muzprog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Создаём FM синтезатор сами (часть 2)" class='wp-smiley' title="Создаём FM синтезатор сами (часть 2)" /> , ссылка для скачивания в конце текста. В архиве находится два объекта [poly~] и [poly-wrap].<br />
Итак, начнём. Для начала создайте папку poly в папке extra и обязательно укажите эту папку в настройках PD. Для этого откройте в PD меню File-&gt;Path и в открывшемся окне нажав кнопку New, добавьте вашу папку. В эту паку распакуйте файлы из скачанного архива.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/04/p1.jpg"><img class="size-medium wp-image-853  aligncenter" title="p1" src="http://muzprog.ru/wp-content/uploads/2009/04/p1-300x237.jpg" alt="p1 300x237 Создаём FM синтезатор сами (часть 2)" width="300" height="237" /></a></p>
<p>Теперь немного исправим синтезатор, созданный на прошлом уроке. Добавим объект [inlet] и [unpack] с аргументами f f (функцию этого объекта я объясню ниже). Выход [inlet] соединим с входом [unpack f f]. Левый выход [unpack f f] с входом объекта [Number] в котором мы задаём несущую частоту, а правых выход с входом объекта [envgen]. К Number в котором задаём harmonicity ratio (HR) подключаем объект receive для этого в поле объекта пишем r или receive и аргумент, в нашем случае аргумент hr (получится [r hr] или [receive hr]). К Number в котором задаём modulation index (MI) подключаем  такой же объект, но с аргументом mi (будет [r mi] или [receive mi]). Объект [receive] подает на выход любое сообщение (число, текст, список), полученное от объекта [send], имеющего тот же аргумент. Проще говоря мы сможем задавать значения HR и MI в любом другом месте с помощью объектов [s hr] и [s mi]. Теперь для большей гибкости уберём объект [dac~] и поставим вместо него два выхода [outlet~]. Должно у вас получиться, так как на рисунке.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/04/p2.jpg"><img class="size-medium wp-image-855  aligncenter" title="p2" src="http://muzprog.ru/wp-content/uploads/2009/04/p2-300x221.jpg" alt="p2 300x221 Создаём FM синтезатор сами (часть 2)" width="300" height="221" /></a></p>
<p>Сохраняем наш исправленный патч (я назвал его osc_my) и не забудьте указать папку где он находится в настройках Path…, чтобы PD смог его найти. <span style="text-decoration: underline;">И вообще делайте так всегда, когда создаёте какой-либо объект или патч, который будете использовать в других патчах.</span></p>
<p>Вот собственно мы подошли к самому главному к полифонии. Создадим новый патч и вставим в него объект [poly~] с тремя аргументами. Первый аргумент это количество голосов. Во втором аргументе указана организация голосов, если равен 0, то распределения голосов не происходит если отличный от 0, то при нехватке свободных голосов объект будет заимствовать голос первой удерживаемой ноты (на этом в принципе пока не стоит заморачиваться). В качестве третьего аргумента указываем имя нашего синтезатора в моём случае osc_my. В итоге если вы хотите получить 16-голосный синтезатор объект будет выглядеть так [poly~ 16 0 osc_my].</p>
<p><em><span style="color: #c0c0c0;">Примечание: Принцип работы объекта [nqpoly4] и основанного на нём [poly~] для PD состоит в том, что входной сигнал клонируется на количество голосов, а потом объединяется. В принципе это можно сделать и вручную, но согласитесь, если голосов больше 5 это ужасно утомительно.</span></em></p>
<p>Для того чтобы появился звук, как мы помним нам надо задать значения несущей частоты, HR, MI и запустить ADSR. Изменять HR и MI нам поможет ранее упоминавшийся объект [send], создадим два объекта Number и подключим их к объектам [s hr] и [s mi].</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/04/p3.jpg"><img class="size-medium wp-image-857  aligncenter" title="p3" src="http://muzprog.ru/wp-content/uploads/2009/04/p3-300x155.jpg" alt="p3 300x155 Создаём FM синтезатор сами (часть 2)" width="300" height="155" /></a></p>
<p>Теперь меняя значение здесь, оно будет меняться в нашем синтезаторе. Про несущую частоту мы поговорим подробнее. Так как именно она задаёт тональность звука нашего инструмента, то именно её мы будем менять посредством midi-клавиатуры. И тут мы плавно переходим ко второй задаче – подключение midi-устройства.</p>
<p>2.	<strong>Подключение midi-устройства.</strong><br />
Для взаимодействия с midi в MAX/MSP и Pure Data существует объект [notein]. Этот объект выдаёт на выход высоту тона (pitch), силу нажатия (velocity) и номер канал. Ваше миди устройство вы можете выбрать в меню Media-&gt; MIDI settings-&gt; input device 1 (по умолчанию стоит none).</p>
<p>Итак, создаём объект [notein], использовать мы будем только первый и второй выходы т.е. pitch и velocity. Но как, скажите вы использовать информацию о высоте тона для извлечения звука, ведь нам нужно менять частоту. А очень просто, в PD, как и в максе есть очень нужный объект [mtof], который преобразует значение высоты тона в частоту. Соединяем левый выход [notein] с входом [mtof]. Информацию о силе нажатия мы будем использовать для запуска ADSR т.e. нам нужно чтобы, когда клавиша нажата звук был, а при отпускании звук пропадал. Для этого нам нужно разделить значение velocity на 127, используя объект [/].</p>
<p>Чтобы пропустить эти сигналы через всю систему создания полифонии и довести до синтезатора, необходимо пустить их по одному «проводу». Для этого упакуем сигналы с помощью объекта [pack] с аргументами f f. Этот объект преобразует сообщения в список т.е. он принимает сообщения, запоминает и подает их в виде списка на выход. Команда &lt;bang&gt; или сообщение, полученное на левый вход, выбрасывает сформированный список. А когда сигнал дойдёт до нашего синтезатора, мы его распакуем объектом [unpack] на выходе которого получим нужные нам несущую частоту и сигнал для запуска ADSR. И напоследок подключим к выходу объекта [poly~] уже известный нам объект [dac~]. Можно сохранить этот патч назвав его, например polysynth. Должно выглядеть так.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/04/p4.jpg"><img class="size-medium wp-image-859  aligncenter" title="p4" src="http://muzprog.ru/wp-content/uploads/2009/04/p4-300x230.jpg" alt="p4 300x230 Создаём FM синтезатор сами (часть 2)" width="300" height="230" /></a></p>
<p>Теперь давайте разложим по пунктам всё выше сделанное.<br />
1.	Миди сообщение преобразуется в частоту и сигнал нажатия/отпускания клавиши.<br />
2.	Всё это упаковывается и подаётся в объект [poly~].<br />
3.	 В объекте [poly~] сигнал размножается на количество голосов указанных в аргументе объекта.<br />
4.	С выхода объекта выходит сигнал уже не с одного синтезатора, а с многих.<br />
5.	Регулировка параметров синтезатора осуществляется с помощью [Number] в основном патче.</p>
<p>Вот в принципе и всё. Если кто что понял хорошо. Если не понял, то задавайте вопросы. Я не учитель и объясняю, как могу. Более подробно описание каждого объекта на русском смотрите на<a href="http://www.eggnot.com/~lib/sound&amp;music/puredata-ref.ru.htm#_Hlk65732099" target="_blank"> этом сайте</a>.</p>
<p><strong>Нужные файлы:</strong><br />
Архив с объектом [poly~]. <a href="http://muzprog.ru/wp-content/uploads/2009/04/poly.rar" target="_blank">poly.rar</a><br />
Мой синтезатор для примера. <a href="http://muzprog.ru/wp-content/uploads/2009/04/polysynth.rar" target="_blank">polysynth.rar</a><br />
Распаковывайте в папку extra и не забудьте указать эти папки в настройках программы.</p>
<p style="text-align: center;"></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d835').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>В закладки:</em></strong></a>
<br />
<div class="d835" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;bm_description=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;T=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2591%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-2%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%91%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8+%28%D1%87%D0%B0%D1%81%D1%82%D1%8C+2%29" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d835').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d835').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Создаем FM-синтезатор сами(часть1)</title>
		<link>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%b5%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8%d1%87%d0%b0%d1%81%d1%82%d1%8c1/</link>
		<comments>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%b5%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8%d1%87%d0%b0%d1%81%d1%82%d1%8c1/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 09:14:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Извлечение звука]]></category>
		<category><![CDATA[FM-synth]]></category>
		<category><![CDATA[Max/Msp]]></category>
		<category><![CDATA[PD]]></category>
		<category><![CDATA[PureData]]></category>
		<category><![CDATA[SynthEdit]]></category>
		<category><![CDATA[SynthMaker]]></category>
		<category><![CDATA[создание синтезатора]]></category>

		<guid isPermaLink="false">http://muzprog.ru/?p=513</guid>
		<description><![CDATA[С этой статьи я начну серию статей о создании патчей в модульных программах создания музыки, таких как Max/MSP, Pure Data, Reaktor, SynthEdit, SynthMaker и т.д. Чаще всего буду использовать Pure Data. А именно сборку  PD-extended. Почему PD спросите Вы? Ну во-первых это бесплатная программа и есть версии не только для Windows, но и для Linux [...]]]></description>
			<content:encoded><![CDATA[<p>С этой статьи я начну серию статей о создании патчей в модульных программах создания музыки, таких как <a rel="”nofollow”" href="http://www.cycling74.com/products/max5" target="_blank">Max/MSP</a>, <a rel="”nofollow”" href="http://puredata.info" target="_blank">Pure Data</a>, <a rel="”nofollow”" href="http://www.native-instruments.de/index.php?id=reaktor5" target="_blank">Reaktor</a>, <a rel="”nofollow”" href="http://synthedit.com/" target="_blank">SynthEdit</a>, <a rel="”nofollow”" href="http://synthmaker.co.uk/index.html" target="_blank">SynthMaker </a>и т.д. Чаще всего буду использовать Pure Data. А именно сборку  <a href="http://puredata.info/downloads" target="_blank">PD-extended</a>. Почему PD спросите Вы? Ну во-первых это <a href="http://muzprog.ru/?tag=free-vst">бесплатн</a>ая программа и есть версии не только для Windows, но и для Linux и MacOS. Во-вторых, PD предлагает объекты для низкоуровневого создания инструмента и, поняв принцип построения в ней, Вы легко создадите подобный патч в других программах.</p>
<p><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd.jpeg"><img class="size-full wp-image-517   alignright" title="pd" src="http://muzprog.ru/wp-content/uploads/2009/03/pd.jpeg" alt=" Создаем FM синтезатор сами(часть1)" width="104" height="66" /> </a></p>
<p><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd.jpeg"> </a><a href="http://muzprog.ru/wp-content/uploads/2009/03/maxmsp.jpg"><img class="size-full wp-image-519     alignleft" title="maxmsp" src="http://muzprog.ru/wp-content/uploads/2009/03/maxmsp.jpg" alt="maxmsp Создаем FM синтезатор сами(часть1)" width="144" height="96" /></a> <a href="http://muzprog.ru/wp-content/uploads/2009/03/reakt_03.jpg"><img class="size-full wp-image-521        aligncenter" title="reakt_03" src="http://muzprog.ru/wp-content/uploads/2009/03/reakt_03.jpg" alt="reakt 03 Создаем FM синтезатор сами(часть1)" width="118" height="94" /></a> <a href="http://muzprog.ru/wp-content/uploads/2009/03/syntheditlogo.jpeg"><img class="size-full wp-image-523   alignright" title="syntheditlogo" src="http://muzprog.ru/wp-content/uploads/2009/03/syntheditlogo.jpeg" alt=" Создаем FM синтезатор сами(часть1)" width="128" height="32" /></a> <a href="http://muzprog.ru/wp-content/uploads/2009/03/synthmaker_logo.jpeg"><img class="size-full wp-image-525    alignleft" title="synthmaker_logo" src="http://muzprog.ru/wp-content/uploads/2009/03/synthmaker_logo.jpeg" alt=" Создаем FM синтезатор сами(часть1)" width="128" height="60" /></a></p>
<p>Итак, начнём с создания FM-синтезатора с амплитудной <span id="more-513"></span>ADSR-огибающей. Сначала не много теории. Звук в FM-синтезе определяет следующие параметры: частота несущей [Frequency Carrier(FC)], частота модулятора (FM), амплитуда модулятора (AM), отношение FM/FC известное больше как harmonicity ratio (HR) и отношение AM/FM, которое называется modulation index (MI).<br />
<em>Примечание: Я буду использовать английские термины, чтобы вам было проще освоиться в других программах.<br />
</em></p>
<p><em> </em> Запускаем PureData  и в открывшемся окне нажимаем Ctrl+n или File-&gt;New, тем самым создав новый патч в котором мы и будем создавать основу нашего синтезатора.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd1.jpg"><img class="size-medium wp-image-535 aligncenter" title="pd1" src="http://muzprog.ru/wp-content/uploads/2009/03/pd1-300x239.jpg" alt="pd1 300x239 Создаем FM синтезатор сами(часть1)" width="300" height="239" /></a></p>
<p>Первым делом создаём генератор несущей частоты (Carrier Oscillator), модулятор (modulating oscillator) и возможность задавать параметры MI и HR. Для этого нажимаем Ctrl+1 или Put-&gt;Object и в появившееся поле пишем osc~.  Объект osc~ является генератором с косинусоидальной функцией, частота которого задаётся через левый вход. Создадим два таких объекта, один из них будет модулятором, а другой генератором несущей. Для связи с внешним миром и возможности задавать параметры создадим таким же образом три объекта inlet~ (входы нашего патча) и один outlet~ (выход). Подпишем входы и генераторы, чтобы было проще. Первый вход FC, второй HR и третий MI. Первый генератор modulating oscillator и второй Carrier Oscillator. Для этого нажмите Ctrl+5 или Put-&gt;Comment и пишите в появившемся поле.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd2.jpg"><img class="size-medium wp-image-537  alignleft" title="pd2" src="http://muzprog.ru/wp-content/uploads/2009/03/pd2-300x84.jpg" alt="pd2 300x84 Создаем FM синтезатор сами(часть1)" width="300" height="84" /></a> <a href="http://muzprog.ru/wp-content/uploads/2009/03/pd3.jpg"><img class="size-medium wp-image-539 aligncenter" title="pd3" src="http://muzprog.ru/wp-content/uploads/2009/03/pd3-300x233.jpg" alt="pd3 300x233 Создаем FM синтезатор сами(часть1)" width="300" height="233" /></a></p>
<p>Частота модулятора(FM), исходя из выше сказанного, будет равна FC * HR, поэтому первый вход inlet~, которым мы будем задавать FC, надо перемножить со вторым, через который мы будем задавать значение HR, а результат подадим на модулятор. Для этого создадим объект <strong>*~</strong>, который перемножает сигналы, и подсоединим первый inlet~ к левому входу, а второй к правому, а выход к левому входу osc~.<br />
<em>Примечание: Чтобы соединять объекты нужно навести курсор на выход объекта, пока не появится кружок, нажать левую кнопку мышки и вести, не отпуская к входу другого объекта, и отпустить когда появится кружок.</em></p>
<p><em></em> Далее вычисляем амплитуду модулятора (AM). Для этого перемножим третий объект inlet~, через который будем задавать MI с частотой модулятора(FM). Для этого создадим уже знакомый нам объект *~  и подключим к его левому входу выход верхнего *~, а к правому выход третьего inlet~. В итоге должно получиться примерно следующее.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd4.jpg"><img class="size-medium wp-image-545   aligncenter" title="pd4" src="http://muzprog.ru/wp-content/uploads/2009/03/pd4-300x186.jpg" alt="pd4 300x186 Создаем FM синтезатор сами(часть1)" width="300" height="186" /></a></p>
<p style="text-align: center;">Чтобы задавать амплитуду модулятора мы перемножим полученное значение амплитуды с сигналом объекта osc~, амплитуда которого изменяется от 0 до 1.<br />
Получится вот что.<a href="http://muzprog.ru/wp-content/uploads/2009/03/pd5.jpg"></a><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd51.jpg"><img class="size-medium wp-image-551  aligncenter" title="pd51" src="http://muzprog.ru/wp-content/uploads/2009/03/pd51-300x247.jpg" alt="pd51 300x247 Создаем FM синтезатор сами(часть1)" width="300" height="247" /></a></p>
<p>И в конце создания основной логики  FM-синтеза нужно объединить все полученные вычисления для модуляции генератора несущей частоты. Для этого будем использовать объект +~, который суммирует сигналы. В нашем случае мы суммируем несущую часто-ту(FC) и сигнал модулятора. Создадим объект +~ и подключим к его левому входу выход первого inlet~ (FC), а к правому входу подключим выход объекта *~  при помощи которого мы контролируем амплитуду модулятора. Затем соединим объект +~ к левому входу второго объекта osc~ для его модуляции. А уже выход этого генератора к входу объекта outlet~.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd6.jpg"><img class="size-medium wp-image-553  aligncenter" title="pd6" src="http://muzprog.ru/wp-content/uploads/2009/03/pd6-300x242.jpg" alt="pd6 300x242 Создаем FM синтезатор сами(часть1)" width="300" height="242" /></a></p>
<p>Всё, основная часть готова. Теперь сохраним этот патч для последующего использования его в наших музыкальных проектах под именем FMsynth  в папку extra, у меня она находится по адресу  D:\Program Files\pd\extra\. Смотря куда, вы установили PureData.<br />
Теперь попробуем извлечь звук из нашего творения. Давайте создадим новый патч как мы это делали ранее, нажав Ctrl+n. В новом патче создадим объект FMsynth, и если вы всё сделали правильно, программа найдёт созданный нами до этого объект. В объекте должно быть три входа и один выход. Если Вы кликните на нём правой кнопкой мышки и нажмёте <strong>Open</strong>, то откроется созданный вами ранее патч FMsynth.<strong> </strong></p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd7.jpg"><img class="size-medium wp-image-555  aligncenter" title="pd7" src="http://muzprog.ru/wp-content/uploads/2009/03/pd7-300x123.jpg" alt="pd7 300x123 Создаем FM синтезатор сами(часть1)" width="300" height="123" /></a></p>
<p>Далее нам необходимо создать то, через что мы будем задавать значения FC, HR и MI. Для этого вставим в наш проект объекты Number, нажав Ctrl+3 или выбрав его из списка в меню Put. Затем создадим объекты sig~ , который предназначен для того, чтобы преобразовать числовые значения в аудио сигнал. Теперь соединим Number с sig~, а sig~ с входом FC нашего FMsynth.  Сделаем также для двух оставшихся входов  HR и MI. Должно получиться, что-то вроде этого.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd8.jpg"><img class="size-medium wp-image-557  aligncenter" title="pd8" src="http://muzprog.ru/wp-content/uploads/2009/03/pd8-300x141.jpg" alt="pd8 300x141 Создаем FM синтезатор сами(часть1)" width="300" height="141" /></a></p>
<p>Чтобы звук нашего синтезатора не длился бесконечно долго и для добавления ему некоторых свойств, нам нужна ADSR-огибающая. Для контроля амплитуды синтезатора возьмём объект *~  и подключим к его левому входу сигнал с нашего синтезатора, а к правому объект line~, который генерирует огибающую. Для указания формы огибающей создадим объект envgen. После создания объекта envgen подключим его выход к левому входу line~. А к входу envgen подсоединим объект bang,  для этого впишите слово bng в объект бокс  или выберете его из списка в меню Put. Объект bang представляет собой кнопку, нажав на которую выдаётся кратковременная команда, т.е. в нашем случае при нажатии на кнопку будет слышен звук. Должно выглядеть примерно так.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd9.jpg"><img class="size-medium wp-image-559  aligncenter" title="pd9" src="http://muzprog.ru/wp-content/uploads/2009/03/pd9-300x207.jpg" alt="pd9 300x207 Создаем FM синтезатор сами(часть1)" width="300" height="207" /></a></p>
<p>И последнее, чтобы слышать звук нам надо включить в проект объект dac~ и подключить к его обоим входам (если нужно стерео) выход последнего объекта *~.</p>
<p style="text-align: center;"><a href="http://muzprog.ru/wp-content/uploads/2009/03/pd10.jpg"><img class="size-medium wp-image-561    aligncenter" title="pd10" src="http://muzprog.ru/wp-content/uploads/2009/03/pd10-300x224.jpg" alt="pd10 300x224 Создаем FM синтезатор сами(часть1)" width="300" height="224" /></a></p>
<p style="text-align: left;">Вот в принципе и всё теперь нажимайте Ctrl+E, чтобы выйти из режима редактирования, измените, значения в объектах Number и жмите на кнопку bang.  Должен слышаться звук, если его нет, нажмите  Audio ON в меню Media. А дальше экспериментируйте с числовыми значениями, с огибающей и т.д. Как вы видите, получился довольно примитивный, но с экспериментальным звуком синт, очень хорошо подходящий для синтеза ударных. В следующий раз мы усовершенствуем нашу конструкцию.<br />
Удачи в экспериментах. Задавайте вопросы.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d513').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>В закладки:</em></strong></a>
<br />
<div class="d513" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F" rel="nofollow" title="Add to&nbsp;Bloglines"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bloglines.png" title="Add to&nbsp;Bloglines" alt="Add to&nbsp;Bloglines" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Blogmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/bmarks.png" title="Add to&nbsp;Blogmarks" alt="Add to&nbsp;Blogmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://FriendSite.com/users/bookmarks/?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;FriendSite"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/friendsite.png" title="Add to&nbsp;FriendSite" alt="Add to&nbsp;FriendSite" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;bm_description=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;T=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fmuzprog.ru%2F%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d0%25b5%25d0%25bc-fm-%25d1%2581%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d0%25b7%25d0%25b0%25d1%2582%25d0%25be%25d1%2580-%25d1%2581%25d0%25b0%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c1%2F&amp;t=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC+FM-%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80+%D1%81%D0%B0%D0%BC%D0%B8%28%D1%87%D0%B0%D1%81%D1%82%D1%8C1%29" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://muzprog.ru/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d513').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d513').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></content:encoded>
			<wfw:commentRss>http://muzprog.ru/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%b5%d0%bc-fm-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%b0%d0%bc%d0%b8%d1%87%d0%b0%d1%81%d1%82%d1%8c1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
