<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-394606183299901294</id><updated>2012-02-16T08:39:48.797-02:00</updated><category term='just'/><category term='infoq'/><category term='sampled'/><category term='agile'/><category term='computer_music'/><category term='java'/><category term='sound'/><category term='java sound'/><category term='libsdl audio SDL_main'/><category term='sbcm2009 compmus'/><category term='computação musical'/><category term='computer music'/><category term='midi'/><title type='text'>Computação &amp; Música</title><subtitle type='html'>Um pouco de computação. Um pouco de música. Um muito dos dois.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-8014452520748182659</id><published>2011-08-30T19:55:00.005-03:00</published><updated>2011-08-30T20:08:30.277-03:00</updated><title type='text'>How to play a .wav file with SDL</title><content type='html'>&lt;div style="text-align: left;"&gt;This example is based on an example provided &lt;a href="http://sdl.beuc.net/sdl.wiki/Audio_Examples"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/-eKZEVCAtP1k/Tl1sgpMQQ8I/AAAAAAAABr0/T7T3UvwTLTE/s1600/Screen%2Bshot%2B2011-08-30%2Bat%2B20.00.36.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 600px; height: 600px;" src="http://2.bp.blogspot.com/-eKZEVCAtP1k/Tl1sgpMQQ8I/AAAAAAAABr0/T7T3UvwTLTE/s400/Screen%2Bshot%2B2011-08-30%2Bat%2B20.00.36.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646788815861334978" /&gt;&lt;/a&gt;&lt;br /&gt;Here is the callback function:&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-N-UJgn9MnnA/Tl1tDxcw_dI/AAAAAAAABsE/tXlcaJqTSKc/s1600/Screen%2Bshot%2B2011-08-30%2Bat%2B20.01.19.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-N-UJgn9MnnA/Tl1tDxcw_dI/AAAAAAAABsE/tXlcaJqTSKc/s400/Screen%2Bshot%2B2011-08-30%2Bat%2B20.01.19.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5646789419373493714" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 500px; height: 367px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-8014452520748182659?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/8014452520748182659/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=8014452520748182659' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8014452520748182659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8014452520748182659'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2011/08/how-to-play-wav-file-with-sdl.html' title='How to play a .wav file with SDL'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-eKZEVCAtP1k/Tl1sgpMQQ8I/AAAAAAAABr0/T7T3UvwTLTE/s72-c/Screen%2Bshot%2B2011-08-30%2Bat%2B20.00.36.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-1184553317378959477</id><published>2011-08-28T12:22:00.002-03:00</published><updated>2011-08-28T12:27:19.859-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libsdl audio SDL_main'/><title type='text'>Problem with error: conflicting types for ‘SDL_main’</title><content type='html'>Are you getting this error?&lt;br /&gt;&lt;b&gt;error: conflicting types for ‘SDL_main’ /Library/Frameworks/SDL.framework/Headers/SDL_main.h:57: error: previous declaration of ‘SDL_main’ was here &lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I was going to do some audio tests with SDL in Mac OS X but I wasn't able to run a simple example because I was having the problem above. I solved it just by commenting the line 54 of SDL_main.h in /Library/Frameworks/SDL.framework/Versions/A/Headers.&lt;/div&gt;&lt;div&gt;        &lt;p class="p1"&gt;54 //#define main&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;SDL_main&lt;/p&gt;&lt;p class="p1"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="p1"&gt;Probably this is not the best way to solve this problem, but it worked for me.&lt;/p&gt;&lt;p class="p1"&gt;Kind regards!&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-1184553317378959477?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/1184553317378959477/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=1184553317378959477' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1184553317378959477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1184553317378959477'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2011/08/problem-with-error-conflicting-types.html' title='Problem with error: conflicting types for ‘SDL_main’'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-5333277310535464253</id><published>2009-07-30T11:20:00.002-03:00</published><updated>2009-07-30T11:22:32.744-03:00</updated><title type='text'>Sketching Sonic Interaction Design - SID workshop Nov 16 2009 - Info, Call for posters &amp; demos</title><content type='html'>Sketching Sonic Interaction Design&lt;br /&gt;a SID Workshop at HIT, Holon Institute of Technology&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cost-sid.org/wiki/HolonWorkshop"&gt;http://www.cost-sid.org/wiki/HolonWorkshop&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;November 16, 2009&lt;br /&gt;&lt;br /&gt;** Deadline for posters and demos: August 15, 2009 **&lt;br /&gt;&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;Sonic Interaction Design (SID) is the discipline that investigates the use of sound in interactive experiences. As technologies become more miniaturized and embedded, and their users more mobile, interactive sound becomes increasingly important. The experiences offered by sonic interactions need to be effectively and beautifully designed.&lt;br /&gt;&lt;br /&gt;Sketching is a fundamental part of the design process. Designers sketch ideas for objects, spaces, interactions, experiences. Bill Buxton's recent book, “Sketching User Experiences”, has laid out a palette of methods for sketching interactive experiences, that involve different forms of “visual storytelling”.&lt;br /&gt;&lt;br /&gt;But how do we sketch when designing sonic interactions? This is the question at the core of this workshop. What is the equivalent for paper and pen when we come to design interactions that use sound as a main output?&lt;br /&gt;&lt;br /&gt;A central topic in this workshop will be the use of the voice – vocal sketching – as one means of sketching sonic interactions. Can the voice for sound designers play a similar role as that played by the hand for the graphic designer? how can, and how do, people use their voice in the initial stages of designing sonic interactions?&lt;br /&gt;&lt;br /&gt;Workshop Structure&lt;br /&gt;&lt;br /&gt;The workshop will be composed of experiential sessions (voice warm-up session, a vocal sketching session in groups), invited talks to set the backdrop (on the topics of sketching, and on the human voice), and a poster and demo session (with a special interest in interactive experiences that involve the voice). The workshop will end with a discussion focused on Vocal Sketching as a tool for SID.&lt;br /&gt;&lt;br /&gt;Call for posters and demos&lt;br /&gt;&lt;br /&gt;We invite submissions of demos and posters dealing with sketching in Sonic Interaction Design. Of particular interest are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sketching techniques for SID – theory, experiences from the field&lt;/li&gt;&lt;li&gt;Interaction techniques that are tailored to make use of our vocal capabilities&lt;/li&gt;&lt;li&gt;Interactive experiences that involve the voice (in non-speech contexts)&lt;/li&gt;&lt;li&gt;Tools and techniques for extracting useful information from vocal sketches&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Posters are for discussing new work and work-in-progress. Demos are for presenting interactive work and allowing workshop participants to experience it firsthand. Submissions should be up to 2 pages long. For demos a video documenting the experience is encouraged.&lt;br /&gt;&lt;br /&gt;Important dates&lt;br /&gt;&lt;br /&gt;Posters and demos deadline: August 15&lt;br /&gt;Notifications of acceptance: Sept 15&lt;br /&gt;Submit your posters and demos to sketchingSID@cost-sid.org&lt;br /&gt;&lt;br /&gt;Questions?&lt;br /&gt;sketchingSID@cost-sid.org&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-5333277310535464253?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/5333277310535464253/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=5333277310535464253' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/5333277310535464253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/5333277310535464253'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2009/07/sketching-sonic-interaction-design-sid.html' title='Sketching Sonic Interaction Design - SID workshop Nov 16 2009 - Info, Call for posters &amp; demos'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-6397736585335711647</id><published>2009-07-30T11:14:00.004-03:00</published><updated>2009-07-30T11:25:24.876-03:00</updated><title type='text'>Webcast of some sessions/concerts of SMC 2009</title><content type='html'>Hey All!!&lt;br /&gt;&lt;br /&gt;Fabien Gouyon, researcher at Telecommunications and Multimedia Unit of INESC Porto, Portugal, sends the following message:&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Just a quick advertisement to let you know that some scientific sessions and some concerts of the ongoing SMC 2009 Conference will be transmitted in real-time on the internet via the webcast platform &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.casadamusica.tv/"&gt;http://www.casadamusica.tv/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If you are interested, among other things, you will be able to watch:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. a network performance&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. a paper session on Music Information Retrieval&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. 3 keynotes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;More details on &lt;/span&gt;&lt;a style="font-style: italic;" href="http://smc2009.smcnetwork.org/news/smc-2009-webcast"&gt;http://smc2009.smcnetwork.org/news/smc-2009-webcast&lt;/a&gt;&lt;span style="font-style: italic;"&gt; and  &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.casadamusica.tv/"&gt;http://www.casadamusica.tv/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Best regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;--&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;fabien gouyon, researcher,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Telecommunications and Multimedia Unit,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;INESC Porto, Portugal,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;web: &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.inescporto.pt/%7Efgouyon"&gt;http://www.inescporto.pt/~fgouyon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;HIGHLIGHT: &lt;/span&gt;&lt;a style="font-style: italic;" href="http://smc2009.smcnetwork.org/"&gt;http://smc2009.smcnetwork.org/&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-6397736585335711647?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/6397736585335711647/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=6397736585335711647' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6397736585335711647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6397736585335711647'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2009/07/webcast-of-some-sessionsconcerts-of-smc.html' title='Webcast of some sessions/concerts of SMC 2009'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-6598726214282098414</id><published>2009-07-05T11:50:00.003-03:00</published><updated>2009-07-05T12:09:14.665-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sbcm2009 compmus'/><title type='text'>SBCM 2009 - Última Chamada</title><content type='html'>&lt;span style="font-weight: bold;"&gt;ÚLTIMA CHAMADA DE ARTIGOS E PÔSTERES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;12º Simpósio Brasileiro de Computação Musical - SBCM 2009&lt;br /&gt;2009 set 7-9&lt;br /&gt;Porto Digital, Recife, PE - Brasil&lt;br /&gt;&lt;br /&gt;&lt;a href="http://compmus.ime.usp.br/sbcm/2009/"&gt;http://compmus.ime.usp.br/sbcm/2009/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O Simpósio&lt;br /&gt;&lt;br /&gt;O SBCM - Simpósio Brasileiro de Computação Musical é um evento bianual com reconhecimento internacional no campo da computação musical, organizado pelo NUCOM, a Comissão Especial em Computação Musical da Sociedade Brasileira de Computação (SBC). Esta 12ª edição será realizada de 7 a 9 de Setembro de 2009, em Recife, capital do estado de Pernambuco, na bela costa nordestina brasileira, e é especialmente dedicada a abordar o implacável universo de novos paradigmas para se fazer música com computadores e eletrônicos, trazendo suas essências e suas tendências.&lt;br /&gt;&lt;br /&gt;Pesquisadores, cientistas, compositores, educadores, fabricantes, e todos os envolvidos com a interação entre música e tecnologia estão convidados a apresentar trabalhos.&lt;br /&gt;&lt;br /&gt;Durante o simpósio haverá palestras por renomados pesquisadores, apresentações de artigos técnicos e musicais, painéis de discussão e concertos. O programa incluirá, entre outros, uma palestra por Miller Puckette (Universidade da Califórnia, San Diego), autor do ambiente de programação gráfica Pure Data (Pd), um tutorial sobre modelos matemáticos em Teoria Musical (Análise e Composição) auxiliada por computador oferecido pelo IRCAM, e uma palestra pelo compositor Daniel Teruggi, diretor do Grupo de Pesquisas Musicais do INA (Institut National De L'Audiovisuel, Paris).&lt;br /&gt;&lt;br /&gt;Temos o prazer de informar que uma seleção dos melhores artigos apresentados no SBCM 2009 serão convidados a submeter uma versão estendida para uma Edição Especial do Journal of New Music Research. As obras musicais selecionadas serão publicadas com o apoio da EMF (Electronic Music Foundation). A comissão de programa também dará um prêmio para o melhor artigo estudantil apresentado no SBCM. Será elegível qualquer artigo tendo um estudante como autor principal. Dois prêmios serão dados: um para o melhor artigo técnico e outro para o melhor artigo de música. Um dos prêmios será uma assinatura anual do Fórum IRCAM de software.&lt;br /&gt;&lt;br /&gt;Datas importantes&lt;br /&gt;&lt;br /&gt;10 julho Submissão de artigos e pôsteres&lt;br /&gt;02 agosto Notificação de aceitação&lt;br /&gt;07 agosto Versão final de artigos e pôsteres&lt;br /&gt;&lt;br /&gt;Tópicos de Interesse&lt;br /&gt;&lt;br /&gt;Os tópicos a serem cobertos incluem, mas não estão limitados a:&lt;br /&gt;&lt;br /&gt;- Acústica, Difusão, Sonorização&lt;br /&gt;- Inteligência Artificial&lt;br /&gt;- Vida Artificial e Sistemas Musicais Evolucionários&lt;br /&gt;- Projeto de hardware para áudio&lt;br /&gt;- Análise Musical Auxiliada por Computador&lt;br /&gt;- Educação Musical Auxiliada por Computador&lt;br /&gt;- Musicologia Auxiliada por Computador&lt;br /&gt;- Processamento Digital de Som&lt;br /&gt;- Sistemas e Serviços de Música Digital&lt;br /&gt;- Música Distribuída&lt;br /&gt;- Internet e Aplicações Web&lt;br /&gt;- Movimento e Gesto em Música Computacional&lt;br /&gt;- Sistemas Multimídia e Aplicações&lt;br /&gt;- Emoção e Comunicação em Música&lt;br /&gt;- Formatos, Estruturas de Dados e Representação Musical&lt;br /&gt;- Recuperação de Informação Musical&lt;br /&gt;- Gerenciamento de Música&lt;br /&gt;- Notação Musical, Impressão e Reconhecimento óptico&lt;br /&gt;- Percepção Musical e Cognição&lt;br /&gt;- Psicoacústica e Modelagem Cognitiva&lt;br /&gt;- Qualidade de Serviço para Áudio&lt;br /&gt;- Sistemas Interativos de Tempo Real&lt;br /&gt;- Sistemas de Software e Linguagens para Composição&lt;br /&gt;- Análise e Síntese de Som&lt;br /&gt;&lt;br /&gt;Instruções para Submissões&lt;br /&gt;&lt;br /&gt;Os trabalhos devem ser apresentados em formato PDF através do sistema on-line de submissões JEMS (&lt;a href="https://submissoes.sbc.org.br/"&gt;https://submissoes.sbc.org.br&lt;/a&gt;). Artigos em Espanhol, Português e Inglês são bem-vindos.&lt;br /&gt;&lt;br /&gt;Trabalhos técnicos, de até 12 páginas, devem apresentar investigação científica com contribuições originais. Artigos musicais, de até 12 páginas, devem descrever as experiências e resultados do uso de ferramentas computacionais para se produzir música (ver critérios de seleção de artigos musicais no website do simpósio). Resumos estendidos de pôsteres, de até 4 páginas, devem expor trabalhos de pesquisa em andamento.&lt;br /&gt;&lt;br /&gt;Será possível enviar até 2 (dois) exemplos musicais acompanhando a submissão de um artigo musical, em arquivo(s) de áudio comprimido(s) nos seguintes formatos: aac, mp3 ou wma. Cada arquivo poderá ter no máximo 1MB. Para enviar, escolha a opção para submissão de exemplo musical no sistema JEMS. Após enviar o(s) arquivo(s), deve-se encaminhar um e-mail para "sbcm2009@gmail.com" informando o título do material, o(s) autor(es), o formato de áudio escolhido, e eventuais observações que julgar necessário.&lt;br /&gt;&lt;br /&gt;Favor observar atentamente as instruções contidas nos modelos de publicações. Trabalhos que não cumpram os requisitos não poderão ser publicados. Obtenha os arquivos modelos para a preparação de manuscritos de acordo com as diretrizes da SBC em&lt;a href="http://gsd.ime.usp.br/sbcm/2007/templates"&gt; http://gsd.ime.usp.br/sbcm/2007/templates&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para que o artigo seja publicado, é necessário que pelo menos um autor se registre no simpósio até 3 de agosto, 2009.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comissão Organizadora&lt;br /&gt;&lt;br /&gt;Coordenadores gerais: Regis Rossi A. Faria (LSI - Universidade de São Paulo) e Marcelo Queiroz (IME - Universidade de São Paulo)&lt;br /&gt;&lt;br /&gt;Coordenadores locais: Geber Ramalho (UFPE - Universidade Federal de Pernambuco) e Giordano Cabral (UFPE - Universidade Federal de Pernambuco)&lt;br /&gt;&lt;br /&gt;Coordenador de Artigos Técnicos: Marcelo S. Pimenta (UFRGS - Universidade Federal do&lt;br /&gt;Rio Grande do Sul)&lt;br /&gt;&lt;br /&gt;Coordenador de Artigos Musicais: Damián Keller (UFAC - Universidade Federal do Acre)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comitê de Programa Técnico&lt;br /&gt;&lt;br /&gt;Adolfo Maia Jr. (UNICAMP, Brasil)&lt;br /&gt;Aluizio Arcela (UnB, Brasil)&lt;br /&gt;Álvaro Barbosa (Universidade Católica Portuguesa, Portugal)&lt;br /&gt;Andrew Horner (The Hong Kong University of Science &amp;amp; Technology, Hong Kong)&lt;br /&gt;Chris Chafe (Stanford University, EUA)&lt;br /&gt;Eduardo Miranda (University of Plymouth, Reino Unido)&lt;br /&gt;Emilios Cambouropoulous (Aristotle University of Thessaloniki, Grécia)&lt;br /&gt;Evandro Miletto (UFRGS, Brasil)&lt;br /&gt;Fabien Gouyon (INESC – Porto, Portugal)&lt;br /&gt;Fabio Kon (USP, Brasil)&lt;br /&gt;Flávio Soares Corrêa da Silva (USP, Brasil)&lt;br /&gt;François Pachet (Sony Computer Science Laboratory, França)&lt;br /&gt;Geber Ramalho (UFPE, Brasil)&lt;br /&gt;Gianpaolo Evangelista (Linköpings Universitet, Suécia)&lt;br /&gt;Giordano Cabral (Université Paris 6, França)&lt;br /&gt;Hugo de Paula (PUC-MG, Brasil)&lt;br /&gt;Ian Whalley (University of Waikato, Nova Zelândia )&lt;br /&gt;Jean-Pierre Briot (CNRS - Université Paris 6, França)&lt;br /&gt;Jonatas Manzolli (UNICAMP, Brasil)&lt;br /&gt;Lelio Camilleri (University of Bologna, Itália)&lt;br /&gt;Luis Jure (Universidad de la República, Uruguai)&lt;br /&gt;Marcelo Soares Pimenta (UFRGS, Brasil) - Coordenador de Artigos Técnicos&lt;br /&gt;Marcelo Queiroz (USP, Brasil)&lt;br /&gt;Marcelo Wanderley (McGill University, Canadá)&lt;br /&gt;Marcio Brandao (UnB, Brasil)&lt;br /&gt;Mikhail Malt (IRCAM, França)&lt;br /&gt;Oscar Di Liscia (Universidad Nacional de Quilmes, Argentina)&lt;br /&gt;Palle Dahlstedt (Göteborg University/Chalmers University of Technology, Suécia)&lt;br /&gt;Peter Beyls (Hogeschool Gent, Bélgica)&lt;br /&gt;Petri Toiviainen (University of Jyvaskyla, Finlândia)&lt;br /&gt;Regis R. A. Faria (USP, Brasil)&lt;br /&gt;Roger Dannenberg (Carnegie Mellon University, EUA)&lt;br /&gt;Rosa Viccari (UFRGS, Brasil)&lt;br /&gt;Sever Tipei (University of Illinois School of Music, EUA)&lt;br /&gt;Victor Lazzarini (National University of Ireland, Irlanda)&lt;br /&gt;&lt;br /&gt;Comitê de Programa Musical&lt;br /&gt;&lt;br /&gt;Adina Izarra (Universidad Simón Bolívar, Venezuela)&lt;br /&gt;Alejandro Viñao (Inglaterra)&lt;br /&gt;Catalina Peralta Cáceres (Universidad de los Andes, Colombia)&lt;br /&gt;Damián Keller (UFAC - Universidade Federal do Acre) - Coordenador de Artigos Musicais&lt;br /&gt;Daniel Teruggi (GRM, Institut National de l'Audiovisuel, França)&lt;br /&gt;Didier Guigue (Universidade Federal da Paraíba)&lt;br /&gt;Fernando Iazzetta (Universidade de São Paulo, São Paulo)&lt;br /&gt;Fernando Lopez-Lezcano (Center for Computer Research in Music and&lt;br /&gt;Acoustics, Stanford University, EUA)&lt;br /&gt;Javier Alvarez (Conservatorio de las Rosas, México)&lt;br /&gt;Rodolfo Coelho de Souza (Universidade de São Paulo, Ribeirão Preto)&lt;br /&gt;&lt;br /&gt;Apoio&lt;br /&gt;&lt;br /&gt;EMF - Electronic Music Foundation&lt;br /&gt;IRCAM - Institut de Recherche et Coordination Acoustique/Musique&lt;br /&gt;CDTL - Centro de Desenvolvimento de Tecnologias Livres (Recife/Brasil)&lt;br /&gt;&lt;br /&gt;Mais Informações&lt;br /&gt;&lt;br /&gt;Para mais informações e para acessar a programação técnica e musical, visite a página do simpósio em &lt;a href="http://compmus.ime.usp.br/sbcm/2009/"&gt;http://compmus.ime.usp.br/sbcm/2009/&lt;/a&gt;. Para questões acerca de submissões, relativas à organização local, ou outras informações, entrar em contato com o comitê de organização através do e-mail sbcm2009 at gmail.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-6598726214282098414?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/6598726214282098414/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=6598726214282098414' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6598726214282098414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6598726214282098414'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2009/07/sbcm-2009-ultima-chamada.html' title='SBCM 2009 - Última Chamada'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-8717621365142605517</id><published>2009-03-29T12:30:00.003-03:00</published><updated>2009-03-29T12:48:25.005-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer_music'/><title type='text'>Computer Music: a brief history about it</title><content type='html'>Computer music has emerged in the 50s with Max Mathews, an eletric engineer at Bell Labs. He is called "the father of computer music". Mathews is a leader in research of digital audio, synthesis and human-computer interaction in musical performance. He invented the first program extensively used for sound generation: MUSIC I.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/46/149966953_c51a0f2596.jpg?v=0"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 375px;" src="http://farm1.static.flickr.com/46/149966953_c51a0f2596.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;Max Matthews&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;MUSIC I had just one voice, triangular waveform and have the control of sound duration, intensity and tuning.&lt;br /&gt;&lt;br /&gt;In 1957 an IBM 704, in New York, played a composition of 17 seconds generated by MUSIC I. It was the first time that a computer played a sound. It had not inspiring notes but it was a great technical advance. MUSIC I has inspired the development of languages and APIs to work with sound in a computer:&lt;br /&gt;- MUSIC II to V&lt;br /&gt;- MUSIC 10, MUSIC 360, MUSIC 15&lt;br /&gt;- Csound&lt;br /&gt;- Java Sound&lt;br /&gt;&lt;br /&gt;The traditional synthesizers (analog keyboards with oscillators and pots) evolved and became an amazing line of products that covers sound modules and synthesizers softwares.&lt;br /&gt;&lt;br /&gt;In 1983 arised MIDI - the Musical Instrument Digital Interface. Its goal was to standardize the communication between electronic instruments.&lt;br /&gt;&lt;br /&gt;Nowadays, computer music is widely used over internet. Web radio-stations and online music composition are some examples. Also it is been developed some instruments based on virtual reality, laser, artificial intelligence.&lt;br /&gt;&lt;br /&gt;What future do we have ahead? New kinds of musical instruments, new styles of music, new forms to record music and sound, new forms to analyse a sound, new ways to use the sound ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-8717621365142605517?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/8717621365142605517/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=8717621365142605517' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8717621365142605517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8717621365142605517'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2009/03/computer-music-brief-history-about-it.html' title='Computer Music: a brief history about it'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-7388486831461914138</id><published>2009-03-19T08:32:00.002-03:00</published><updated>2009-03-19T08:35:31.237-03:00</updated><title type='text'>Computer Music: Have you ever heard about it?</title><content type='html'>Computer music is the name given to the area of Computer Science that study the computer application in solving musical and sonic problems. It's like a cousin of Computer Graphics. While the second studies methods, techniques and algorithms for processing, generation, digital representation and storage of images, the other investigates methods, techniques and algorithms for music and sound generation, digital representations and storage of musical and sonic information.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's a strongly interdisciplinary area. It has foundations in mathematics and music but it contains concepts linked to psychology, physiology, physics, engineering. You can see this in the Journal of the Acoustical Society of America. There are cathegories like "Underwater Sound", "Music and Musical instruments", "Psychological Acoustics", "Physiological Acoustics", among others.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To know Computer Music is not to know just computers and music. It involves a large knowledge in mathematics and physical fundamentals. Besides it, it covers interesting computational problems like:&lt;br /&gt;    - real-time device controls&lt;br /&gt;    - interaction with users without knowledge in computation&lt;br /&gt;    - musical knowledge representation&lt;br /&gt;&lt;br /&gt;In summary, computer music deal with a large variety of problems. As an example, see the topics of interest in Brazilian Symposium of Computer and Music (2007):&lt;br /&gt;    - Acoustics, and sound broadcasting&lt;br /&gt;    - Artificial Intelligence&lt;br /&gt;    - Artificial life and evolutionary music systems&lt;br /&gt;    - Design of audio equipment&lt;br /&gt;    - Digital processing of audio signals&lt;br /&gt;    - Computer-aided musical analysis&lt;br /&gt;    - Computer-assisted music education&lt;br /&gt;    - Musicology aided by computer&lt;br /&gt;    - Music distributed&lt;br /&gt;    - Internet and Web applications&lt;br /&gt;    - Music and audio systems and multimedia applications&lt;br /&gt;    - Structure and representation of musical data&lt;br /&gt;    - Recovery of musical information&lt;br /&gt;    - Musical notation, printing and optical recognition.&lt;br /&gt;    - QoS for audio systems&lt;br /&gt;    - Psychoacoustics and Cognitive Modeling&lt;br /&gt;    - Interactive systems for real-time&lt;br /&gt;    - Software, systems and languages for composition&lt;br /&gt;    - Synthesis of sound&lt;br /&gt;&lt;br /&gt;Next post I'll talk about the history of this discipline. See you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-7388486831461914138?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/7388486831461914138/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=7388486831461914138' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7388486831461914138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7388486831461914138'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2009/03/computer-music-have-you-ever-heard.html' title='Computer Music: Have you ever heard about it?'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-8692715660458521511</id><published>2008-11-02T22:40:00.003-02:00</published><updated>2008-11-02T22:45:54.464-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Entrando no clima...</title><content type='html'>Já que hoje o Felipe Massa não levou o campeonato por pouco e já que o clima de F1 paira sobre esta cidade, venho aqui demonstrar meu interesse atual pelo sentimento ágil. Thanks &lt;a href="http://www.gpbrasil.com.br/"&gt;F1&lt;/a&gt; and &lt;a href="http://www.infoq.com/br"&gt;InfoQ.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De baby step em baby step a gente chega lá!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-8692715660458521511?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/8692715660458521511/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=8692715660458521511' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8692715660458521511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8692715660458521511'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/11/entrando-no-clima.html' title='Entrando no clima...'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-3316163100513202870</id><published>2008-11-02T22:23:00.004-02:00</published><updated>2008-11-02T22:51:35.130-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='infoq'/><title type='text'>InfoQueue BR</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.fratech.net/images/InfoQ_Brasil.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 128px;" src="http://www.fratech.net/images/InfoQ_Brasil.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ontem, sábado, 01 de novembro de 2008, ocorreu o lançamento da &lt;a href="http://www.infoq.com/br"&gt;InfoQueue BR&lt;/a&gt; com a presença de &lt;a href="http://www.floydmarinescu.com/"&gt;Floyd Marinescu&lt;/a&gt;. O evento foi organizado pela Fratech, que está trazendo esta marca para o Brasil.&lt;br /&gt;&lt;br /&gt;Iniciativa louvável pois o infoQueue é um dos sites mais influentes na área de T.I. Traz muitas informações, artigos, videos, apresentações e livros sobre vários assuntos. Em destaque: Java, Ruby, SOA, Agile e Arquitetura.&lt;br /&gt;&lt;br /&gt;Aproveite para visitar, se cadastrar e participar!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-3316163100513202870?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/3316163100513202870/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=3316163100513202870' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3316163100513202870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3316163100513202870'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/11/infoqueue-br.html' title='InfoQueue BR'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-4880391859129201680</id><published>2008-11-02T22:16:00.003-02:00</published><updated>2008-11-02T22:19:43.776-02:00</updated><title type='text'>Welcome Back!</title><content type='html'>Após alguns - vários - dias distantes do blog, vou tentar aparecer mais por aqui e escrever sobre o que tenho visto e estudado nesse mundo de computação e música.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-4880391859129201680?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/4880391859129201680/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=4880391859129201680' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/4880391859129201680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/4880391859129201680'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/11/welcome-back.html' title='Welcome Back!'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-8674268751044272687</id><published>2008-09-15T08:36:00.001-03:00</published><updated>2008-09-15T08:38:05.048-03:00</updated><title type='text'>Agradecimento</title><content type='html'>Muito obrigado ao pessoal que apareceu na minha palestra no Just Java 2008. Apesar de ter sido bem corrida, acredito que quem foi passou a conhecer um pouco mais sobre a computação musical e Java Sound.&lt;br /&gt;&lt;br /&gt;Obrigado!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-8674268751044272687?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/8674268751044272687/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=8674268751044272687' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8674268751044272687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/8674268751044272687'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/09/agradecimento.html' title='Agradecimento'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-302487927850254125</id><published>2008-09-04T21:58:00.001-03:00</published><updated>2008-09-04T21:58:44.062-03:00</updated><title type='text'>Não</title><content type='html'>Não esqueci do blog...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-302487927850254125?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/302487927850254125/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=302487927850254125' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/302487927850254125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/302487927850254125'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/09/no.html' title='Não'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-3692643588730464760</id><published>2008-08-22T14:02:00.002-03:00</published><updated>2008-08-22T14:09:50.945-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='just'/><title type='text'>JustJava 2008</title><content type='html'>E o Just Java 2008 tá chegando!!&lt;br /&gt;E eu estou preparando minha palestra sobre computação musical. :)&lt;br /&gt;&lt;br /&gt;Pretendo fazer uma introdução sobre computação musical e depois falar um pouco sobre como a tecnologia Java trabalha com sons.&lt;br /&gt;&lt;br /&gt;Confira a &lt;a href="http://soujava.org.br/display/v/Grade+de+Palestras"&gt;grade de palestras&lt;/a&gt; e o &lt;a href="http://www.sucesusp.org.br/justjava2008/"&gt;site &lt;/a&gt;do evento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-3692643588730464760?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/3692643588730464760/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=3692643588730464760' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3692643588730464760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3692643588730464760'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/justjava-2008.html' title='JustJava 2008'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-886974533396585149</id><published>2008-08-22T13:44:00.002-03:00</published><updated>2008-08-22T13:47:45.964-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>Playback de Áudio</title><content type='html'>Existem dois tipos de line que podem ser usados para tocar som: &lt;span style="font-family:courier new;"&gt;Clip &lt;/span&gt;e &lt;span style="font-family:courier new;"&gt;SourceDataLine&lt;/span&gt;. A diferença principal entre estas duas interfaces é que com um &lt;span style="font-family:courier new;"&gt;Clip &lt;/span&gt;você especifica todas as informações do som uma única vez antes da execução. Com um &lt;span style="font-family:courier new;"&gt;SourceDataLine&lt;/span&gt;, escrevemos continuamente em buffers de informação durante a execução. Embora hajam situações em que ambas as classes possam ser utilizadas, o critério seguinte ajuda a identificar que tipo de line é melhor para determinada situação:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Utilize um &lt;span style="font-family:courier new;"&gt;Clip &lt;/span&gt;quando você não tem informações de som em tempo real que podem ser pré-carregadas na memória.&lt;br /&gt;   Ex.: Loops, iniciar o playback em uma posição arbitrária.&lt;/li&gt;&lt;li&gt;Utilize um SourceDataLine para stream de informações tais como um arquivo de som muito longo que não irá caber todo na memória de uma vez, ou um som cuja informações não podem ser conhecidas antes do playback.&lt;br /&gt;   Ex.: síntese interativa de sons.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-886974533396585149?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/886974533396585149/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=886974533396585149' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/886974533396585149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/886974533396585149'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/existem-dois-tipos-de-line-que-podem.html' title='Playback de Áudio'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-1638439989820407440</id><published>2008-08-21T16:08:00.002-03:00</published><updated>2008-08-21T16:15:07.529-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Permissões para utilizar recursos de áudio</title><content type='html'>A API Java Sound inclui uma classe chamada &lt;span style="font-family: courier new;"&gt;AudioPermission &lt;/span&gt;que indica quais tipos de acesso uma applet (ou uma aplicação executando com um gerenciador de segurança) pode ter para o sistema de áudio. A permissão para gravação de som é controlada separadamente.&lt;br /&gt;&lt;br /&gt;Se o seu programa não possui permissão para gravar (ou executar) som, uma exceção será lançada quando ele tentar abrir um &lt;span style="font-family: courier new;"&gt;Line&lt;/span&gt;. Não há nada que você possa fazer no seu programa a não ser capturar a exceção e apresentá-la ao usuário, pois as permissões não podem ser modificadas por meio da API. (caso contrário tudo seria inseguro). Geralmente as permissões são setadas em arquivos de configuração.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-1638439989820407440?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/1638439989820407440/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=1638439989820407440' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1638439989820407440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1638439989820407440'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/permisses-para-utilizar-recursos-de.html' title='Permissões para utilizar recursos de áudio'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-5094627032818669641</id><published>2008-08-21T13:20:00.002-03:00</published><updated>2008-08-21T13:29:31.520-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>Como recuperar um Line</title><content type='html'>Existem duas maneiras:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Diretamente do objeto &lt;span style="font-family: courier new;"&gt;AudioSystem&lt;/span&gt;&lt;/li&gt;&lt;li&gt;A partir de um Mixer que você já obteve de um objeto AudioSystem&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Recuperando um Line diretamente de um AudioSystem&lt;/span&gt;&lt;br /&gt;Assumindo que ainda não obtemos um mixer e é preciso recuperar um line, podemos utilizar o método &lt;span style="font-family: courier new;"&gt;static Line getLine(Line.Info info)&lt;/span&gt; da classe &lt;span style="font-family: courier new;"&gt;AudioSystem&lt;/span&gt;. A classe Line.Info usada como argumento deste método não armazena informação textual para especificar uma linha desejada, ela armazena informações da classe de linha desejada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Line.Info&lt;/span&gt; é uma classe abstrata, então utilizamos uma de suas sub-classes &lt;span style="font-family: courier new;"&gt;Port.Info&lt;/span&gt; ou DataLine.Info para obter uma linha. O trecho de código abaixo usa a classe &lt;span style="font-family: courier new;"&gt;DataLine.Info&lt;/span&gt; para obter e abrir um target data line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;TargetDataLine line;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); // format is an AudioFormat object&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if (!AudioSystem.isLineSupported(info)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        // Handle the error.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    // Obtain and open the line.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;try {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    line = (TargetDataLine) AudioSystem.getLine(info);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    line.open(format);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;} catch (LineUnavailableException ex) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    // Handle the error.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    //... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para portas, podemos utilizar instâncias estáticas de &lt;span style="font-family: courier new;"&gt;Port.Info&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if (AudioSystem.isLineSupported(Port.Info.MICROPHONE)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        try {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        line = (Port) AudioSystem.getLine(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        Port.Info.MICROPHONE);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    } catch(Exception e)  { //... }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lembre-se que um sourceLine é uma entrada para um mixer, especificamente, um objeto &lt;span style="font-family: courier new;"&gt;Port&lt;/span&gt; se o mixer representa um dispositivo de entrada de áudio e um objeto &lt;span style="font-family: courier new;"&gt;SourceDataLine &lt;/span&gt;ou &lt;span style="font-family: courier new;"&gt;Clip &lt;/span&gt;se o mixer representa um dispositivo de saída de áudio.&lt;br /&gt;&lt;br /&gt;Podemos utilizar métodos de &lt;span style="font-family: courier new;"&gt;AudioSystem &lt;/span&gt;para conhecer mais sobre source e target lines de um tipo específico que é suportado por qualquer mixer instalado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;static Line.Info[] getSourceLineInfo(Line.Info info)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;static Line.Info[] getTargetLineInfo(Line.Info info)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note que o array retornado por cada um desses métodos indicam tipos únicos de linha, não necessariamente todas as linhas. Por exemplo, se duas linhas de um mixer ou duas linhas de diferentes mixers  possuem objetos &lt;span style="font-family: courier new;"&gt;Line.Info&lt;/span&gt; idênticos, as duas linhas serão representadas por apenas um &lt;span style="font-family: courier new;"&gt;Line.Info&lt;/span&gt; no array.&lt;br /&gt;&lt;br /&gt;A interface &lt;span style="font-family: courier new;"&gt;Mixer &lt;/span&gt;inclui variações nos métodos de acesso aos source e target lines do &lt;span style="font-family: courier new;"&gt;AudioSystem&lt;/span&gt;. Além dos métodos que requerem um argumento do tipo&lt;span style="font-family: courier new;"&gt; Line.Info&lt;/span&gt;, o &lt;span style="font-family: courier new;"&gt;Mixer &lt;/span&gt;também inclui métodos que não possuem argumentos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Line.Info[] getSourceLineInfo()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Line.Info[] getTargetLineInfo()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Estes métodos retornam arrays de objetos &lt;span style="font-family: courier new;"&gt;Line.Info&lt;/span&gt; de um mixer específico.&lt;br /&gt;&lt;br /&gt;Os métodos apresentados para recuperar Lines são aplicados também na recuperação de portas (Ports). Podemos abrir um porta invocando o método &lt;span style="font-family: courier new;"&gt;open &lt;/span&gt;da interface &lt;span style="font-family: courier new;"&gt;Line&lt;/span&gt;. A abertura de uma porta significa permitir que o som entre ou saia por esta porta. De maneira análoga, podemos fechar portas.&lt;br /&gt;&lt;br /&gt;No geral, é recomendado que o programa não abra/feche portas a não ser pelo desejo explícito do usuário. Deve-se respeitar as configurações que o usuário ou o Sistema Operacional já tenha selecionado. (Imagine um usuário que se encontra em um ambiente extremamente silencioso executando um programa que abre a porta dos alto-falantes sem sua devida autorização)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-5094627032818669641?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/5094627032818669641/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=5094627032818669641' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/5094627032818669641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/5094627032818669641'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/como-recuperar-um-line.html' title='Como recuperar um Line'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-9011233212216832453</id><published>2008-08-21T13:15:00.002-03:00</published><updated>2008-08-21T13:19:15.357-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java sound'/><title type='text'>Como recuperar um Mixer</title><content type='html'>Na maioria das vezes a primeira coisa que um programa que utliza a API Java Sound precisa fazer é obter um objeto &lt;span style="font-family: courier new;"&gt;Mixer&lt;/span&gt; ou pelo menos uma linha (&lt;span style="font-family: courier new;"&gt;Line&lt;/span&gt;) de um mixer para que seja possível manipular o som entrando ou saindo do computador. Para isso é necessário conhecer quais tipos de mixer estão instalados no sistema.&lt;br /&gt;&lt;br /&gt;O método &lt;span style="font-family: courier new;"&gt;static Mixer.Info[] getMixerInfo() &lt;/span&gt; recupera o objeto de informação dos mixers que estão instalados. Cada objeto &lt;span style="font-family: courier new;"&gt;Mixer.Info&lt;/span&gt; retornado por este método identifica um tipo de mixer que está instalado no sistema. Um objeto &lt;span style="font-family: courier new;"&gt;Mixer.Info&lt;/span&gt; inclui as seguintes strings para identificar o tipo de mixer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;nome&lt;/li&gt;&lt;li&gt;versão&lt;/li&gt;&lt;li&gt;fabricante&lt;/li&gt;&lt;li&gt;descrição&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Estas strings são arbitrárias. Assim, uma aplicação que precisa de um mixer específico deve saber o que esperar e deve saber com o quê comparar. A empresa que fornece o mixer deve incluir esta informação em sua documentação.&lt;br /&gt;Uma vez que o mixer apropriado é encontrado, o programa invoca o método seguinte da classe &lt;span style="font-family: courier new;"&gt;AudioSystem &lt;/span&gt;para obter o mixer desejado:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;static Mixer getMixer(Mixer.Info info)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-9011233212216832453?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/9011233212216832453/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=9011233212216832453' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9011233212216832453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9011233212216832453'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/como-recuperar-um-mixer.html' title='Como recuperar um Mixer'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-6765986235573457896</id><published>2008-08-21T08:45:00.002-03:00</published><updated>2008-08-21T08:52:06.769-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='sampled'/><title type='text'>Como acessar os recursos de som do seu sistema?</title><content type='html'>A API Java Sound provê maneiras de informar os componentes de áudio disponíveis no seu sistema e maneiras do seu programa acessá-los.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style="font-weight: bold;"&gt;A classe &lt;span style="font-family: courier new;"&gt;AudioSystem&lt;/span&gt;&lt;/span&gt;&lt;o:p style="font-family: courier new;"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;A classe AudioSystem atua como um coletor e distribuidor de informações para componentes de áudio, incluindo serviços nativos e serviços instalados separadamente por meio de providers de terceiros. Por exemplo, um programa pode ser iniciado solicitando a classe AudioSystem onde existe um mixer que possua uma certa configuração.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;Alguns recursos que um programa pode obter da classe AudioSystem:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style=""&gt;&lt;/span&gt;Mixers: um sistema geralmente possui vários mixers instalados. Existe pelo menos um para entrada de áudio e outro para saída de áudio. A classe &lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;AudioSystem&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt; provê uma lista de todos os mixers instalados.&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Helvetica;"&gt;Lines: como as linhas estão associadas a mixers, um programa pode recuperar uma linha diretamente da classe AudioSystem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style=""&gt;&lt;/span&gt;Conversões de formatos: um programa pode querer traduzir um formato de áudio em outro.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style=""&gt;&lt;/span&gt;Arquivos e streams: a classe AudioSystem provê métodos para traduzir arquivos de áudio e streams de áudio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;          &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;span style="font-weight: bold;"&gt;Objetos de Informação&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family: Helvetica;"&gt;Algumas classes na API Java Sound provêem informações úteis sobre interfaces associadas. Por exemplo, Mixer.Info provê detalhes (&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;nome do fabricante, descrição e versão&lt;/span&gt;&lt;span style="font-family: Helvetica;"&gt;) sobre um mixer instalado.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;Um pouco na correria... Em breve vou postar mais informações de como utilizar a classe AudioSystem.&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;Até mais!&lt;br /&gt;&lt;span style="font-family: Helvetica;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-6765986235573457896?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/6765986235573457896/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=6765986235573457896' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6765986235573457896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6765986235573457896'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/como-acessar-os-recursos-de-som-do-seu.html' title='Como acessar os recursos de som do seu sistema?'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-6060767044419847452</id><published>2008-08-17T10:59:00.003-03:00</published><updated>2008-08-17T11:15:20.186-03:00</updated><title type='text'>3 Conceitos Principais - Line</title><content type='html'>Um &lt;span style="font-style: italic;"&gt;line&lt;/span&gt; é um caminho de movimentação do áudio para dentro e para fora de um sistema, geralmente um mixer (embora tecnicamente um mixer também seja um tipo de line).&lt;br /&gt;&lt;br /&gt;As portas de entrada e saída de áudio são lines. Além de microfones e alto-falantes, também são tipos de lines caminhos de informações que um programa pode enviar ou receber áudio de um mixer.&lt;br /&gt;&lt;br /&gt;A única diferença entre lines na API Java Sound e as lines de um mixer físico é que o fluxo de informações de áudio em uma linha na API Java Sound pode ser mono ou multicanal. No caso do mixer físico, cada entrada e saída é um único canal de som. Na API Java Sound o número de canais em uma linha é especificado pela classe &lt;span style="font-family:courier new;"&gt;AudioFormat&lt;/span&gt; da informação sendo transmitida nesta linha.&lt;br /&gt;&lt;br /&gt;O tipo de linha chamado &lt;span style="font-family:courier new;"&gt;Clip&lt;/span&gt; funciona basicamente para a execução do áudio. O tipo &lt;span style="font-family:courier new;"&gt;SourceDataLine&lt;/span&gt; aceita streams de áudio em tempo-real. Ambos são lines de entrada.&lt;br /&gt;&lt;br /&gt;O tipo &lt;span style="font-family:courier new;"&gt;TargetDataLine&lt;/span&gt; é uma linha (saída do mixer) que contém a mistura de streams de entrada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A hierarquia de Interfaces de Line.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter2.anc3.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 417px; height: 214px;" src="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter2.anc3.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A interface base, &lt;span style="font-family:courier new;"&gt;Line&lt;/span&gt;, descreve funcionalidades mínimas comuns a todas as linhas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Controles: &lt;span style="font-style: italic;"&gt;DataLines&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Ports&lt;/span&gt; geralmente possuem um conjunto de controles que afetam o sinal de áudio atravessando uma linha. A API Java Sound especifica classes de controle que podem ser usadas para manipular aspectos do som tais como ganho, pan, reverb  e taxa de amostragem.&lt;/li&gt;&lt;li&gt;Status aberto ou fechado: a correta abertura de uma linha garante que os recursos sejam alocados à linha. Um mixer tem um número finito de linhas. O fechamento de uma linha indica que os recursos utilizados pela linha podem então ser liberados.&lt;/li&gt;&lt;li&gt;Eventos: uma linha gera eventos quando é aberta ou fechada. Entretanto, sub-interfaces de &lt;span style="font-family:courier new;"&gt;Line&lt;/span&gt; podem introduzir outros tipos de eventos. Quando uma linha gera um evento, o evento é enviado para todos os objetos que estão registrados para ouvirem por eventos naquela linha.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ports são linhas simples para entrada e saída de áudio.&lt;br /&gt;&lt;br /&gt;Um &lt;span style="font-family:courier new;"&gt;Mixer&lt;/span&gt; é definido tendo um ou mais source lines e uma ou mais target lines. A interface &lt;span style="font-family:courier new;"&gt;Mixer&lt;/span&gt; foi criada para satisfazer a uma variedade de dispositivos. A interface &lt;span style="font-family:courier new;"&gt;Mixer&lt;/span&gt; suporta sincronização, ou seja, você pode especificar que duas ou mais linhas de um mixer sejam tratadas como um grupo sincronizado. Então você pode iniciar, parar ou fechar todas as linhas de informações apenas enviando uma simples mensagem para qualquer linha no grupo, ao invés de ter que controlar cada uma individualmente.&lt;br /&gt;&lt;br /&gt;A interface &lt;span style="font-family:courier new;"&gt;DataLine&lt;/span&gt; provê as seguintes características adicionais à &lt;span style="font-family:courier new;"&gt;Line&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Formato de audio: cada data line tem um formato de áudio associado com as informações do stream.&lt;/li&gt;&lt;li&gt;Media position: um data line pode dizer sua posição atual, expressa em sample frames. Isto representa o número de janelas de amostras capturadas de um data line desde que este foi aberto.&lt;/li&gt;&lt;li&gt;Tamanho do buffer: este é o tamanho do buffer interno do data line.&lt;/li&gt;&lt;li&gt;Level:  a amplitude corrente do sinal de áudio.&lt;/li&gt;&lt;li&gt;Iniciar ou parar playback ou captura.&lt;/li&gt;&lt;li&gt;Pausar ou resumir playback ou captura.&lt;/li&gt;&lt;li&gt;Flush:  descartar informações não processadas da fila.&lt;/li&gt;&lt;li&gt;Drain: bloqueio até que toda a informação não processada seja drenada da fila e o buffer do data line esteja vazio.&lt;/li&gt;&lt;li&gt;Status ativo: um data line é considerado ativo se está envolvido em uma captura ou apresentação ativa de informações de áudio de/para um mixer.&lt;/li&gt;&lt;li&gt;Eventos: eventos START e &lt;span style="font-family:webdings;"&gt;STOP&lt;/span&gt; são produzidos quando apresentações ou capturas ativas de informações de/para um data line são iniciadas ou paradas.&lt;/li&gt;&lt;/ul&gt;Um &lt;span style="font-family:courier new;"&gt;TargetDataLine&lt;/span&gt; recebe informações de áudio de um mixer. Esta interface provê métodos para ler informações do buffer de um TargetDataLine e para determinar quanta informação ainda está disponível para ser lida.&lt;br /&gt;&lt;br /&gt;Um &lt;span style="font-family:courier new;"&gt;SourceDataLine&lt;/span&gt; recebe informações de áudio para playback. Provê métodos para escrever informações ao buffer do SourceDataLine para playback e para determinar quanta informação a linha está preparada para receber sem bloqueio.&lt;br /&gt;&lt;br /&gt;Um &lt;span style="font-family:courier new;"&gt;Clip&lt;/span&gt; é um &lt;span style="font-family:courier new;"&gt;DataLine&lt;/span&gt; em que as informações de áudio podem ser carregadas principalmente para playback. Pelo fato das informações  já estarem pré-carregadas, a duração do clip é conhecida antes do playback e é possível escolher qualquer ponto de início de execução. Clips podem ser repetidos, ou seja, é possível criar loops com &lt;span style="font-family:courier new;"&gt;Clip&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Com este post, finalizo a apresentação dos principais conceitos da API Java Sound. Até o próximo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-6060767044419847452?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/6060767044419847452/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=6060767044419847452' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6060767044419847452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6060767044419847452'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/3-conceitos-principais-line.html' title='3 Conceitos Principais - Line'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-9117326422652534863</id><published>2008-08-12T22:40:00.002-03:00</published><updated>2008-08-12T22:57:25.295-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>3 Conceitos Principais - Mixer</title><content type='html'>Muitas APIs que trabalham com som fazem uso da noção de &lt;span style="font-style: italic;"&gt;dispositivo&lt;/span&gt; de áudio. Um dispositivo geralmente é uma interface de software para um dispositivo físico de entrada e saída.&lt;br /&gt;Na API Java Sound, dispositivos são representados por objetos da classe &lt;span style="font-family:courier new;"&gt;Mixer&lt;/span&gt;. O propósito de um mixer é manipular um ou mais streams de entrada ou saída de áudio. Tipicamente, o mixer mescla múltiplos streams de entrada em um stream de saída.&lt;br /&gt;&lt;br /&gt;Na API Java Sound, um componente tal como um microfone conectado a uma placa de som não é considerado um dispositivo (como o mixer), mas é chamado de porta (port) entrando ou saindo do mixer. Tipicamente, uma porta provê um único stream de áudio para dentro ou para fora do mixer. O Mixer pode ter vários tipos de portas. Por exemplo, um mixer que representa a capacidade de saída de uma placa de som pode misturar vários streams de áudio juntos e então enviar o sinal mixado para qualquer uma das várias portas de saída conectadas ao mixer. Estas portas de saída podem ser, por exemplo, um fone de ouvido ou um alto falante.&lt;br /&gt;&lt;br /&gt;A imagem abaixo ajuda a compreender a noção de mixer na API Java Sound (inclusive, algumas imagens que estou colocando aqui foram tiradas do Java Sound Programmer Guide) e mostra o console de um mixer físico.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter2.anc1.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 433px; height: 347px;" src="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter2.anc1.gif" alt="" border="0" /&gt;&lt;/a&gt;Imagine um show ao vivo que está sendo gravado em modo estéreo. Cabos vindos de muitos microfones e instrumentos elétricos do palco são plugados nas entradas do aparelho de mixagem. Cada entrada possui um canal específico no mixer. O engenheiro de som decide sobre as configurações de ganho, pan, e controles de reverb. A saída de todos os canais e a unidade de reverb são mixadas juntamente em 2 canais. Estes canais vão para duas saídas no mixer por cabos que estão plugados a um gravador e que também podem ser enviados, via um amplificador, para alto-falantes.&lt;br /&gt;&lt;br /&gt;Agora imagine um estúdio de gravação em que cada instrumento é gravado em uma trilha particular de uma fita de gravação multi-trilhas. Após instrumentos e vocais serem gravados, o engenheiro de som executa um "mixdown" para combinar todas as trilhas gravadas em uma gravação de 2 canais.  Novamente o engenheiro pode decidir os valores de ganho, pan e reverb para cada trilha.&lt;br /&gt;&lt;br /&gt;Estes 2 exemplos ilustram dois diferentes usos de um mixer:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;capturar múltiplos canais de entrada, combiná-los em algumas trilhas&lt;/li&gt;&lt;li&gt;executar múltiplas trilhas enquanto as mixamos em poucas trilhas.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Na API Java Sound, um mixer pode ser usado tanto para captura de áudio quanto para playback. No primeiro caso, a origem do áudio para o mixer é fornecida por uma ou mais portas de entrada. O mixer envia o áudio capturado e mixado para um target (um objeto com um buffer onde o programa pode recuperar as informações do áudio mixado). No caso de playback, as origens de áudio do mixer são objetos contendo buffers e os targets são as portas de saída.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-9117326422652534863?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/9117326422652534863/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=9117326422652534863' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9117326422652534863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9117326422652534863'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/3-conceitos-principais-mixer.html' title='3 Conceitos Principais - Mixer'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-2393592846043390203</id><published>2008-08-11T23:37:00.001-03:00</published><updated>2008-08-11T23:39:25.047-03:00</updated><title type='text'>3 Conceitos Principais - File Format</title><content type='html'>Um formato de arquivo especifica a estrutura de um som. Inclui não apenas as informações de áudio em sua forma crua, mas também outras informações. Na API Java Sound, um formato de arquivo é representado por um objeto &lt;span style="font-family: courier new;"&gt;AudioFileFormat&lt;/span&gt;, que contém:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;o tipo do arquivo (WAVE, AIFF, etc.)&lt;/li&gt;&lt;li&gt;o tamaho do arquivo em bytes&lt;/li&gt;&lt;li&gt;o número de frames da informação de áudio contida no arquivo&lt;/li&gt;&lt;li&gt;um objeto &lt;span style="font-family: courier new;"&gt;AudioFormat&lt;/span&gt; que especifica as informações do formato do áudio contido no arquivo.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;A classe &lt;span style="font-family: courier new;"&gt;AudioSystem&lt;/span&gt; provê métodos para leitura e escrita de sons em diferentes formatos de arquivos e formatos de informações. Ler um arquivo de som como &lt;span style="font-family: courier new;"&gt;AudioInputStream&lt;/span&gt;, tem-se acesso imediato às amostras sem ter que se preocupar com a estrutura do arquivo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-2393592846043390203?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/2393592846043390203/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=2393592846043390203' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/2393592846043390203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/2393592846043390203'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/3-conceitos-principais-file-format.html' title='3 Conceitos Principais - File Format'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-6024526986937155598</id><published>2008-08-11T23:14:00.003-03:00</published><updated>2008-08-11T23:35:40.814-03:00</updated><title type='text'>3 Conceitos Principais - Data Format</title><content type='html'>Para trabalhar com a API Java Sound, é necessário conhecer 3 conceitos principais: Format, Mixer e Line.&lt;br /&gt;&lt;br /&gt;Informações de áudio formatadas referem-se ao som em qualquer um dos formatos padrões. A API Java Sound diferencia formatos de informações (data formats) e formatos de arquivos (file formats).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Formatos de Informação (Data Formats)&lt;/span&gt;&lt;br /&gt;Um formato de informação nos diz como interpretar uma seqüência de bytes de informações de áudio amostrados, a forma crua (&lt;span style="font-style: italic;"&gt;raw&lt;/span&gt;) do som, ou seja, da maneira como as amostras foram lidas de um arquivo de som ou como as amostras foram capturadas por um microfone. É de extrema importância conhecer quantos bits compõem uma amostra (a representação do menor instante do som) e a taxa de amostragem (qual a freqüência com que tais amostras foram tomadas).&lt;br /&gt;&lt;br /&gt;Na API Java Sound, um formato de informação é representado por uma instância da classe AudioFormat, que inclui os atributos seguintes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Técnica de codificação (geralmente pulse code modulation - PCM)&lt;/li&gt;&lt;li&gt;Número de canais (1 para mono, 2 para estéreo, etc.)&lt;/li&gt;&lt;li&gt;Taxa de amostragem (número de amostras por segundo, por canal)&lt;/li&gt;&lt;li&gt;Número de bits por amostras (por canal)&lt;/li&gt;&lt;li&gt;Frame rate&lt;/li&gt;&lt;li&gt;Tamanho do frame em bytes&lt;/li&gt;&lt;li&gt;Ordem dos bytes (big-endian ou little-endian)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;PCM é um tipo de codificação da forma de onda do som. A API Java Sound inclui 2 codificações PCM que usam a quantização linear de amplitudo e valores inteiros com sinal e sem sinal.&lt;br /&gt;QUANTIZAÇÃO LINEAR significa que o número armazenado em cada amostra é diretamente proporcional (exceto por alguma distorção) à pressão original do som naquele instante - e proporcional ao deslocamento de um alto-falante com a vibração do som naquele instante.&lt;br /&gt;Outras formas de codificação do som são Mu-law e a-law. São codificações não-lineares que provêem uma forma mais comprimida das informações de áudio (são tipicamente utilizadas na telefonia e gravações de voz). Por ser uma codificação não-linear, tais codificações podem dar maior resolução de amlitude em uma certa faixa de freqüência.&lt;br /&gt;&lt;br /&gt;Um frame contém a informação de todos os canais em um instante particular. Para informações codificadas em PCM, um frame é o conjunto de amostras simultâneas em todos os canais para um dado instante no tempo, sem qualquer informação adicional. Neste caso, a frame rate (taxa de janela) é igual a taxa de amostragem, e o tamanho do frame em bytes é o número de canais multiplicados pelo tamanho da amostra em bits, dividido pelo número de bits em um byte.&lt;br /&gt;&lt;br /&gt;Para outros tipos de codificação, um frame pode conter informações adicionais entre as amostras. Assim, a frame rate pode ser completamente diferente da taxa de amostragem. No MP3, cada frame contém um conjunto de informações comprimidas para uma série de amostras, não apenas uma amostra por canal. Pelo fato de cada frame encapsular um conjunto de amostras, a frame rate é menor que a taxa de amostragem. No MP3, cada frame contém um cabeçalho. Apesar do cabeçalho, o tamanho do frame em bytes é menor que o tamanho em bytes do número equivalente de frames PCM. (por isso o MP3 é mais compacto que o PCM)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-6024526986937155598?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/6024526986937155598/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=6024526986937155598' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6024526986937155598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/6024526986937155598'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/3-conceitos-principais.html' title='3 Conceitos Principais - Data Format'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-1065223651319942354</id><published>2008-08-10T09:06:00.002-03:00</published><updated>2008-08-10T12:46:31.049-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='sampled'/><title type='text'>javax.sound.sampled</title><content type='html'>O foco do pacote javax.sound.sampled é o de playback e captura de informações de áudio. Para isso é necessário conhecer 3 conceitos fundamentais: formato de informação de áudio, line e mixer.&lt;br /&gt;&lt;br /&gt;A tarefa principal da API Java Sound é saber como mover bytes de áudio formatados para dentro e para fora do sistema. Esta tarefa envolve a abertura dos dispositivos de entrada e saída e o gerenciamento de buffers que são preenchidos com as informações de áudio em tempo real. Também envolve a mistura de múltiplos streams de áudio em apenas um stream. O transporte de som para dentro e fora do sistema tem que ser corretamente manipulado pois é preciso contemplar as necessidades do usuário quando este solicita que o fluxo de som seja iniciado, parado, resumido ou interrompido.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Manipulação de áudio com e sem buffer&lt;/span&gt;&lt;br /&gt;A API Java Sound manipula o transporte de áudio nas formas de streaming, com buffer e sem buffer. O termo "streaming" é usado de forma genérica para referenciar a manipulação de bytes de áudio em tempo-real. Não se refere ao envio de áudio pela Internet. Em outras palavras, um stream de áudio é um conjunto simples de bytes de áudio que chegam mais ou menos na mesma taxa de amostragem que serão manipulados.&lt;br /&gt;As operações nos bytes começam antes de toda a informação chegar. No modelo de streaming, particularmente no caso de entrada, não é necessário conhecer antecipadamente o tamanho do som e quando ele irá terminar. Devemos manipular um buffer de informações por vez até que a operação seja suspendida. No caso de saída, devemos entregar os bytes de áudio para a engine de som e ela cuida de tocar cada amostra no momento correto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-1065223651319942354?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/1065223651319942354/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=1065223651319942354' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1065223651319942354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/1065223651319942354'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/javaxsoundsampled.html' title='javax.sound.sampled'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-9034675226897139614</id><published>2008-08-09T12:05:00.003-03:00</published><updated>2008-08-09T12:12:35.908-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>Service Provider Interfaces</title><content type='html'>As "interfaces provedoras de serviço", SPIs, permitem que desenvolvedores criem novos recursos de áudio ou MIDI separadamente, de forma que estes possam ser plugados a uma implementação existente da API Java Sound. É possível implementar, por exemplo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;um novo mixer&lt;/li&gt;&lt;li&gt;um novo sintetizador MIDI&lt;/li&gt;&lt;li&gt;um novo parser de arquivo que possa ler ou escrever um novo tipo de arquivo de áudio ou MIDI&lt;/li&gt;&lt;li&gt;um novo conversor entre diferentes formatos de som.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Uma implementação da API Java Sound contém um conjunto básico de serviços. As SPIs permitem que terceiros criem novos serviços. As classes &lt;span style="font-family:courier new;"&gt;AudioSystem&lt;/span&gt; e &lt;span style="font-family:courier new;"&gt;MidiSystem&lt;/span&gt; atuam como coordenadores, permitindo que os programas acessem os serviços explicitamente ou implicitamente.&lt;br /&gt;&lt;br /&gt;Bem, finalizo aqui uma parte da introdução sobre a API Java Sound. O próximo passo é explicar de forma mais aprofundada as características do Java Sound e como esta API lida com as informações de áudio. Até lá!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-9034675226897139614?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/9034675226897139614/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=9034675226897139614' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9034675226897139614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/9034675226897139614'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/service-provider-interfaces.html' title='Service Provider Interfaces'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-2103936358616708505</id><published>2008-08-09T10:40:00.001-03:00</published><updated>2008-08-09T10:47:38.184-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer music'/><category scheme='http://www.blogger.com/atom/ns#' term='computação musical'/><title type='text'>Links sobre Computação Musical</title><content type='html'>Quebrando a seqüência de posts introdutórios sobre a API Java Sound, hoje coloco alguns links interessantes sobre computação musical.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://gsd.ime.usp.br/sbcm/"&gt;Arquivos do SBCM&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.lsi.usp.br/musarts/"&gt;MusArts&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ime.usp.br/~mqz/cm/"&gt;Computer Music Projects&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://music.nuim.ie/musictec/docs/progr.html"&gt;Programação Musical&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://music.nuim.ie/musictec/docs/synth.html"&gt;Síntese de sons&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://music.nuim.ie/musictec/docs/proc.html"&gt;Processamento de Sinais Musicais&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://music.nuim.ie/musictec/docs/mu250.shtml"&gt;Tecnologia e Composição Musical&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://smcnetwork.org/"&gt;Sound and Music Computing&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.inf.ufrgs.br/lcm/web/index.php?option=com_content&amp;amp;task=view&amp;amp;id=16&amp;amp;Itemid=37#links"&gt;Computer Music Lab&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Obrigado ao pessoal da lista CompMus-l pelas dicas!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-2103936358616708505?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/2103936358616708505/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=2103936358616708505' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/2103936358616708505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/2103936358616708505'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/links-sobre-computao-musical.html' title='Links sobre Computação Musical'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-7060903965064844512</id><published>2008-08-09T00:10:00.001-03:00</published><updated>2008-08-09T10:53:39.101-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='midi'/><title type='text'>MIDI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.arbiter.co.uk/mt/events/namm_2007/cme_u2midi_usb_cable.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.arbiter.co.uk/mt/events/namm_2007/cme_u2midi_usb_cable.jpg" alt="" border="0" /&gt;&lt;/a&gt;MIDI, ou Musical Instrument Digital Interface, descreve uma série de eventos que afetam o som que um sintetizador produz. Os eventos podem ser interpretados como ações sobre um teclado musical ou ações em pedais, sliders, dentre outros dispositivos.&lt;br /&gt;&lt;br /&gt;Embora grande parte das vezes estes eventos sejam acionados por um instrumento musical (o hardware), é possível também criar tais eventos via software. Além disso, este conjunto de eventos podem ser armazenados em arquivo, permitindo a posterior edição e execução do mesmo.&lt;br /&gt;&lt;br /&gt;Um programa que possui a capacidade de criar, editar e executar estes arquivos é chamado de &lt;span style="font-style: italic;"&gt;sequencer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Um arquivo MIDI padrão contém trilhas (tracks), cada uma delas com uma lista de eventos MIDI. O sequencer pode enviar as mensagens MIDI para algum outro dispositivo como um sintetizador, por exemplo. O sintetizador lê um arquivo de banco de sons (soundbank) contendo instruções para emular os sons de certos instrumentos musicais e executa tais instrumentos de acordo com o evento MIDI recebido do sequencer.&lt;br /&gt;&lt;br /&gt;A imagem abaixo exemplifica como é esse esquema:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter1.anc2.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter1.anc2.gif" alt="" border="0" /&gt;&lt;/a&gt;Neste exemplo, um arquivo MIDI contendo várias trilhas com eventos MIDI é carregado. A maioria dos eventos são representados por notas musicais. O arquivo MIDI é lido e é então executado por um sequencer. O sequencer envia as mensagens MIDI para outro dispositivo tal como um sintetizador interno ou externo. O sintetizador, pode ler um banco de sons contendo as informações necessárias para emular os sons de um instrumento musical. Caso contrário as notas serão executadas usando-se qualquer som que esteja carregado no sintetizador.&lt;br /&gt;&lt;br /&gt;Como visto, as mensagens MIDI podem ser enviadas para um sintetizador externo por meio das portas de saída. Da mesma forma, um dispositivo externo (um teclado musical) pode enviar mensagens MIDI (via portas de entrada) diretamente para um sintetizador ou para que um sequencer armazene para futura execução.&lt;br /&gt;&lt;br /&gt;Por hoje é só. Em breve mais detalhes. Estamos apenas na introdução do basicão.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-7060903965064844512?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/7060903965064844512/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=7060903965064844512' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7060903965064844512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7060903965064844512'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/midi.html' title='MIDI'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-3898038644320933250</id><published>2008-08-07T23:15:00.001-03:00</published><updated>2008-08-09T10:53:22.642-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='sampled'/><title type='text'>Áudio Amostrado (Sampled)</title><content type='html'>&lt;div&gt;Nesse post, tento explicar como é a idéia de um sinal de áudio amostrado e como a API Java Sound aborda este conceito.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Imagine uma pessoa falando ao microfone. O microfone converte o sinal acústico da voz da pessoa em um sinal elétrico analógico correspondente (este processo se dá pela captura da variação da pressão do ar que é causada pela fala da pessoa). Um conversor AD (analógico-digital) transforma então este sinal analógico para uma forma digital amostrada conforme o gráfico a seguir:&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px;" src="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter1.anc.gif" border="0" alt="" /&gt;&lt;div&gt;&lt;br /&gt;O gráfico desenha a pressão do som (amplitude) no eixo vertical e o tempo no eixo horizontal. A amplitude de uma onda sonora é medida periodicamente a uma certa taxa, resultando em amostras discretas (os &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;pontos vermelhos&lt;/span&gt; do gráfico) que compreendem o sinal de áudio digital. A precisão da aproximação do sinal analógico depende de sua resolução no tempo (taxa de amostragem) e sua quantização (ou resolução em amplitude -  o número de bits usados para representar cada amostra).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A API Java Sound não possui uma configuração de hardware específica. É projetada para permitir que diferentes tipos de componentes de áudio sejam instalados em um sistemas e acessados pela API.&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px;" src="http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/images/chapter1.anc1.gif" border="0" alt="" /&gt;&lt;div style="text-align: left;"&gt;A figura anterior mostra o exemplo de uma placa de som contendo várias portas de entradas e saídas. O mixer geralmente recebe informções de áudio de alguma fonte: arquivo, streaming de rede, sintetizador MIDI, dentre outros. O mixer combina todas as entradas de áudio em um único stream, podendo ser enviado para um dispositivo de saída.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Voilà&lt;/span&gt;! Lembro que isto é apenas uma introdução.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-3898038644320933250?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/3898038644320933250/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=3898038644320933250' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3898038644320933250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/3898038644320933250'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/udio-amostrado-sampled.html' title='Áudio Amostrado (Sampled)'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-982287133265814028</id><published>2008-08-07T22:46:00.000-03:00</published><updated>2008-08-07T23:12:17.702-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><title type='text'>Introdução a Java Sound</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i251.photobucket.com/albums/gg282/entroubaixou/java_logo.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px;" src="http://i251.photobucket.com/albums/gg282/entroubaixou/java_logo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este é o primeiro de uma série de posts que serão feitos sobre a API Java Sound.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Java Sound é uma API de baixo nível utilizada para controlar a entrada e saída de som de um computador.  Tais sons podem ser tanto sinais de áudio amostrados quanto eventos MIDI (Musical Instrument Digital Interface).&lt;br /&gt;&lt;br /&gt;Esta API possui basicamente as seguintes utilizações:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Frameworks de comunicação (conferência e telefonia)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Media players&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Programas interativos, jogos, web com conteúdo dinâmico&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Criação e edição de conteúdo (composição musical, por exemplo)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ferramentas, &lt;span class="Apple-style-span" style="font-style: italic;"&gt;toolkits&lt;/span&gt; e outras utilidades&lt;/li&gt;&lt;/ul&gt;Java Sound não inclui editores ou ferramentas gráficas para a sua utilização, mas provê o ferramental necessário para a construção destes programas. Como já foi dito anteriormente, esta API tem por objetivo realizar o controle de baixo nível das operações de áudio de uma máquina.&lt;br /&gt;&lt;br /&gt;Existem outras APIs que também contém elementos relacionados ao som. A JMF - Java Media Framework - é uma API que, ao contrário da API Java Sound, é de alto nível. É uma extensão padrão da plataforma Java composta por uma arquitetura unificada, protocolo de mensagens e interface de programação para a captura e execução de mídia com base no tempo (&lt;span class="Apple-style-span" style="font-style: italic;"&gt;time-based&lt;/span&gt;). A JMF permite a sincronização de tipos de mídias diferentes, tais como áudio e vídeo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Os pacotes principais da API Java Sound são:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;javax.sound.sampled&lt;/span&gt;: este pacote especifica interfaces para captura, mixagem e playback de áudio digital amostrado&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;javax.sound.midi&lt;/span&gt;: provê interfaces para síntese MIDI, sequencer e transporte de eventos&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;javax.sound.sampled.spi&lt;/span&gt; e &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;javax.sound.midi.spi&lt;/span&gt;: permite que provedores de serviços (&lt;span class="Apple-style-span" style="font-style: italic;"&gt;services providers) &lt;/span&gt;criem componentes de software customizados que extendem as capacidades de uma implementação da API Java Sound.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;A priori&lt;/span&gt;, é isso. Até mais!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-982287133265814028?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/982287133265814028/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=982287133265814028' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/982287133265814028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/982287133265814028'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/introuo-java-sound.html' title='Introdução a Java Sound'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-394606183299901294.post-7438637682739503847</id><published>2008-08-07T22:31:00.000-03:00</published><updated>2008-08-07T22:45:40.493-03:00</updated><title type='text'>Iniciando os trabalhos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nWW4a2Xx73Q/SJuk-5JM_fI/AAAAAAAAAAM/H8ws2EZtC_4/s1600-h/start.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_nWW4a2Xx73Q/SJuk-5JM_fI/AAAAAAAAAAM/H8ws2EZtC_4/s320/start.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5231956792519228914" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sejam muito bem vindos neste novo ponto de encontro e concentração de informações relacionadas à computação, música e a misturas das duas coisas. Espero que as informações neste blog possam ajudar as pessoas que, assim como eu, se interessam pelos temas mencionados.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este blog surgiu da necessidade de compartilhar um pouco do que venho estudando nas últimas semanas. Não pretendo atualizá-lo todos os dias, mas o farei sempre que possível.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Espero que gostem!&lt;/div&gt;&lt;div&gt;Que Deus abençoe este blog!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/394606183299901294-7438637682739503847?l=compmus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://compmus.blogspot.com/feeds/7438637682739503847/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=394606183299901294&amp;postID=7438637682739503847' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7438637682739503847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/394606183299901294/posts/default/7438637682739503847'/><link rel='alternate' type='text/html' href='http://compmus.blogspot.com/2008/08/iniciando-os-trabalhos.html' title='Iniciando os trabalhos'/><author><name>Diego Augusto</name><uri>http://www.blogger.com/profile/11954088954365430096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_nWW4a2Xx73Q/SJuk-5JM_fI/AAAAAAAAAAM/H8ws2EZtC_4/s72-c/start.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
