{"id":571,"date":"2016-11-23T02:05:08","date_gmt":"2016-11-23T07:05:08","guid":{"rendered":"https:\/\/portfolios.cs.earlham.edu\/?p=571"},"modified":"2016-11-23T14:23:06","modified_gmt":"2016-11-23T19:23:06","slug":"core-program-complete","status":"publish","type":"post","link":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/","title":{"rendered":"Core Program Complete!"},"content":{"rendered":"<p>Yesterday was a pretty big day as I was able to implement FluidSynth&#8217;s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average number of clock ticks per beat and use that to schedule MIDI note messages that do not occur right on the beat. I may make some more adjustments to make the beat detection and tempo more stable, but otherwise, the core functionality of my program is basically done. Now I need to record myself using the program for demo purposes and measure beat detection accuracy for testing purposes.<\/p>\n<p>Two other optional things I can do to make my program better are to improve the GUI by adding information to the window, and to add measure numbers to group beats together. Both serve to make the program and the music, respectively, a little more readable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday was a pretty big day as I was able to implement FluidSynth&#8217;s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average &hellip; <a href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/\">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-571","post","type-post","status-publish","format-standard","hentry","category-edward"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Core Program Complete! - CS\/DS Student Portfolios<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Core Program Complete! - CS\/DS Student Portfolios\" \/>\n<meta property=\"og:description\" content=\"Yesterday was a pretty big day as I was able to implement FluidSynth&#8217;s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average &hellip; Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/\" \/>\n<meta property=\"og:site_name\" content=\"CS\/DS Student Portfolios\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-23T07:05:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-11-23T19:23:06+00:00\" \/>\n<meta name=\"author\" content=\"Edward Ly\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Edward Ly\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/\"},\"author\":{\"name\":\"Edward Ly\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/89af3998f351d29a0ccc69f7311c2aa9\"},\"headline\":\"Core Program Complete!\",\"datePublished\":\"2016-11-23T07:05:08+00:00\",\"dateModified\":\"2016-11-23T19:23:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/\"},\"wordCount\":158,\"commentCount\":0,\"articleSection\":[\"Edward\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/\",\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/\",\"name\":\"Core Program Complete! - CS\\\/DS Student Portfolios\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#website\"},\"datePublished\":\"2016-11-23T07:05:08+00:00\",\"dateModified\":\"2016-11-23T19:23:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/89af3998f351d29a0ccc69f7311c2aa9\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2016\\\/11\\\/23\\\/core-program-complete\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Core Program Complete!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#website\",\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/\",\"name\":\"CS\\\/DS Student Portfolios\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/89af3998f351d29a0ccc69f7311c2aa9\",\"name\":\"Edward Ly\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g\",\"caption\":\"Edward Ly\"},\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/author\\\/esly14\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Core Program Complete! - CS\/DS Student Portfolios","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/","og_locale":"en_US","og_type":"article","og_title":"Core Program Complete! - CS\/DS Student Portfolios","og_description":"Yesterday was a pretty big day as I was able to implement FluidSynth&#8217;s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average &hellip; Read More","og_url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/","og_site_name":"CS\/DS Student Portfolios","article_published_time":"2016-11-23T07:05:08+00:00","article_modified_time":"2016-11-23T19:23:06+00:00","author":"Edward Ly","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Edward Ly","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/#article","isPartOf":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/"},"author":{"name":"Edward Ly","@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/89af3998f351d29a0ccc69f7311c2aa9"},"headline":"Core Program Complete!","datePublished":"2016-11-23T07:05:08+00:00","dateModified":"2016-11-23T19:23:06+00:00","mainEntityOfPage":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/"},"wordCount":158,"commentCount":0,"articleSection":["Edward"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/","url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/","name":"Core Program Complete! - CS\/DS Student Portfolios","isPartOf":{"@id":"https:\/\/portfolios.cs.earlham.edu\/#website"},"datePublished":"2016-11-23T07:05:08+00:00","dateModified":"2016-11-23T19:23:06+00:00","author":{"@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/89af3998f351d29a0ccc69f7311c2aa9"},"breadcrumb":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2016\/11\/23\/core-program-complete\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/portfolios.cs.earlham.edu\/"},{"@type":"ListItem","position":2,"name":"Core Program Complete!"}]},{"@type":"WebSite","@id":"https:\/\/portfolios.cs.earlham.edu\/#website","url":"https:\/\/portfolios.cs.earlham.edu\/","name":"CS\/DS Student Portfolios","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/portfolios.cs.earlham.edu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/89af3998f351d29a0ccc69f7311c2aa9","name":"Edward Ly","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d2633fa74216d093a8642a5432c44963fd10f677e4cbcc6d935069f9859630ee?s=96&d=mm&r=g","caption":"Edward Ly"},"url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/author\/esly14\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Edward Ly","author_link":"https:\/\/portfolios.cs.earlham.edu\/index.php\/author\/esly14\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/category\/student\/2016\/edward\/\" rel=\"category tag\">Edward<\/a>","rttpg_excerpt":"Yesterday was a pretty big day as I was able to implement FluidSynth&#8217;s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average &hellip; Read More","_links":{"self":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/571","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=571"}],"version-history":[{"count":2,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/571\/revisions"}],"predecessor-version":[{"id":573,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/571\/revisions\/573"}],"wp:attachment":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/media?parent=571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/categories?post=571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/tags?post=571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}