{"id":537,"date":"2016-11-13T16:33:23","date_gmt":"2016-11-13T21:33:23","guid":{"rendered":"https:\/\/portfolios.cs.earlham.edu\/?p=537"},"modified":"2016-11-13T16:33:23","modified_gmt":"2016-11-13T21:33:23","slug":"minor-improvements","status":"publish","type":"post","link":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/13\/minor-improvements\/","title":{"rendered":"Minor Improvements"},"content":{"rendered":"<p>I briefly removed the timestamps from my program, but I didn&#8217;t notice any change in performance any more, so I just left them in the program as before. I also made my program a little more interesting by playing random notes instead of looping through a sequence of notes, and changed the beat counter to increment every eighth note instead of every quarter note. The latter change will be important when I finally replace PortAudio with FluidSynth.<\/p>\n<p>I also played around with the <a href=\"http:\/\/vmpk.sourceforge.net\/\">VMPK<\/a> and <a href=\"http:\/\/qsynth.sourceforge.net\/\">Qsynth<\/a> programs in Linux to refresh myself on how MIDI playback works and how I can send MIDI messages from my program to one of these programs. Thanks to that, I now have a better idea of what I need to do with FluidSynth to make Kinect to MIDI playback happen. I also plan to have a CSV file that stores the following values for the music we want to play:<\/p>\n<p>beatNumber, channelNumber, noteNumber, noteOn\/Off<\/p>\n<p>The instruments that correspond to each channel will have to be specified beforehand too.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I briefly removed the timestamps from my program, but I didn&#8217;t notice any change in performance any more, so I just left them in the program as before. I also made my program a little more interesting by playing random notes instead of looping through a sequence of notes, and changed the beat counter to &#8230; <a title=\"Minor Improvements\" class=\"read-more\" href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/13\/minor-improvements\/\" aria-label=\"Read more about Minor Improvements\">Read more<\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-537","post","type-post","status-publish","format-standard","hentry","category-edward"],"_links":{"self":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/comments?post=537"}],"version-history":[{"count":1,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/537\/revisions"}],"predecessor-version":[{"id":538,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/537\/revisions\/538"}],"wp:attachment":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/media?parent=537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/categories?post=537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/tags?post=537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}