{"id":193,"date":"2007-12-22T12:23:12","date_gmt":"2007-12-22T15:23:12","guid":{"rendered":"http:\/\/www.subterfugios.net\/blog\/arquivos\/2007\/12\/22\/jfugue-a-fome-e-a-vontade-de-comer\/"},"modified":"2009-05-28T20:36:34","modified_gmt":"2009-05-28T23:36:34","slug":"jfugue-a-fome-e-a-vontade-de-comer","status":"publish","type":"post","link":"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/","title":{"rendered":"JFugue &#8211; a fome e a vontade de comer"},"content":{"rendered":"<blockquote><p>&#8220;JFugue \u00e9 uma biblioteca Java em c\u00f3digo-aberto para programar m\u00fasica sem as complexidades do MIDI.&#8221;<\/p><\/blockquote>\n<p>A id\u00e9ia \u00e9 criar m\u00fasicas atrav\u00e9s de programa\u00e7\u00e3o Java. N\u00e3o se assuste com a palavra &#8220;programar&#8221;, \u00e9 mais simples que isso. Manja s\u00f3 um exemplo:<\/p>\n<pre>\r\nPlayer player = new Player();\r\nplayer.play(\"C D E F G A B\");      <em>\/\/ <a href=\"\/fugue\/intro1.mid\">resultado<\/a><\/em><\/pre>\n<p>Isso vai tocar um d\u00f3-r\u00e9-mi-f\u00e1-sol-l\u00e1-si. Agora, vamos fazer o mi-f\u00e1 mais r\u00e1pido, transformando cada nota em colcheia (e<strong>i<\/strong>ghth):<\/p>\n<pre>\r\nplayer.play(\"C D Ei Fi G A B\");      <em>\/\/ <a href=\"\/fugue\/intro2.mid\">resultado<\/a><\/em><\/pre>\n<p>Legal, agora vamos fazer um dois acordes: d\u00f3 maior e f\u00e1 maior:<\/p>\n<pre>\r\nplayer.play(\"Cmaj Fmaj\");      <em>\/\/ <a href=\"\/fugue\/intro3.mid\">resultado<\/a><\/em><\/pre>\n<p>Hmm, t\u00e1 muito r\u00e1pido. Vamos transform\u00e1-los em semibreves (<strong>w<\/strong>hole):<\/p>\n<pre>\r\nplayer.play(\"Cmajw Fmajw\");      <em>\/\/ <a href=\"\/fugue\/intro4.mid\">resultado<\/a><\/em><\/pre>\n<p>Legal. Agora vamos juntar o solo e a base (Voz 0 e Voz 1):<\/p>\n<pre>\r\nPattern p = new Pattern();\r\np.add(\"V0 C D Ei Fi G A B\");\r\np.add(\"V1 Cmajw Fmajw\");\r\nplayer.play(p);      <em>\/\/ <a href=\"\/fugue\/intro5.mid\">resultado<\/a><\/em><\/pre>\n<p>Ok, vamos ajeitar este final, colocando mais um acorde d\u00f3 maior, e uma seq\u00fc\u00eancia d\u00f3-r\u00e9-d\u00f3 no solo. Note que colocamos a seq\u00fc\u00eancia na sexta oitava (o padr\u00e3o \u00e9 a quinta):<\/p>\n<pre>\r\nPattern p = new Pattern();\r\np.add(\"V0 C D Ei Fi G A B C6 D6 C6w\");\r\np.add(\"V1 Cmajw Fmajw Cmajw\");\r\nplayer.play(p);      <em>\/\/ <a href=\"\/fugue\/intro6.mid\">resultado<\/a><\/em><\/pre>\n<p>Agora, s\u00f3 pra ficar mais moderno-brega, vamos fazer este solo com um saxofone tenor:<\/p>\n<pre>\r\nPattern p = new Pattern();\r\np.add(\"V0 I[Tenor_Sax] C D Ei Fi G A B C6 D6 C6w\");\r\np.add(\"V1 Cmajw Fmajw Cmajw\");\r\nplayer.play(p);      <em>\/\/ <a href=\"\/fugue\/intro7.mid\">resultado<\/a><\/em><\/pre>\n<p>Bem, a nota\u00e7\u00e3o \u00e9 bem simples e \u00fatil para escrever m\u00fasica. Mais interessante parece, por\u00e9m, a id\u00e9ia de programar m\u00fasicas que se escrevem sozinhas, ou seja, gerar m\u00fasicas. M\u00fasicas semi-aleat\u00f3rias, m\u00fasicas baseadas em padr\u00f5es de outras m\u00fasicas.<br \/>\nVou deixar aqui dois outros exemplos, com c\u00f3digo-fonte:<\/p>\n<ul>\n<li><a href=\"\/fugue\/crabcanon.mid\">Crab Canon<\/a> por David Koelle, www.jfugue.org. Esta m\u00fasica de Bach \u00e9 como um pal\u00edndromo. Ela \u00e9 espelhada: o acompanhamento tocar a mesma melodia, s\u00f3 que de tr\u00e1s para frente. No JFugue, foi codificada apenas uma voz, e a outra foi derivada invertendo a primeira e transpondo-a para uma oitava abaixo.<\/li>\n<li><a href=\"\/fugue\/nada.mid\">Nada<\/a>, por Jo\u00e3o Del Valle. Primeira m\u00fasica que fiz no JFugue, para aprender o uso. \u00c9 um monte de loops e notas escolhidas &#8220;estatisticamente&#8221;. A cada execu\u00e7\u00e3o do programa, uma m\u00fasica diferente \u00e9 gerada. D\u00e1 para voc\u00ea ouvir enquanto faz nata\u00e7\u00e3o com seu iPod \u00e0 prova d&#8217;\u00e1gua.<\/li>\n<\/ul>\n<p>A biblioteca parece bastante poderosa. Ainda temos um infinito a explorar. V\u00e1 at\u00e9 a se\u00e7\u00e3o <a href=\"http:\/\/www.jfugue.org\/howto.html\">Getting Started<\/a> do www.jfugue.org.<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-193\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/?share=facebook\" target=\"_blank\" title=\"Clique para compartilhar no Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Facebook(abre em nova janela)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-193\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/?share=twitter\" target=\"_blank\" title=\"Clique para compartilhar no Twitter\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Twitter(abre em nova janela)<\/span><\/a><\/li><li class=\"share-jetpack-whatsapp\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-jetpack-whatsapp sd-button share-icon no-text\" href=\"https:\/\/api.whatsapp.com\/send?text=JFugue%20-%20a%20fome%20e%20a%20vontade%20de%20comer%20https%3A%2F%2Fwww.subterfugios.net%2Fblog%2Fjfugue-a-fome-e-a-vontade-de-comer%2F\" target=\"_blank\" title=\"Clique para compartilhar no WhatsApp\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no WhatsApp(abre em nova janela)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&#8220;JFugue \u00e9 uma biblioteca Java em c\u00f3digo-aberto para programar m\u00fasica sem as complexidades do MIDI.&#8221; A id\u00e9ia \u00e9 criar m\u00fasicas atrav\u00e9s de programa\u00e7\u00e3o Java. N\u00e3o se assuste com a palavra &#8220;programar&#8221;, \u00e9 mais simples que isso. Manja s\u00f3 um exemplo: &hellip; <a href=\"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-193\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/?share=facebook\" target=\"_blank\" title=\"Clique para compartilhar no Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Facebook(abre em nova janela)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-193\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/jfugue-a-fome-e-a-vontade-de-comer\/?share=twitter\" target=\"_blank\" title=\"Clique para compartilhar no Twitter\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Twitter(abre em nova janela)<\/span><\/a><\/li><li class=\"share-jetpack-whatsapp\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-jetpack-whatsapp sd-button share-icon no-text\" href=\"https:\/\/api.whatsapp.com\/send?text=JFugue%20-%20a%20fome%20e%20a%20vontade%20de%20comer%20https%3A%2F%2Fwww.subterfugios.net%2Fblog%2Fjfugue-a-fome-e-a-vontade-de-comer%2F\" target=\"_blank\" title=\"Clique para compartilhar no WhatsApp\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no WhatsApp(abre em nova janela)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"sharing_disabled":false,"spay_email":"","footnotes":"","jetpack_publicize_message":""},"categories":[1],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-etc"],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pAkyI-37","_links":{"self":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":1,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":247,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions\/247"}],"wp:attachment":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}