{"id":171,"date":"2019-03-27T16:02:59","date_gmt":"2019-03-27T16:02:59","guid":{"rendered":"http:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/?p=171"},"modified":"2019-04-23T14:48:56","modified_gmt":"2019-04-23T14:48:56","slug":"171","status":"publish","type":"post","link":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/2019\/03\/27\/171\/","title":{"rendered":""},"content":{"rendered":"\n<p>Week 10<\/p>\n\n\n\n<p style=\"font-size:15px\">This week I plan to implement a feature across the whole project where information about the unprocessed DSTFT matrix (file name, number of frames, frame size, spectral frame size and hop size) is saved as a text file, and read whenever a spectral effect is opened.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"873\" src=\"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-5-1024x873.png\" alt=\"\" class=\"wp-image-172\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-5-1024x873.png 1024w, https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-5-300x256.png 300w, https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-5-768x654.png 768w, https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-5.png 1379w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>&#8216;text_file_read&#8217; abstraction<\/figcaption><\/figure>\n\n\n\n<p style=\"font-size:15px\">The beginning of this week has been focused on refining the playback abstractions. I have integrated Tadej Droljc\u2019s poking \u2018holes\u2019 with &#8216;jit.nosie&#8217; abstraction into my &#8216;frame_interpolation_playback&#8217; abstraction. I have also drawn inspiration from Jean Francois Charles\u2019 <a href=\"https:\/\/doi.org\/10.1162\/comj.2008.32.3.87\">description<\/a> of transient-based playback speed alteration in his article and designed my own transient playback abstraction. I decided not to investigate Francois-Charles freeze frame playback abstractions as it would not highlight the audio processing techniques in my project. Over the last few days I have experienced some issues in playback speed management given user-specified stationary and transient rate. I fixed this by using &#8216;send~&#8217; and &#8216;receive~&#8217; objects to send the updated frame number sync into the &#8216;jit.peek~&#8217; reading the 1d_transients matrix inside the &#8216;transient_playback&#8217; abstraction.<br><\/p>\n\n\n\n<p style=\"font-size:15px\">I have implemented the blur_water global transformation, inspired by Tadej Droljc\u2019s abstraction \u2018Blur Water Effect\u2019. I have created the &#8216;line_alphablend&#8217; abstraction from &#8216;circlepoint_&amp;_line_alphablend\u2019 to just display the line, as a circle click point in this context is useless because the information in the &#8216;jit.window&#8217; is distorted so much by the blur water effect.<\/p>\n\n\n\n<p style=\"font-size:15px\">I have also decided that with the spectral_smear abstraction, I would not give the user the option to align the playback head with the smeared region, as the difference between normal data and smeared data would not be highlighted.<\/p>\n\n\n\n<p style=\"font-size:15px\">In building the &#8216;time_scrambler&#8217; abstraction, I added 256 y-axes into the scrambled matrix that would reposition the matrix \u2018noise_fractal_unprocessed\u2019, rather than 128 (which Tadej Droljc did), as I wanted greater accuracy when the frequency bins would be upscaled when passed into the &#8216;jit.repos&#8217; object. I knew this would come at the cost of computer memory, but since making the decision to compartmentalise the project in such a modular fashion CPU power has been less of an issue.<\/p>\n\n\n\n<p style=\"font-size:15px\">However, I have since realised this won\u2019t work, as 257 is longer than Max\u2019s max list length (256), meaning that a completed list of 257 was not being passed in completion to the right hand-side &#8216;jit.fill&#8217; in time_scramble_process \u2013 I have resorted to 129.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"856\" height=\"780\" src=\"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-6.png\" alt=\"\" class=\"wp-image-179\" srcset=\"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-6.png 856w, https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-6-300x273.png 300w, https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/files\/2019\/04\/image-6-768x700.png 768w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><figcaption>The randomly scrambled matrix which repositions the unprocessed DSTFT matrix &#8216;noise_fractal_unprocessed&#8217; in &#8216;time_scrambler_process&#8217;<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Week 10 This week I plan to implement a feature across the whole project where information about the unprocessed DSTFT matrix (file name, number of frames, frame size, spectral frame size and hop size) is saved as a text file, and read whenever a spectral effect is opened. The beginning of this week has been [&hellip;]<\/p>\n","protected":false},"author":225,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/posts\/171"}],"collection":[{"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/users\/225"}],"replies":[{"embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":33,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/posts\/171\/revisions"}],"predecessor-version":[{"id":390,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/posts\/171\/revisions\/390"}],"wp:attachment":[{"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/media?parent=171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/categories?post=171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digital.eca.ed.ac.uk\/spectral-manipulation\/wp-json\/wp\/v2\/tags?post=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}