{"id":29635,"date":"2017-04-16T03:01:53","date_gmt":"2017-04-15T17:01:53","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=29635"},"modified":"2017-04-15T21:31:29","modified_gmt":"2017-04-15T11:31:29","slug":"piano-playing-web-application-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/piano-playing-web-application-primer-tutorial\/","title":{"rendered":"Piano Playing Web Application Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/piano.html?tonic=%20\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Xcode SpriteKit Game Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/pianoplaying.jpg\" title=\"Xcode SpriteKit Game Primer Tutorial\"   \/><\/a><p class=\"wp-caption-text\">Piano Playing Web Application Primer Tutorial<\/p><\/div>\n<p>We hope you enjoy our new &#8220;first draft&#8221; of a Piano Playing web application.  We&#8217;re using those audio mp3 files from the other day when we presented <a target=_blank title='Xcode SpriteKit Game Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/xcode-spritekit-game-primer-tutorial\/'>Xcode SpriteKit Game Primer Tutorial<\/a> to &#8220;reframe&#8221; their use for creating a client based web application comprising, essentially &#8230;<\/p>\n<ol>\n<li>audio files, thanks to <a target=_blank title='Useful link, thanks' href='http:\/\/www.caseyrule.com\/projects\/midi\/soundfonts\/FluidR3_GM\/agogo-mp3\/'>useful link<\/a><\/li>\n<li>image of piano, thanks to <a target=_blank title='openclipart' href='http:\/\/openclipart.org'>openclipart<\/a><\/li>\n<li>map tag creation, thanks to <a target=_blank title='mobilefish' href='http:\/\/www.mobilefish.com\/services\/image_map\/image_map.php'>mobilefish<\/a><\/li>\n<li>our Javascript logic to play scales or arpeggios or chords in major and minor keys, for the user&#8217;s listening &#8220;indulgence&#8221;, or perhaps to accompany a user learning the piano<\/li>\n<\/ol>\n<p>This first draft needs more work regarding tying audio &#8220;cues&#8221; with &#8220;visual&#8221; ones, and getting around the mobile device habit of disallowing automated audio plays.  That will be for future postings.  But for today, as with WordPress 4.1.1&#8217;s <a target=_blank title='Piano Playing Web Application Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/piano-playing-web-application-primer-tutorial\/'>Piano Playing Web Application Primer Tutorial<\/a>, try the piano playing web application (with the HTML and Javascript <a target=_blank title='piano.html' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/piano.html_GETME'>piano.html<\/a>) at this <a target=_blank title='Click picture' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/piano.html'>live run<\/a> link (where the C major scale, one octave is played first up), or, live also, below, in an HTML <a target=_blank title='HTML iframe element information from w3schools' href='https:\/\/www.w3schools.com\/tags\/tag_iframe.asp'>iframe<\/a>, curiously the technique by which we play the audio files (allowing for a bank of 9 HTML iframe elements be able to play up to 9 notes at the same time, hopefully enough for most future functionality thoughts &#8230; time will tell) &#8230;<\/p>\n<p><iframe style='width:100%;height:800px;' title='Click picture' src='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/piano.html?tonic=%20'><\/iframe><\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d29635' onclick='var dv=document.getElementById(\"d29635\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/music\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d29635' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>We hope you enjoy our new &#8220;first draft&#8221; of a Piano Playing web application. We&#8217;re using those audio mp3 files from the other day when we presented Xcode SpriteKit Game Primer Tutorial to &#8220;reframe&#8221; their use for creating a client &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/piano-playing-web-application-primer-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,15,37],"tags":[1531,113,2183,476,477,576,587,590,652,745,800,2180,822,1536,997,1094,1319],"class_list":["post-29635","post","type-post","status-publish","format-standard","hentry","category-elearning","category-games","category-tutorials","tag-arpeggio","tag-audio","tag-chord","tag-game","tag-games-2","tag-html","tag-iframe","tag-image","tag-javascript","tag-map","tag-mobilefish","tag-mp3","tag-music-2","tag-note","tag-programming","tag-scale","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/29635"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=29635"}],"version-history":[{"count":7,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/29635\/revisions"}],"predecessor-version":[{"id":29643,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/29635\/revisions\/29643"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=29635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=29635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=29635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}