{"id":204,"date":"2016-06-25T16:49:10","date_gmt":"2016-06-25T16:49:10","guid":{"rendered":"http:\/\/weegreenblobbie.com\/?p=204"},"modified":"2016-06-25T16:54:03","modified_gmt":"2016-06-25T16:54:03","slug":"nsound-rewrite-2016","status":"publish","type":"post","link":"http:\/\/weegreenblobbie.com\/?p=204","title":{"rendered":"Nsound rewrite 2016"},"content":{"rendered":"<p>The Nsound code base is old, (10 years! I can hardly believe that). \u00a0Obviously I&#8217;m a much better developer today (:P), and there&#8217;s lots of things that need cleaning. \u00a0Maintenance is becoming a burden, the build process is complex, it&#8217;s difficult to debug.<\/p>\n<p>So I am about to start to rewrite all of nsound, here are some of the directions I want to go:<\/p>\n<ul>\n<li>C++14<\/li>\n<li>float32 only (float64 is overkill, perhaps Buffer&lt;T&gt;?)<\/li>\n<li>header only (avoid the need for .so or .dll)<\/li>\n<li>serialize with JSON<\/li>\n<li>switch to Boost.Python (dump swig)<\/li>\n<li>create generic filter kernel objects\n<ul>\n<li>separate kernel design from filter objects<\/li>\n<\/ul>\n<\/li>\n<li>generic functions on std::vector or std::array\n<ul>\n<li>provide scipy-like signals\u00a0module suite<\/li>\n<\/ul>\n<\/li>\n<li>combine AudioStream and Buffer into one object, no need to maintain both<\/li>\n<li>Boost unit tests from the beginning<\/li>\n<li>rewrite all the SCons files to keep it simple stupid!\n<ul>\n<li>move scons utilities &amp; tests into proper tools (and share with the rest of the world!)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>You can help out too! Working on open source is a great way to strengthen your skills!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Nsound code base is old, (10 years! I can hardly believe that). \u00a0Obviously I&#8217;m a much better developer today (:P), and there&#8217;s lots of things that need cleaning. \u00a0Maintenance is becoming a burden, the build process is complex, it&#8217;s &hellip; <a href=\"http:\/\/weegreenblobbie.com\/?p=204\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,7],"tags":[],"class_list":["post-204","post","type-post","status-publish","format-standard","hentry","category-nsound","category-programming"],"_links":{"self":[{"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/posts\/204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=204"}],"version-history":[{"count":5,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/posts\/204\/revisions"}],"predecessor-version":[{"id":210,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=\/wp\/v2\/posts\/204\/revisions\/210"}],"wp:attachment":[{"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=204"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/weegreenblobbie.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}