{"id":392,"date":"2012-11-27T23:45:37","date_gmt":"2012-11-28T04:45:37","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/acts\/?p=392"},"modified":"2012-11-28T11:23:42","modified_gmt":"2012-11-28T16:23:42","slug":"harmony-lab","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/acts\/2012\/11\/27\/harmony-lab\/","title":{"rendered":"Harmony Lab"},"content":{"rendered":"<p>One of the nice things about my job is being able to take credit for interesting student projects. We&#8217;ve got an awesome pool of kids that are always doing stuff. They have cool ideas, write up a sloppy implementation and don&#8217;t want to maintain it. So it comes to us and we have the opportunity to polish it and expand it for use to a broader audience.<\/p>\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/acts\/files\/2012\/11\/Picture-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogs.law.harvard.edu\/acts\/files\/2012\/11\/Picture-5-300x169.png\" alt=\"\" title=\"GoFigure\" width=\"300\" height=\"169\" class=\"alignleft size-medium wp-image-393\" srcset=\"https:\/\/archive.blogs.harvard.edu\/acts\/files\/2012\/11\/Picture-5-300x169.png 300w, https:\/\/archive.blogs.harvard.edu\/acts\/files\/2012\/11\/Picture-5.png 889w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>The most recent of these projects to come along is the newly named &#8220;Harmony Lab&#8221;. (Formerly GoFigure \/ Piano Lab) This is a nice application that allows you to hook up a midi keyboard to your computer and get information about music theory stuffs (and by &#8220;music theory stuffs&#8221; I mean I haven&#8217;t yet wrapped my head around everything the application does).<\/p>\n<p>Currently it is an application that uses an applet to get the midi data from the keyboard and a ton of javascript for visualizing the key\/chord. And a ton of javascript is never a pretty thing. <\/p>\n<p>We are giving it a backend for some authentication, cleaning up the javascript where we can, and adding some extra functionality &#8212; hopefully not too much extra. This is a cool project, but it&#8217;s usefulness is limited to one or two classes.<\/p>\n<p>What&#8217;s cool about this is it&#8217;s a (potentially) simple application so it lets us play with (learn) something new (to us). So we went for python <a href=\"https:\/\/www.djangoproject.com\/\">Django<\/a>.<\/p>\n<p><a href=\"https:\/\/github.com\/Harvard-ATG\/HarmonyLab\/\">It&#8217;s available on github from the start.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the nice things about my job is being able to take credit for interesting student projects. We&#8217;ve got an awesome pool of kids that are always doing stuff. They have cool ideas, write up a sloppy implementation and don&#8217;t want to maintain it. So it comes to us and we have the opportunity [&hellip;]<\/p>\n","protected":false},"author":4571,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63924,64033],"tags":[50627,64037,5464,1801],"class_list":["post-392","post","type-post","status-publish","format-standard","hentry","category-atg","category-harmony-lab","tag-django","tag-music-theory","tag-python","tag-students"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/users\/4571"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/comments?post=392"}],"version-history":[{"count":3,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/392\/revisions"}],"predecessor-version":[{"id":396,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/posts\/392\/revisions\/396"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/media?parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/categories?post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/acts\/wp-json\/wp\/v2\/tags?post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}