{"id":373554,"date":"2024-05-21T05:38:56","date_gmt":"2024-05-21T05:38:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=373554"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=373554","title":{"rendered":"<span>\u00ab\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439\u00bb \u0430\u0443\u0434\u0438\u043e\u043a\u043e\u0434\u0435\u043a \u0434\u043b\u044f Sega MD<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/807513\/\"> <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/og\/nk\/os\/ognkosjwsntokgmvl23bbgmvrpo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/og\/nk\/os\/ognkosjwsntokgmvl23bbgmvrpo.jpeg\" data-blurred=\"true\"\/><\/div>\n<p><\/a><br \/>  \u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0432\u043e\u0434\u0430, \u0431\u043b\u0430-\u0431\u043b\u0430-\u0431\u043b\u0430. \u0418\u0441\u043a\u0440\u043e\u0439 \u0434\u043b\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u043a\u0442: \u0426\u0410\u041f \u043c\u0435\u0433\u0430\u0434\u0440\u0430\u0439\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0432\u0443\u043a \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c 26 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446 8 \u0431\u0438\u0442. \u0427\u0442\u043e? \u0425\u043e\u0447\u0443 \u0442\u0430\u043a\u043e\u0435! \u041d\u043e\u2026 \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0430 4 \u041c\u0431, \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 \u043d\u0430 2.5 \u043c\u0438\u043d\u0443\u0442\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430, \u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u041d\u0435\u0440\u0435\u0448\u0430\u0435\u043c\u043e\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0442\u043e \u0432\u0441\u0451 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430, \u0432\u043e\u0442 \u0435\u0433\u043e \u043a\u043e\u0434 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0434\u043b\u044f Motorolla 68000:<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u0435\u043a\u043e\u0434\u0435\u0440 22 \u043a\u0413\u0446 8 \u0431\u0438\u0442, \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">;d6 - Loops ;d5 - read_bytes_counter ;d3 - Window Length ;d0 - temp  move.B  #$01, ($A11100)         ; Request Z80 bus move.B  #$2B, ($A04000)         ; Will switch DAC move.B  #$80, ($A04001)         ; DAC On move.B  #$2A, ($A04000)         ; Will DAC Out @Next_Block move.B  (a6)+, d3               ; Read Wl beq.S   @Break                  ; If Wl = 0: Exit move.B  (a6)+, d6               ; Read Loops @Repeat_Loop move.B  d3, d5                  ; read_bytes_counter = Wl @Next_Byte move.B  (a6)+,($A04001)         ; Read DAC_byte &amp; Play  moveq   #30, d0                 ; Prepare pause counter @Pausedbf     d0, @Pause              ; 22 kHz delay Subq.B  #1, d5                  ; Read_bytes_counter - 1 bne.S   @Next_Byte              ; If read_bytes_counter &lt; Wl: Next_Byte @Loop_Done Subq.B  #1, d6                  ; Loops - 1 beq.S   @Next_Block             ; If Loops = 0: Next_Block suba.W  d3, a6                  ; Reset datapointer bra.S   @Repeat_Loop @Break <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import numpy as np from scipy.io.wavfile import write  f_name = r'C:\\compressed_file.til'  wav_file = np.array([]) with open(f_name, 'rb') as file:     while True:         Wl = ord( file.read(1) )         if Wl == 0:             break         loops = ord( file.read(1) )         dac_block = np.frombuffer(file.read(Wl), dtype='uint8').astype('int')         dac_block = (dac_block - 127) \/ 127         restored = np.tile(dac_block, loops)         wav_file = np.append(wav_file, restored) write(r'C:\\output.wav', 22050, wav_file) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0442: \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043b\u043e\u043a\u0438. \u0422\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043b\u0438\u0448\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f. \u0418\u0434\u0435\u044f \u043a\u043e\u0434\u0435\u043a\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430: \u0438\u0449\u0435\u043c \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0443\u0441\u0440\u0435\u0434\u043d\u0451\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437\u0435\u0446, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u043d \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a.<\/p>\n<p>  \u0417\u0432\u0443\u0447\u0438\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u043a \u00ab\u0433\u0440\u0430\u0431\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0432\u0430\u043d\u044b\u00bb, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u043e \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043e\u043a. \u0410 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043d\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u00ab\u0432 \u043b\u043e\u0431\u00bb, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043c\u0430\u043b\u043e\u0440\u0435\u0430\u043b\u044c\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0432 \u0448\u0438\u0440\u043e\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0432\u0435\u0434\u0451\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041a\u043e\u0434\u0435\u043a \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u043b\u0438\u0444\u043e\u043d\u0438\u0435\u0439, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433: \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0417\u043d\u0430\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439, \u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u0444\u043e\u0440\u043c\u0443 \u0432\u043e\u043b\u043d\u044b.<\/p>\n<p>  \u0420\u0430\u0437 \u043f\u043e\u043b\u0438\u0444\u043e\u043d\u0438\u0438 \u043d\u0435\u0442, \u0442\u043e \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u043a\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e? \u041e\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0436\u0430\u043d\u0440\u043e\u0432 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0443 \u043e\u0442\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0432\u0435 \u043f\u0440\u043e\u043f\u0430\u0441\u0442\u0438: \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0433\u0438\u0442\u0430\u0440 \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u043e\u043a\u0430\u043b\u0430. \u0421 \u0433\u0438\u0442\u0430\u0440\u0430\u043c\u0438 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437, \u0430 \u0432\u043e\u043a\u0430\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f \u2014 \u044d\u0442\u043e \u043c\u043e\u043d\u043e\u0444\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0432\u0443\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0436\u0430\u0442\u044c \u043d\u0430\u0448\u0438\u043c \u043a\u043e\u0434\u0435\u043a\u043e\u043c. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0432 \u0438\u0433\u0440\u0430\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u043e\u043d\u043e\u0444\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438. \u0422\u0430\u043a \u0447\u0442\u043e, \u043a\u043e\u0434\u0435\u043a \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0433\u043e\u043b\u043e\u0441 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0435\u043a\u0430 \u2014 \u044d\u0442\u043e \u0443\u0436\u0435 \u0431\u043e\u043d\u0443\u0441\u044b.<\/p>\n<p>  \u041a\u0430\u043a\u0443\u044e \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0446\u0435\u043b\u0438? \u0415\u0441\u043b\u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430 \u0434\u043e 11 \u043a\u0413\u0446 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0434\u043e 4 \u0431\u0438\u0442, \u0442\u043e \u043c\u044b \u043a\u0430\u043a \u0431\u044b \u0441\u043e\u0436\u043c\u0451\u043c \u0437\u0432\u0443\u043a \u0432 4 \u0440\u0430\u0437\u0430, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u043d\u043a\u043e\u0439 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0443\u0441\u043f\u0435\u0445\u0430.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0427\u0430\u0441\u0442\u044c 1<\/font><\/h2>\n<p>  \u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u043a\u043e\u0434\u0435\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"https:\/\/librosa.org\/doc\/latest\/install.html\">librosa<\/a>.<\/p>\n<p>  \u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u0434\u0443 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438:<\/p>\n<p>  1. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c WAV \u0444\u0430\u0439\u043b.<br \/>  2. \u0421\u0442\u0435\u0440\u0435\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0432 \u043c\u043e\u043d\u043e.<br \/>  3. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 22050 \u0413\u0446. \u0427\u0438\u043f \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 53 \u043a\u0413\u0446, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0426\u0410\u041f 26 \u043a\u0413\u0446, \u043d\u043e \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 22 \u043a\u0413\u0446, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0437 44 \u0432 22 \u0434\u0430\u0451\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0439, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 librosa \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 44, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0435\u0439.<br \/>  4. Nframe \u2014 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u0434\u0435\u043a\u0430, \u0434\u043b\u0438\u043d\u0430 \u0441\u0436\u0438\u043c\u0430\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u0427\u0435\u043c \u043e\u043d \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0436\u0430\u0442\u0438\u044f. \u0420\u0430\u0437\u043c\u0435\u0440 \u0435\u0433\u043e \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0434\u0432\u0443\u0445 \u0432\u0435\u043b\u0438\u0447\u0438\u043d: \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0432\u0443\u043a\u0430 \u043c\u043e\u0437\u0433\u043e\u043c \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 PAL. \u0415\u0441\u043b\u0438 \u0440\u0435\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a \u0438\u0437 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043b\u0438\u043d\u043d\u0435\u0435 \u0447\u0435\u043c 20 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u043e\u043c\u0444\u043e\u0440\u0442. \u041f\u0440\u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u044d\u043a\u0440\u0430\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e 20 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0437\u0432\u0443\u043a\u0430.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import math from time import time import librosa import numpy as np from numpy.fft import fft, rfft from scipy.interpolate import interp1d from scipy.ndimage import gaussian_filter1d  input_file = r\"C:\\input.wav\"  FFS = 22050 Tframe = 1\/50  waveform, sample_rate = librosa.load(input_file, sr=None, mono=True) waveform = librosa.to_mono(waveform) waveform = librosa.resample(waveform, orig_sr=sample_rate, target_sr=FFS)  print(f'{sample_rate} Hz converted to {FFS}, {waveform.shape[0]} points, {waveform.shape[0]\/FFS:.2f} sec')  Nframe = round(Tframe*FFS) Total_blocks = round(waveform.shape[0]\/Nframe) print(f'Points per block: {Nframe}, number of blocks: {waveform.shape[0]\/Nframe:.2f}') <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  1. \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430. \u0414\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u0440\u0435\u0432\u043d\u0438\u0439, \u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 yin. \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u043b\u0438\u0432\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u0432 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 pyin. \u0415\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438, \u043d\u043e \u043c\u043e\u0439 \u043d\u0435\u0442\u0431\u0443\u043a \u0438\u0437 2009 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430. \u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0445\u043e\u0442\u044f \u0445\u0432\u0430\u043b\u0438\u043b\u0438\u0441\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c\u0438. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0435\u043a\u0430.<\/p>\n<p>  2. \u0417\u043d\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0448\u0443\u043c\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u0437\u0432\u0443\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u0440\u0435\u0447\u0438 \u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u042d\u0442\u0438 \u043f\u0440\u0438\u0437\u0432\u0443\u043a\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u0441 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0447\u0442\u043e: \u043f\u0440\u0438\u0437\u0432\u0443\u043a\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0443\u043c, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0442\u0438\u0448\u0438\u043d\u0430. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u0438\u0437\u0432\u0443\u043a\u0430\u0445, \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0435\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 \u0410\u0427\u0425, \u0435\u0441\u043b\u0438 \u0410\u0427\u0425 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e, \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0437\u0432\u0443\u043a. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u00ab\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438\u00bb, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043a\u043e\u0434 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u043b\u0441\u044f \u0432 \u0433\u0443\u0433\u043b\u0435.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0418\u0449\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u043e\u043d<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">Wl_s = [] no_voice = [] ref = None sample_deficit = 0 file_bin = {'Blocks':[]} max_ampl = 0  f0 = np.array([])  #f0 = librosa.yin(waveform, frame_length=Nframe*4, fmin=librosa.note_to_hz('C2'),fmax=librosa.note_to_hz('C7')) f0, _, _ = librosa.pyin(waveform,sr=FFS,frame_length=Nframe*4,fmin=librosa.note_to_hz('C2'),fmax=librosa.note_to_hz('C7')) f0 = np.nan_to_num(f0)  def eac(sig, winsize=512, rate=44100):     \"\"\"Return the dominant frequency in a signal.\"\"\"     s = np.reshape(sig[:len(sig)\/\/winsize*winsize], (-1, winsize))     s = np.multiply(s, np.hanning(winsize))     f = fft(s)     p = (f.real**2 + f.imag**2)**(1\/3)     f = rfft(p).real     q = f.sum(0)\/s.shape[1]     q[q &lt; 0] = 0      intpf = interp1d(np.arange(winsize\/\/2), q[:winsize\/\/2])     intp = intpf(np.linspace(0, winsize\/\/2-1, winsize))     qs = q[:winsize\/\/2] - intp[:winsize\/\/2]     qs[qs &lt; 0] = 0     qs[:63] = 0 # DAC max 22 kHz = 64*22050\/64     return rate\/qs.argmax()  for i in range(Total_blocks):     no_voice_flag = 0     if f0[i] == 0 or f0[i] == np.inf:         wave_slice = waveform[i * Nframe: (i + 1) * Nframe]         flatness = librosa.feature.spectral_flatness(y=wave_slice)         if flatness &lt; 0.5:             f0[i] = eac(wave_slice, winsize = Nframe, rate = FFS)             if f0[i] == 0 or f0[i] == np.inf:                 no_voice_flag = 1         else:             no_voice_flag = 1      no_voice.append(no_voice_flag)     Wl_s.append(0) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0441\u0436\u0430\u0442\u0438\u044e:<\/p>\n<p>  1. \u0417\u043d\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u043e\u043d \u0431\u043b\u043e\u043a\u0430, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0442\u043e\u043d\u0430. \u042d\u0442\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u0438\u043c\u0435\u043d\u0435\u043c Wl \u2014 window length.<\/p>\n<p>  2. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0435\u043b\u044b\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0442\u043e\u043d\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0431\u043b\u043e\u043a\u0435, \u0434\u0435\u043b\u0438\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 ss_2d, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u044b.<\/p>\n<p>  3. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0443\u044e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0435\u0451 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 high_2d \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0448\u0443\u043c\u043e\u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  4. \u041d\u0430\u0448\u0435\u0439 \u0446\u0435\u043b\u044c\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0443\u0441\u0440\u0435\u0434\u043d\u0451\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u044b ss_2d \u0438 high_2d. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0444\u0430\u0437\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 0, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0432\u043e\u043b\u043d\u044b \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c Nframe, \u043d\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0431\u043b\u043e\u043a\u0430 \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u044b Wl. \u041f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0443 true_tone \u0438 \u0441\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0441\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u044d\u0442\u0430\u043b\u043e\u043d\u0443.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zn\/wp\/wa\/znwpwaay5j5z1-m5pkxyr3c9kto.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zn\/wp\/wa\/znwpwaay5j5z1-m5pkxyr3c9kto.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0434\u043b\u0438\u043d\u043e\u0439 Nframe<\/font><\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/8l\/rg\/hr\/8lrghrrnf9m386cyackxk9ob9iy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/8l\/rg\/hr\/8lrghrrnf9m386cyackxk9ob9iy.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0411\u043b\u043e\u043a, \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0434\u043b\u0438\u043d\u043e\u0439 Wl \u0431\u0435\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/font><\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hp\/ds\/bv\/hpdsbvffezpydgrmonlkurjrgnu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hp\/ds\/bv\/hpdsbvffezpydgrmonlkurjrgnu.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0411\u043b\u043e\u043a, \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0434\u043b\u0438\u043d\u043e\u0439 Wl \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c<\/font><\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/_w\/fo\/z_\/_wfoz_i8ergfrvpismnx1nttmy0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/_w\/fo\/z_\/_wfoz_i8ergfrvpismnx1nttmy0.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u0437 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0435\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/font><\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/fz\/7d\/e4\/fz7de4wkuxdbwgb9kd2k1fxbucw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/fz\/7d\/e4\/fz7de4wkuxdbwgb9kd2k1fxbucw.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u0437 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c<\/font><\/i><\/p>\n<p>  5. \u0423\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u043a\u0430\u043a \u0438 \u043f\u043e\u0438\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043e\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u0443\u044e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0436\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0435\u043a\u0430. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u043f\u043e\u043b\u043d\u043e\u0433\u043e Wl*n_p \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u043e\u0439, \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u0430\u044e\u0449\u0435\u0439 \u0441\u0431\u043e\u0438. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0438\u0449\u0435\u043c \u0441\u0434\u0432\u0438\u0433 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043f\u043e\u043b\u0443\u0432\u043e\u043b\u043d\u044b, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0438\u0441\u043a \u0443\u0441\u0440\u0435\u0434\u043d\u0451\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 \u0431\u043b\u043e\u043a\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">#Time * Frequency = Oscillations Wl_s[i] = int(FFS \/ f0[i]) # number of points for main tone if Wl_s[i] > 255:     Wl_s[i] = 255  n_p = Nframe \/\/ Wl_s[i] ss = wave_slice[:n_p * Wl_s[i]] ss_2d = np.resize(ss, (n_p, Wl_s[i]))  high = ss - np.roll(ss, -1) high_2d = np.resize(high, (n_p, Wl_s[i]))  if np.sum(ss[:Wl_s[i] \/\/ 4]) >= 0:     phi = -np.pi\/2 else:     phi = np.pi\/2 true_tone = librosa.tone(f0[i], sr = FFS, length = Wl_s[i], phi = phi) true_tone = true_tone * np.max(np.abs(ss_2d[n_p \/\/ 2]))  dist_opt = np.inf iopt = 0 for x in range(-Wl_s[i]\/\/8, Wl_s[i]\/\/2):     tmp_ = np.roll(ss_2d[0], x)     dist = np.linalg.norm(tmp_ - true_tone)     if dist &lt; dist_opt:         iopt = x         dist_opt = dist  iopt_prev = iopt ss_2d[0] = np.roll(ss_2d[0], iopt) high_2d[0] = np.roll(high_2d[0], iopt) dist_opt = np.inf iopt = 0  for j in range(1, n_p):     dist_opt = np.inf     for x in range(-Wl_s[i]\/\/8, Wl_s[i]\/\/4):         tmp_ = np.roll(ss_2d[j], x + iopt_prev)         dist = np.linalg.norm(tmp_ - true_tone)         if dist &lt; dist_opt:             iopt = x + iopt_prev             dist_opt = dist         dist = np.linalg.norm(tmp_ - ss_2d[0])         if dist &lt; dist_opt:             iopt = x + iopt_prev             dist_opt = dist     iopt_prev = iopt     ss_2d[j] = np.roll(ss_2d[j], iopt)     high_2d[j]= np.roll(high_2d[j], iopt)  avg = np.mean(ss_2d, axis=0) high_part = np.mean(high_2d, axis=0) avg = high_part + avg <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u043b\u043e\u0434\u0446\u044b, \u043d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c, \u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u0440\u0430\u0434\u043e\u0441\u0442\u0438 \u043d\u0430\u0441 \u043f\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0449\u0435\u043b\u0447\u043a\u043e\u0432 \u0438 \u0431\u0443\u043b\u044c\u043a\u0430\u043d\u044c\u044f. \u0429\u0435\u043b\u0447\u043a\u0438 \u2014 \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0435\u0437\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u043e\u0432 \u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u043e\u0432. \u0412\u0442\u043e\u0440\u043e\u0435 \u2014 \u044d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u0438\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0439 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0444\u0430\u0437 \u0431\u043b\u043e\u043a\u043e\u0432. \u041f\u0435\u0440\u0438\u043e\u0434, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 \u0431\u043b\u043e\u043a\u0430, \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u0444\u0430\u0437\u0443 0, \u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0431\u043b\u043e\u043a\u0435 \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0435 \u0431\u0443\u043b\u044c\u043a\u0430\u043d\u044c\u0435. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0421 \u0431\u0438\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043c\u0441\u044f \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e, \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0444\u0430\u0437 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0444\u0430\u0437\u044b \u0432\u043e\u043b\u043d\u044b. \u0424\u043e\u0440\u043c\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0432 \u0444\u043e\u0440\u043c\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e. \u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0442.<\/p>\n<p>  \u0421 \u0449\u0435\u043b\u0447\u043a\u0430\u043c\u0438 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0440\u0430\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b\u0438 \u0433\u043b\u0430\u0434\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 \u0438 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0431\u043b\u043e\u043a\u043e\u043c \u0438 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438. \u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0442\u0440\u043e\u0435\u0447\u043a\u0443, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u0441\u0442\u044b\u043a\u0443\u0435\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0432\u043e\u043b\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043f\u043e\u043b\u0443\u0432\u043e\u043b\u043d\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438 \u0438 \u043f\u043e\u0434\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u043c \u0441 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u043c \u043a \u043a\u0440\u0430\u044f\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0431\u044b\u043b\u0430 \u0431\u044b \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438, \u0430 \u043f\u043e\u0442\u043e\u043c \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0446\u043e\u043c \u0431\u043b\u043e\u043a\u0430 \u0438 \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u043c.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0444\u043e\u0440\u043c\u0443 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">if type(ref) != type(None):     dist_opt = np.inf     iopt = 0      len_avg = len(avg)     len_ref = len(ref)      if len_ref &lt; len_avg:         k = math.ceil(len_avg\/len_ref)         ref = np.tile(ref, k)     ref = ref[-len_avg:]      for x in range(Wl_s[i]):         tmp_avg = np.roll(avg, x)         dist = np.linalg.norm(tmp_avg-ref)         if dist &lt; dist_opt:             iopt = x             dist_opt = dist     avg = np.roll(avg, iopt)  filt_depth = 3 if type(ref) != type(None):     min_wl = min(len(ref), len(avg))     ref_avg = np.concatenate((ref[-min_wl \/\/ 2:], avg[:min_wl \/\/ 2]))     avg_blurred_plus_end = gaussian_filter1d(ref_avg, filt_depth)     avg_blur = np.roll(avg_blurred_plus_end, -min_wl \/\/ 2)     f_len = min_wl \/\/ 4 else:     f_len = Wl_s[i] \/\/ 4     avg_halfrolled= np.roll(avg, Wl_s[i]\/\/2)     avg_halfrolled_blur = gaussian_filter1d(avg_halfrolled, filt_depth, mode='wrap')     avg_blur = np.roll(avg_halfrolled_blur, -Wl_s[i]\/\/2)  fade_in_curve = np.linspace(0.0, 1.0, f_len) fade_out_curve = np.linspace(0.0, 1.0, f_len)[::-1]  avg[:f_len] = avg[:f_len] * fade_in_curve + avg_blur[:f_len] * fade_out_curve avg[-f_len:] = avg[-f_len:] * fade_out_curve + avg_blur[-f_len:] *fade_in_curve  ref = avg <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0441\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a:<\/p>\n<p>  1. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0438\u0437 \u0442\u0438\u0448\u0438\u043d\u044b, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a, \u0442\u043e \u0432 \u0431\u043b\u043e\u043a \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0434\u0432\u0430 \u043d\u0443\u043b\u044f, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f 220 \u0440\u0430\u0437 (\u0434\u043b\u0438\u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 = 441). \u0422\u0438\u0448\u0438\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u0441 \u0432\u043e\u043a\u0430\u043b\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0431\u0430\u0439\u0442 [2, 220, 0, 0] \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u043d\u043e \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430.<\/p>\n<p>  2. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0437\u0432\u0443\u043a\u043e\u043c, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a, \u0442\u043e \u043e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043d\u0435\u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0448\u0443\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u0431\u043b\u043e\u043a\u043e\u043c \u0431\u0435\u0437 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0430\u043d\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0440\u0451\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0435. \u0414\u043b\u0438\u043d\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439, \u0447\u0435\u043c \u043e\u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0445\u0443\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0437\u0432\u0443\u043a\u0430.<\/p>\n<p>  3. \u0415\u0441\u043b\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0432\u0443\u043a, \u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u0435, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e.<\/p>\n<p>  4. \u0414\u0430\u043b\u0435\u0435 \u043e\u0431\u0430 \u0432\u0438\u0434\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044e \u0444\u0430\u0437\u044b, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044e \u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">if np.mean(np.abs(wave_slice)) &lt; 0.005:     Wl_s[i] = 2     n_p = round(Nframe\/Wl_s[i])     avg = np.zeros(2) else:     if  no_voice[i] == 1:         Wl_s[i] = 128         n_p = round(Nframe\/Wl_s[i])          ss = wave_slice[:n_p * Wl_s[i]]         ss_2d = np.resize(ss, (n_p, Wl_s[i]))         high = ss-np.roll(ss,-1)         high_2d = np.resize(high, (n_p, Wl_s[i]))          avg = np.mean(ss_2d, axis=0)         high = np.mean(high_2d, axis=0)         avg = avg + high     else:         &lt;&lt;compress>>     &lt;&lt;correct compression result>> <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0412\u0441\u0435 \u044d\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043b\u0438\u043d\u043e\u0439 NFrame.<\/p>\n<p>  1. \u0421\u0436\u0438\u043c\u0430\u0435\u043c, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442.<\/p>\n<p>  2. \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b max_ampl, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d 8 \u0431\u0438\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u0426\u0410\u041f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u0432\u044b\u0441\u043e\u043a\u0430.<\/p>\n<p>  3. \u0412 \u043e\u0434\u043d\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 441 \u0441\u044d\u043c\u043f\u043b. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0434\u043b\u0438\u043d\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u044d\u0442\u043e\u0439 \u0446\u0438\u0444\u0440\u0435. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0440\u0435\u043c\u044f \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u0441\u044f, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u0434\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u043a\u0430\u043b \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439. \u0414\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u0438 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 sample_deficit \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044b \u0431\u043b\u043e\u043a\u043e\u0432.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u043e\u0434\u0435\u0440\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">for i in range(Total_blocks - 1):     wave_slice = waveform[i * Nframe: (i + 1) * Nframe]      # compression code here     # avg ~ result of compression      if max(abs(avg)) > max_ampl:         max_ampl = max(abs(avg))      restored_sample_len = n_p * Wl_s[i]     if sample_deficit !=0:         loops =  n_p + round(sample_deficit \/ Wl_s[i])         if loops > 255:             loops = 255     else:         loops = n_p      restored = np.tile(avg, loops)     sample_deficit = sample_deficit + (Nframe-len(restored))      file_bin['Blocks'].append( {'Wl': Wl_s[i], 'loops': loops, 'block': avg} ) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0426\u0410\u041f \u0421\u0435\u0433\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 0-255 \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u043f\u0438\u0441\u044c \u0432 \u0444\u0430\u0439\u043b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">f_name = r'C:\\output.til' with open(f_name, 'wb') as file:     for value in file_bin['Blocks']:             file.write( (value['Wl']).to_bytes(1, byteorder='big', signed=False) )             file.write( (value['loops']).to_bytes(1, byteorder='big', signed=False) )             avg_raw = np.round(127 * value['block'] \/ max_ampl + 127)             file.write(avg_raw.astype('uint8'))      end = 0     file.write(end.to_bytes(1, byteorder='big', signed=False)) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041a\u043e\u0434\u0435\u043a \u0433\u043e\u0442\u043e\u0432! \u0423\u0440\u0430! \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u0438\u044f, \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 5-8. \u0415\u0441\u043b\u0438 \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u043d\u0438\u0437\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0435\u0441\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442, \u0442\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0441\u0436\u0430\u0442\u0438\u044f \u0432\u044b\u0448\u0435.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u043d\u043e, \u0442\u043e 1 \u043c\u0438\u043d\u0443\u0442\u0430 \u0437\u0430\u0439\u043c\u0451\u0442 175 \u041a\u0411, \u0430 \u0432 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f 22 \u043c\u0438\u043d\u0443\u0442\u044b \u0437\u0432\u0443\u043a\u0430. \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439: \u043b\u0451\u0433\u043a\u0438\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437 (\u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440) \u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043d\u0430 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438 \u043f\u043b\u0451\u043d\u043e\u0447\u043d\u044b\u0445 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043e\u0447\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c.  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/661bcc0d87bb36d4b37ba10b\" data-style=\"\" id=\"661bcc0d87bb36d4b37ba10b\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0427\u0430\u0441\u0442\u044c 2<\/font><\/h2>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 \u0438\u0433\u0440\u044b \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0438 \u043a\u043e\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0437\u0432\u0443\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043b\u0438\u0448\u044c 1 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u0432\u043e\u0435\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u0442\u0440\u044e\u043a\u043e\u043c: \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043e\u0442 8 \u0431\u0438\u0442 \u043a 4, \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 16 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 \u0434\u043b\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2014 \u0438\u0434\u0435\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u0430\u044f. \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c: \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0431\u043e\u0439 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e. 16 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440\u0443 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0439. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0421\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438: 0, 1, 2, 4, 8, 16, 32, 64, 128, -1, -2, -4, -8, -16, -32, -64. \u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u0430\u0432\u0430\u0442\u044c \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 10-20%. \u041d\u0430 \u0441\u043b\u0443\u0445 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0445\u0440\u0443\u0441\u0442 \u0438 \u0448\u0435\u043b\u0435\u0441\u0442, \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c? \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u0434\u0435\u0440\u043e\u043c \u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442 8 \u0431\u0438\u0442, \u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 Z80, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435, \u043d\u043e \u0441\u0432\u043e\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434 \u0431\u043b\u0438\u0436\u0435 \u043a \u0442\u0435\u043b\u0443.<\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0435 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0435: \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u0430\u0451\u0442 \u043d\u0438\u0437\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0430 \u043f\u043b\u0430\u0432\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043d\u0430 \u0441\u043a\u0430\u0447\u043a\u0430\u0445, \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b \u0441\u0438\u043b\u044c\u043d\u043e \u0438 \u0441\u043b\u0430\u0431\u043e? \u041f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u044d\u0442\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u00ab\u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u00bb. \u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0439 \u00ab\u043c\u0430\u0441\u0441\u043e\u0439\u00bb \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b. \u0422\u0430\u043c, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0430, \u0435\u0441\u0442\u044c \u0438 \u0438\u043d\u0435\u0440\u0446\u0438\u044f, \u043f\u0440\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0449\u0435\u043c\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u00ab\u0442\u043e\u0440\u043c\u043e\u0437\u044f\u0449\u0438\u0435\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443 \u043d\u0430\u0441 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433\u0430, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u043e\u043b\u044c \u0438 \u043a\u043e\u0434\u0435\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043e \u0432\u044b\u0445\u043e\u0434\u0430 \u0432 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u0443\u044e \u0437\u043e\u043d\u0443. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0437\u043a\u0438\u0435 \u0441\u043a\u0430\u0447\u043a\u0438 \u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043e\u0448\u0438\u0431\u043a\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0430\u0441\u044c \u0432 2 \u0440\u0430\u0437\u0430.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qd\/ie\/tr\/qdietrdkhmezwsm8ye24qrsxi0e.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qd\/ie\/tr\/qdietrdkhmezwsm8ye24qrsxi0e.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/font><\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ru\/md\/9b\/rumd9bwijuojjt94r7jlk3ucd8g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ru\/md\/9b\/rumd9bwijuojjt94r7jlk3ucd8g.png\"\/><br \/>  <i><font color=\"#4682B4\">\u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 + \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/font><\/i><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u0415\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u0440\u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e. \u0418\u0437 \u044d\u0442\u0438\u0445 \u0432\u0435\u043b\u0438\u0447\u0438\u043d \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u043e\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f 8 \u0431\u0438\u0442 \u0432 4 \u0431\u0438\u0442\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">table = [0] + [x*x for x in range(1,9)] + [-(x*x) for x in range(2,9)] encoded = [] encoded.append(avg[0]) akulmulator_prev = 0 val_prev = avg[0]  for j in range(1, len(avg)):     akk_diff = avg[j] - val_prev - akulmulator_prev      if abs(akulmulator_prev) > 21:         akulmulator_prev = 0         akk_diff = avg[j] - val_prev      candidate_i = 9999     dist = 9999     for i in range(16):         x = table[i]         if abs(x - akk_diff) &lt; dist:             dist = abs(x - akk_diff)             candidate_i = i     encoded.append(candidate_i)     akulmulator_prev = akulmulator_prev + table[candidate_i]     val_prev = val_prev + akulmulator_prev  <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u0435\u043a\u043e\u0434\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0432 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0437\u0434\u0443\u0432\u0448\u0438\u0439\u0441\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c. \u041f\u0440\u0438 \u043c\u0430\u043b\u0435\u0439\u0448\u0435\u043c \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u043a\u043e\u0434\u0435\u0440\u0430 \u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043b\u0435\u0442\u0430\u0435\u0442 \u0432 \u043d\u0435\u0431\u0435\u0441\u0430, \u0443\u0434\u043e\u0431\u043d\u043e.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">restored = [] akulmulator = 0 val = encoded[0] restored.append(val) for i in range(1,len(encoded)):     akk_diff = table[encoded[i]]     if  abs(akulmulator) > 21:         akulmulator = 0     akulmulator = akulmulator + akk_diff     val = val + akulmulator     restored.append(val) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435\u043a\u0435 \u0432\u0441\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435:<\/p>\n<p>  1. \u0418\u0437-\u0437\u0430 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043b\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b \u00ab\u043f\u043e\u0434 \u043f\u043e\u0442\u043e\u043b\u043e\u043a\u00bb. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u043e\u0436\u0435\u0442 \u0443\u0431\u0435\u0436\u0430\u0442\u044c \u0437\u0430 255, \u0430 \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0431\u043b\u043e\u043a\u0438, \u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u043e\u0441. \u041c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u044b\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u044d\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u0430\u0447\u0435\u0442, \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. \u042d\u0442\u043e \u0441\u043b\u0430\u0431\u043e\u0435 \u043c\u0435\u0441\u0442\u043e: \u043b\u0438\u0431\u043e \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0430\u0441 \u0438 \u043f\u043e\u0442\u0435\u0440\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b, \u043b\u0438\u0431\u043e \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>  2. \u0414\u0430\u043b\u0435\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 4 \u0431\u0438\u0442\u0430.<\/p>\n<p>  3. \u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0443\u0431\u0430\u0439\u0442\u043e\u0432 \u0432 \u0431\u0430\u0439\u0442\u044b.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 \u0444\u0430\u0439\u043b \u0432 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0431\u0438\u0442\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">f_name = r'C:\\output.til' table = [0] + [x*x for x in range(1,9)] + [-(x*x) for x in range(1,8)]  first_block = True all_blocks = np.round(127 * wav_file \/ max_ampl + 128) naive_max = max(np.abs(np.diff(all_blocks) + all_blocks[1:])) if naive_max > 255:     magic_k = 255\/304 else:     magic_k = 1  with open(f_name, 'wb') as file:     akulmulator_prev = 0     val_prev = 0     for value in file_bin['Blocks']:             avg_raw = np.round(magic_k * 127 * value['block'] \/ max_ampl + 127)             z = []              if first_block:                 file.write(int(avg_raw[0]).to_bytes(1,byteorder='big',signed=False))                 val_prev = avg_raw[0]                 first_block = False              file.write((value['Wl']).to_bytes(1,byteorder='big',signed=False))             file.write((value['loops']).to_bytes(1,byteorder='big',signed=False))              for j in range(len(avg_raw)):                 akk_diff = avg_raw[j] - val_prev - akulmulator_prev                 candidate_i = 9999                 dist = 9999                 if abs(akulmulator_prev) > 21:                     akulmulator_prev = 0                     akk_diff = avg_raw[j] - val_prev                 for i in range(16):                     x = table[i]                     if abs(x - akk_diff) &lt; dist:                         dist = abs(x - akk_diff)                         candidate_i = i                 z.append(candidate_i)                  akulmulator_prev = akulmulator_prev + table[candidate_i]                 val_prev = val_prev + akulmulator_prev                 if val_prev > 255 or val_prev &lt; 0:                     print('Value overflow: ', val_prev)                 if akulmulator_prev > 255:                     print('Akk overflow: ', akulmulator_prev)              if value['Wl'] &amp; 1 == 1:                 z.append(0)             avg_8bit = np.array(z).astype('uint8')             avg_4bit_packed = avg_8bit[0::2] &lt;&lt; 4 | avg_8bit[1::2]             file.write(avg_4bit_packed)      end = 0     file.write(end.to_bytes(1,byteorder='big',signed=False)) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u0435\u043a\u043e\u0434\u0435\u0440 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0438 \u0437\u0430\u043a\u0440\u043e\u0435\u0442, \u0442\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0414\u043b\u044f \u043c\u0435\u043d\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0441\u0440\u0435\u0434\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f SecondBasic.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u0435\u043a\u043e\u0434\u0435\u0440 22 \u043a\u0413\u0446 4 \u0431\u0438\u0442\u0430, \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">Reload Table Reload TilFile  'd7 - Dac_Block start 'd6 - Loops value 'd5 - Flags|read_bytes_counter 'd4 - akulmulator'|DAC last value'|akulmulator|DAC last value 'd3 - Wl 'd0 - temp 'a2 - quantize table  Asm move.B #$01, ($A11100); request Z80 bus    move.B #$2B, ($A04000); Will DAC On move.B #$80, ($A04001); DAC On move.B #$2A, ($A04000); Will DAC Out move.l #__SBSDATA_Table, a2 ; 4bit_to_value table  move.B(a6)+, d0 ; Read first DAC_byte clr.Ld5; flag = 0 clr.Ld4; Val = 0 move.Bd0, d4; Val = first_value @Next_block move.W d4, d0 ; Swap d4; move.W d0, d4; Save akk, Val d4.L_lo -> d4.L_hi  bclr.L #16, d5; Set 1st_2nd_byte_flag = 0 beq.S@Skip_offset_correction adda  #1, a6 @Skip_offset_correction move.B (a6)+, d3; Read Wl beq@Break; If Wl = 0: EOF move.B (a6)+, d6 ; Read Loops move.La6, d7; Keep Dac_Block start @Repeat_Loop move.B d3, d5; Wl->read_bytes_counter bclr.L #16, d5; Set 1st_2nd_byte_flag = 0 @Next_DAC_Byte bchg.L #16, d5; Check &amp; Xor 1st_2nd_byte_flag bne.S@Second_Nibble; If 1st_2nd_byte_flag = 1: take 2nd half move.B(a6), d0 ; Read DAC_byte lsr.L#4, d0 ; Get first nibble bra.S @First_Nibble @Second_Nibble clr.W d0 move.B(a6)+, d0 ; Read DAC_byte @First_Nibble And.W#$000F, d0; Filter rubbish Or get second nibble move.B(a2,d0), d0; Convert 4bit To diff value  ror.w#8, d4 ; d4.B ~ akulmulator  cmp.B#21, d4; If abs(akulmulator)>21: akulmulator=0 sled1 And.Bd1, d4 cmp.B#-21, d4 sged1 And.Bd1, d4  add.B d0, d4 ; akulmulator = akulmulator + table[dac_block[i]] move.B d4, d0 ror.w#8, d4 ; d4.B ~ Val add.B d0, d4 ; Val = Val + akulmulator  move.B d4,($A04001); DAC_byte out  move.W #14, d0; Prepare pause counter @Pause     dbf     d0, @Pause; 22 kHz delay  subi.B#1, d5       ; Read_bytes_counter - 1 bne@Next_DAC_Byte; If read_bytes &lt; Wl: Next_DacByte @Loop_Done Subq.B#1, d6       ; Loops - 1 beq@Next_block     ; If Loops=0: Next_Block move.L d4, d0 Swap d0 move.W d0, d4 ; Restore akk, Val d4.L_hi -> d4.L_lo move.Ld7, a6; Reset datapointer bra@Repeat_Loop @Break End Asm  Print \"End\"  TilFile:     DataFile \"C:\\input.til\", Bin      Table: Data 0,1,4,9,16,25,36,49,64,-1,-4,-9,-16,-25,-36,-49 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/661c0bcaee68229db6180f15\" data-style=\"\" id=\"661c0bcaee68229db6180f15\" width=\"\"><\/div>\n<\/div>\n<p>  \u0421\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 9-12, \u0442\u043e \u0435\u0441\u0442\u044c 30 \u043c\u0438\u043d\u0443\u0442 \u0437\u0432\u0443\u043a\u0430 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436. \u042d\u0442\u043e \u0446\u0435\u043b\u044b\u0439 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u044c\u0431\u043e\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u0440\u043e\u0436\u043a\u0443 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439.<\/p>\n<p>  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 Sega MD? \u042d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f: \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043d\u0430 MIDI, \u043b\u0438\u0431\u043e \u0431\u0430\u0439\u0442\u044b \u0434\u043b\u044f \u0426\u0410\u041f. \u041d\u0430 \u0421\u0435\u0433\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0443\u0437\u044b\u043a\u0443 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f\u0430. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0438\u0437 \u0438\u0433\u0440, \u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0441 \u043d\u0435\u0440\u043e\u0434\u043d\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c\u0438. \u0414\u043b\u044f \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0438\u0437 \u043d\u0438\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e.<\/p>\n<p>  \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0438\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0434\u0442\u0438 \u043f\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438\u2026 \u0410\u0443\u0434\u0438\u043e\u0447\u0438\u043f \u043c\u043e\u0436\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u043b\u0438\u0431\u043e \u0441 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043b\u0438\u0431\u043e \u0441\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e. \u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0437\u0432\u0443\u043a\u0430. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f\u043e\u043c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u043d\u0435\u043b\u044c\u0437\u044f, \u0447\u0438\u043f\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u0442\u043e-\u0442\u043e \u043e\u0434\u0438\u043d. \u0414\u0435\u043a\u043e\u0434\u0435\u0440 \u0432\u043e\u043a\u0430\u043b\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u0440\u0430\u0442\u044c\u0441\u044f \u0437\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f\u0443.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0431\u044b\u043b\u043e \u043e\u0442\u0443\u0447\u0438\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043a\u0430\u043d\u0430\u043b \u0426\u0410\u041f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0430\u043b \u043d\u0443\u043b\u0438 \u0438\u043b\u0438 \u0434\u0451\u0440\u0433\u0430\u043b \u0442\u0443\u0434\u0430-\u0441\u044e\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0426\u0410\u041f. \u041d\u0430\u0447\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043f\u0430\u0442\u0447\u0438\u043d\u0433\u0430, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0442\u043e-\u0442\u043e \u0442\u0440\u043e\u0433\u0430\u043b\u043e \u0426\u0410\u041f \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u0438\u043b\u043e \u0437\u0430 10, \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0432\u044b\u0434\u0430\u043b \u043a\u0430\u0448\u0443, \u0438 \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 =) \u041d\u043e \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043b\u0435\u0433\u0447\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 50 \u043c\u0435\u0441\u0442\u0430\u0445 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u043b \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0426\u0410\u041f. \u041f\u043e\u0437\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u043e \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0430\u0442\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u0438 \u0442\u043e\u0447\u043a\u0438.<\/p>\n<p>  \u0417\u0432\u0443\u043a \u0432\u043e\u043a\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0448\u0438\u043f\u0435\u0442\u044c, \u043d\u043e \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u043c\u0438: \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0440\u0430\u0437\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u043d\u043e\u0442\u044b \u0437\u0430\u0432\u0438\u0441\u0430\u043b\u0438, \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0412\u0441\u0451 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0447\u0438\u043f\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u0442\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u0430\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u0437-\u0437\u0430 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u043a \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.<\/p>\n<p>  \u041c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0432\u043e\u043a\u0430\u043b \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u043a\u0430\u043a\u043e\u0444\u043e\u043d\u0438\u044e. \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u0431\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e, \u043d\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0437\u0430\u043c\u043e\u0440\u043e\u0437\u0438\u0442\u044c, \u0437\u0430\u0433\u043b\u0443\u0448\u0438\u0442\u044c. \u042d\u0442\u043e \u0431\u044b\u043b \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u043e\u0432\u0430\u043b \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u0431\u044b\u043b\u043e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0430 \u043d\u0430\u0438\u0432\u043d\u0443\u044e \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0443\u0436\u043e\u0439 \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u0440\u0443\u0436\u0438\u0442\u044c \u0441 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u043e\u043c, \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043e\u0442 \u0431\u0435\u0437\u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0432 \u043d\u0435\u0433\u043e, \u043d\u043e \u0434\u0430\u0436\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441 14 \u043a\u0413\u0446 \u0434\u043e 28 \u043a\u0413\u0446 \u043d\u0435 \u0432\u044b\u0448\u043b\u043e. \u0417\u0430 \u043d\u0435\u0434\u0435\u043b\u044e \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043d\u0438 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0430\u0432\u0442\u043e\u0440 \u0430\u0443\u0434\u0438\u043e\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043d\u0435\u0433\u043e 3 \u0433\u043e\u0434\u0430, \u0442\u0430\u043c \u043d\u0438 \u043f\u043e\u0448\u0435\u0432\u0435\u043b\u0438\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443 \u0440\u0430\u0437\u0432\u0430\u043b\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u0442\u0440\u0443\u0445\u0443, \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0447\u043a\u0430 \u0431\u044b\u043b\u0438 \u0440\u043e\u0432\u043d\u043e \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u043c\u0435\u0441\u0442\u0435, \u043e \u0447\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u043c\u0435\u043a\u0430\u043b \u0440\u0430\u0441\u0447\u0451\u0442 \u0446\u0438\u043a\u043b\u043e\u0432 \u0432\u0434\u043e\u043b\u044c \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430. \u0426\u0435\u043d\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0443\u0441\u0438\u043b\u0438\u0439 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u0431\u0438\u0442\u044c \u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0436\u0430\u043b\u043a\u0438\u0435 200 \u0431\u0430\u0439\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043d\u043e \u0433\u0440\u0443\u0431\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0451\u043d\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u042d\u0442\u043e \u0431\u044b\u043b \u0434\u0432\u0430\u0436\u0434\u044b \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u043e\u0432\u0430\u043b.<\/p>\n<p>  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f: 22 \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0430\u0437 \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u0443\u0434\u0438\u043e\u0447\u0438\u043f\u0443 \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0443\u0441\u043b\u043e\u0432\u043d\u043e 200 \u0440\u0430\u0437 \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0448\u043b\u0435\u0442 \u043d\u043e\u0442\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. 100 \u0448\u0430\u043d\u0441\u043e\u0432 \u043a 1, \u0447\u0442\u043e \u043d\u043e\u0442\u0430 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u0447\u0438\u043f\u0430. \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0426\u0410\u041f \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u0434\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u2026 \u0414\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0442\u0438\u0448\u0438\u043d\u0430, \u043d\u043e\u043b\u044c, \u0442\u043e\u0433\u0434\u0430 \u0437\u0430\u0447\u0435\u043c \u043c\u044b \u0448\u043b\u0451\u043c \u0442\u0438\u0448\u0438\u043d\u0443, \u0432\u0435\u0434\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0442\u044b? \u0410\u0413\u0410! \u041f\u0443\u0441\u043a\u0430\u0439 \u043c\u0443\u0437\u044b\u043a\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0438\u0433\u0440\u0430\u0435\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0435\u0442 \u0433\u043e\u043b\u043e\u0441\u0430, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e, \u0447\u0442\u043e \u044d\u0442\u0430 \u0438\u0434\u0435\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0418, \u043a\u0441\u0442\u0430\u0442\u0438, \u0432 4-\u0445 \u0431\u0438\u0442\u043d\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0440\u0430\u0432\u0435\u043d \u043d\u0443\u043b\u044e, \u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0430 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u0448\u0438\u043d\u0430, \u043d\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041d\u0435 \u0431\u0438\u043d\u0433\u043e, \u043d\u043e \u0445\u043e\u0442\u044c \u0447\u0442\u043e-\u0442\u043e.<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/661c0bcbee339fd48bf32096\" data-style=\"\" id=\"661c0bcbee339fd48bf32096\" width=\"\"><\/div>\n<\/div>\n<p>  \u0414\u0430, \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u0446\u0435\u043b\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u2014 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e C\u0435\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0438 \u043c\u0443\u0437\u044b\u043a\u0443. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0437\u0432\u0443\u0447\u0430\u043b\u043e, \u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0451 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0427\u0430\u0441\u0442\u044c 3<\/font><\/h2>\n<p>  \u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e \u0430\u0431\u0441\u0443\u0440\u0434\u0430, \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u0438\u044f? \u0417\u0430\u0447\u0435\u043c? \u0410, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u0432 RPG. \u0412\u043e\u0442 \u044d\u0442\u043e \u0431\u044b\u043b \u0431\u044b \u0442\u0440\u044e\u043a: \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u044b\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u0438 \u043d\u0430 \u0421\u0435\u0433\u0435!<\/p>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u0442\u043e\u0432 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0443\u0436\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043e, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443. \u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0434\u043e 11 \u043a\u0413\u0446 \u0438 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0441\u043b\u0443\u0448\u0430\u0442\u044c. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043a\u043e\u0434\u0435\u043a\u0438 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445? \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u043e \u0441\u0436\u0430\u0442\u0438\u0435\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0449\u0435 \u0432 \u0434\u0440\u0435\u0432\u043d\u0435\u043c MP3pro \u0438\u043b\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0440\u0435\u0432\u043d\u0435\u043c AAC+ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 SBR = side band replication. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u0443\u044e\u0442 \u0441 \u043d\u0438\u0436\u043d\u0438\u043c\u0438, \u0438 \u0435\u0441\u043b\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0440\u0438\u0432\u0443\u044e, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u044d\u0442\u0443 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044e, \u0442\u043e \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00bb \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0438\u0437 \u043d\u0438\u0436\u043d\u0438\u0445. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u043f\u0440\u0438 \u0441\u0438\u043b\u044c\u043d\u043e\u043c \u0441\u0436\u0430\u0442\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0431\u0438\u0442\u0440\u0435\u0439\u0442. \u041e\u0447\u0435\u043d\u044c \u043a\u043b\u0430\u0441\u0441\u043d\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<p>  \u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u0442\u043e\u043a\u0430: \u043e\u0434\u0438\u043d \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 11 \u043a\u0413\u0446, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 22 \u043a\u0413\u0446, \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u0432 2 \u0440\u0430\u0437\u0430 \u0432\u044b\u0448\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e? \u041f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 2 \u0440\u0430\u0437\u0430. \u0423 \u043d\u0430\u0441 \u0436\u0435 \u0431\u043b\u043e\u043a\u0438 \u0437\u0430\u0446\u0438\u043a\u043b\u0435\u043d\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0442\u044c \u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0443\u0433\u043e\u0434\u043d\u043e. \u0410 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u043e\u0442\u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0442\u0435\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442. \u042d\u0442\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u043e \u043d\u0430 \u0437\u0430\u0434\u043d\u0435\u043c \u0444\u043e\u043d\u0435 \u0436\u0430\u043b\u043e\u0431\u043d\u043e \u0432\u0438\u0437\u0436\u0430\u043b\u0438 \u0431\u0443\u0440\u0443\u043d\u0434\u0443\u043a\u0438, \u043d\u0430\u0434\u0435\u0436\u0434\u0430, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u043c\u0430\u043b\u043e\u0439 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 \u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u044b\u0448\u043d\u043e, \u043d\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043b\u0430\u0441\u044c.<\/p>\n<p>  \u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0434\u043e\u043b\u0433\u0438\u0439 \u0442\u0443\u043f\u0438\u043a. \u0413\u0434\u0435 \u0440\u0430\u0437\u0434\u043e\u0431\u044b\u0442\u044c 22 \u043a\u0413\u0446, \u0442\u043e\u0447\u043d\u043e \u0441\u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c 11 \u043a\u0413\u0446 \u0438 \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438? \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b 11 \u043a\u0413\u0446 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 22 \u043a\u0413\u0446 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u043e \u0434\u0438\u043a\u0438\u0439 \u0437\u0432\u043e\u043d \u043d\u0430 \u0432\u0435\u0440\u0445\u0430\u0445, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, \u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443. \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u0430. \u0413\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044e \u043d\u0430 \u0441\u043b\u0430\u0431\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435 \u0434\u043b\u044f \u0443\u0442\u043e\u043d\u0447\u0435\u043d\u043d\u044b\u0445 \u0433\u0443\u0440\u043c\u0430\u043d\u043e\u0432, \u0445\u043e\u0442\u044f \u044f \u0438\u0437 \u0442\u0430\u043a\u0438\u0445, \u043d\u043e \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0431\u043e\u0440. \u041f\u0438\u0441\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 \u043d\u0438\u0437\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b? \u0422\u0430\u043a \u043e\u043d \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b, \u0432\u0441\u0451 \u0440\u0430\u0441\u043f\u043e\u043b\u0437\u0451\u0442\u0441\u044f. \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043c\u043d\u0435 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043f\u043e\u043c\u043e\u0433, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0438\u0437\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043d\u0430 \u0441\u043b\u0430\u0431\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435. \u0417\u0432\u0443\u0447\u0438\u0442 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e, \u043d\u043e \u043a \u044d\u0442\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432 22 \u043a\u0413\u0446 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430 \u0441 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c\u0438 22 \u043a\u0413\u0446, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442 \u0431\u0435\u0441\u0441\u0438\u043b\u0438\u044f, \u0443\u043b\u044b\u0431\u0430\u044f\u0441\u044c \u0441\u0442\u0443\u0434\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f\u043c, \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0431\u0435\u0433\u0443\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432 3 \u0441\u0442\u0440\u043e\u0447\u043a\u0438. \u0418 \u0442\u0443\u0442 \u0441\u043d\u0438\u0437\u043e\u0448\u043b\u0430 \u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0442\u044c, \u0440\u0430\u0434\u0438\u043e \u0437\u0430\u043f\u0435\u043b\u043e \u0438\u0437 \u043e\u0442\u0440\u0435\u0437\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0434\u0438\u043e\u0442\u043e\u0447\u043a\u0438, \u0438 \u0447\u0451\u0440\u0442\u043e\u0432 \u0426\u0410\u041f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0437\u0432\u0435\u043d\u0435\u0442\u044c. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0435.<\/p>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u0431\u043e\u0440\u044c\u0431\u044b \u0441\u043e \u0437\u0432\u043e\u043d\u043e\u043c, \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u043b \u0434\u0435\u0442\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u00ab\u041d\u0443 \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u0430 \u044d\u0442\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430? \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c 11, \u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u044d\u043c\u043f\u043b\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u044d\u043c\u043f\u043b\u044b, \u0432\u043e\u0442 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0438\u0442\u043e\u0433\u0435 22.\u00bb \u0422\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f\u0445, \u043d\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u0437\u0432\u0443\u0447\u0430\u043b\u0438 \u043a\u0430\u043a \u043f\u043b\u043e\u0445\u0438\u0435 11 \u043a\u0413\u0446. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0440\u044e\u043a: \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u044d\u043c\u043f\u043b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0441\u044f \u0441 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c. \u042d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043d\u0451\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0432\u044b\u0448\u0435 11 \u043a\u0413\u0446 (\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u0448\u0435 5500 \u0413\u0446, \u043d\u043e \u0435\u0441\u043b\u0438 \u0435\u0449\u0451 \u043c\u0438\u0441\u0442\u0435\u0440\u0430 \u041d\u0430\u0439\u043a\u0432\u0438\u0441\u0442\u0430 \u043f\u043e\u0437\u043e\u0432\u0451\u043c, \u0442\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0435\u043c\u0441\u044f \u0432 \u043a\u0440\u0430\u0439). \u0423\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438, \u0437\u0430 \u0441\u044d\u043f\u043b\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0435\u0433\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f, \u0438, \u043e, \u0447\u0443\u0434\u043e: \u044d\u0442\u043e \u0436\u0435 \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 22 \u043a\u0413\u0446, \u0441\u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441 11 \u043a\u0413\u0446, \u0431\u0435\u0437 \u0447\u0435\u0433\u043e \u0432\u0441\u044f \u0437\u0430\u0442\u0435\u044f \u043c\u0435\u0440\u0442\u0432\u0430. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c 22 \u043a\u0413\u0446, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 11 \u043a\u0413\u0446, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430, \u044d\u0442\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435, \u0430 \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0438 \u0436\u0435\u043b\u0435\u0437\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c. \u0420\u0430\u0441\u0447\u0451\u0441\u043a\u0430 \u0438\u0437 \u0441\u043c\u0435\u0441\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439 \u0437\u0432\u0443\u0447\u0430\u043b\u0430 \u043a\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u043b\u043e \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e, \u0432\u0435\u0434\u044c \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435 \u043d\u0430 \u0447\u0442\u043e. \u041e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b, \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u0435, \u0432\u0435\u0434\u044c \u043d\u0430 \u0441\u043b\u0443\u0445 \u0431\u044b\u043b\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u0430\u0431\u0435\u0435 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b \u0440\u0430\u0441\u0447\u0451\u0441\u043a\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u044f\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0435 \u0432\u043e\u043b\u043d\u044b: \u043f\u0440\u044f\u043c\u0430\u044f \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0435\u0439, \u0441 \u043e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435\u043c \u0432 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0441\u044d\u043c\u043f\u043b\u0430 11 \u043a\u0413\u0446 \u0438\u043b\u0438 \u043e\u0434\u0438\u043d \u0441\u044d\u043c\u043f\u043b 22 \u043a\u0413\u0446. \u041a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u043e\u043b\u043d\u044b \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 2 \u0442\u043e\u0447\u0435\u043a \u043e\u0431\u0449\u0435\u0439 \u0432\u043e\u043b\u043d\u044b.<\/p>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e, \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0449\u0430\u044f\u0441\u044f \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439: (X2-X1), -(X2-X1), (X3-X2), -(X3-X2). \u042d\u0442\u043e \u0437\u0430\u0437\u0432\u0443\u0447\u0430\u043b\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043a\u043e\u0434\u0435\u0440\u0443, \u0446\u0438\u043a\u043b \u0441\u0436\u0430\u0442\u0438\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e 22 \u043a\u0413\u0446.<\/p>\n<p>  1. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a avg \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0432 11 \u043a\u0413\u0446.<br \/>  2. \u0414\u0430\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u0431\u043b\u043e\u043a avg \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 22 \u043a\u0413\u0446 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0435\u0433\u0443\u0449\u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e 8 \u0431\u0438\u0442, \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0435.<br \/>  3. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c ampl_avg_high_part \u2014 \u0410\u0427\u0425 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 22 \u043a\u0413\u0446 \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438.<br \/>  4. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c bit_shifted_11 \u2014 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442, \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0443 \u0432 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0435.<br \/>  5. \u042f\u0434\u0440\u043e\u043c \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440 xopt \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 bit_shifted_11, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0410\u0427\u0425 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 bit_shifted_11 \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u043b\u0438\u0437\u043a\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u043c.<br \/>  6. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b mix, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">for i in range(Total_blocks):      wave_slice = waveform[i * Nframe: (i + 1) * Nframe]      # compression code here     # avg ~ result of compression      restored_sample_len = n_p * (Wl_s[i]\/\/2)     if sample_deficit !=0:         loops =  n_p + round(sample_deficit \/ (Wl_s[i]\/\/2))         if loops > 255:             loops = 255     else:         loops = n_p      avg_11_ = resample(avg, Wl_s[i]\/\/2, axis=0) # \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0430     avg_11_[0] = avg[0]     avg_11_[-1] = avg[-1]      n_fft = int(22050 * 1\/50)     n_fft = n_fft * 2     hop_length = n_fft \/\/ 4      def resample_avg11_to_22():         z=[]         value_array = np.repeat(np.round(avg_11_* 127), 2)         avg_v = value_array[0]         for x in value_array:             avg_v = (avg_v + x)\/2             z.append(avg_v)         return np.array(z).astype('int8')      average_resample = resample_avg11_to_22()     avg_high_part = avg[:len(average_resample)] - average_resample\/127     ampl_avg_high_part,_ = librosa.magphase(librosa.stft(avg_high_part,n_fft=n_fft,hop_length=hop_length))      bit_shifted_11 = np.round(avg_11_* 127).astype('int16')     bit_shifted_11 = (bit_shifted_11 - np.roll(bit_shifted_11,1))     b1 = bit_shifted_11     b2 = bit_shifted_11 * -1     bit_shifted_11 = np.stack([b1,b2]).flatten(order='F')      dist_opt = np.inf     xopt = 0     for shift_x in range(8):         bit_shifted_avg = bit_shifted_11.astype('int16') >> shift_x          z=[]         avg_v = bit_shifted_avg[0]         for x in bit_shifted_avg:             avg_v = (avg_v + x)\/2             z.append(avg_v)         bit_shifted_avg = np.array(z)          if shift_x == 7:             bit_shifted_avg = bit_shifted_avg * 0          ampl_bit_shifted_avg,_ = librosa.magphase(librosa.stft(bit_shifted_avg\/127,n_fft=n_fft,hop_length=hop_length))         d = np.linalg.norm(ampl_avg_high_part[:,0] - ampl_bit_shifted_avg[:,0])         if d &lt; dist_opt:             xopt = shift_x             dist_opt = d      bit_shifted_11 = bit_shifted_11.astype('int16') >> xopt      if xopt==7:         bit_shifted_11 = bit_shifted_11 * 0      mix = average_resample\/127 + bit_shifted_11\/127      if max(abs(mix)) > max_ampl:         max_ampl = max(abs(mix))      Wl_s[i] = Wl_s[i] \/\/ 2     sample_deficit = sample_deficit + (Nframe \/\/ 2 - Wl_s[i] * loops)      block = {'Wl'      : Wl_s[i],             'loops'    : loops,             'hi_boost' : xopt,             'block'    : avg_11_}     file_bin['Blocks'].append(block) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u0440\u043e \u043a\u0440\u0430\u0441\u043e\u0442\u0443 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e: \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u0435\u043a\u043e\u0434\u0435\u0440 22 \u043a\u0413\u0446 4 \u0431\u0438\u0442\u0430 side band approximation, \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\"> Reload Table Reload TilFile  'd7 - High_boost 'd6 - Loops value 'd5 - read_bytes_counter 'd4 - akulmulator'|DAC last value'|akulmulator|DAC last value 'd3 - Wl 'd2 - Flag|Average val 'd1 - temp 'd0 - temp 'a2 - quantize table 'a1 - Dac_Block start  Asm move.B #$01, ($A11100); request Z80 bus    move.B #$2B, ($A04000); DAC On move.B #$80, ($A04001); DAC On move.B #$2A, ($A04000); Will DAC Out move.l #__SBSDATA_Power2, a2 ; 4bit_to_value table  move.B(a6)+, d0 ; Read first DAC_byte clr.Ld4; Val = 0 clr.Ld2; Flag, Avg_Val = 0 clr.Ld3 move.Bd0, d4; Val = first_value @Next_block move.W d4, d0 ; Swap d4; move.W d0, d4; Save akk, Val d4.L_lo -> d4.L_hi  bclr.L #16, d2; Set 1st_2nd_byte_flag = 0 beq.S@Skip_offset_correction adda  #1, a6 @Skip_offset_correction move.B (a6)+, d3; Read Wl beq@Break; If Wl = 0: EOF move.B (a6)+, d6 ; Read Loops  move.B(a6), d7 ; Read High_boost eori.b#7, d7; prepare 7-d7 value Swap d7; move.B(a6)+, d7 ; Repeat Read High_boost move.La6, a1; Keep Dac_Block start @Repeat_Loop move.B d3, d5; Wl->read_bytes_counter bclr.L #16, d2; Set 1st_2nd_byte_flag = 0 @Next_DAC_Byte bchg.L #16, d2; Check &amp; Xor 1st_2nd_byte_flag bne.S@Second_Nibble; If 1st_2nd_byte_flag = 1: take 2nd half move.B(a6), d0 ; Read DAC_byte lsr.L#4, d0 ; Get first nibble bra.S @First_Nibble @Second_Nibble clr.W d0 move.B(a6)+, d0 ; Read DAC_byte @First_Nibble And.W#$000F, d0; Filter rubbish Or get second nibble move.B(a2,d0), d0; Convert 4bit To diff value  ror.w#8, d4 ; d4.B ~ akulmulator  cmp.B#21, d4; If abs(akulmulator)>21: akulmulator=0 sled1 And.Bd1, d4 cmp.B#-21, d4 sged1 And.Bd1, d4  add.B d0, d4 ; akulmulator = akulmulator + twos[dac_block[i]] move.B d4, d0 ror.w#8, d4 ; d4.B ~ Val add.B d0, d4 ; Val = Val + akulmulator  move.B d4, d0 ext.W d0 Swap d3 ext.W d3 Sub.Wd3, d0; d0 = diff  asr.W d7, d0; d0~diff, equalize Swap d7 asr.B d7, d1; compensate asr cycles bias Swap d7 cmp.B #7, d7; special Case To prevent -1 sned1 And.B d1, d0 add.Wd0, d2; Avg_Val = High + Avg_Val  move.B d4, d1 ext.W d1 add.Wd1, d2; Avg_Val = Byte + Avg_Val asr.W#1, d2; Avg_Val = Avg_Val \/ 2  move.B d2, d1; To keep average unchanged add.B#$80, d1; Signed -> unsigned move.B d1,($A04001); DAC_byte out  move.W d0, d1;keep diff move.W #2, d0; Prepare pause counter @Pause     dbf     d0, @Pause; 22 kHz delay  move.W #22, d0; Prepare pause counter @Pause1     dbf     d0, @Pause1; Read operations delay          Sub.Wd1, d2; Avg_Val = Avg_Val - High  move.B d4, d1 move.Bd4, d3; d3 = prev_byte Swap d3 ext.W d1 add.Wd1, d2; Avg_Val = Byte + Avg_Val asr.W#1, d2; Avg_Val = Avg_Val \/ 2  move.B d2, d1; Keep average unchanged add.B#$80, d1; Signed -> unsigned move.B d1,($A04001); DAC_byte out  move.W #2, d0; Prepare pause counter @Pause2     dbf     d0, @Pause2; 22 kHz delay               @No_Pause subi.B#1, d5       ; Read_bytes_counter - 1 bne@Next_DAC_Byte; If read_bytes &lt; Wl: Next_DacByte @Loop_Done Subq.B#1, d6       ; Loops - 1 beq@Next_block     ; If Loops=0: Next_Block move.L d4, d0 Swap d0 move.W d0, d4 ; Restore akk, Val d4.L_hi -> d4.L_lo move.La1, a6; Reset datapointer bra@Repeat_Loop @Break End Asm  Print \"That End\"  TilFile:     DataFile \"C:\\input.til\", Bin  Table: Data 0,1,4,9,16,25,36,49,64,-1,-4,-9,-16,-25,-36,-49 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/661fabf687bb36d4b37e0fb5\" data-style=\"\" id=\"661fabf687bb36d4b37e0fb5\" width=\"\"><\/div>\n<\/div>\n<p>  45 \u043c\u0438\u043d\u0443\u0442 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0435! \u0421\u043b\u043e\u0432\u0430 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e, \u0447\u0430\u0441\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c, \u043d\u043e \u0434\u043b\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0438\u0433\u0440. \u041f\u0440\u0430\u0432\u0434\u0430, \u0438\u0437-\u0437\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0446\u0438\u043a\u043b \u0438\u0433\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0434\u043b\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043e\u043a \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0418\u0442\u043e\u0433\u043e<\/font><\/h2>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434\u0435\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0434\u0430\u043b\u044c\u0448\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0432\u0435\u0442\u043a\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f: \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u0443\u0439\u0442\u0438 \u0432 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043f\u044b\u0442\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c 1:55 \u0435\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u041f\u043e\u0434\u043e\u0448\u043b\u043e \u0431\u044b \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043a\u043e\u0434\u0435\u0440. <\/p>\n<p>  \u0412 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u0430\u044f \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438, \u0433\u0434\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430 \u0441\u0442\u043e\u0438\u0442 \u0442\u0430\u043a \u0436\u0435 \u043e\u0441\u0442\u0440\u043e. \u042d\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u043e\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<p>  \u0417\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0421\u0435\u0433\u0438 \u0442\u0430\u0438\u0442 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u0435\u043a\u0440\u0435\u0442, \u043b\u0435\u0436\u0430\u0432\u0448\u0438\u0439 \u0442\u0430\u043c 20 \u043b\u0435\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u043c\u0435\u043b\u044c\u0446\u044b \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412\u0441\u044f \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u043a \u044d\u0442\u043e\u0439 \u0442\u0430\u0439\u043d\u0435, \u0438\u043c\u0435\u044f \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430.<\/p>\n<hr\/>\n<p>  <\/p>\n<h4><font color=\"#454cee\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u044d\u0442\u043e:<\/font><\/p>\n<ul>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/807157\/\">\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d \u0434\u043b\u044f \u0434\u0436\u0430\u0432\u0430\u0441\u043a\u0440\u0438\u043f\u0442\u0435\u0440\u0430-\u043e\u043b\u0434\u0444\u0430\u0433\u0430: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0433\u0438\u043a\u0443 \u0431\u0440\u0430\u0442\u044c \u0434\u0435\u0448\u043c\u0430\u043d\u0441\u043a\u0438\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u044b \u043d\u0430 KaiOS? \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 Nobby 240 LTE<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/739594\/\">\u041b\u0435\u0433\u0435\u043d\u0434\u0430 \u043e \u0441\u043b\u043e\u043d\u0435: \u043a\u0430\u043a IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Steepler \u0441\u043e\u0437\u0434\u0430\u043b\u0430 Dendy \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043b\u0430 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0440\u044b\u043d\u043e\u043a<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/762914\/\">\u041e\u0442 Atari \u0434\u043e Ouya: \u043f\u0440\u043e\u0432\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/804413\/\">\u041f\u043e\u043b\u0438\u0433\u043e\u043d \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u0430 1500 \u0440. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043b\u0430\u0442\u044b, 256 UART\u043e\u0432 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u043a\u0442\u0440\u0430<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/807331\/\">Max Payne: \u0445\u043e\u0440\u043e\u0448\u0430 \u043b\u0438 \u043d\u0435\u043e\u043d\u0443\u0430\u0440\u043d\u0430\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f?<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p><a href=\"https:\/\/t.me\/timewebru\"><b>\u041d\u043e\u0432\u043e\u0441\u0442\u0438, \u043e\u0431\u0437\u043e\u0440\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u044b \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Timeweb.Cloud \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435<\/b><\/a> <b>\u21a9<\/b><\/p><\/blockquote>\n<p>  <a href=\"https:\/\/timeweb.cloud\/?i=106909\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\"\/><\/a><\/h4>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/807513\/\"> https:\/\/habr.com\/ru\/articles\/807513\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/807513\/\"> <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/og\/nk\/os\/ognkosjwsntokgmvl23bbgmvrpo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/og\/nk\/os\/ognkosjwsntokgmvl23bbgmvrpo.jpeg\" data-blurred=\"true\"\/><\/div>\n<p><\/a><br \/>  \u0412\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0432\u043e\u0434\u0430, \u0431\u043b\u0430-\u0431\u043b\u0430-\u0431\u043b\u0430. \u0418\u0441\u043a\u0440\u043e\u0439 \u0434\u043b\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u043a\u0442: \u0426\u0410\u041f \u043c\u0435\u0433\u0430\u0434\u0440\u0430\u0439\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0432\u0443\u043a \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c 26 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446 8 \u0431\u0438\u0442. \u0427\u0442\u043e? \u0425\u043e\u0447\u0443 \u0442\u0430\u043a\u043e\u0435! \u041d\u043e\u2026 \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0430 4 \u041c\u0431, \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 \u043d\u0430 2.5 \u043c\u0438\u043d\u0443\u0442\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u0437\u0432\u0443\u043a\u0430, \u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u041d\u0435\u0440\u0435\u0448\u0430\u0435\u043c\u043e\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0442\u043e \u0432\u0441\u0451 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-373554","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/373554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=373554"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/373554\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=373554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=373554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=373554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}