{"id":725,"date":"2011-12-17T19:17:52","date_gmt":"2011-12-17T18:17:52","guid":{"rendered":"http:\/\/abumarkub.net\/abublog\/?p=725"},"modified":"2015-08-22T13:55:17","modified_gmt":"2015-08-22T12:55:17","slug":"midibridge-using-base64-soundfonts-a-proof-of-concept","status":"publish","type":"post","link":"https:\/\/abumarkub.net\/abublog\/?p=725","title":{"rendered":"Midibridge using base64 soundfonts, a proof of concept"},"content":{"rendered":"<p><strong>Deprecated, please use Chris Wilson&#8217;s <a target=\"blank\" href=\"https:\/\/github.com\/cwilso\/WebMIDIAPIShim\">WebMIDIAPI Shim<\/a><\/strong><\/p>\n<p><a href=\"http:\/\/mudcu.be\" title=\"Micheal Deal Mudcube abumarkub\" rel=\"Micheal Deal Mudcube abumarkub\" target=\"blank\">Michael Deal<\/a> made a brilliant <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/ihmigmmflfcbhdpdgbkkeojchjhhphnh\" title=\"Michael Deal Piano Theory in Color\" rel=\"Michael Deal Piano Theory in Color\" target=\"blank\">music theory learning app<\/a> for Google Chrome using base64 soundfonts. In fact he is not really using the soundfonts itself, but rendered .ogg files that are loaded as base64 files into the html5 <audio> element instead. He describes his toolchain for rendering audio files from soundfonts in <a href=\"http:\/\/mudcu.be\/journal\/2011\/11\/base64-soundfonts\/\" title=\"Michael Deal Mudcube Base64 Soundfonts\" rel=\"Michael Deal Mudcube Base64 Soundfonts\" target=\"blank\">this blogpost<\/a>. Inspired by this, i decided to make a very basic sample player with his base64 soundfont file. The file consist of a lookup table with 88 slots containing all chromatic tones of a regular piano at a single velocity. It performs fair in Chrome, but if you play fast notes, the playback starts to stutter. In Firefox however it performs way better, you can play fast notes, big clusters and it still plays back very smoothly and doesn&#8217;t consume a lot of CPU either. It is still far from perfect, but a promising way of low latency sound generation. You can see it in action (only in Chrome or Firefox) overhere: <a href=\"http:\/\/abumarkub.net\/midibridge\/examples\/soundfont.html\" target=\"blank\" title=\"abumarkub midibridge with base64 soundfonts\" rel=\"abumarkub midibridge with base64 soundfonts\">http:\/\/abumarkub.net\/midibridge\/examples\/soundfont.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deprecated, please use Chris Wilson&#8217;s WebMIDIAPI Shim Michael Deal made a brilliant music theory learning app for Google Chrome using base64 soundfonts. In fact he is not really using the soundfonts itself, but rendered .ogg files that are loaded as base64 files into the html5 element instead. He describes his toolchain for rendering audio files [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,8,9],"tags":[],"class_list":["post-725","post","type-post","status-publish","format-standard","hentry","category-java","category-javascript","category-midi"],"_links":{"self":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=725"}],"version-history":[{"count":17,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/725\/revisions"}],"predecessor-version":[{"id":1033,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/725\/revisions\/1033"}],"wp:attachment":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}