<?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/"
	>

<channel>
	<title>artesanato de volts</title>
	<atom:link href="http://artesanato.devolts.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://artesanato.devolts.org</link>
	<description></description>
	<pubDate>Mon, 28 Jun 2010 05:12:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Estudos para percussão mecatrônica</title>
		<link>http://artesanato.devolts.org/?p=563</link>
		<comments>http://artesanato.devolts.org/?p=563#comments</comments>
		<pubDate>Mon, 28 Jun 2010 05:11:48 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=563</guid>
		<description><![CDATA[
(detalhes e conclusões logo mais&#8230;)
]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12208953&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12208953&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></p>
<p>(detalhes e conclusões logo mais&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=563</wfw:commentRss>
		</item>
		<item>
		<title>Capacitância</title>
		<link>http://artesanato.devolts.org/?p=558</link>
		<comments>http://artesanato.devolts.org/?p=558#comments</comments>
		<pubDate>Tue, 22 Jun 2010 07:33:06 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=558</guid>
		<description><![CDATA[principio dos theremins e telas multitoque
http://www.youtube.com/watch?v=euv8ZLgPh8A&#38;feature=related
explicação nerd de como funciona (simplificando - medida de tempo de carga e descarga de um capacitor por um microcontrolador).
how to no arduino: http://arduino.cc/en/Tutorial/CapacitanceMeter
theremins com arduino:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1169728880
http://interface.khm.de/index.php/lab/experiments/theremin-as-a-capacitive-sensing-device/
e aqui a cartilha industrial detalhada de algumas técnicas atuais de tela multitoque por capacitância (e outras derivações e híbridos): http://www.atmel.com/dyn/resources/prod_documents/doc10620.pdf
fuçando &#38; compartilhando por aqui&#8230;
]]></description>
			<content:encoded><![CDATA[<p>principio dos theremins e telas multitoque</p>
<p><a href="http://www.youtube.com/watch?v=euv8ZLgPh8A&amp;feature=related">http://www.youtube.com/watch?v=euv8ZLgPh8A&amp;feature=related</a><br />
explicação nerd de como funciona (simplificando - medida de tempo de carga e descarga de um capacitor por um microcontrolador).</p>
<p>how to no arduino: <a href="http://arduino.cc/en/Tutorial/CapacitanceMeter">http://arduino.cc/en/Tutorial/CapacitanceMeter</a></p>
<p>theremins com arduino:<br />
<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1169728880">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1169728880</a><br />
<a href="http://interface.khm.de/index.php/lab/experiments/theremin-as-a-capacitive-sensing-device/">http://interface.khm.de/index.php/lab/experiments/theremin-as-a-capacitive-sensing-device/</a></p>
<p>e aqui a cartilha industrial detalhada de algumas técnicas atuais de tela multitoque por capacitância (e outras derivações e híbridos): <a href="http://www.atmel.com/dyn/resources/prod_documents/doc10620.pdf">http://www.atmel.com/dyn/resources/prod_documents/doc10620.pdf</a></p>
<p>fuçando &amp; compartilhando por aqui&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=558</wfw:commentRss>
		</item>
		<item>
		<title>Toscolão upgrade 1</title>
		<link>http://artesanato.devolts.org/?p=518</link>
		<comments>http://artesanato.devolts.org/?p=518#comments</comments>
		<pubDate>Sat, 19 Jun 2010 04:21:33 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[controlador]]></category>

		<category><![CDATA[cordas]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[toscolão]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=518</guid>
		<description><![CDATA[O toscolão foi um experimento que realizei com a colaboração e influência de outros amigos (lucio, chgp, vanessa, simone, goto ) durante uma residência no espaço e/ou em 2007 (experimento de imersão que foi batizado de Geada).

Toscolão era um instrumento híbrido de violão e computador de 8 bits baseado no hardware livre arduino, onde utilizei [...]]]></description>
			<content:encoded><![CDATA[<p>O toscolão foi um experimento que realizei com a colaboração e influência de outros amigos (<a href="http://transitos.org/rocknroll/">lucio</a>, <a href="http://chgp.info/">chgp</a>, <a href="http://vavass.wordpress.com/">vanessa</a>, <a href="http://organismo.art.br/blog/?p=2228">simone</a>, <a href="http://newtongoto.wordpress.com/">goto</a> ) durante uma residência no <a href="http://e-ou.org/">espaço e/ou</a> em 2007 (experimento de imersão que foi batizado de <a href="http://estudiolivre.org/tiki-index.php?page=Geada&amp;bl">Geada</a>).</p>
<p><object width="400" height="267" data="http://vimeo.com/moogaloop.swf?clip_id=303234&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=303234&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object></p>
<p>Toscolão era um instrumento híbrido de violão e computador de 8 bits baseado no hardware livre arduino, onde utilizei a idéia de aplicar uma pequena voltagem na corda e espalhar resistores num tipo de &#8220;escala&#8221; de diferentes resistências no braço, que quando em contato com a voltagem aplicada na corda controlava esta voltagem funcionando como um tipo de potenciomêtro que controlava paramêtros de um sintetizador sonoro bem simples, funcionando com a técnica de &#8220;<a href="http://pt.wikipedia.org/wiki/Modula%C3%A7%C3%A3o_por_largura_de_pulso">Modulação por Largura de pulso</a>&#8220;, utilizando as saídas digitais do arduino.</p>
<p>Já faz algum tempo que desmontei o braço do toscolão, pois era uma peça bastante improvisada e instável. Quando fiz essa experiência foi muito mais como prova de conceito da idéia dos resistores no braço do que a intenção de dar um acabamento e transformar em algo com mais durabilidade.</p>
<p>Começo aqui a tempestade cerebral e organização de links pra ir pensando na atualização do toscolão ou construção de outro controlador e/ou instrumento baseado no gestual de cordas, usando técnicas e tecnologias que estão ao alcance de um relativo &#8220;faça-você-mesmo&#8221; que seja viável pra quem vem acompanhando as discussões aqui.</p>
<p>Aqui volto agora a pensar em como retomar o projeto de um controlador baseado no gesto cordas, e revisar algumas técnicas e links que colecionei desde então.</p>
<h3>1. A transformação do gesto em controle</h3>
<p>A técnica do contato do fio com uma placa de resistores funciona muito bem como exemplo didático de o que é um potenciomêtro (uma resistência variável), porém não me pareceu um controle muito preciso para construção de escalas fixas, e não seria viável para uso de mais cordas - a não ser por alguma modificação pra fazer algum tipo de isolamento por trastes não-condutivos. Só testando pra saber e ter outras idéias em cima.</p>
<p>Penso que pra esta técnica pode ser mais eficiente usar este contato como um sinal digital para cada uma das notas no matriz do braço. No arduino isso exigiria o uso de algum tipo <a href="http://pt.wikipedia.org/wiki/Multiplexador">multiplexador</a> ou outra técnica de varredura serial de bytes, para aumentar entradas e saídas. Com o <a href="http://arduino.cc/en/Main/ArduinoBoardMega">Arduino Mega</a> isto estaria solucionado, mas encareceria bastante o projeto, e impossibilita que seja feito em placas mais artesanais com components grandes, pois o mega usa um atmel pequeno to do tipo <a href="http://en.wikipedia.org/wiki/Surface_Mounted_Device">smd</a>.</p>
<p>Eu cheguei a fazer uma experiência numa placa com botões pra testar essa entrada, baseado na tecnica &#8220;<a href="http://www.arduino.cc/en/Tutorial/ShiftIn">Shift In</a>&#8220;, pra tentar utilizar os chips mais baratos possíveis. Porém, fui ansioso demais e resolvi fazer a placa soldando fios, ao invés de desenhar o circuito (foto mais abaixo)&#8230; Ficou agora o desafio pra debugar aqueles fios, acabei na época indo pra outros projetos e retomá-lo agora exigiria uma imersão naquela idéia novamente, pois não foi documentada na época.</p>
<p><img class="alignnone" title="braço frente" src="http://estudiolivre.org/repo/8015/bracoestudo1.png" alt="" width="200" height="942" /><br />
<em>(frente - abaixo dois chips 4021 para fazer o <a href="http://www.arduino.cc/en/Tutorial/ShiftIn">Shift In</a> das entradas - ainda faltava um circuito para o retorno da matriz de leds )</em></p>
<p><img alt="" src="http://estudiolivre.org/repo/8016/bracoestudo2.png" title="braço atrás" class="alignnone" width="200" height="959" /><br />
<em>(Aqui o esquema ansioso de sair soldando o circuito em fios, instabilidade total - &#8220;estética da gambiarra&#8221; - acidente de estabilidade questionável)<br />
</em></p>
<p></p>
<p>Uma boa referência similar a isso é usar os esquemas que são usados nos clones do projeto <a href="http://monome.org/">Monome</a> - o projeto <a href="http://en.wikipedia.org/wiki/Arduinome">Arduinome</a> é um caminho pŕoximo do que estamos trabalhando aqui. De qualquer maneira teria que redesenhar a placa. Fica aqui uma boa oportunidade pra experimentar mais a fundo o <a href="http://www.lis.inpg.fr/realise_au_lis/kicad/">Kicad</a> o <a href="http://www.gpleda.org/">Geda</a> - projetos livres de fazer placas. Eu tenho um pouco de experiência no <a href="http://www.cadsoft.de/">Eagle</a>, porém é um programa do tipo &#8220;demo&#8221; (e não é software livre), com um espaço restrito de tamanho de placa (que seria menor que o braço). O Eagle é o programa para manufatura de placas disparadamente mais popular, e é o projeto no qual você vai encontrar a maioria dos arquivos derivados do projeto arduino.</p>
<p>Uma outra referência (até mais próximo daquele estudo inacabado) seria utilizar a técnica usada em algumas destas guitarras midi como as <a href="http://www.bradrodriguez.com/papers/ztar1.htm">Ztar</a>, que recentemente foi também usada na guitarra <a href="http://www.gentoo.org/news/20100125-misa-guitar-interview.xml">MISA</a> (porem a Misa usa uma touchscreen em um computador embarcado no lugar das cordas - &#8220;espetacular&#8221;, porém caro no momento). Este caso perde-se o gesto de escorregar o dedo sobre a corda e o traste, o &#8220;bend&#8221; e outras coisas, mas ganha-se precisão da nota, pois fica mais próxima de um teclado. Lembrando também que algumas destas provavelmente tem no lugar dos botões sensores de pressão (que poderiam ser derivados de algo tipo um sensor piezoelétrico )</p>
<p><img class="alignnone" title="ztar" src="http://www.bradrodriguez.com/papers/ztar-vrx.gif" alt="" width="356" height="534" /><br />
(Ztar)</p>
<p><object width="640" height="385" data="http://www.youtube.com/v/WvTh4YKt4Wg&amp;hl=pt_BR&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/WvTh4YKt4Wg&amp;hl=pt_BR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object><br />
(Misa)</p>
<p>O caso da MISA é interessante como exemplo de sistema embarcado, pois inclui um computador de 32 bits embutido rodando linux e poderia-se pensar em rodar um Puredata nele podendo fazer processamentos de áudio muito mais complexos e qualquer outra coisa possível de fazer com um sistema operacional tipo Linux. Porém eu acho que perder as cordas como dedilhado descaracteriza totalmente o gesto, as cordas como medidor de tensão. Acho também vacilo o cara colocar em todos lugares <a href="http://www.misadigital.com/index_text_only.html">do seu site</a> que ele ta patenteando o &#8220;invento&#8221; (&#8221;patent pending&#8221;), pois ele só combinou A com B (veja como a Ztar ja era muito parecida com isso), uma questão de &#8220;empreendedorismo&#8221;, &#8220;chegou primeiro&#8221;, foi la e pagou preço pra transformar em &#8220;produto&#8221;. Ja que ele ta usando Linux porque não faz um open hardware?</p>
<p><a href="http://www.unmaintained.com/forums/ShowThread.aspx?PostID=43#43">Um exemplo é este tutorial aqui de 2006</a>. A idéia do touchpad já estava no <a href="http://pt.wikipedia.org/wiki/Kaoss_Pad">KaossPad</a> e o cara adaptou.</p>
<p>O resultado é uma guitarra com um touch pad para controle de efeitos de audio em tempo real (veja bem - isso é diferente de um controlador de parametros de sampler ou síntese sonora, onde voce apenas gera controle de voltagem para controlar a nota independente do timbre, ou qualquer outro controle - videos, eletrodomésticos, robôs, etc).</p>
<p><object width="480" height="385" data="http://www.youtube.com/v/2wDntYJFFRc&amp;hl=pt_BR&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/2wDntYJFFRc&amp;hl=pt_BR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object><br />
(guitarra com &#8220;kaosspad&#8221; adptado)</p>
<p>Obviamente mais bacana de que desmontar um kaospad, o bacana seria fazer um pad artesanal. Este pesquisador chamado Randall Jones <a href="http://www.artifactshore.com/2010/03/diy-multitouch-controller-kaoss-pad-meets-monome/">da uma explicação de seu pad artesanal em seu blog, com alguns links.</a> O interessante no experimento dele não é a parte de transformação digital (pois ele esta usando o sinal como se fossem microfones, em uma placa multitrack) e sim a maneira como ele solucionou a invenção de uma especie de &#8220;piezo elétrico em grade&#8221; artesanal. A tese detalhada sobre <a href="http://2uptech.com/intimate_control/RandallJones_MSc_FINAL2.pdf">o trabalho esta neste link.</a></p>
<p><object width="400" height="302" data="http://vimeo.com/moogaloop.swf?clip_id=2433260&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2433260&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object></p>
<p><strong>Captadores hexafônicos</strong></p>
<p>Voltando a maneira como algumas guitarras MIDI funcionam, poderíamos também pensar em simplesmente transformar uma captação independentes das cordas em controle de voltagem. Neste caso duas coisas nos interessam: O envelope de volume das cordas - podendo nos informar quando o sampler ou síntese sonora deveria soar, mas também poderíamos pensar numa transformação direta da frequencia sonora numa escala cromática (de 12 tons) com algum tipo de conversor frequencia para voltagem.</p>
<p>De qualquer maneira precisáriamos de um captador independente para cada corda (no caso dos violões e guitarras este captador é chamado &#8220;hexafônico&#8221;).</p>
<p><a href="http://www.ubertar.com/hexaphonic/hexaphonic_pickups.jpg"><img class="alignnone" src="http://www.ubertar.com/hexaphonic/hexaphonic_pickups.jpg" alt="" width="288" height="215" /></a></p>
<p>Encontrei poucos links de como fazer este captador, mas acredito que basicamente vocẽ possa trabalhar com algum tipo de eletreto ou piezo individual em cada corda.</p>
<p>Uma alternativa seria encontrar os captadores <a href="http://www.endabates.net/spatialguitar.html">GK da Roland e adaptar seu cabeamento para ter a saída independente das cordas</a> processados por algum chip conversor de frequencia para voltagem, para eliminar a necessidade de comprar aqueles módulos caríssimos com sons bregas ou no mínimo limitados.</p>
<p>Encontrei também <a href="http://ubertar.com/hexaphonic/">um outro site interessante sobre captadores hexafônicos artesanais</a>, uma pena que ele não divulga a técnica detalhadamente. Se alguem conhece estas técnicas ou tem algum link pra compartilhar, por favor deixe comentários.</p>
<p>Eu desacredito um pouco dessa técnica como uma possibilidade de controle realmente preciso quando se usa acordes, apenas deixo aqui pra receber comentários de quem ja usou algum desses captadores para ver se estou enganado, pois nunca tive oportunidade de testá-los.</p>
<p>Falando em trasformação de freqüencia em controle de voltagem quando estamos ja entrando com o som num computador com sistema operacional e Puredata rodando, daí as <a href="http://en.wikipedia.org/wiki/Pitch_detection_algorithm">reconhecimento de pitch (tons)</a> ficam bem facilitadas pelos objetos [fiddle~] e [sigmund~], mas trabalhar com um computador embutido ou acessado remotamente via rádio ou bluetooth é uma possibilidade que vou falar num próximo post.</p>
<p>Por último colocaria aqui também a possibilidade de utilizar um chip  ou circuito dedicado que converte frequencia pra voltagem, substituíndo o computador. Mas precisaria conhecer melhor os modelos existentes. <a href="http://www.national.com/mpf/LM/LM2917.html#Overview">No momento encontrei apenas este chip aqui,</a> que não tive oportunidade de testar.<a href="http://www.national.com/mpf/LM/LM2917.html#Overview"><br />
</a></p>
<h3>2. A transformação do controle em som embarcado</h3>
<p>A partir do momento que temos está entrada de parâmetros de controle se optamos por ter um som embarcado como no Toscolão temos que pensar em soluções computacionais que tenham tamanho e possibilidade de autonomia de energia pra ficar conectado no próprio corpo do objeto, além dos autofalantes embutidos. No caso do Toscolão isso foi feito com arduino. Na época não cheguei a experimentar muito com as possibilidades de som com o tanto de memória e processamento que este microprocessador permite. Portanto vou detalhar um pouco aqui essas possibilidades atuais usando este projeto original como base, e depois algumas outras opções que tenho em mente.</p>
<p>Um problema básico de se fazer síntese sonora no arduino é o fato de que você esta limitado dentro do loop do interpretador de comandos dele. É possível fazer um oscilador de pulso pela saída digital PWM  (Pulse with modulation), porém atente o fato que mexer na função delay() de qualquer uma das portas alterararia o atraso das outras. A não ser que você queira utilizar isso como um tipo de &#8220;efeito&#8221; pra criar um timbre peculiar, onde voce tem várias saídas PWM, sempre com alguma razão entre elas (exemplo: quando a saida 5 esta em 440 hz a 6 está em 220 hz). Este era o caso utilizado no timbre do toscolão - que pode ser conferido aqui nessa música-estudo:</p>
<p><object width="400" height="267" data="http://vimeo.com/moogaloop.swf?clip_id=300730&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=300730&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object><br />
Agora 3 anos depois do projeto, encontrei alguns códigos também onde os autores usam algumas interrupções do chip e acesso a registradores do ATMEGA pra que possa criar possibilidade uma biblioteca de áudio.</p>
<p>Uma delas, a lib <a href="http://code.google.com/p/glade/">Glade</a>, é baseada<a href=" http://www.arduino.cc/playground/Code/PCMAudio"> neste código</a>. Parece um tanto inacabada.  Não testei ainda a lib, apenas o código monolítico &#8220;PCM audio&#8221; e funciona pra um som até mais ou menos de 1 segundo no ATMEGA168.</p>
<p>Outra é a lib <a href="http://github.com/drewcrawford/bassdll/">Bassdl</a> , não entendi muito bem ainda pois não li o código, mas pareece que consegue fazer multitrack.<br />
Pode ser conferida no video abaixo:</p>
<p><object width="480" height="385" data="http://www.youtube.com/v/liRF4alsvaI&amp;hl=pt_BR&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/liRF4alsvaI&amp;hl=pt_BR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
<p>Outra referencia indispensável é este <a href="http://www.uchobby.com/index.php/2007/11/11/arduino-sound-part-1/">link</a>. Eles dechavam varias possibilidades de usar o arduino como controlador de som, colocando prós e contras detalhadamente.</p>
<p>Fora do arduino e projetos similares de 8 bits ou eletronica analógica a tendência é ja pensar em microcontroladores de 32 bits, onde você poderia instalar um sistema operacional e usar programs complexos ja existentes, como Puredata, Chuck, Supercollider e etc. Ouvi falar muito da <a href="http://beagleboard.org/">Beagleboard,</a> que dizem ser um projeto open hardware,  mas ainda não tive oportunidade de testar e ver até onde é aberto e documentado.</p>
<p>Vale também ficar atento ao projeto <a href="http://leaflabs.com/devices/maple/">Maple</a>, que promete ser um 32 bits com pinagem compatível com arduino, e a IDE de compilação similar para criação de firmwares que rodariam num loop também compatível, independente de haver sistema operacional na placa e usando a IDE diretamente.</p>
<h3><strong>3. O som controlado remotamente</strong></h3>
<p>Neste caso, os softwares e bibliotecas estão por todos os lados, e podemos ir direto ao experimento musical propriamente dito e pensar já em técnicas de composição algorítmica, efeitos e todo o mundo da música computacional obviamente. Minha estratégia de escopo aqui vai ser continuar dexavando derivações nos rascunhos no estudo da interface Navalha e no estudo de Composição Algorítmica.</p>
<p>Deixo aqui também a anotação pra tomar o assunto de transmissão de dados sem fio, em algum outro post mais focado em alguma experiência específica.</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=518</wfw:commentRss>
		</item>
		<item>
		<title>Estudando Algoritmos Composicionais parte1</title>
		<link>http://artesanato.devolts.org/?p=511</link>
		<comments>http://artesanato.devolts.org/?p=511#comments</comments>
		<pubDate>Tue, 01 Jun 2010 04:51:57 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[fichamento]]></category>

		<category><![CDATA[machine musicianship]]></category>

		<category><![CDATA[musica algoritmica]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=511</guid>
		<description><![CDATA[Iniciando alguns estudos mais dirigidos por aqui, vou começar a usar esta área do site mais como rascunho, pois noto que muitos dos meus experimentos estão se perdendo pelo meu perfeccionismo de só querer publicar tutoriais mais acabados e detalhados. Este post então inaugura também uma subcategoria que chamarei de &#8220;Fichamento&#8221;, trabalhando no resumo de [...]]]></description>
			<content:encoded><![CDATA[<p>Iniciando alguns estudos mais dirigidos por aqui, vou começar a usar esta área do site mais como rascunho, pois noto que muitos dos meus experimentos estão se perdendo pelo meu perfeccionismo de só querer publicar tutoriais mais acabados e detalhados. Este post então inaugura também uma subcategoria que chamarei de &#8220;Fichamento&#8221;, trabalhando no resumo de livros sobre assuntos relacionados, e sempre almejando gerar algum código ou experimento a partir do que foi digerido.</p>
<p>O livro que inicio aqui o &#8220;<a href="http://books.google.com.br/books?id=kSKC1QQarvwC&amp;dq=machine+musicianship&amp;printsec=frontcover&amp;source=bn&amp;hl=pt-BR&amp;ei=ppAETKXaK86wuAeN9Lz3DQ&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4&amp;ved=0CC4Q6AEwAw#v=onepage&amp;q&amp;f=false">Machine Musicianship</a>&#8220;, que poderia ser traduzido como &#8220;Musicalidade da Máquina&#8221; ou algo semelhante. Meu objetivo não é resenhar o livro, apenas tentar resumir algumas idéias que vou capturando e fazer alguns experimentos computacionais em cima.</p>
<h3>Tempestade Cerebral</h3>
<p>treinando musicos - treinando computadores&#8230;</p>
<p>A tarefa de comparar o aprendizado de música de um humano com a de um computador aprendiz é uma metáfora interessante, mas no desdobramento de uma categorização de paramêtros logo nos deparamos com a diferença ente gestos que podem ser matematizados (portanto são computáveis ex: ritmo, afinação, escalas, acordes, etc.) e outros que cairiam numa classificação subjetiva (emoções, memória, condição da escuta, etc.).</p>
<p>Este livro segue uma linha bem pragmática de categorização em busca desta matematização do processo de escolha composicional, com a excelente desculpa de que &#8220;é preciso começar de algum lugar&#8221;.</p>
<p>Segue pra isso focado em análise de entrada de dados em tempo real e um processamento capaz de reconhecimento de padrões e &#8220;estilo musical&#8221; (o que pessoalmente eu já considero algo que tem muito critério subjetivo envolvido, mas entendo que ele vai por um caminho de reconhecimento de padrões aplicado a repertório).</p>
<p>No ínicio da pesquisa ele dá uma boa focada no que ele chama de subprocessos, basicamente algumas técnicas algorítmicas para reconhecimento de padrões musicais. Ele baseia estas técnicas em dados que almeja esperar de um performer, trabalhando com um protocolo de parametrização de gestos musicais comum, onde escolhe por uma questão também pragmática, o protocolo MIDI como base.</p>
<p>Interessante aqui notar que escolhendo esse caminho ele evita completamente entrar no campo computacional do processamento de sinal analógico-digital (DSP), o que poderia ser uma estratégia mais abrangente de processamento de padrões musicais provenientes de qualquer tipo de emissor sonoro, mas certamente em 2001 (quando o livro foi escrito) iria exigir um desvio enorme de foco. Considera-se então nesse caso que tal processo já ocorreu e aquilo que era acústico ja foi parametrizado no modo cromático (12 notas e suas oitavas) e toda articulação que o MIDI permitiria armazenar. Ou que estaria se trabalhando com um &#8220;seguidor de partitura&#8221;(score follower) - algo que ele vai discorrer mais no final do livro quando falar mais objetivamente em composição em tempo real.</p>
<p>Fica também aberto o caminho de pesquisar outros protocolos de articulação e armazenamento de paramêtros em de um gesto sonoro. Ele fala brevemente ali do protocolo &#8220;<strong>kern</strong>&#8221; articulado com a coleção de programas para ambiente UNIX &#8220;<strong>Humdrum</strong>&#8220;. Um interessante estudo de caso sobre o &#8220;processamento simbólico&#8221; de padrões que poderia ser mais uma referência na continuidade deste estudo.  ( http://humdrum.org/Humdrum/ )</p>
<p>No próximo post vou focar nos tais &#8220;Processos simbólico&#8221; que ele trabalha em algoritmos no segundo capitulo do livro.</p>
<p>Além da explicação do algoritmo e sua contextualização ele vai aos poucos introduzindo algumas classes em C++ e patches em max/msp quer seria interessante fazer um paralelo com objetos que ja existem no PureData (só no estudo rápido que fiz já identifico ali nos problemas que ele coloca, alguns objetos prontos como [pitch] , [chord], [ryththm] , [gestalt] , etc. vou tentar explorar estes objetos comparativamente e adentrar tambem na parte de código C deles, pra pensar nos algoritmos.</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=511</wfw:commentRss>
		</item>
		<item>
		<title>Beatslicers no puredata</title>
		<link>http://artesanato.devolts.org/?p=402</link>
		<comments>http://artesanato.devolts.org/?p=402#comments</comments>
		<pubDate>Wed, 13 May 2009 21:59:41 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[beatslicer]]></category>

		<category><![CDATA[estudando o sampler]]></category>

		<category><![CDATA[live]]></category>

		<category><![CDATA[pd]]></category>

		<category><![CDATA[Puredata]]></category>

		<category><![CDATA[sampler]]></category>

		<category><![CDATA[tempo]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=402</guid>
		<description><![CDATA[Nesta seção estou subindo alguns beatslicers de puredata que achei na net- samplers que recortam trechos de loop e reeorganizam sequencialmente.
Me deparei com algumas idéias interessantes: aqui e aqui. Pretendo dar um derivada à partir delas&#8230;
De certa maneira isso é o que eu estava buscando com o patch &#8220;Navalha&#8221; há uns 2 anos atrás, mas [...]]]></description>
			<content:encoded><![CDATA[<p>Nesta seção estou subindo alguns beatslicers de puredata que achei na net- samplers que recortam trechos de loop e reeorganizam sequencialmente.</p>
<p>Me deparei com algumas idéias interessantes: <a href="http://puredata.hurleur.com/sujet-1953-sample-slicer-user-selectable-slices">aqui</a> e <a href="http://puredata.hurleur.com/sujet-2555-beat-slicer">aqui.</a> Pretendo dar um derivada à partir delas&#8230;</p>
<p>De certa maneira isso é o que eu estava buscando com o patch &#8220;<a href="http://www.estudiolivre.org/tiki-index.php?page=Navalha">Navalha</a>&#8221; há uns 2 anos atrás, mas exagerei na idéia de &#8220;interface final de usuário tudo em 1&#8243;, a funcionalidade perdeu-se no mar de possibilidades inacabadas e também uma dificuldade imensa de documentar como o patch foi feito, pra tentar um desenvolvimento opensource colaborativo em cima. Vou tentar reanalisar o cenário e começar um projeto para samples documentado desde o início e mais voltado pra coleção de objetos e prática de uso.</p>
<p>Empacotei alguns simples e funcionais aqui:<br />
<a href='http://artesanato.devolts.org/wp-content/uploads/2009/05/estudando_beatslicerstar.gz'>estudando_beatslicers.tar.gz</a><br />
Incluí tambem uma pasta loops, com 2 pequenos samples pra testes.</p>
<p>Baixe e opine sobre o que você gostaria de ver neles e tentarei implementar (e/ou compartilhemos desde já algumas derivações)&#8230;</p>
<p><strong>Beatslicer (matrix sequencer) - pasta sample slicer </strong></p>
<p>Este sequencer é bem simples como interface e já da pra pensar em vários usos. Seria muito legal por exemplo poder usá-lo com algum tipo de &#8220;<a href="http://www.youtube.com/watch?v=yAyjcONJcaY&#038;feature=related">Monome</a>&#8221; ou de prefêrecia algum derivado artesanal tipo o projeto <a href="http://createdigitalmusic.com/2008/08/20/arduinome-an-arduino-based-monome-clone-behind-the-scenes/">arduinome.</a></p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/beatslicer.png"><img class="aligncenter size-full wp-image-403" title="beatslicer" src="http://artesanato.devolts.org/wp-content/uploads/2009/05/beatslicer.png" alt="beatslicer" width="511" height="203" /></a></p>
<p><strong>* com 16 celulas</strong></p>
<p>encontrei também esta versão com 16 células, não muito diferente e facilmente adaptável.</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/sl16.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/sl16.png" alt="sl16" title="sl16" width="364" height="180" class="aligncenter size-full wp-image-408" /></a></p>
<p><strong>Sample-slicer (técnica pra recortar trechos de um sampler de maneira assimétrica e determinada)</strong></p>
<p>Este patch é bem interessante justamente por não complicar na parte de salvar os presets, deixando bem fácil pra poder tentar entender outras técnicas usadas. Salvar presets usando somente linguagem puredata é uma tarefa que ainda quebra um pouco a cabeça, mas existem algumas soluções como as libs sssad e memento. Por hora vamos entender a solução deste patch, pois é bem básica mas exige uma parte &#8220;na unha&#8221;.</p>
<p>O grande diferencial deste patch pro patch mais acima é que ele é focado em selcionar o exato trecho que você quer recortar, diferente do exemplo anterior do sequenciador de matriz, onde ele simplemente gera um recorte de partes simétricas da tabela.</p>
<p>Ele é dividido em dois patches complementares. O primeiro chamado breakpoint-maker.pd serve para você salvar presets da sequencia de recortes pra depois usar em um sequenciador, a partir do patch smp-slice-help.pd . A idéia que pode parecer estranha de início é que ele usa o primeiro pra gerar os presets e daí manualmente copia e cola estes presets no patch smp-slice. Obviamente isto pderia ser automatizado, as interessante porque dessa maneira o processo ficou mais explícito.</p>
<p>Inicie selecionando o trecho.</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_sel.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_sel.png" alt="breakpoint_sel" title="breakpoint_sel" width="401" height="282" class="aligncenter size-full wp-image-411" /></a></p>
<p>Em seguida selecione store e depois disso escolha um numeros nos botoes vermelhos e selecione save.</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_store.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_store.png" alt="breakpoint_store" title="breakpoint_store" width="316" height="274" class="aligncenter size-full wp-image-412" /></a></p>
<p>Depois de fazer todo o mapa dos breakpoints clique &#8220;save-to-message-box&#8221;. A mensagem com todo o preset aparecerá dentro do subpatch &#8220;pd mesagebox(datasaved)&#8221;. copie esta mensagem e para colar no patch smp-slice-help.pd</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_presets.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/breakpoint_presets.png" alt="breakpoint_presets" title="breakpoint_presets" width="405" height="280" class="aligncenter size-full wp-image-413" /></a></p>
<p>Aqui você usa o padrão de presete gerado.<br />
<a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/smp-slice.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/smp-slice.png" alt="smp-slice" title="smp-slice" width="335" height="356" class="aligncenter size-full wp-image-409" /></a></p>
<p>Copie e substitua a mensgem original:<br />
<a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/smp-slice_msg.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/smp-slice_msg.png" alt="smp-slice_msg" title="smp-slice_msg" width="528" height="280" class="aligncenter size-full wp-image-410" /></a></p>
<p><strong>Bonkslices (patch que demonstra a possibilidade de detectar os ataques e fazer os cortes automáticamente)</strong></p>
<p>Esta última abordagem é bem interessante, pois ao invés de pedir pra você selecionar os breakpoints, tenta detectá-los automáticamente pelos ataques do loop (usando o objeto bonk~). Este patch não tem interface gráfica, mas interessante porque está bem organizado fácil de ler.</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/bonklices1.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/bonklices1.png" alt="bonklices1" title="bonklices1" width="310" height="556" class="aligncenter size-full wp-image-405" /></a></p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/bonkslices2.png"><img src="http://artesanato.devolts.org/wp-content/uploads/2009/05/bonkslices2.png" alt="bonkslices2" title="bonkslices2" width="279" height="520" class="aligncenter size-full wp-image-406" /></a></p>
<p>Existe um arquivo chamado &#8220;bonkpointmaker&#8221; que tenta misturar estas duas últimas abordagens, mas aqui parece que não funcionou, porém resolvi incluí-lo no pacote pra ser debugado.</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=402</wfw:commentRss>
		</item>
		<item>
		<title>Bangsample e Rbangsample</title>
		<link>http://artesanato.devolts.org/?p=391</link>
		<comments>http://artesanato.devolts.org/?p=391#comments</comments>
		<pubDate>Fri, 08 May 2009 03:12:29 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[abstraction]]></category>

		<category><![CDATA[bangsample]]></category>

		<category><![CDATA[gravador]]></category>

		<category><![CDATA[lib]]></category>

		<category><![CDATA[pd]]></category>

		<category><![CDATA[Puredata]]></category>

		<category><![CDATA[sampler]]></category>

		<category><![CDATA[tabelas]]></category>

		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=391</guid>
		<description><![CDATA[Estou trabalhando em dois objetos bem simples, pra fazer um tipo de unidade de sample replicável no mesmo patch, pra agilizar o trabalho com sampler no puredata.
Não existe nenhum tipo de envelope nele. Estou tentando simplificar e modularizar o máximo possível porque quero que seja um projeto bem didático e menos inchado que o Navalha. [...]]]></description>
			<content:encoded><![CDATA[<p>Estou trabalhando em dois objetos bem simples, pra fazer um tipo de unidade de sample replicável no mesmo patch, pra agilizar o trabalho com sampler no puredata.</p>
<p>Não existe nenhum tipo de envelope nele. Estou tentando simplificar e modularizar o máximo possível porque quero que seja um projeto bem didático e menos inchado que o <a href="http://www.estudiolivre.org/tiki-index.php?page=Navalha">Navalha</a>. Outros sistemas de sample existem como abstractions na comunidade puredata, mas estou tentando fazer isso de modo que mais gente por aqui possa entender como a coisa funciona from scratch. Se alguem quiser um sampler avançado em  puredata, recomendo o sistema que o pessoal do PDMTL, fez: <a href="http://wiki.dataflow.ws/PdMtlAbstractions">http://wiki.dataflow.ws/PdMtlAbstractions</a></p>
<p>Isso também é uma maneira que estou buscando de explicar e aprofundar a parte de wavtables no puredata, podendo criar sistemas de sampler mais complexos com maior domínio da manipulação de arrays e tipos de dados.</p>
<p>Segue aqui anexo os dois objetos. Um deles depende -lib iem_tab . Qualquer dúvida entre em contato pela lista de discussão&#8230; Breve atualizo aqui:</p>
<p>arquivo:</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/bs_v01tar.gz">bs_v01tar</a></p>
<p>Rbangsample - grava do microfone e dispara com bang.</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/rbangsample.png"><img class="aligncenter size-full wp-image-392" title="rbangsample" src="http://artesanato.devolts.org/wp-content/uploads/2009/05/rbangsample.png" alt="rbangsample" width="435" height="283" /></a></p>
<p>Bangsample - carrega samples em wav e dispara com bang<br />
<a href="http://artesanato.devolts.org/wp-content/uploads/2009/05/bangsample.png"><img class="aligncenter size-full wp-image-393" title="bangsample" src="http://artesanato.devolts.org/wp-content/uploads/2009/05/bangsample.png" alt="bangsample" width="324" height="234" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=391</wfw:commentRss>
		</item>
		<item>
		<title>Construindo Riffs -Sample Tuned Tables</title>
		<link>http://artesanato.devolts.org/?p=386</link>
		<comments>http://artesanato.devolts.org/?p=386#comments</comments>
		<pubDate>Tue, 14 Apr 2009 01:04:46 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[fiddle~]]></category>

		<category><![CDATA[pd]]></category>

		<category><![CDATA[Puredata]]></category>

		<category><![CDATA[riff]]></category>

		<category><![CDATA[sampler]]></category>

		<category><![CDATA[tabelas]]></category>

		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=386</guid>
		<description><![CDATA[sample_tuned_tables
Tou construindo este patch, pra criar automaticamente tabelas baseadas na afinação dos samplers, facilitando compor com pequenos trechos de captura ao vivo do mictrofone.
Explico logo mais. Baixe e tente brincar um pouco, as tabelas que gravei a primeira vez estão salvas dentro do patch, por isso o tamanho grande.
Aqui uma pequena amostra em audio:
samplear
]]></description>
			<content:encoded><![CDATA[<p><a href='http://artesanato.devolts.org/wp-content/uploads/2009/04/sample_tuned_tables.pd'>sample_tuned_tables</a></p>
<p>Tou construindo este patch, pra criar automaticamente tabelas baseadas na afinação dos samplers, facilitando compor com pequenos trechos de captura ao vivo do mictrofone.</p>
<p>Explico logo mais. Baixe e tente brincar um pouco, as tabelas que gravei a primeira vez estão salvas dentro do patch, por isso o tamanho grande.</p>
<p>Aqui uma pequena amostra em audio:<br />
<a href='http://artesanato.devolts.org/wp-content/uploads/2009/04/samplear.ogg'>samplear</a></p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=386</wfw:commentRss>
		</item>
		<item>
		<title>hacklab 09/04 - curitiba</title>
		<link>http://artesanato.devolts.org/?p=380</link>
		<comments>http://artesanato.devolts.org/?p=380#comments</comments>
		<pubDate>Sat, 11 Apr 2009 23:20:47 +0000</pubDate>
		<dc:creator>figo</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<category><![CDATA[pd]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=380</guid>
		<description><![CDATA[objeto cagão e amigos:
hacklab-glermtar
]]></description>
			<content:encoded><![CDATA[<p>objeto cagão e amigos:</p>
<p><a href="http://artesanato.devolts.org/wp-content/uploads/2009/04/hacklab-glermtar.gz">hacklab-glermtar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=380</wfw:commentRss>
		</item>
		<item>
		<title>Fluxo de mensagens do pidgin no PD</title>
		<link>http://artesanato.devolts.org/?p=52</link>
		<comments>http://artesanato.devolts.org/?p=52#comments</comments>
		<pubDate>Fri, 13 Mar 2009 16:43:38 +0000</pubDate>
		<dc:creator>glerm</dc:creator>
		
		<category><![CDATA[Rascunhos]]></category>

		<guid isPermaLink="false">http://artesanato.devolts.org/?p=52</guid>
		<description><![CDATA[Esta experiência torna possível ler saídas de dados do software mensageiro Pidgin, dentro do puredata com um socket pyhton fazendo a ponte.
Com isso é possível er mensagens enviadas pra você por msn, gtalk, irc e outros dentro do puredata.
No python:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env python
# -*- coding: utf-8 -*-
&#160;
import socket
&#160;
mySocket = socket.socket &#40; socket.AF_INET, socket.SOCK_STREAM &#41;
mySocket.connect &#40; &#40; 'localhost', [...]]]></description>
			<content:encoded><![CDATA[<p>Esta experiência torna possível ler saídas de dados do software mensageiro <a href="http://www.pidgin.im/">Pidgin</a>, dentro do puredata com um socket pyhton fazendo a ponte.</p>
<p>Com isso é possível er mensagens enviadas pra você por msn, gtalk, irc e outros dentro do puredata.</p>
<p>No python:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">socket</span>
&nbsp;
mySocket = <span style="color: #dc143c;">socket</span>.<span style="color: #dc143c;">socket</span> <span style="color: black;">&#40;</span> <span style="color: #dc143c;">socket</span>.<span style="color: black;">AF_INET</span>, <span style="color: #dc143c;">socket</span>.<span style="color: black;">SOCK_STREAM</span> <span style="color: black;">&#41;</span>
mySocket.<span style="color: black;">connect</span> <span style="color: black;">&#40;</span> <span style="color: black;">&#40;</span> <span style="color: #483d8b;">'localhost'</span>, <span style="color: #ff4500;">2727</span> <span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;">#socket a ser aberto no puredata</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> recebe_pidgin<span style="color: black;">&#40;</span>account, sender, message, conversation, flags<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> sender, <span style="color: #483d8b;">&quot;disse:&quot;</span>, message
    <span style="color: #808080; font-style: italic;">#m= sender + ' - '+ message + ';\n;'</span>
    m=message + <span style="color: #483d8b;">';<span style="color: #000099; font-weight: bold;">\n</span>;'</span>
    m=m.<span style="color: black;">encode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'utf-8'</span><span style="color: black;">&#41;</span>
    m=m.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'&lt;body&gt;'</span>,<span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'&lt;/body&gt;'</span>,<span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>
    mySocket.<span style="color: black;">send</span> <span style="color: black;">&#40;</span> m <span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> dbus, gobject
<span style="color: #ff7700;font-weight:bold;">from</span> dbus.<span style="color: black;">mainloop</span>.<span style="color: black;">glib</span> <span style="color: #ff7700;font-weight:bold;">import</span> DBusGMainLoop
dbus.<span style="color: black;">mainloop</span>.<span style="color: black;">glib</span>.<span style="color: black;">DBusGMainLoop</span><span style="color: black;">&#40;</span>set_as_default=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
bus = dbus.<span style="color: black;">SessionBus</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
bus.<span style="color: black;">add_signal_receiver</span><span style="color: black;">&#40;</span>recebe_pidgin,dbus_interface=<span style="color: #483d8b;">&quot;im.pidgin.purple.PurpleInterface&quot;</span>,
signal_name=<span style="color: #483d8b;">&quot;ReceivedImMsg&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
loop = gobject.<span style="color: black;">MainLoop</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
loop.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>Salve como socket.py</p>
<p>rode com<br />
#python socket.py</p>
<p>Inicie o Puredata.</p>
<p>no puredata:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#N canvas 0 0 450 300 10;</span>
<span style="color: #339933;">#X obj 116 106 netreceive 2727;</span>
<span style="color: #339933;">#X floatatom 220 127 5 0 0 0 - - -;</span>
<span style="color: #339933;">#X obj 120 128 print;</span>
<span style="color: #339933;">#X connect 0 0 2 0;</span>
<span style="color: #339933;">#X connect 0 1 1 0;</span></pre></td></tr></table></div>

<p>Salve este aquivo como pidgin.pd e abra no puredata.</p>
<p>Você verá todas as saídas de texto das pessoas que você conversar, saindo no puredata, agora basta tratalas dentro de qualquer outro patch.</p>
]]></content:encoded>
			<wfw:commentRss>http://artesanato.devolts.org/?feed=rss2&amp;p=52</wfw:commentRss>
		</item>
	</channel>
</rss>
