{"id":4803,"date":"2017-03-05T18:04:31","date_gmt":"2017-03-05T17:04:31","guid":{"rendered":"http:\/\/serveiseducatius.xtec.cat\/tarragones\/?p=4803"},"modified":"2019-04-29T11:22:42","modified_gmt":"2019-04-29T09:22:42","slug":"jlapeyra","status":"publish","type":"post","link":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/dinamitzacio\/trics\/jlapeyra\/","title":{"rendered":"Programaci\u00f3 d&#8217;una aplicaci\u00f3 musical"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-6152\" src=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/Ins-Llu\u00eds-Dom\u00e8nech-i-Monataner-Joan-Lapeyra-Amat.jpg\" alt=\"ins-lluis-domenech-i-monataner-joan-lapeyra-amat\" width=\"177\" height=\"236\" \/><span style=\"color: #808080;\"><em><strong>T\u00edtol:<\/strong><\/em><\/span><strong> Programaci\u00f3 d&#8217;una aplicaci\u00f3 musical<\/strong><br \/>\n<span style=\"color: #808080;\"><em><strong>Autor:\u00a0<\/strong><\/em><\/span><strong>Joan Lapeyra Amat<\/strong><br \/>\n<span style=\"color: #808080;\"><em><strong>Tutor:\u00a0<\/strong><\/em><\/span>Jordi G\u00fcell Bonan<br \/>\n<span style=\"color: #808080;\"><em><strong>Modalitat:<\/strong><\/em><\/span> Ci\u00e8ncies i tecnologia: cientificot\u00e8cnic<br \/>\n<span style=\"color: #808080;\"><em><strong>\u00c0rea curricular:<\/strong><\/em> <\/span>Inform\u00e0tica i m\u00fasica<br \/>\n<span style=\"color: #808080;\"><em><strong>Centre:<\/strong><\/em> <\/span>Ins Llu\u00eds Dom\u00e8nech i Montaner<br \/>\n<span style=\"color: #808080;\"><em><strong>Localitat:<\/strong><\/em> <\/span>Reus<\/p>\n<h6><strong>Objectius:<\/strong><\/h6>\n<p style=\"text-align: justify;\">L&#8217;objectiu d&#8217;aquest treball \u00e9s programar una aplicaci\u00f3 on hi hagi\u00a0piano que l&#8217;usuari pot tocar mitjan\u00e7ant l&#8217;<em>App Inventor<\/em>. Aquesta aplicaci\u00f3 ha de constar de:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Una pantalla on es mostra un fragment del piano i l&#8217;usuari ha de poder moure el teclat per anar a notes m\u00e9s greus i m\u00e9s agudes segons desitgi. Tamb\u00e9 ha de poder visualitzar m\u00e9s o menys tecles (zoom). Ha de poder tocar lliurement i el m\u00e9s semblant a un piano possible possible: \u00e9s a dir, ha de tenir la possibilitat de tocar m\u00e9s d&#8217;una tecla alhora.<\/li>\n<li style=\"text-align: justify;\">Una pantalla on l&#8217;usuari toca una can\u00e7\u00f3 determinada per l&#8217;aplicaci\u00f3 (a part de les notes de piano sona\u00a0un acompanyament) amb les indicacions que rep de l&#8217;aparell. Si falla, la can\u00e7\u00f3 s&#8217;ha d&#8217;aturar.<\/li>\n<\/ul>\n<h6><strong>Hip\u00f2tesis:<\/strong><\/h6>\n<p style=\"text-align: justify;\">Una aplicaci\u00f3 com aquesta es pot programar amb l&#8217;<em><a href=\"http:\/\/ai2.appinventor.mit.edu\">App Inventor<\/a><\/em>, la plataforma de programaci\u00f3 gr\u00e0fica que permet crear aplicacions per a m\u00f2bils Android.<\/p>\n<h6><strong>El proc\u00e9s<\/strong><\/h6>\n<p style=\"text-align: justify;\">L&#8217;<em>App Inventor<\/em> utilitza, parlant a grans trets, una programaci\u00f3 orientada a objectes (POO). Aix\u00f2 significa que tot el que s&#8217;hi programi anir\u00e0 relacionat amb els &#8220;objectes&#8221; que s&#8217;han posat a la pantalla, als quals anomena &#8220;components&#8221; (botons, sons, imatges, temporitzadors&#8230;).<\/p>\n<p style=\"text-align: justify;\">La pantalla principal \u00e9s aquesta:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5078 aligncenter\" src=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2-1024x573.png\" alt=\"captura-retallada2\" width=\"384\" height=\"215\" srcset=\"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2-1024x573.png 1024w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2-300x168.png 300w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2-768x430.png 768w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captura-retallada2.png 1199w\" sizes=\"auto, (max-width: 384px) 100vw, 384px\" \/><\/a>L&#8217;usuari es pot moure pel teclat (ja que inicialment es mostren 17 tecles i en t\u00e9 61 en total) i activar altres funcions amb els botons superiors. El teclat en si \u00e9s una \u00e0rea (component anomenat\u00a0<em>canvas<\/em>) que permet englobar diverses imatges (components anomenats <em>ImageSprite<\/em>). Cada tecla \u00e9s un <em>ImageSprite<\/em>.\u00a0Aquests\u00a0se situen al <em>canvas<\/em>\u00a0segons unes coordenades (X, Y) i unes dimensions (amplada, al\u00e7ada)\u00a0que es poden canviar durant l&#8217;execuci\u00f3 de l&#8217;aplicaci\u00f3 segons unes directrius definides pel programador (canviaran quan l&#8217;usuari es mogui pel teclat).<\/p>\n<p style=\"text-align: justify;\">De la mateixa manera cada so (un per cada nota) \u00e9s un component de tipus\u00a0<em>sound<\/em> que cont\u00e9 l&#8217;\u00e0udio del que ha de sonar quan tal nota sigui tocada.<\/p>\n<p style=\"text-align: justify;\">Per tal d&#8217;organitzar les tecles i els sons vaig crear diverses llistes de components (tecles blanques, tecles negres, totes les tecles, sons de tecles blanques, sons de tecles negres, sons de tecles blanques, tots els sons). Tamb\u00e9 variables num\u00e8riques\u00a0que indiquen les tecles que es mostren. El valor d&#8217;aquestes variables canviar\u00e0 quan l&#8217;usuari es mogui pel teclat.<\/p>\n<p style=\"text-align: justify;\">A partir d&#8217;aqu\u00ed\u00a0vaig desenvolupar les f\u00f3rmules matem\u00e0tiques que permeten situar cada tecla (definir-ne les coordenades) en funci\u00f3 del seu n\u00famero de llista i les variables esmentades. Tamb\u00e9 les f\u00f3rmules amb qu\u00e8 es determina la nota que s&#8217;ha tocat (el seu n\u00famero de llista, que \u00e9s el mateix el de la llista de tecles que el de la llista de sons) en funci\u00f3 de les coordenades del punt del\u00a0<em>canvas<\/em> on ha tocat el dit.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5116 alignright\" src=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada-1024x575.png\" alt=\"opcions-acords-2-retallada\" width=\"286\" height=\"161\" srcset=\"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada-1024x575.png 1024w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada-300x168.png 300w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada-768x431.png 768w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/opcions-acords-2-retallada.png 1192w\" sizes=\"auto, (max-width: 286px) 100vw, 286px\" \/><\/a>Una aplicaci\u00f3 feta amb l\u2019<em>App Inventor<\/em> no detecta dos punts diferents de la pantalla tocats alhora, nom\u00e9s un.\u00a0Per aix\u00f2 no podem tocar m\u00e9s d\u2019una tecla alhora lliurement. Per compensar-ho vaig incorporar la funci\u00f3 d&#8217;acords. Si est\u00e0 activada, quan l&#8217;usuari toqui una nota no nom\u00e9s sonar\u00e0 aquella nota sin\u00f3 tamb\u00e9 tot l&#8217;acord del qual \u00e9s t\u00f2nica (conjunt de notes regits per les regles de l&#8217;harmonia). L&#8217;usuari configura el tipus d&#8217;acords a la paleta d&#8217;opcions [imatge]. Gr\u00e0cies a les llistes i les dades de l&#8217;acord configurat i el sistema logicomatem\u00e0tic que he programat basant-me en els principis de l&#8217;harmonia, el processador sap quines notes s&#8217;han de tocar.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5140 alignright\" src=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3-1024x574.png\" alt=\"captur-retallada-3\" width=\"393\" height=\"221\" srcset=\"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3-1024x574.png 1024w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3-300x168.png 300w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3-768x431.png 768w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/captur-retallada-3.png 1195w\" sizes=\"auto, (max-width: 393px) 100vw, 393px\" \/><\/a>La segona pantalla de l&#8217;aplicaci\u00f3 inclou la funci\u00f3 de can\u00e7ons.\u00a0Consisteix que l&#8217;usuari ha d&#8217;anar tocant les notes de la can\u00e7\u00f3, indicades pels cercles liles [imatge]. Cadascun d&#8217;ells est\u00e0 a la mateixa recta vertical imagin\u00e0ria que la tecla que representa. Van baixant tots a la mateixa velocitat (mentre el tempo no varia). La tecla ha de ser tocada just abans que la bola arribi a baix de l&#8217;\u00e0rea blanca. Si no \u00e9s aix\u00ed, la can\u00e7\u00f3 s&#8217;atura. Continua quan l&#8217;usuari toca la tecla.<\/p>\n<p style=\"text-align: justify;\">La can\u00e7\u00f3 \u00e9s un \u00e0udio que l&#8217;aplicaci\u00f3 descarrega d&#8217;Internet al moment d&#8217;iniciar la pantalla. Per aix\u00f2 \u00e9s essencial la connexi\u00f3 a la xarxa. El processador ha d&#8217;aturar-lo i reprendre&#8217;l quan sigui convenient. Hi ha un temporitzador que salta cada X temps, que anomenarem interval. Aquest temps \u00e9s la difer\u00e8ncia m\u00ednima entre dues notes consecutives de la can\u00e7\u00f3. Quan el temporitzador salta, surt el cercle\u00a0que representa la nota que l&#8217;usuari haur\u00e0 de tocar al cap d&#8217;uns quants intervals, si \u00e9s que n&#8217;ha de tocar alguna. El processador sap d&#8217;on ha de sortir la bola (quina nota representa) i si n&#8217;ha de sortir alguna gr\u00e0cies a les variables num\u00e8riques que indiquen en quin moment de la can\u00e7\u00f3 estem (comp\u00e0s, pulsaci\u00f3 i part) i un sistema de condicionals que en funci\u00f3 d&#8217;aquestes variables indicaran una nota o una altra. \u00c9s com una representaci\u00f3 inform\u00e0tica de la partitura. Quan la bola arribi a baix, al cap d&#8217;un nombre determinat d&#8217;intervals, el temporitzador haur\u00e0 tornat a saltar\u00a0i si l&#8217;usuari no ha tocat la nota (se sap gr\u00e0cies a l&#8217;estat d&#8217;una variable que s&#8217;hauria modificat si l&#8217;usuari hagu\u00e9s tocat la nota) la can\u00e7\u00f3 s&#8217;atura.<\/p>\n<p style=\"text-align: justify;\">Requereix molta precisi\u00f3 fer quadrar el temporitzador amb el tempo de la can\u00e7\u00f3. Moltes vegades el temporitzador s&#8217;endarrereix perqu\u00e8 el processador no \u00e9s immediat. Aix\u00f2 origina que la nota no requereixi ser tocada despr\u00e9s que hagi sonat. I aquest endarreriment es multiplica a mesura que va avan\u00e7ant la can\u00e7\u00f3.\u00a0Per a corregir-ho vaig restar a l&#8217;interval el desfasament que hi havia. Aquest error era diferent per a cada moment de la can\u00e7\u00f3 i possiblement diferent per cada m\u00f2bil.<\/p>\n<h6><strong>Conclusions:<\/strong><\/h6>\n<p style=\"text-align: justify;\">Un cop realitzada l&#8217;aplicaci\u00f3 podem dir que en general he aconseguit els objectius.<\/p>\n<p style=\"text-align: justify;\">El teclat funciona b\u00e9 (el normal i la funci\u00f3 d&#8217;acords), malgrat que a vegades el processador falla en reproduir els sons de les notes. Els sons s\u00f3n \u00e0udios <em>mp3<\/em> que suposen un esfor\u00e7 per la m\u00e0quina. Com m\u00e9s r\u00e0pid es va prement les tecles, menys en sonen. Com m\u00e9s operacions ha fet l\u2019aplicaci\u00f3 (per exemple, descarregar-se els \u00e0udios de les can\u00e7ons d&#8217;Internet), menys possibilitats hi ha que sonin perqu\u00e8 se sobrecarrega. El bon funcionament de la reproducci\u00f3 de les notes rau en deixar temps al processador.<\/p>\n<p style=\"text-align: justify;\">He hagut d&#8217;adaptar els meus objectius a les possibilitats del programa. L&#8217;exemple m\u00e9s clar \u00e9s la creaci\u00f3 de la funci\u00f3 d&#8217;acords. En interpretar una pe\u00e7a en piano, el m\u00e9s com\u00fa \u00e9s que el pianista toqui diverses notes a la vegada. Aix\u00f2 no \u00e9s possible en una aplicaci\u00f3 creada amb <em>App Inventor<\/em> perqu\u00e8 no es poden tocar dos punts de la pantalla alhora. Per\u00f2 s\u00ed que \u00e9s possible que sonin diverses notes alhora (un acord de les caracter\u00edstiques que ha determinat l&#8217;usuari) tocant nom\u00e9s un punt de la pantalla gr\u00e0cies a la funci\u00f3 d&#8217;acords.<\/p>\n<p style=\"text-align: justify;\">La funci\u00f3 de can\u00e7ons \u00e9s la que m&#8217;ha portat m\u00e9s problemes a causa de la imprecisi\u00f3 dels temporitzadors de l&#8217;<em>App Inventor<\/em>. I aix\u00f2 \u00e9s molt important en aquesta aplicaci\u00f3. He arribat a la conclusi\u00f3 que una funci\u00f3 com aquesta que funcioni a la perfecci\u00f3 no entra dins de les possibilitats de l&#8217;<em>App Inventor<\/em>.<\/p>\n<p style=\"text-align: justify;\">Programant l&#8217;aplicaci\u00f3 he pogut plasmar l&#8217;estreta relaci\u00f3 que tenen les matem\u00e0tiques i la m\u00fasica, creant una estructura l\u00f2gica-matem\u00e0tica que regeix tots els elements musicals de l&#8217;aplicaci\u00f3. Tamb\u00e9 m&#8217;he adonat que la programaci\u00f3 \u00e9s un proc\u00e9s te\u00f2ricament exacte (el que programem est\u00e0 pensat perqu\u00e8 es compleixi). Per\u00f2 l&#8217;execuci\u00f3 est\u00e0 plena d&#8217;imperfeccions: pot ser que ordres que donem al processador (p. ex. reproduir un so) no es compleixin o que ho facin inexactament (p. ex. imprecisi\u00f3 temporal).<\/p>\n<p style=\"text-align: justify;\">He comprovat com darrere de cada programa, aplicaci\u00f3, sistema operatiu&#8230; hi ha molta feina en la programaci\u00f3. I a cada pas cal comprovar detingudament el funcionament per detectar els errors i corregir-los fins que arribi a funcionar correctament.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/drive.google.com\/open?id=0B_jU7mrQtE2OemlQR0djVHBHZ2M\">Obriu aquest enlla\u00e7 des del\u00a0m\u00f2bil per descarregar-vos l&#8217;aplicaci\u00f3.<\/a><a href=\"https:\/\/drive.google.com\/open?id=0B_jU7mrQtE2OemlQR0djVHBHZ2M\">\u00a0<\/a><\/p>\n<p style=\"text-align: center;\">O b\u00e9 seleccioneu des del m\u00f2bil aquest codi QR:<\/p>\n<p><a href=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/QR-drive-apk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5190 aligncenter\" src=\"http:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/QR-drive-apk.png\" alt=\"qr-drive-apk\" width=\"189\" height=\"189\" srcset=\"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/QR-drive-apk.png 370w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/QR-drive-apk-150x150.png 150w, https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-content\/uploads\/usu549\/2017\/03\/QR-drive-apk-300x300.png 300w\" sizes=\"auto, (max-width: 189px) 100vw, 189px\" \/><\/a><\/p>\n<h6><strong>Bibliografia<\/strong><\/h6>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Programming_language\">https:\/\/en.wikipedia.org\/wiki\/Programming_language<\/a><\/li>\n<li><a href=\"https:\/\/ca.wikipedia.org\/wiki\/Llenguatge_de_programaci\u00f3\">https:\/\/ca.wikipedia.org\/wiki\/Llenguatge_de_programaci\u00f3<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Syntax_(programming_languages)\">https:\/\/en.wikipedia.org\/wiki\/Syntax_(programming_languages)<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Lexical_analysis\">https:\/\/en.wikipedia.org\/wiki\/Lexical_analysis<\/a><\/li>\n<li><a href=\"https:\/\/es.wikipedia.org\/wiki\/Paradigma_de_programaci%C3%B3n\">https:\/\/es.wikipedia.org\/wiki\/Paradigma_de_programaci%C3%B3n<\/a><\/li>\n<li><a href=\"https:\/\/es.wikipedia.org\/wiki\/Programaci%C3%B3n_orientada_a_objetos\">https:\/\/es.wikipedia.org\/wiki\/Programaci%C3%B3n_orientada_a_objetos<\/a><\/li>\n<li><a href=\"https:\/\/ca.wikipedia.org\/wiki\/Programaci%C3%B3_din%C3%A0mica\">https:\/\/ca.wikipedia.org\/wiki\/Programaci%C3%B3_din%C3%A0mica<\/a><\/li>\n<li><a href=\"http:\/\/ai2.appinventor.mit.edu\/\">http:\/\/ai2.appinventor.mit.edu\/<\/a><\/li>\n<li><a href=\"http:\/\/ai2.appinventor.mit.edu\/reference\/components\/userinterface.html\">http:\/\/ai2.appinventor.mit.edu\/reference\/components\/userinterface.html<\/a><\/li>\n<li><a href=\"http:\/\/ai2.appinventor.mit.edu\/reference\/components\/media.html\">http:\/\/ai2.appinventor.mit.edu\/reference\/components\/media.html<\/a><\/li>\n<li><a href=\"http:\/\/ai2.appinventor.mit.edu\/reference\/components\/animation.html\">http:\/\/ai2.appinventor.mit.edu\/reference\/components\/animation.html<\/a><\/li>\n<li><a href=\"http:\/\/ai2.appinventor.mit.edu\/reference\/components\/sensors.html\">http:\/\/ai2.appinventor.mit.edu\/reference\/components\/sensors.html<\/a><\/li>\n<li><a href=\"http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/control.html\">http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/control.html<\/a><\/li>\n<li><a href=\"http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/logic.html\">http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/logic.html<\/a><\/li>\n<li><a href=\"http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/math.html\">http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/math.html<\/a><\/li>\n<li><a href=\"http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/lists.html\">http:\/\/appinventor.mit.edu\/explore\/ai2\/support\/blocks\/lists.html<\/a><\/li>\n<li><a href=\"http:\/\/agora.xtec.cat\/ies-domenech-i-montaner-reus\/moodle\/course\/view.php?id=862\">http:\/\/agora.xtec.cat\/ies-domenech-i-montaner-reus\/moodle\/course\/view.php?id=862<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Christian_Petzold_(composer)\">https:\/\/en.wikipedia.org\/wiki\/Christian_Petzold_(composer)<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Minuet_in_G_major,_BWV_Anh._114\">https:\/\/en.wikipedia.org\/wiki\/Minuet_in_G_major,_BWV_Anh._114<\/a><\/li>\n<li><a href=\"http:\/\/www.huaweispain.com\/microsites\/huawei-p8lite\/\">http:\/\/www.huaweispain.com\/microsites\/huawei-p8lite\/<\/a><\/li>\n<li>SEGARRA, Ireneu. <em>Llenguatge musical. Grau elemental. Primer curs.<\/em> Esplugues de Llobregat, Publicacions de l\u2019Abadia de Montserrat, 2003.<\/li>\n<li>SEGARRA, Ireneu. <em>Llenguatge musical. Grau elemental. Segon curs.<\/em> Esplugues de Llobregat, Publicacions de l\u2019Abadia de Montserrat, 1996.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ins Llu\u00eds Dom\u00e8nech i Monataner<\/p>\n","protected":false},"author":1,"featured_media":5078,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[391,70],"tags":[335,510],"class_list":["post-4803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciencies","category-trics","tag-informatica-i-disseny","tag-trics_ins-lluis-domenech-i-montaner"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/posts\/4803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/comments?post=4803"}],"version-history":[{"count":4,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/posts\/4803\/revisions"}],"predecessor-version":[{"id":14083,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/posts\/4803\/revisions\/14083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/media\/5078"}],"wp:attachment":[{"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/media?parent=4803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/categories?post=4803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serveiseducatius.xtec.cat\/tarragones\/wp-json\/wp\/v2\/tags?post=4803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}