{"id":1978,"date":"2022-01-16T17:43:36","date_gmt":"2022-01-16T17:43:36","guid":{"rendered":"https:\/\/dreid.nl\/?p=1978"},"modified":"2022-01-16T17:43:36","modified_gmt":"2022-01-16T17:43:36","slug":"sharp-looper-a-c-program-for-slowing-down-and-looping-music","status":"publish","type":"post","link":"https:\/\/dreid.nl\/?p=1978","title":{"rendered":"Sharp Looper, a C# program for slowing down and looping music"},"content":{"rendered":"<p>One of my hobbies is playing the guitar. When learning new songs, especially solos, it is very useful when you can slow down playback and repeatedly loop certain parts of a song. YouTube can slow down playback, but has no looping feature. There are commercial programs available that can do this, but they cost money. In the past I have used a program BestPractice, but I could not get it to work on Windows 10. Hence I decided to write my own, which was relatively easy to do as the whole playback is handled by the Windows MediaPlayer library. You can download the program and the source coder <a href=\"https:\/\/github.com\/tfwittwer\/SharpLooper\" target=\"_blank\" rel=\"noopener\">over on GitHub<\/a>.<\/p>\n<p>I&#8217;m usually (in)famous for writing programs that do everything on the GUI thread, hence blocking it when doing stuff in the background. This did not work here, so I had to invoke a separate thread for playback, and deal with communication between the GUI thread and the playback thread. As such, you might find looking at the code useful even if you&#8217;re not interested in the functionality of this program.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of my hobbies is playing the guitar. When learning new songs, especially solos, it is very useful when you can slow down playback and repeatedly loop certain parts of a song. YouTube can slow down playback, but has no looping feature. There are commercial programs available that can do this, but they cost money. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1937,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[103],"class_list":{"0":"post-1978","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-blog","8":"tag-c","9":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sharp Looper, a C# program for slowing down and looping music - DreiD BV<\/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:\/\/dreid.nl\/?p=1978\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sharp Looper, a C# program for slowing down and looping music - DreiD BV\" \/>\n<meta property=\"og:description\" content=\"One of my hobbies is playing the guitar. When learning new songs, especially solos, it is very useful when you can slow down playback and repeatedly loop certain parts of a song. YouTube can slow down playback, but has no looping feature. There are commercial programs available that can do this, but they cost money. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dreid.nl\/?p=1978\" \/>\n<meta property=\"og:site_name\" content=\"DreiD BV\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreiDBV\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-16T17:43:36+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png\" \/>\n\t<meta property=\"og:image:width\" content=\"267\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tobias\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tobias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Verwachte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978\"},\"author\":{\"name\":\"Tobias\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/person\\\/724765ca445bdd176b5dfa6f0f432741\"},\"headline\":\"Sharp Looper, a C# program for slowing down and looping music\",\"datePublished\":\"2022-01-16T17:43:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978\"},\"wordCount\":194,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png\",\"keywords\":[\"C#\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/dreid.nl\\\/?p=1978#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978\",\"url\":\"https:\\\/\\\/dreid.nl\\\/?p=1978\",\"name\":\"Sharp Looper, a C# program for slowing down and looping music - DreiD BV\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png\",\"datePublished\":\"2022-01-16T17:43:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dreid.nl\\\/?p=1978\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#primaryimage\",\"url\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png\",\"contentUrl\":\"https:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png\",\"width\":267,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/?p=1978#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dreid.nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sharp Looper, a C# program for slowing down and looping music\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#website\",\"url\":\"https:\\\/\\\/dreid.nl\\\/\",\"name\":\"DreiD BV\",\"description\":\"3D printen en meer\",\"publisher\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dreid.nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#organization\",\"name\":\"DreiD B.V.\",\"url\":\"https:\\\/\\\/dreid.nl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/cropped-logo-vierkant.png\",\"contentUrl\":\"http:\\\/\\\/dreid.nl\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/cropped-logo-vierkant.png\",\"width\":512,\"height\":512,\"caption\":\"DreiD B.V.\"},\"image\":{\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/DreiDBV\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dreid.nl\\\/#\\\/schema\\\/person\\\/724765ca445bdd176b5dfa6f0f432741\",\"name\":\"Tobias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g\",\"caption\":\"Tobias\"},\"url\":\"https:\\\/\\\/dreid.nl\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sharp Looper, a C# program for slowing down and looping music - DreiD BV","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:\/\/dreid.nl\/?p=1978","og_locale":"nl_NL","og_type":"article","og_title":"Sharp Looper, a C# program for slowing down and looping music - DreiD BV","og_description":"One of my hobbies is playing the guitar. When learning new songs, especially solos, it is very useful when you can slow down playback and repeatedly loop certain parts of a song. YouTube can slow down playback, but has no looping feature. There are commercial programs available that can do this, but they cost money. [&hellip;]","og_url":"https:\/\/dreid.nl\/?p=1978","og_site_name":"DreiD BV","article_publisher":"https:\/\/www.facebook.com\/DreiDBV","article_published_time":"2022-01-16T17:43:36+00:00","og_image":[{"width":267,"height":300,"url":"http:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png","type":"image\/png"}],"author":"Tobias","twitter_card":"summary_large_image","twitter_misc":{"Geschreven door":"Tobias","Verwachte leestijd":"1 minuut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dreid.nl\/?p=1978#article","isPartOf":{"@id":"https:\/\/dreid.nl\/?p=1978"},"author":{"name":"Tobias","@id":"https:\/\/dreid.nl\/#\/schema\/person\/724765ca445bdd176b5dfa6f0f432741"},"headline":"Sharp Looper, a C# program for slowing down and looping music","datePublished":"2022-01-16T17:43:36+00:00","mainEntityOfPage":{"@id":"https:\/\/dreid.nl\/?p=1978"},"wordCount":194,"commentCount":0,"publisher":{"@id":"https:\/\/dreid.nl\/#organization"},"image":{"@id":"https:\/\/dreid.nl\/?p=1978#primaryimage"},"thumbnailUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png","keywords":["C#"],"articleSection":["Blog"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dreid.nl\/?p=1978#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dreid.nl\/?p=1978","url":"https:\/\/dreid.nl\/?p=1978","name":"Sharp Looper, a C# program for slowing down and looping music - DreiD BV","isPartOf":{"@id":"https:\/\/dreid.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dreid.nl\/?p=1978#primaryimage"},"image":{"@id":"https:\/\/dreid.nl\/?p=1978#primaryimage"},"thumbnailUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png","datePublished":"2022-01-16T17:43:36+00:00","breadcrumb":{"@id":"https:\/\/dreid.nl\/?p=1978#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dreid.nl\/?p=1978"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/dreid.nl\/?p=1978#primaryimage","url":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png","contentUrl":"https:\/\/dreid.nl\/wp-content\/uploads\/2022\/01\/c-sharp-c-logo-02F17714BA-seeklogo.com_.png","width":267,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/dreid.nl\/?p=1978#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dreid.nl\/"},{"@type":"ListItem","position":2,"name":"Sharp Looper, a C# program for slowing down and looping music"}]},{"@type":"WebSite","@id":"https:\/\/dreid.nl\/#website","url":"https:\/\/dreid.nl\/","name":"DreiD BV","description":"3D printen en meer","publisher":{"@id":"https:\/\/dreid.nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dreid.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/dreid.nl\/#organization","name":"DreiD B.V.","url":"https:\/\/dreid.nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/dreid.nl\/#\/schema\/logo\/image\/","url":"http:\/\/dreid.nl\/wp-content\/uploads\/2017\/11\/cropped-logo-vierkant.png","contentUrl":"http:\/\/dreid.nl\/wp-content\/uploads\/2017\/11\/cropped-logo-vierkant.png","width":512,"height":512,"caption":"DreiD B.V."},"image":{"@id":"https:\/\/dreid.nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreiDBV"]},{"@type":"Person","@id":"https:\/\/dreid.nl\/#\/schema\/person\/724765ca445bdd176b5dfa6f0f432741","name":"Tobias","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/da384b41c29915cbc57151669bfd69215048a0d4cebed631ab35a6f893826870?s=96&d=mm&r=g","caption":"Tobias"},"url":"https:\/\/dreid.nl\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/1978","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1978"}],"version-history":[{"count":1,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/1978\/revisions"}],"predecessor-version":[{"id":1979,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/posts\/1978\/revisions\/1979"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=\/wp\/v2\/media\/1937"}],"wp:attachment":[{"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dreid.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}