{"id":1489,"date":"2018-06-09T12:14:00","date_gmt":"2018-06-09T19:14:00","guid":{"rendered":"https:\/\/www.ussherpress.com\/blog\/?p=1489"},"modified":"2018-06-09T12:27:01","modified_gmt":"2018-06-09T19:27:01","slug":"hey-lets-build-a-retro-synth-music-player-part-1","status":"publish","type":"post","link":"https:\/\/www.ussherpress.com\/blog\/?p=1489","title":{"rendered":"Hey, let&#8217;s build a retro synth music player! (Part 1)"},"content":{"rendered":"<p>Just for fun, I&#8217;m going to build up a synth music player from the ground up. The goal will be to come up with a functioning music player that can play music as you&#8217;d hear it on <a href=\"https:\/\/www.youtube.com\/watch?v=la3coK5pq5w\">something like an old NES from &#8217;80s<\/a>.<\/p>\n<p>In the end, we&#8217;ll have working code that can play music like this:<\/p>\n<p><iframe loading=\"lazy\" width=\"660\" height=\"371\" src=\"https:\/\/www.youtube.com\/embed\/UEUSqySKMCU?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>I made that video from 2011, so I&#8217;ve tackled this before. I want to re-do it because I love good design principles and figured this would be a great way to help others who are learning about software development.<\/p>\n<p>Software development is not just about good design, but good planning and good engineering. We have to make trade-offs as we build anything, and in this blog I&#8217;ll try to illustrate how we make these trade-offs to get good results quickly and efficiently. I&#8217;m a big fan of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lean_software_development\">Lean Software Development<\/a> principles, so my decisions will be driven by those principles.<\/p>\n<p>This will take several blog posts, of course, and hopefully you&#8217;ll learn something along the way. Stay tuned!<\/p>\n<p>Oh yeah, you&#8217;ll find all the code here: <a href=\"https:\/\/github.com\/allenu\/Synthie\">https:\/\/github.com\/allenu\/Synthie<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just for fun, I&#8217;m going to build up a synth music player from the ground up. The goal will be to come up with a functioning music player that can play music as you&#8217;d hear it on something like an old NES from &#8217;80s. In the end, we&#8217;ll have working code that can play music &hellip; <a href=\"https:\/\/www.ussherpress.com\/blog\/?p=1489\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Hey, let&#8217;s build a retro synth music player! (Part 1)<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[141],"_links":{"self":[{"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1489"}],"collection":[{"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1489"}],"version-history":[{"count":3,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1489\/revisions"}],"predecessor-version":[{"id":1492,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1489\/revisions\/1492"}],"wp:attachment":[{"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ussherpress.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}