{"id":1169,"date":"2010-05-20T23:56:32","date_gmt":"2010-05-20T21:56:32","guid":{"rendered":"http:\/\/web.ist.utl.pt\/~Pedro.Lopes\/blog\/?p=1169"},"modified":"2010-05-20T23:56:32","modified_gmt":"2010-05-20T21:56:32","slug":"recognizing-gestures-by-the-sound-they-make-dtw-and-puredata","status":"publish","type":"post","link":"https:\/\/plopesmusic.org\/?p=1169","title":{"rendered":"Recognizing gestures by the sound they make (DTW and Puredata)"},"content":{"rendered":"<p style=\"margin-bottom:0;page-break-before:always;\"><span style=\"font-family:Calibri;\">This prototype follows the idea of [1] where Harrison uses a microphone to record and recognize a set of defined gestures. In this implementation we follow the same approach by using the Dynamic Time Warp algorithm[2,3] but propose it under a different setting: the PureData programming environment[4].<\/span><\/p>\n<p><span style=\"font-family:Calibri;\">This research for IMMI course at IST will result in a small decoupled system that is able to recognize a set of gestures and send the resulting gesture in a OSC formatted message, to be received in any connected system via network (either locally of remotely) \u2013 thus achieving modularity. For our experiments will be using it to recognized gestures performed by a DJ with his foot to control a DJ setup, can be used for many more applications (such as proposed by Harrison in[1]).<\/span><\/p>\n<p style=\"margin-bottom:0;\"><span style=\"font-family:Calibri;\">Currently there is no implementation of the DTW algorithm for usage in PureData environment, although it has been proposed by <span style=\"font-weight:normal;\">Todoroff and Bettens [5] but still not ported to PureData, our implementation is based on on Andrew Slater and John Coleman&#8217;s DTW[6] but ported to PureData with several needed modifications. The DTW object is still in alpha phase but it is already working and available for public usage here[7], the official release will be published later once the API is fully defined.<\/span><\/span><\/p>\n<div class=\"embed-vimeo\"><div class=\"videoContainer\"><iframe src=\"http:\/\/player.vimeo.com\/video\/11792446\" width=\"500\" height=\"313\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen><\/iframe><\/div><\/div>\n<p><a href=\"http:\/\/vimeo.com\/11792446\">Dynamic Time Warping in PureData (alpha)<\/a> from <a href=\"http:\/\/vimeo.com\/user1353422\">PedroLopes<\/a> on <a href=\"http:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n<p>This shows a possible implementation of a DTW as a pd external &#8211; written in ANSI C. For this demo there are 8 samples that are used as gesture patterns, the algorithm tries to find the best gesture for the sampled input.<\/p>\n<p>Hardware: lo-fi built-in microphone (very bad!)<br \/>\nSoftware: Puredata 0.41 (works with extended too.); Ubuntu 9.10; Jack Audio Server<\/p>\n<p><strong>Work by<\/strong>: Pedro Lopes and Guilherme Fernandes<\/p>\n<p style=\"margin-bottom:0;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\"><strong>References<\/strong><\/span><\/span><\/p>\n<p style=\"margin-bottom:0;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\"><span style=\"font-weight:normal;\">[1] <\/span><\/span><\/span><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">Harrison, Chris and Hudson, Scott E. Scratch Input: Creating Large, Inexpensive, Unpowered and Mobile finger Input Surfaces. In <\/span><\/span><em><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">Proceedings of the 21st Annual ACM Symposium on User interface Software and Technology<\/span><\/span><\/em><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">. UIST &#8217;08. ACM, New York, NY, 205-208. <\/span><\/span><\/p>\n<p style=\"margin-bottom:0;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\"><span style=\"font-weight:normal;\">[2] <\/span>Toward accurate dynamic time wrapping in linear time and space.. S. Salvador and P. Chan. Intelligent Data Analysis, 11(5):561-580, 2007.<\/span><\/span><\/p>\n<p style=\"margin-bottom:0;font-weight:normal;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">[3] FastDTW: Toward Accurate Dynamic Time Warping in Linear Time and Space. S. Salvador &amp; P. Chan. KDD Workshop on Mining Temporal and Sequential Data, pp. 70-80, 2004<\/span><\/span><\/p>\n<p style=\"margin-bottom:0;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\"><span style=\"font-weight:normal;\">[4] <\/span><\/span><\/span><span style=\"font-family:Calibri;\">Puckette, Miller Smith (2007). The Theory and Technique of Electronic Music. World Scientific Press, Singapore. ISBN\u00a0978-9812705419. <\/span><\/p>\n<p style=\"margin-bottom:0;font-weight:normal;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">[5] Todor Todoroff ,  Fr\u00e9\u0301d\u00e9ric Bettens, REAL-TIME DTW-BASED GESTURE RECOGNITION EXTERNAL OBJECT FOR MAX\/MSP AND PUREDATA , Sound Music Computing 2009, Oporto. Faculty of Engineering (FPMs) &#8211; TCTS Lab <\/span><\/span><\/p>\n<p style=\"margin-bottom:0;font-weight:normal;\"><span style=\"font-family:Bitstream Charter,serif;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">[6] Andrew Slater and John Coleman&#8217;s DTW: &#8211;<a href=\"http:\/\/www.phon.ox.ac.uk\/files\/slp\/Extras\/dtw.html\">http:\/\/www.phon.ox.ac.uk\/files\/slp\/Extras\/dtw.html<\/a><\/span><\/span><\/span><\/p>\n<p style=\"margin-bottom:0;font-weight:normal;\"><span style=\"font-family:Calibri;\"><span style=\"font-size:small;\">[7] Github Repository for Pedro Lopes<a href=\"http:\/\/github.com\/PedroLopes\/PD-externals\"> http:\/\/github.com\/PedroLopes\/PD-externals<\/a> <\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This prototype follows the idea of [1] where Harrison uses a microphone to record and recognize a set of defined gestures. In this implementation we follow the same approach by using the Dynamic Time Warp algorithm[2,3] but propose it under a different setting: the PureData programming environment[4]. This research for IMMI course at IST will [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[47,51,62,206,202,143,147,8],"_links":{"self":[{"href":"https:\/\/plopesmusic.org\/index.php?rest_route=\/wp\/v2\/posts\/1169"}],"collection":[{"href":"https:\/\/plopesmusic.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/plopesmusic.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/plopesmusic.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/plopesmusic.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1169"}],"version-history":[{"count":0,"href":"https:\/\/plopesmusic.org\/index.php?rest_route=\/wp\/v2\/posts\/1169\/revisions"}],"wp:attachment":[{"href":"https:\/\/plopesmusic.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/plopesmusic.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/plopesmusic.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}