{"id":11593,"date":"2020-07-10T09:00:58","date_gmt":"2020-07-10T13:00:58","guid":{"rendered":"https:\/\/blogs.mathworks.com\/pick\/?p=11593"},"modified":"2020-06-24T14:16:06","modified_gmt":"2020-06-24T18:16:06","slug":"deprecating-support-for-edfread-and-edfreaduntildone","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/pick\/2020\/07\/10\/deprecating-support-for-edfread-and-edfreaduntildone\/","title":{"rendered":"Deprecating support for edfread and edfreadUntilDone"},"content":{"rendered":"\r\n\r\n<div class=\"content\"><!--introduction--><p>It feels like forever ago (it was back in 2009) that I wrote and posted to the File Exchange the <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/31900-edfread\"><tt>edfread<\/tt><\/a> function. At the time, I was a mere four years into my stint as a MathWorks application engineer, and I was making a lot of presentations showing users and potential users how to solve problems with the MathWorks suite of tools. In that capacity, I frequently demonstrated full data <i>workflows<\/i> with our tools, from data acquisition through application generation and report publication. We have great <a title=\"https:\/\/www.mathworks.com\/help\/matlab\/import_export\/supported-file-formats.html (link no longer works)\">tools for importing data<\/a> (including the impressive <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/importtool.html\">Import Tool<\/a>), and I often made the point that difficulty getting data into MATLAB should never be the factor that determines whether or not MathWorks tools were right for a particular job or problem.<\/p><p>I don't recall which customer first challenged me with \"What about reading EDF data? The Import Tool can't read it!\" I had never heard of the EDF format, but a quick search led me to a specification document, and I set about writing <tt>edfread<\/tt> (in MATLAB, of course!) to facilitate reading <a href=\"https:\/\/en.wikipedia.org\/wiki\/European_Data_Format#:~:text=European%20Data%20Format%20(EDF)%20is,independent%20of%20the%20acquisition%20system.\">European Data Formatted<\/a> files.<\/p><!--\/introduction--><p>Fast forward 11 years since <tt>edfread<\/tt> has been on the File Exchange. In that time, it has become one of my most frequently downloaded submissions. In that time, I submitted <tt>edfreadUntilDone<\/tt> to accommodate files that exceeded the capacity of the original reader, <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/3208495-sean-de-wolski\">Sean<\/a> featured the file as a <a href=\"https:\/\/blogs.mathworks.com\/pick\/2018\/10\/12\/edf-read\/\">Pick of the Week<\/a> a couple years ago, and I have spent <i>countless<\/i> hours trying to support the function. (My apologies if I wasn't able to get to all support requests!).<\/p><p>Today, I am <b><i>very<\/i><\/b> pleased to announce that support for reading EDF files has been incorporated into the <a href=\"https:\/\/www.mathworks.com\/products\/signal.html\">Signal Processing Toolbox<\/a>! As of the R2020b release (which is in prerelease as of this writing--ready for your evaluation), you will have access to a <i>documented<\/i>, <i>officially supported<\/i> EDF file reader!<\/p><p>(Note that the function <i>still<\/i> doesn't support the <a href=\"https:\/\/www.mathworks.com\/products\/signal.html\">\"Eyelink Data Format\"<\/a>.)<\/p><p>Thanks so much to our wonderful developers who made this happen! I will keep my functions on the File Exchange for the short term, at least, but I am deprecating support for my functions, and will steer users instead to the Signal Processing Toolbox reader. Once everyone has had an opportunity to make the switch to the officially supported version, we will reassess the status of the File Exchange versions and decide their fate in the longer term.<\/p><p>As always, I welcome your <a href=\"http:\/\/blogs.mathworks.com\/pick\/?p=11593#respond\">thoughts and comments<\/a>.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_3fa9751208a9457485b8eb70506fc26b() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='3fa9751208a9457485b8eb70506fc26b ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 3fa9751208a9457485b8eb70506fc26b';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2020 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_3fa9751208a9457485b8eb70506fc26b()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2020a<br><\/p><\/div><!--\r\n3fa9751208a9457485b8eb70506fc26b ##### SOURCE BEGIN #####\r\n%% Deprecating support for <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/31900 edfread> and <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/66088-edfreaduntildone-fname-varargin edfreadUntilDone>\r\n%\r\n% It feels like forever ago (it was back in 2009) that I wrote and posted to the\r\n% File Exchange the\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/31900-edfread |edfread|> function. \r\n% At the time, I was a mere four years into my stint as\r\n% a MathWorks application engineer, and I was making a lot of presentations showing \r\n% users and potential users how to solve problems with the MathWorks suite of tools. \r\n% In that capacity, I frequently demonstrated full data _workflows_ with our tools, from data acquisition\r\n% through application generation and report publication. We have great  \r\n% <https:\/\/www.mathworks.com\/help\/matlab\/import_export\/supported-file-formats.html tools for importing data>\r\n% (including the impressive\r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/importtool.html Import Tool>),\r\n% and I often made the point that difficulty getting data into MATLAB should never be the \r\n% factor that determines whether or not MathWorks tools were right for a particular\r\n% job or problem.\r\n%\r\n% I don't recall which customer first challenged me with \"What about\r\n% reading EDF data? The Import Tool can't read it!\" I had never heard of\r\n% the EDF format, but a quick search led me to a specification document,\r\n% and I set about writing |edfread| (in MATLAB, of course!) to facilitate reading \r\n% <https:\/\/en.wikipedia.org\/wiki\/European_Data_Format#:~:text=European%20Data%20Format%20(EDF)%20is,independent%20of%20the%20acquisition%20system. European Data Formatted>\r\n% files.\r\n%\r\n%% \r\n% Fast forward 11 years since |edfread| has been on the File Exchange. In\r\n% that time, it has become one of my most frequently downloaded\r\n% submissions. In that time, I submitted |edfreadUntilDone| to accommodate\r\n% files that exceeded the capacity of the original reader, \r\n% <https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/3208495-sean-de-wolski Sean> \r\n% featured the file as a \r\n% <https:\/\/blogs.mathworks.com\/pick\/2018\/10\/12\/edf-read\/ Pick of the Week>\r\n% a couple years ago, and I have spent _countless_ hours trying to support the function. (My apologies if I wasn't\r\n% able to get to all support requests!).\r\n\r\n%% \r\n% Today, I am *_very_* pleased to announce that support for reading EDF\r\n% files has been incorporated into the \r\n% <https:\/\/www.mathworks.com\/products\/signal.html Signal Processing Toolbox>!\r\n% As of the R2020b release (which is in prerelease as of this writingREPLACE_WITH_DASH_DASHready for your evaluation), you will have access to a _documented_, _officially\r\n% supported_ EDF file reader!\r\n\r\n%%\r\n% (Note that the function _still_ doesn't support the <https:\/\/www.mathworks.com\/products\/signal.html \"Eyelink Data Format\">.) \r\n\r\n%%\r\n% Thanks so much to our wonderful developers who made this happen! I will\r\n% keep my functions on the File Exchange for the short term, at least, but\r\n% I am deprecating support for my functions, and will steer users instead to the\r\n% Signal Processing Toolbox reader. Once everyone has had an opportunity to make the switch\r\n% to the officially supported version, we will reassess the status of the\r\n% File Exchange versions and decide their fate in the longer term.\r\n\r\n%%\r\n% As always, I welcome your\r\n% <http:\/\/blogs.mathworks.com\/pick\/?p=11593#respond thoughts and comments>.\r\n##### SOURCE END ##### 3fa9751208a9457485b8eb70506fc26b\r\n-->","protected":false},"excerpt":{"rendered":"<p>\r\n\r\nIt feels like forever ago (it was back in 2009) that I wrote and posted to the File Exchange the edfread function. At the time, I was a mere four years into my stint as a MathWorks application... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/pick\/2020\/07\/10\/deprecating-support-for-edfread-and-edfreaduntildone\/\">read more >><\/a><\/p>","protected":false},"author":34,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/11593"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/comments?post=11593"}],"version-history":[{"count":5,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/11593\/revisions"}],"predecessor-version":[{"id":11603,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/11593\/revisions\/11603"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/media?parent=11593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/categories?post=11593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/tags?post=11593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}